2008.1 Extensões MER Renata Viegas [email protected] 2008.1 Introdução • É possível modelar a maioria dos BDs apenas com os conceitos básicos do MER • Entretanto, alguns aspectos de um BD podem ser expressos de modo mais conveniente por meio de algumas extensões do modelo ER. 2008.1 Especialização Quando identificamos uma entidade estamos definindo uma classe genérica de dados, que pode estar incorporando diversas outras classes de dados. CLIENTE PESSOA FÍSICA PESSOA JURÍDICA A entidade genérica possui subconjuntos de dados que formam entidades diferenciadas, mas que possuem características comuns que permitem colocá-los como formando uma única entidade. 2008.1 Especialização CLIENTE Entidade genérica PESSOA FÍSICA PESSOA JURÍDICA Entidades especializadas Uma ocorrência pertencente a uma entidade especializada deve ser vista como pertencente tanto a entidade especializada quanto a entidade genérica. Permite atribuir propriedades particulares a uma entidade especializada, derivada de uma entidade genérica. 2008.1 Especialização Permite a herança de propriedades, ou seja, cada entidade especializada possui, além dos seus atributos próprios, todos os atributos da entidade genérica. No exemplo mostrado, as entidades PESSOA FÍSICA e PESSOA JURÍDICA possuem, além de seus atributos próprios, todos os atributos da entidade CLIENTE. Atributos da entidade CLIENTE: código, nome, endereço, fone, cidade, estado Atributos da entidade PESSOA FÍSICA: cpf, rg, sexo e todos os atributos de CLIENTE. Atributos da entidade PESSOA JURÍDICA: cnpj, insc_est, contato e todos os atributos de CLIENTE. 2008.1 Generalização A generalização é a união do conteúdo de duas ou mais entidades de nível inferior, formando uma entidade de nível mais elevado. A generalização cria, a partir de entidades mais específicas (nível inferior), uma entidade mais genérica (nível superior). A especialização é a divisão de subconjuntos de dados de uma entidade de nível superior , formando entidades de nível inferior. A especialização cria, a partir de uma entidade genérica (nível superior), novas entidades mais específicas (nível inferior). 2008.1 Generalização • Numa locadora, Cliente e Funcionário possuem vários atributos em comum, como Nome, CPF, Endereço e Telefone, que poderiam ser agrupados numa entidade Pessoa 2008.1 Nome, CPF, Endereço e Telefone são atributos comuns a Clientes e Funcionários; por isso, podem ser generalizados numa entidade Pessoa Os atributos Código e Gênero Preferido se aplicam apenas à entidade Cliente... Enquanto Salário e Data Contratação se aplicam apenas à entidade Funcionário. 2008.1 Regras p/ Generalização e Especialização As entidades especializadas possuem atributos particulares, que não possam ser aplicados a todas elas? Se sim, é desejável a aplicação da especialização. Existem relacionamentos que sejam aplicáveis apenas às entidades especializadas? Se sim, é desejável a aplicação da especialização. Estamos incluindo detalhes supérfluos ao modelo? Se não, é possível a aplicação da especialização. 2008.1 Generalização/Especialização FUNCIONÁRIO TRABALHA ENGENHEIRO VENDEDOR Entidade especializada por possuir atributos diferentes. Entidade especializada por possuir relacionamento diferente. SETOR ATENDE CLIENTE 2008.1 Herança • Em casos de Generalização e Especialização, as sub-entidades (ou entidades especializadas) herdam os atributos e relacionamentos da super-entidade (ou entidade mais genérica) 2008.1 Agregação • Ocorre quando três ou mais entidades participam de um mesmo relacionamento • É definido um relacionamento entre duas entidades, e esse relacionamento passa a ser visto como uma nova entidade, que pode então participar de outro relacionamento 2008.1 Agregação (Entidade Associativa) É uma estrutura formada pela junção de duas entidades através de um relacionamento, onde esta junção é percebida como um novo elemento que se relaciona com uma outra entidade. Exemplo: Em uma clínica médica existem vários médicos que atendem os pacientes e prescrevem medicamentos. MÉDICO (1,N) CONSULTA (1,N) PACIENTE Devemos relacionar MEDICAMENTO a MÉDICO ou a PACIENTE ? 2008.1 Agregação (Entidade Associativa) Características desse modelo: 1. O relacionamento entre MÉDICO e PACIENTE é de N:N. 2. O MEDICAMENTO só será prescrito se o MÉDICO consultar o PACIENTE. Considerando que: 1. Existe uma terceira entidade que depende desse relacionamento; Podemos: 1. Realizar uma agregação, transformando o relacionamento em uma entidade associativa e; 2. Relacionar esta entidade associativa com a terceira entidade do sistema. 2008.1 Agregação (Entidade Associativa) MÉDICO (1,N) CONSULTA (1,N) PACIENTE (0,N) PRESCREVE (0,N) MEDICAMENTO Uma agregação pode ser vista como o desmembramento de um relacionamento ternário em um relacionamento binário associado a uma entidade. 2008.1 Agregação - Exemplo • Numa imobiliária em que é preciso registrar dados sobre o cliente, o imóvel negociado e o corretor que realizou a transação, poderia ser definido um relacionamento entre o cliente e o imóvel, e em seguida outro relacionamento entre o primeiro e o corretor 2008.1 Exemplo 2008.1 Agregação • Na hora de definir se uma agregação deve ser usada, é importante verificar se a participação das três entidades é realmente necessária para que ocorra o relacionamento • Caso contrário, relacionamentos simples podem ser usados