Bancos de Dados Do DER para o Modelo Físico de Dados BD Do DER para Modelo Físico Prof. André Luiz Souza Bancos de Dados 1 para 1 – As 2 entidades são agrupadas em uma única tabela A 1 B 1 C DER A1 A2 A3 C1 C2 AC Modelo Físico Do DER para Modelo Físico A1 A2 A3 C1 C2 integer not null char(30) null datetime not null varchar(30) null smallint not null Prof. André Luiz Souza 1 para 1 – Exemplo Bancos de Dados DER homem mulher casamento datahora cpf nome cpf nome casamento Modelo Físico cpf_homen numeric(11) not null cpf_mulher numeric(11) not null nome_mulher varchar(40) not null nome_homen varchar(40) not null datahora datetime not null casamento Exemplo Tabela cpf_homem cpf_mulher nome_mulher nome_homem datahora 328349 2983787 Maria João 10/08/02 849873 2347879 Rita Pedro 11/11/01 ...... Do DER para Modelo Físico ...... .... .... .... Prof. André Luiz Souza Bancos de Dados 1 para N ou N para 1 – o Cj de entidades de cardinalidade N recebe a FK, referente a PK do Cj entidades de cardinalidade 1 D DER D1 D2 D3 Modelo Físico F Y F1 F2 D D1 integer not null D2 char(30) null D3 datetime not null F D1 = X9 F1 integer not null F2 char(30) null X9 integer not null A ponta da seta indica a tabela que tem a PK do relacionamento, e na outra extremidade da seta temos a tabela que tem a FK do relacionamento. Do DER para Modelo Físico Prof. André Luiz Souza 1 para N ou N para 1 - Exemplo Bancos de Dados pessoa DER cidade nasceu cpf nome Modelo Físico codigo nome cidade pessoa cpf numeric(11) not null nome varchar(50) null cidade integer null codigo = cidade codigo integer not null nome varchar(30) null pessoa cpf Exemplo Tabela 32 42 53 87 .... Do DER para Modelo Físico nome Pedro Maria Rita João ........ cidade cidade 734 432 132 432 ...... codigo 132 734 432 .... nome Uberaba Araxá Campinas ........ Prof. André Luiz Souza Bancos de Dados N para N- O relacionamento será transformado em tabela no modelo físico com 2 FKs. G I H DER G1 G2 G3 H1 I1 I2 Modelo Físico G G1 integer not null G2 char(30) null G3 date not null G1 = W5 H H1 integer not null X7 integer null W5 integer not null I1 = X7 I I1 integer not null I2 char(30) null A ponta da seta indica a tabela que tem a PK do relacionamento, e na outra extremidade da seta temos a tabela que tem a FK do relacionamento. É como se fosse 1 para N de G para H e 1 para N de I para H. Do DER para Modelo Físico Prof. André Luiz Souza Bancos de Dados DER N para N - Exemplo motorista cnh nome saída Modelo Físico cnh motorista cnh integer not null nome varchar(50) null = cnh carro dirige dirige saida datetime not null carro char(7) not null cnh integer not null placa nome placa = carro carro placa char(7) not null nome varchar(15) null Exemplo Tabela dirige motorista cnh 32 42 53 87 .... nome Pedro Maria Rita João ........ saida carro 10/05/03 11:10 11/06/03 14:10 12/07/03 15:10 17/03/03 10:14 21/04/03 09:15 ...... DSI2233 FDC3232 DSI2233 FDC3232 FRS1211 ....... Do DER para Modelo Físico carro cnh 42 42 53 87 32 .... placa nome FDC3232 Fusca FRS1211 Palio DSI2233 Gol ..... ...... Prof. André Luiz Souza Bancos de Dados Relacionamento com chave primária composta D DER Modelo Físico F E D1 D2 D3 D D1 integer not null D2 char(30) null D3 datetime not null F1 F2 D1 = X9 D3 = Q7 F F1 F2 X9 Q7 integer not null char(30) null integer not null datetime null A chave estrangeira (FK) deve ter a mesma quantidade de colunas que a PK correspondente. As colunas devem ser do mesmo tipo. Do DER para Modelo Físico Prof. André Luiz Souza Bancos de Dados 2 cj de relacionamentos entre 2 cj de entidades cidades DER pessoas nasceu codigo cpf mora nome Modelo Físico cidades nome codigo integer not null nome varchar(50) null codigo = cidade Exemplo Tabela cidades codigo 32 42 53 87 .... nome Uberaba Araxá Itú Caldas ........ Do DER para Modelo Físico pessoas codigo = nasceu cpf numeric(11)not null nome varchar(35) not null nasceu integer not null cidade integer null pessoas cpf 32 42 53 87 .... nome Pedro Maria Rita João ........ nasceu 42 87 53 42 ...... cidade 42 53 87 32 ..... Prof. André Luiz Souza Relacionamento ternário Bancos de Dados D E D1 D2 D3 DER G1 G2 G F F1 F2 Modelo Físico E D D1 integer not null D2 char(30) null D3 date not null D1 = E3 E1 E2 E3 E4 integer not null datetime null integer not null date null G1 = E2 G F1 = E4 F F1 date not null F2 char(30) null G1 datetime not null G2 char(30) null Do DER para Modelo Físico Prof. André Luiz Souza Auto-Relacionamento Bancos de Dados Modelo Físico DER pessoas é pai de pessoas cpf numerc(11) not null nome char(30) null pai numeric(11) null cpf cpf = pai nome Exemplo Tabela pessoas cpf 32 42 53 87 .... Do DER para Modelo Físico nome pai Pedro Maria Ricardo João ........ null 53 32 53 ...... Prof. André Luiz Souza Auto-Relacionamento duplo Bancos de Dados Modelo Físico pessoas DER cpf = mae é mãe de pessoas é pai de cpf numerc(11) not null nome char(30) null pai numeric(11) null mae numeric(11) null Exemplo Tabela pessoas cpf nome cpf 32 42 53 87 .... Do DER para Modelo Físico cpf = pai nome Pedro Maria Rita João ...... pai mae null 87 32 32 ...... 42 53 null 53 ..... Prof. André Luiz Souza Agregação Bancos de Dados DER D1 D2 D F1 F2 F E K G G1 G2 Modelo Físico E D D1 integer not null D2 char(30) null D1 = E3 E1 E2 E3 E4 integer not null datetime null integer not null date null G1 = E2 G G1 datetime not null G2 char(30) null Do DER para Modelo Físico F1 = E4 F F1 date not null F2 char(30) null Prof. André Luiz Souza