Transformando o Modelo E-R no Modelo Relacional
description
Transcript of Transformando o Modelo E-R no Modelo Relacional
![Page 1: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/1.jpg)
Transformando o Modelo E-R no Modelo Relacional
Gerência de Banco de Dados
BCC – UFU
Profa. Sandra de Amo
![Page 2: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/2.jpg)
Tranformando Entidade em Tabela
Empregado
cic Ne End Tel
CREATE TABLE EMP( CIC integer Ne char(30), End char(30), Tel integer, PRIMARY KEY (CIC) )
![Page 3: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/3.jpg)
Transformando Relacionamento (sem restrição de chave) para Tabela
Empregado
Departamento
cic Ne End Tel
Nd Or
did
Trabalha-em
DataIn
LOCALEnd Area
CREATE TABLE TRAB-EM( CIC integer, DID char(4), End char(30), DataIn DATE, PRIMARY KEY (CID,DID,End), FOREIGN KEY (CIC)
REFERENCES EMP, FOREIGN KEY (DID) REFERENCES DEP, FOREIGN KEY (End) REFERENCES LOCAL)
![Page 4: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/4.jpg)
Transformando Relacionamento (com restrição de chave) para Tabela
Empregado Departamento
cic Ne End Tel
Nd Or
didGERENCIA
DataIn
CREATE TABLE DEP( CIC integer, DID char(4), DNOME char(20), OR REAL, DataIn DATE, PRIMARY KEY (DID), FOREIGN KEY (CIC)
REFERENCES EMP)
Todo departamento que temgerente, este gerente é único
![Page 5: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/5.jpg)
Transformando Relacionamento (com Restrição de Participação) em Tabela
Empregado Departamento
cic Ne End Tel
Nd Or
didGERENCIA
DataIn
Trabalha-emTodo departamento tem um gerentee este gerente é único
Entidade CHAVE
![Page 6: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/6.jpg)
CREATE TABLE DEP( CIC integer NOT NULL, DID char(4), DNOME char(20), OR REAL, DataIn DATE, PRIMARY KEY (DID), FOREIGN KEY (CIC)
REFERENCES EMP)
![Page 7: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/7.jpg)
Certas restrições em relacionamentos não podem ser especificadas facilmente...
Empregado Departamento
cic Ne End Tel
Nd Or
didGERENCIA
DataIn
Trabalha-em
Todos os valores de CIC aparecemna tabela Trabalha-em
CIC pode ser declarado em EMPcomo chave estrangeira Referenciando Trabalha-em ?
Não pode ! Pois CIC não é chave Candidata de Trabalha-em
Todos os valores de DID aparecem na tabela Trabalha-em
DID poderia ser declarado em DEPComo chave estrangeira Referenciando Trabalha-em ?
Não pode ! Pois DID não é chave Candidata de Trabalha-em
![Page 8: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/8.jpg)
Certas restrições em relacionamentos não podem ser especificadas facilmente...
Empregado Departamento
cic Ne End Tel
Nd Or
didGERENCIA
DataIn
Trabalha-em
Tais restrições de participação só podem ser especificadas no modeloRelacional utilizando asserções em SQL (programas específicos).
![Page 9: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/9.jpg)
Transformando Relacionamento ISA em Tabelas
Piloto
Empregado
Técnico
ISA ISA
cic N End Sal DN
B HV
Es
![Page 10: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/10.jpg)
Primeira Alternativa Uma tabela EMP
Atributos CIC, DN, N, End,Sal Chave Primária CIC Uma tabela PILOTO Atributos CIC, B,HV Chave Primária CIC Chave Estrangeira : CIC referencia EMP Uma tabela TEC Atributos CIC, Es Chave Primária CIC Chave Estrangeira CIC referencia EMP
![Page 11: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/11.jpg)
Vantagens e Desvantagens
Primeira Alternativa com 3 tabelas Mais geral Permite fazer consultas sobre empregados que
não são nem pilotos nem técnicos.o Não é a adequada quando se quer consultar
atributos gerais de Pilotos e Técnicos: é preciso combinar as tabelas PILOTO e TEC com a tabela EMP.
![Page 12: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/12.jpg)
Segunda Alternativa
Uma tabela PILOTO
Atributos CIC, DN, N, End,Sal, B,HV
Chave Primária CIC
Uma tabela TEC
Atributos CIC, DN, N, End,Sal, Es
Chave Primária CIC
![Page 13: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/13.jpg)
Vantagens e Desvantagens Segunda Alternativa com 2 tabelas
É adequada quando se quer consultar somente informações relacionadas a Pilotos ou Técnicos.
o Não é aplicável se tivermos empregados que não são nem Pilotos nem Técnicos.
o Não é aplicável se existem Pilotos que também são Técnicos e vice-versa : os dados deveriam ser armazenados duas vezes !!!
o Uma consulta que pede para listar todos os empregados deve varrer duas tabelas !!!
![Page 14: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/14.jpg)
Transformando Diagramas E-R com Agregação em Tabelas
Projeto DepartamentoPatrocinado
Empregado
DataInP
DataInMMonitorado por
![Page 15: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/15.jpg)
PROJ DEP
EMP
DP
DM
PAT
MON
CREATE TABLE MONITORA( CIC integer, ID_PAT char(4), DM DATE, PRIMARY KEY (CIC,ID_PAT), FOREIGN KEY (CIC)
REFERENCES EMP, FOREIGN KEY (ID_PAT) REFERENCES PAT)
CREATE TABLE PAT( DID char(4), PID char(4), ID_PAT char(4), DP DATE, PRIMARY KEY (ID_PAT), FOREIGN KEY (PID)
REFERENCES PROJ, FOREIGN KEY (DID) REFERENCES DEP)
PAT PROJ
DEP
MONITORA
EMP
DID
PID
CIC
ID_PAT
DiagramaReferencial
![Page 16: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/16.jpg)
Transformando Diagramas E-R com Agregação em Tabelas
Projeto Empregado Trabalha- em
Maquina
DataIn
USA
![Page 17: Transformando o Modelo E-R no Modelo Relacional](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814ea8550346895dbc5366/html5/thumbnails/17.jpg)
PROJ EMP
MAQ
DI
TRAB
USA
CREATE TABLE TRAB( CIC INTEGER, PID char(4), ID_PAT char(4), DI DATE, CodM char(4), PRIMARY KEY (ID_PAT), FOREIGN KEY (PID)
REFERENCES PROJ, FOREIGN KEY (CIC) REFERENCES EMP, FOREIGN KEY CodM REFERENCES MAQ)
TRAB PROJ
EMP
MAQ
Não se cria tabela para o relacionamento USA !!
Diagrama Referencial PID
CodMCIC