190 likes | 337 Views
Mapeamento ER-Relacional. Prof. Daniel Callegari Material elaborado pela Profa. Karin Becker. Mapeamento ER-Relacional. Técnica: Redefinição de nomes Mapeamento de Entidades Definição de identificações Atributos compostos Atributos multivalorados
E N D
Mapeamento ER-Relacional Prof. Daniel Callegari Material elaborado pela Profa. Karin Becker
Mapeamento ER-Relacional • Técnica: • Redefinição de nomes • Mapeamento de Entidades • Definição de identificações • Atributos compostos • Atributos multivalorados • Resolução de identificação externa (entidade fraca) • Mapeamento de Relacionamentos • 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 • 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 • atributos • 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 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); (1-N) (0-N) POSSE CONTA CLIENTE tem é-de nome sexo (0-1) nro saldo CIC data CONTA CLIENTE Nro Saldo CIC nome sexo
Mapeamento: Entidade • Requerem tratamento especial: • Atributo composto • Atributo multi-valorado • Identificador externo (entidade fraca)
CLIENTE nro rua ap (0-1) Mapeamento: Entidade • Eliminação de atributos compostos • Alternativas : • esquecer de agregações lógicas (“aplainar”) • esquecer da composição (“combinar”) endereço rua CLIENTE nro ap (0-1) CLIENTE endereço
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) pal-chave(1-3) pc1 LIVRO pc2 (0-1) pc3 (0-1) isbn titulo autor (1-n)
LIVRO isbn titulo autor (1-n) LIVRO isbn titulo LIVRO isbn titulo Eliminação de Atributo Repetitivo : Exemplo escrito-por escreveu Autoria AUTOR (1-n) (1-1) ou nome escrito-por escreveu Autoria (1-n) (1-n) AUTOR nome
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 tem é-de DEP Dependente Sócio (0-n) (1-1) matr nome nome parentesco Dependente Sócio matr nome nome parentesco matr DEPENDENTE SOCIO nome matr parentesco matr nome Chave estrangeira
Grupo Grupo codg Eliminação de Identificador Externo : propagação de identificadores 1-1 1-n 1-1 1-n Empresa Empregado GE EE codg code codemp 1-n 1-1 Empregado EE Empresa codemp codg code Empresa Empregado Grupo codg codg code 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 • Aconselhado para cardinalidades máximas N:M • Colunas Adicionais em Tabela de Entidade • 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) (0-N) POSSE CONTA CLIENTE tem é-de nome nro saldo CIC data CLIENTE CONTA CIC Nome Nro Saldo Chave estrangeira Chave estrangeira POSSE CIC Nro Data
Tabela Própria: Exemplo CLIENTE CONTA CIC Nome Nro Saldo Chave estrangeira Chave estrangeira POSSE CIC Nro Data Create table cliente (cic char(11) not null primary key, nome varchar(60) not null); Create table conta (nro number(5) not null primary key, Saldo number(10,2) not null); Create table Posse (cic char(11) not null, Nro number(5) not null, Data date not null, Primary key(cic, nro), Foreign key cic references cliente, Foreign key nro references conta);
Mapeamento de relacionamento por Tabela Própria: Exemplo (1-N) (0-N) LOCAÇÂO VIDEO CLIENTE locou loc-por valor (0-1) nome codv título CIC data CLIENTE VIDEO CIC Nome Codv Titulo LOCACAO valor CIC Codv Data
Mapeamento de relacionamento por Tabela Própria: Exemplo CLIENTE VIDEO CIC Nome Codv Titulo LOCACAO valor CIC Codv Data 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); 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);