Mapeamento ER-Relacional Prof. Daniel Callegari Material elaborado pela Profa. Karin Becker Mapeamento ER-Relacional Técnica: 1. 2. Redefinição de nomes Mapeamento de Entidades • • • • 3. Mapeamento de Relacionamentos • • • 4. 5. Definição de identificações Atributos compostos Atributos multivalorados Resolução de identificação externa (entidade fraca) Tabela Própria Colunas Adicionais Fusão Hierarquias Generalização/Especialização Revisão do modelo resultante Mapeamento: Redefinição de nomes Redefinir, quando conveniente, os nomes dos diversos elementos notacionais para que passem a ser mais adequados operacionalmente: nomes mais curtos eliminação de espaços em branco e caracteres especiais adoção de padrões da organização para definição de nomes Mapeamento: Entidade Entidade : transformar em tabela identificação atributos a chave primária é o identificador primário da Entidade trocar identificador do UdD por código, quando inadequado do ponto de vista computacional (longo, composto, muito complexo e/ou muito referenciado) podem ser definidas restrições UNIQUE para identificações alternativas obrigatórios: use a cláusula NOT NULL opcionais: não use a cláusula NOT NULL mantenha nomes de atributos curtos e padronizados indexe atributos muito consultados Mapeamento: Entidade CLIENTE CIC nome (1-N) é-de POSSE sexo (0-1) (0-N) tem CONTA nro data saldo Create table cliente (cic char(11) not null primary key, nome varchar(60) not null, sexo char(1)); Create table conta (nro number(5) not null primary key, Saldo number(10,2) not null); CLIENTE CIC nome sexo CONTA Nro Saldo Mapeamento: Entidade Requerem tratamento especial: Atributo composto Atributo multi-valorado Identificador externo (entidade fraca) Mapeamento: Entidade Eliminação de atributos compostos endereço CLIENTE Alternativas : esquecer de agregações lógicas (“aplainar”) CLIENTE rua nro ap (0-1) esquecer da composição (“combinar”) CLIENTE endereço rua nro ap (0-1) Mapeamento: Entidade Eliminação de atributos multivalorados Alternativas substituir por n atributos fixos desde que se saiba e possa limitar o valor de “n” criar uma nova Entidade, relacionada à Entidade original identificação da nova Entidade pode ser o próprio atributo, ou um identificador externo Eliminação de Atributo Repetitivo : Exemplo LIVRO isbn titulo autor (1-n) LIVRO isbn titulo autor (1-n) pal-chave(1-3) pc1 pc2 (0-1) pc3 (0-1) Eliminação de Atributo Repetitivo : Exemplo LIVRO isbn LIVRO isbn escreveu (1-1) titulo LIVRO isbn titulo titulo Autoria ou escreveu (1-n) Autoria autor (1-n) escrito-por (1-n) AUTOR nome escrito-por (1-n) nome AUTOR Mapeamento: Entidades Fracas Eliminação de identificadores externos Na tabela correspondente à entidade fraca, incluir um campo correspondente à chave primária da tabela correspondente à entidade forte Definir este campo como chave estrangeira Criar uma chave primária para a entidade fraca composta do identificador da entidade fraca mais a chave estrangeira Eliminação de Identificador Externo : Exemplo é-de (1-1) Sócio matr DEP nome parentesco Dependente nome SOCIO matr Dependente nome Sócio matr tem (0-n) nome nome Chave estrangeira matr DEPENDENTE nome matr parentesco parentesco Eliminação de Identificador Externo : propagação de identificadores Grupo 1-1 1-n GE codg Grupo codg Grupo codg Empresa 1-1 1-n EE code Empresa codg codg codemp 1-1 EE 1-n code Empregado codemp code Empresa Empregado Empregado codg code codemp Mapeamento: Relacionamento Relacionamentos são implementados usando chaves estrangeiras Chaves primárias representando as entidades participantes. Três Técnicas Tabela Própria Colunas Adicionais em Tabela de Entidade Aconselhado para cardinalidades máximas N:M Aconselhado para cardinalidades máximas 1:1 e 1:N Fusão de Tabelas de Entidades Aconselhado para alguns casos de cardinalidades máximas 1:1 Mapeamento: Relacionamento Mapeamento de Relacionamento por tabela própria Transformar o relacionamento em tabela contendo Atributos identificadores das Entidades participantes da relação. Defini-las como chaves estrangeiras. Atributos do relacionamento, se existirem. Identificação Relacionamento é identificado por entidades participantes? Composição dos identificadores das Entidades . Relacionamento é identificado por composição das entidades participantes e atributos do relacionamento? Composição dos identificadores das entidades e destes atributos. Mapeamento de relacionamento por Tabela Própria: Exemplo (1-N) CLIENTE é-de nome CIC (0-N) POSSE CONTA nro data CLIENTE CIC tem saldo CONTA Nome Nro Saldo Chave estrangeira Chave estrangeira POSSE CIC Nro Data Tabela Própria: Exemplo CLIENTE CIC CONTA Nome Nro Saldo Chave estrangeira Chave estrangeira POSSE CIC Create table cliente (cic char(11) not null primary key, nome varchar(60) not null); Nro Data Create table Posse (cic char(11) not null, Nro number(5) not null, Data date not null, Create table conta Primary key(cic, nro), (nro number(5) not null primary key, Foreign key cic references cliente, Saldo number(10,2) not null); Foreign key nro references conta); Mapeamento de relacionamento por Tabela Própria: Exemplo (1-N) CLIENTE CIC loc-por (0-N) LOCAÇÂO locou valor (0-1) nome VIDEO codv título data CLIENTE CIC VIDEO Codv Nome LOCACAO CIC Codv Data Titulo valor Mapeamento de relacionamento por Tabela Própria: Exemplo CLIENTE CIC VIDEO Codv Nome LOCACAO CIC Codv Create table cliente (cic char(11) not null primary key, nome varchar(60) not null); Create table video (codv number(3) not null primary key, titulo varchar(100) not null); Data Titulo valor Create table locacao (cic char(11) not null, codv number(3) not null, data date not null, valor number(4,2), Primary key(cic, nro, data), Foreign key cic references cliente, Foreign key codv references video);