Transformando o Modelo E-R no Modelo Relacional

17
Transformando o Modelo E-R no Modelo Relacional Gerência de Banco de Dados BCC – UFU Profa. Sandra de Amo

description

Transformando o Modelo E-R no Modelo Relacional. Gerência de Banco de Dados BCC – UFU Profa. Sandra de Amo. Tranformando Entidade em Tabela. CREATE TABLE EMP ( CIC integer Ne char(30), End char(30), Tel integer, PRIMARY KEY (CIC) ). End. Ne. Tel. cic. Empregado. - PowerPoint PPT Presentation

Transcript of Transformando o Modelo E-R no Modelo Relacional

Page 1: Transformando o Modelo E-R no Modelo Relacional

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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