360 likes | 513 Views
Universidade do Vale do Paraíba Faculdade de Engenharias, Arquitetura e Urbanismo – FEAU Graduação em Engenharia de Computação 1 0 Semestre de 2008. Disciplina: Banco de Dados II Prof. Lineu Mialaret Aula 8 : Modelo Entidade Relacionamento (4). Recursos de Extensão do MER.
E N D
Universidade do Vale do Paraíba Faculdade de Engenharias, Arquitetura e Urbanismo – FEAUGraduação em Engenharia de Computação 10 Semestre de 2008 Disciplina: Banco de Dados II Prof. Lineu Mialaret Aula 8: Modelo Entidade Relacionamento (4)
Recursos de Extensão do MER • Apesar de ser possível modelar os domínios de conhecimento com os conceitos básicos do Modelo Entidade Relacionamento – MER já apresentados, alguns aspectos semânticos desses domínios podem ser expressos de modo mais adequado por meio de extensões do MER. • Há recursos de modelagem que estendem o MER, possibilitando modelos mais precisos e adequados desses domínios. • Tais recursos podem ser caracterizados como: • Especialização e Generalização. • Agregação.
Especialização (1) • Um conjunto de entidades pode conter subgrupos de entidades, que são, de alguma forma, diferentes das outras entidades do grupo. • Ou seja, um subconjunto de entidades pode possuir atributos específicos que não são compartilhados pelas demais entidades. • Considere o conjunto de entidades conta, com os atributos numero_conta e saldo. Uma entidade conta pode ser classificada como sendo de um dos seguintes subgrupos de entidades: • conta_poupança • conta_movimento • Cada um destes tipos de conta é descrito por um conjunto de atributos, que além de conter todos os atributos da entidade conta, possui outros atributos adicionais. • Exemplo: a entidade conta_poupança pode conter o atributo adicional taxa_juros, enquanto que a entidade conta_movimento pode conter o atributo adicional limite_cheque_especial. • Denomina-se de especialização esse processo de projetar subgrupos específicos dentro de um conjunto de entidades.
Especialização (2) A entidade conta pode ser especializada em outras entidades
Especialização (3) • O processo de especialização pode ser aplicado repetidamente, para se refinar o MER. • Por exemplo, um banco pode oferecer ainda três tipos de contas movimento: • Uma conta movimento do tipo padrão, com uma taxa de 3 reais mensais e 25 folhas de cheque gratuitas por mês. • Uma conta movimento do tipo especial, que exige um saldo mínimo de 1000 reais, paga taxa de juros de 2% e sem limite de emissão de folhas de cheques. • Uma conta movimento do tipo sênior, para clientes com mais de 65 anos de vida e sem limite de emissão de folhas de cheques. • A especialização do conjunto de entidades conta_movimento cria os seguintes subconjuntos de entidades: • padrão, com o atributo numero_cheques. • especial, com os atributos saldo_minimo e taxa_juros. • sênior, com o atributo data_aniversario.
Especialização (4) A entidade conta_movimento pode ainda ser especializada em outras entidades Exemplo de Especialização no MER.
Especialização (5) • Em termos de MER, a especialização é representada pelo triângulo rotulado de ISA. • Esse rótulo padrão ISA (do inglês “is a” – é um) indica que uma conta poupança é uma conta ou que uma conta movimento também é uma conta. • Esse relacionamento ISA também pode ser entendido como um relacionamento de superclasse e subclasse (lembrar da orientação a objetos). • Os conjunto de entidades em nível superior (a entidade mais genérica) e em nível inferior (a entidade mais especializada) são representados de mesmo modo que os conjunto de entidades normais, ou seja, com o uso de retângulos simples.
Especialização (6) entidade de nível superior ISA entidade de nível inferior Outro Exemplo de Especialização no MER.
Generalização (1) • O refinamento do conjunto de entidades em níveis sucessivos de subgrupos de entidades indica que ocorre um processo de refinamento top-down(de cima para baixo), no qual as diferenciações entre as entidades são realizadas de modo explícito. • Um outro modo de determinar subgrupos de entidades é realizar esse processo de maneira bottom-up (de baixo para cima), ou seja, no qual vários subgrupos de entidades são sintetizados em um conjunto de entidades de mais alto nível, com base em atributos comuns. • Baseado no exemplo anterior da especialização, poderia ser identificado numa primeira abordagem, a existência de um conjunto de entidades conta_movimento, com os atributos numero_conta, saldo e limite_cheque_especial e o conjunto de entidades conta_poupança, com os atributos numero_conta, saldo e taxa_juros. • Há similaridades entre o conjunto de entidades conta_movimento e o conjunto de entidades conta_poupança, já que ambos possuem atributos comuns.
Generalização (2) • Esse compartilhamento de atributos pode ser expresso pela generalização, a qual exprime o relacionamento existente entre os conjuntos de entidades de nível superior e um ou mais conjunto de entidades de nível inferior. • No exemplo apresentado, conta é um conjunto de entidades de nível superior e conta_poupança e conta_movimento são conjuntos de entidades de nível inferior. • Na prática, a generalização é o inverso da especialização, e ambos os processos são aplicáveis no desenvolvimento de um MER. • A especialização parte de um único conjunto de entidades e enfatiza as diferenças entre as entidades pertencentes ao conjunto por meio do estabelecimento das diferenças expressas nos conjuntos de entidades de nível inferior. • A generalização reconhece a existência de um número de conjuntos de entidades que compartilham características comuns, e procede a sintetização dessas entidades num conjunto de entidades de nível superior.
Exemplo de Especialização/Generalização Especialização Generalização
Herança de Atributos (1) • Um propriedade importante das entidades de nível superior e inferior criadas pelos processos de especialização e generalização é a herança de atributos. • Ou seja, os atributos dos conjuntos de entidades de nível superior são herdados pelos conjuntos de nível inferior. • Exemplo: os conjuntos de entidades conta_poupança e conta_movimento herdam os atributos do conjunto de entidades conta. Assim a entidade conta_poupança é identificada por seus atributos numero_conta, saldo e taxa_juros. A entidade conta_movimento é identificada pelos atributos numero_conta, saldo e limite_cheque_especial. • Os conjuntos de entidades de nível inferior também herdam a participação em conjuntos de relacionamentos. • Exemplo: supondo que o conjunto de entidades conta participa (tem) de um conjunto de relacionamentos depositante, os conjuntos de entidades conta_poupança e conta_movimento também participam desse conjunto de relacionamentos.
Herança de Atributos (2) A entidade genérica Funcionario tem um relacionamento lotado com Departamento Funcionario lotado Departamento Projeto ISA Veiculo dirige participa Motorista Secretaria Engenheiro A entidade especializada Motorista herda atributos e relacionamentos da entidade Funcionario e ainda tem um relacionamento dirige com Veiculo
Restrições de Herança (1) • Para a modelagem mais apurada da realidade, o projetista de Banco de Dados pode optar por definir algumas restrições em uma generalização/especialização em particular. • O primeiro tipo de restrição envolve a determinação das entidades que podem participar de um dado conjunto de entidades de nível inferior. • Tais escolhas podem ser: • Definida por condição - um conjunto de entidades de nível inferior definido por condição é selecionado com base na satisfação ou não de condições ou predicados preestabelecidos. • Exemplo - todos os clientes com idade acima de 65 anos são membros do conjunto de entidades cliente_senior, e cliente_senior ISA pessoa. • Definida pelo usuário - um conjunto de entidades de nível inferior definido pelo usuário não tem seus membros classificados por uma condição, ou seja, as entidades são designadas a um determinado conjunto de entidades especializado por usuários ou projetistas de BD.
Restrições de Herança (2) • O segundo tipo de restrição determina se uma entidade pode ou não pertencer a mais de um conjunto de entidades de nível inferior dentro de uma generalização/especialização simples. • Os conjuntos de entidades de nível inferior podem ser um dos seguintes: • Mutuamente exclusivos (disjunção) - restrições mutuamente exclusivas exigem que uma entidade pertença a apenas um conjunto de entidades de nível inferior. Usa-se a palavra-chave disjunto (disjoint) próximo ao triângulo ISA para caracterizar esse tipo de herança. • Exemplo - numa hierarquia de membro da universidade, estudante, professor e técnico de laboratório, cada membro da universidade deve ser estudante, professor ou funcionário de laboratório. • Sobrepostos (sobreposição) - uma mesma entidade pode pertencer a mais de um conjunto de entidades de nível inferior. • Exemplo - numa hierarquia de aluno, este pode ser aluno de graduação e de aluno de pós-graduação ao mesmo tempo.
Pós-Graduação Técnico Graduação Estudante Professor Restrições de Herança (3) Membro da Universidade Na herança com disjunção, cada Membro da Universidade da da universidade deve ser Estudante, Professor ou Técnico. disjunto ISA Na herança com sobreposição, um Aluno pode ser Aluno de Graduação e de Aluno de Pós-graduação ao mesmo tempo Aluno ISA
Restrições de Herança (3) • O terceiro tipo de restrição, a restrição de totalidade, determina se uma entidade de nível superior pertence ou não, a no mínimo, um dos conjuntos de entidades de nível inferior. Essa restrição pode ser uma das seguintes: • Total - cada entidade do conjunto de entidades de nível superior deve pertencer a um conjunto de entidades de nível inferior (representada pelo símbolo ||). • Exemplo: numa hierarquia de automóvel, automóvel de passeio e automóvel de trabalho, só há instâncias das entidades automóvel de passeio ou automóvel de trabalho (uma instância de automóvel é mapeada para automóvel de passeio ou automóvel de trabalho). • Parcial - uma entidade de nível superior pode não pertencer a nenhum dos conjuntos de entidades de nível inferior. • Exemplo: numa hierarquia de automóvel, automóvel de passeio e automóvel de trabalho, pode-se ter instâncias das entidades automóvel de passeio e automóvel de trabalho, e instâncias de automóvel.
Restrições de Herança (4) Na herança total, só há instâncias das entidades Automóvel de Passeio ou Automóvel de Trabalho Automóvel ISA Automóvel de Passeio Automóvel de Trabalho Automóvel Na herança parcial, há instâncias das entidades Automóvel, Automóvel de Passeio ou Automóvel de Trabalho ISA Automóvel de Passeio Automóvel de Trabalho
Agregação (1) • Uma das limitações do MER é que não é possível expressar diretamente relacionamentos de relacionamentos. Seja um BD que descreve informações sobre clientes e seus empréstimos. Suponha que cada par cliente e empréstimo (caracterizando o relacionamento devedor) deve possuir um empregado, que vai ser o responsável pelo acompanhamento de determinado empréstimo.
Agregação (3) • O melhor modo de se modelar a situação descrita anteriormente é usar o conceito de agregação, que se constitui numa abstração por meio da qual relacionamentos são tratados como entidades. • A agregação permite: • Tratar o relacionamento como uma entidade. • Relacionamentos entre relacionamentos • Abstrair o relacionamento em nova entidade. • No exemplo apresentado, simboliza-se o conjunto de relacionamentos devedor como um conjunto de entidades denominado devedor.
Agregação (4) Na agregação, o relacionamento devedor se transforma numa entidade. Exemplo do Uso de Agregação.
Paciente recebe aplica Agregação (5) consulta Médico prescreve Medicamento Médico Consulta Paciente Na agregação, o relacionamento consulta se transforma na entidade Consulta. prescreve Medicamento
Carro Atributo ou Entidade • Uma questão que surge no desenvolvimento de um MER é entre modelar algo como um atributo de uma entidade ou como uma entidade autônoma. • Critérios: • Se o objeto da modelagem está vinculado a outras entidades ou possui atributos importantes - modelar como entidade. • Se há transações que alteram os valores do objeto - modelar como entidade. • Exemplo: Cor tem Carro dada cor Neste contexto há um vínculo do atributo com uma entidade. Fabricante
Empregado Técnico Engenheiro Motorista Veiculo Atributo ou Generalização/Especialização • Outra questão que surge no desenvolvimento de um MER é entre modelar algo como um atributo de uma entidade ou como uma especialização. • Critério: • Só utilizar especialização quando as entidades especializadas possuem propriedades particulares (atributos e relacionamentos com outras entidades, por exemplo). • Exemplo: Empregado ISA categoria funcional
Empregado Atributo Multivalorados • Uma questão que surge no desenvolvimento de um MER é quanto a modelagem de atributos multivalorados. • Critério: • Depende do contexto. • Exemplo: Neste contexto só há necessidade do(s) nome(s) do(s) dependentes Dependente tem Empregado data de nascimento nome dependente Neste contexto há a necessidade da(s) data(s) de nascimento do(s) dependentes, além dos nome(s)
Atributo de Relacionamentos M:M (1) • Um atributo pertence a um relacionamento de cardinalidade M:M sempre que: • Fixa-se um elemento da 1a entidade, e observa-se o valor do atributo para cada mudança de elemento na 2a entidade. • Se o valor do atributo mudar, então o atributo não pertence a 1a entidade. • Fixa-se um elemento da 2a entidade, e observa-se o valor do atributo para cada mudança de elemento na 1a entidade. • Se o valor do atributo mudar, então ele não pertence a 1ª entidade. • Se o atributo não pertence as entidades envolvidas, e é relevante no contexto do relacionamento, então ele é atributo do relacionamento M:M.
Atributo de Relacionamentos M:M (2) • A quem pertence os atributos preco, quantidade e prazo? Produto Fornecedor Vende preco quantidade prazo
Atributo de Relacionamentos M:M (3) • Os atributos preco, quantidade e prazo, não podem pertencer a entidade Produto, pois se fosse assim todos os fornecedores deveriam praticar o mesmo preço. Produto Y Produto Fornecedor Vende Fornecedor X Fornecedor Z preco Fornecedor W quantidade prazo
Atributo de Relacionamentos M:M (4) • Os atributos preco, quantidade e prazo, não podem pertencer a entidade Fornecedor, pois se fosse assim todos os produtos de um fornecedor teriam o mesmo preço. Fornecedor X Produto Fornecedor Vende Produto A Produto B preco Produto C quantidade *Condições prazo
Atributo de Relacionamentos M:M (5) • Não pertencendo nem a entidade Produto ou a entidade Fornecedor, e sendo relevante no relacionamento Vende, são atributos do relacionamento. Produto Fornecedor Vende preco quantidade prazo
Conversão de Relacionamentos (1) • Em geral, qualquer relacionamento não binário pode ser representado por relacionamentos binários, por meio da criação de um conjunto artificial de entidades. • Substitua o conjunto de relacionamentos R entre os conjuntos de entidades A, B e C por um conjunto de entidades E e três conjuntos de relacionamentos: 1. RA, relacionando E e A 2. RB, relacionando E e B 3. RC, relacionando E e C • Opcionalmente, crie um atributo de identificação especial para E • Adicione qualquer atributo de R para E • Para cada relacionamento (ai , bi , ci) in R, crie 1. uma nova entidade ei em E 2. adicione (ei, ai ) para RA 3. adicione (ei, bi) para RB 4. adicione (ei, ci ) para RC
Conversão de Relacionamentos (2) • Algumas ferramentas CASE, destinadas a modelagem, são baseadas em variações do Modelo Entidade Relacionamento – MER que admitem somente relacionamentos binários (ou seja, de grau 2). • Elas não permitem a modelagem de relacionamentos ternários (de grau 3) ou maiores, por exemplo. • Exemplo: a ferramenta PowerDesigner, da Sybase. • Neste caso, a solução é transformar o relacionamento ternário em vários relacionamentos binários, conforme já foi apresentado. • Exemplo: considere o seguinte contexto entre um fornecedor que fornece peças para projetos, conforme apresentado na transparência a seguir.
Conversão de Relacionamentos (3) Exemplo de um Relacionamento Ternário.
Conversão de Relacionamentos (4) Fornecedor Fornece Projeto a1 a2 r1 r2 r3 r4 r5 r6 r7 c1 c2 c3 Peça b1 b2 b3 Grafo de Ocorrências de um Relacionamento Ternário.
Conversão de Relacionamentos (5) • Neste contexto, a solução para essa transformação é representar o relacionamento fornece como um tipo de entidade fraca, sem nenhuma ou alguma chave parcial (identificador) e com três relacionamentos identificadores (lembrar do conceito de entidade fraca e relacionamento identificador), conforme apresentado na transparência a seguir. • Os três tipos de entidades participantes Fornecedor, Peça e Projeto são conjuntamente as entidades proprietárias. • Dessa forma a entidade fraca Fornece é identificada por meio da combinação de suas entidades proprietárias Fornecedor, Peça e Projeto.
Conversão de Relacionamentos (6) Relacionamento ternário transformado em vários relacionamentos Binários.