Baixe o app para aproveitar ainda mais
Prévia do material em texto
27/03/2015 1 Construção de modelos entidade-relacionamento Banco de dados 1 Fabrício Nogueira fabricio.silva@uva.br RelembrandoRelembrandoRelembrandoRelembrando • Entidades • Atributos • Relacionamentos • Cardinalidades • Generalização/Especialização • Entidade associativa 27/03/2015 2 Propriedades do MERPropriedades do MERPropriedades do MERPropriedades do MER • É um modelo formal • Tem poder de expressão limitado Pessoa Casamento Marido Esposa p1 p3 p7 p8 P1,p3 P3,p6 P5,p5 p2 p4 p6 p5 P6,p8 marido esposa marido esposa marido esposa Permite A realidade exige restrições de integridade A modelagem nem sempre permite representar todas as restrições. Propriedades do MERPropriedades do MERPropriedades do MERPropriedades do MER • É um modelo formal • Tem poder de expressão limitado Empregado Supervisão Supervisor Supervisionado e1 e3 e7 e8 e1,e2 E3,e4 e2 e4 e6 e5 E5,e1 Permite e1,e3 supervisor supervisionado supervisionado supervisor E3,e5 supervisionado supervisionado supervisor 27/03/2015 3 Propriedades do MERPropriedades do MERPropriedades do MERPropriedades do MER • Diferentes modelos podem ser equivalentes • Dois modelos são equivalentes quando geram o mesmo esquema de banco de dados Médico PacienteConsulta n n Médico Paciente (1,1) Consulta (0,n) (0,n) (1,1) Propriedades do MERPropriedades do MERPropriedades do MERPropriedades do MER • Diferentes modelos podem ser equivalentes • Relacionamentos n:m podem ser transformados em entidades • É possível construir modelos sem relacionamento n:m, porém equivalentes aos que usam relacionamento n:m • Relacionamentos 1:1 podem ser eliminados, unificando-se as entidades Empregado Mesa (1,1) (1,1) Empregado Atributos da mesa 27/03/2015 4 Determinando construçõesDeterminando construçõesDeterminando construçõesDeterminando construções • Entidade, Relacionamento, atributo, ...? • A escolha não pode ser observando-se o objeto isoladamente • Depende do contexto • A decisão pode sofrer alterações durante a modelagem Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Atributos vs entidade relacionada Automóvel Número do chassi Cor Automóvel Número do chassi Cor (1,1) (0,n) OU Útil quando se pretende manter informações extras sobre a cor (fabricante, data de validade, etc) 27/03/2015 5 Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Atributos vs entidade relacionada • Caso o objeto em discussão tenha atributos, relacionamentos, entidades genéricas ou especializadas � Entidade • Atributo não pode ter atributos • Atributos não pode estar relacionado a outras entidades • Atributo não pode ser generalizado/especializado • Ex.: Cor • Seria entidade se precisássemos armazenar: fabricante, data de início e fim de uso da cor, • Seria atributo se precisássemos armazenar apenas o valor da cor Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Atributo vs especialização • Especializações devem ser usadas quando sabe-se que as entidades especializadas possuem propriedades particulares (atributos, relacionamentos, generalizações, especializações) Empregado Motorista Engenheiro xt Nome Código cnh validade CREA EmpregadoNome Código Categoria funcional 27/03/2015 6 Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Atributo vs especialização • Especializações devem ser usadas quando sabe-se que as entidades especializadas possuem propriedades particulares (atributos, relacionamentos, generalizações, especializações) Empregado Homem Mulher xt Nome Código EmpregadoNome Código sexo Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Entidade relacionada vs especialização • Uma universidade deseja manter um cadastro de seus alunos e servidores; • Cada um deles é identificado pela matrícula. Além da matrícula, alguns dados de aluno e servidor devem ser mantidos, tais como: nome, endereço e data de nascimento; • Para os alunos, deseja-se manter o nome da escola que o aluno é proveniente, bem como o ano de ingresso na universidade; • Para os servidores, a universidade deseja manter seus cargos. Atributos comuns a aluno e servidor Atributos particulares a aluno Atributo particular a servidor 27/03/2015 7 Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Entidade relacionada vs especialização Pessoa Servidor Aluno ct Nome matrícula cargo Data de nascimento endereço Data de ingresso Escola secundária Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Entidade relacionada vs especialização • Modificando a realidade anterior... • Um aluno pode ingressar várias vezes na universidade para retomar um curso trancado, ou ingressar em um novo; • Um servidor pode ocupar mais de um cargo ao mesmo tempo; • Cada ocupação de um cargo por um servidor recebe um número que a identifica e é necessário saber as datas inicial e final da ocupação. 27/03/2015 8 Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Entidade relacionada vs especialização Pessoa Ocupação Aluno p Nome matrícula número Data de nascimento endereço Escola secundária n 1 Data início Data fim cargo Data de ingresso Ingresso 1 n Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Entidade relacionada vs especialização • Modificando a realidade anterior... • No novo modelo não há propriedades específicas do servidor para serem armazenadas • Ocupação representa a possibilidade de um servidor possuir mais de um cargo • Servidor ficou restrito à entidade pessoa • A entidade ingresso registra os diversos ingressos de um aluno, que continua sendo uma especialização de pessoa 27/03/2015 9 Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Atributos opcionais • A existência de atributos opcionais indicam uma possível modelagem de entidades especializadas EmpregadoNome Código CREA CRM CNH Validade CNH Tipo de empregado Empregado Motorista Engenheiro xt Nome Código cnh validade CREA Médico CRM Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Atributo multivalorado • Atributo cujos valores podem ter mais de uma ocorrência Empregado Nome Dependente(0,n) Lançamento pagamento (0,n) 27/03/2015 10 Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Atributo multivalorado • Indesejados • SGBDs relacionais não possuem uma representação direta de um atributo multivalorado • Ex.: Dependente = [Ana, Carla, Pedro, Raul] • SGBDs relacionaisrepresentam múltiplos valores através de um atributo texto • Ex.: Telefone = “Ana, Carla, Pedro, Raul” • Não existe qualquer regra para se obter um nome específico • Não existe qualquer regra que defina um delimitador entre os dependentes, o exemplo utiliza “,”, mas poderia ser “-”, “_”, “ “, etc • Podem induzir a um erro de modelagem, pois podem ocultar entidades e relacionamentos em atributos multivalorados • Analisando-se a entidade Empregado, percebe-se que dependente pode ter outros atributos (nome e data de nascimento). Lançamento pode ter um código e um tipo Determinando construções Determinando construções Determinando construções Determinando construções –––– CritériosCritériosCritériosCritérios • Atributo multivalorado Empregado Tipo lançamento Dependente Nome matrícula nome (1,1) 1 descrição Pagamentovalor código (0,n) (1,1) (0,n) (1,1) (0,n) Data de nascimento 27/03/2015 11 Verificação de modeloVerificação de modeloVerificação de modeloVerificação de modelo • O modelo deve ser correto • Não contém erros de modelagem • Erros sintáticos � Não respeita as regras de construção do modelo • Ex.: Associação entre atributos, associação relacionamento-atributo, etc • Erros semâticos � Apesar de obedecer às regras de construção, reflete a realidade de forma inconsistente • Ex.: • Atribuir a uma entidade um atributo que deveria ser de outra � Atributo “nome de filial” em Cliente ao invés de ser colocado como sendo de Filial • Usar uma entidade como atributo de outra entidade � Entidade Banco aparece como atributo da entidade Cliente • Usar um número incorreto de entidades em um relacionamento Verificação de modeloVerificação de modeloVerificação de modeloVerificação de modelo • O modelo deve ser completo • Deve retratar todos os dados presentes no negócio • Só pode ser verificado por um especialista do domínio � Envolver usuário • O modelo deve ser livre de redundância • Deve ser mínimo • Não deve aparecer no modelo • Devem ser explicitamente documentadas como redundantes • Relacionamentos redundantes são os resultantes da combinação de outros relacionamentos entre as mesmas entidades • Não há perda de informação ao eliminá-los 27/03/2015 12 Verificação de modeloVerificação de modeloVerificação de modeloVerificação de modelo Fábrica Empregado Departamento (1,1) (1,1) (0,n) (1,1) (0,1) Máquina Sindicato (0,n) (0,n) (0,n) (0,n) (0,n) (1,1) (0,n) (0,n) Verificação de modeloVerificação de modeloVerificação de modeloVerificação de modelo Departamento Departamento (1,1) n código Quantidade de empregados Código do departamento 27/03/2015 13 Verificação de modeloVerificação de modeloVerificação de modeloVerificação de modelo • O modelo deve refletir o aspecto temporal • Certas aplicações exigem que o banco de dados mantenha o histórico de alteração de informações • Dados temporais • Mudam ao longo do tempo e para os quais o BD deve manter um histórico • Atributos cujos valores mudam ao longo do tempo • Ex.: Salário • Relacionamentos que mudam ao longo do tempo • Ex.: Alocação de um empregado • Não há regra, porém alguns padrões Verificação de modeloVerificação de modeloVerificação de modeloVerificação de modelo • O modelo deve refletir o aspecto temporal • Atributo temporal. Ex.: Salário Empregado Salário Empregado Salário Data valor Empregado Salário Início valor fim Apenas a informação do salário atual Apenas a informação do salário atual Histórico da evolução do salário 27/03/2015 14 Verificação de modeloVerificação de modeloVerificação de modeloVerificação de modelo • O modelo deve refletir o aspecto temporal • Relacionamento temporal. 1:1 e 1:n � n:n Empregado Empregado Mesa Data Alocação Mesa Alocação 1 1 n n Alocação atual do empregado Histórico de alocações Verificação de modeloVerificação de modeloVerificação de modeloVerificação de modelo • O modelo deve refletir o aspecto temporal • Relacionamento temporal. 1:1 e 1:n � n:n Empregado Empregado Departamento Data Lotação Departamento Lotação n 1 n n nome nome Lotação atual do empregado Histórico de lotações 27/03/2015 15 Verificação de modeloVerificação de modeloVerificação de modeloVerificação de modelo • O modelo deve refletir o aspecto temporal • Relacionamento temporal. n:n� n:n com atributo identificador Participante Participante Curso Data Inscrição Curso Inscrição n n n n Data Inscrição de um participante em um curso em dado instante Inscrição de um participante em vários cursos ao longo do tempo Verificação de modeloVerificação de modeloVerificação de modeloVerificação de modelo • Evitar entidades isoladas • Entidades que não se relacionam com nenhuma outra • Podem ocorrer raramente • Devem ser evitadas • Exemplo UF 27/03/2015 16 Estratégias de modelagemEstratégias de modelagemEstratégias de modelagemEstratégias de modelagem • O modelo não é construído num único passo • Processo incremental • Diferentes propostas de modelagem proposta • Nenhuma proposta é universalmente aceita • A melhor estratégia depende da fonte de informação a ser considerada • Descrição de dados existentes • Conhecimento de especialistas do negócio Estratégias de modelagemEstratégias de modelagemEstratégias de modelagemEstratégias de modelagem • A partir de descrições de dados existentes • Modelo para um sistema já existente � Engenharia reversa • Documentos (pastas, fichas, documentos fiscais, ...) • Ascendente • Maior detalhe para mais abstrato • 1. Atributos • 2. Entidades • 3.1 Relacionamentos • 3.2 Generalizações/Especializações 27/03/2015 17 Estratégias de modelagemEstratégias de modelagemEstratégias de modelagemEstratégias de modelagem • A partir do conhecimento das pessoas • Novos sistemas sem descrição de dados sendo concebidos • Descendente • Do mais abstrato para os mais detalhados • 1. Entidade genéricas • 2. Atributos • 3.1 Relacionamentos • 3.2 Atributos dos relacionamentos • 4. Especializações Estratégias de modelagemEstratégias de modelagemEstratégias de modelagemEstratégias de modelagem • A partir do conhecimento das pessoas – Descendente • Modelagem superficial � DER pouco detalhado • 1. Enumeração das entidades • 2. Relacionamentos e hierarquias de generalização/especialização e cardinalidades • 3. Determinação dos atributos de entidades e relacionamentos • 4. Determinação dos identificadores (entidades e relacionamentos) • 5. Verificação do aspecto temporal • Modelagem detalhada � Domínios dos atributos e cardinalidades mínimas • 6. Adiciona-se os domínios dos atributos (Ex.: texto, número, data) • 7. Determinação das cardinalidades mínimas • 8. Demais restrições que não são cobertas pelo MER • Validação do modelo • 9. Verifica a existência de redundâncias • 10. Validação com especialista do domínio • Em qualquer etapa é possível retornar passos anteriores 27/03/2015 18 Estratégias de modelagemEstratégias de modelagemEstratégias de modelagemEstratégias de modelagem • A partir do conhecimento das pessoas • Inside-out (de dentro para fora) • Parte-se de conceitos centrais (mais importantes) • Identificação de entidade particularmente importante • Entidade que estará relacionada com muitas outras • Atributos, entidades relacionadas, generalizações/especializações • Entidades importantes geralmente ficam no centro do modelo a fim de evitar cruzamento de linhas Estratégias de modelagemEstratégias de modelagemEstratégias de modelagemEstratégias de modelagem • A partir do conhecimentodas pessoas - Inside-out (de dentro para fora) Empregado nome cpf tipo Lotação Departamento (0,n) (1,1) Gerente Lotação (1,n) (0,1) Secretária Engenheiro CREA Alicação Domínio Projeto (0,n)(0,n) (0,n) Editor de texto (1,n) 27/03/2015 19 Notações alternativasNotações alternativasNotações alternativasNotações alternativas • Notação vista até agora � Peter Chen • Notação engenharia de informações • Notação UML Notações alternativasNotações alternativasNotações alternativasNotações alternativas • Notação engenharia de informações 27/03/2015 20 Notações alternativasNotações alternativasNotações alternativasNotações alternativas • Notação UML
Compartilhar