Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados Transformação Modelo Conceitual para Lógico Relacional Prof. Juliano Lucas Gonçalves juliano.gonçalves@ifsc.edu.br Implementação inicial de entidades • Cada entidade é traduzida para uma tabela. • Cada atributo da entidade define uma coluna desta tabela. • Atributos identificadores da entidade correspondem a chave primária da tabela. 2 Exemplo • Entidade Aluno aluno (id, nome, peso, rg) 3 id rg nome peso 1 1234 João da Silva 89 2 1243 José 90,7 ... ... ... ... Atributos multivalorados – Caso algum de seus atributos seja multivalorado, para este será criada uma tabela, contendo o atributo multivalorado e uma FK da tabela origem 4 id rg nome peso 1 1234 João da Silva 89 2 1243 José 90,7 ... ... ... ... id email idAluno 1 jj@dominio.com 1 2 jjjojj@dominio.com 1 ... ... ... Aluno Email aluno (id, nome, peso, rg) Email (id, email, idAluno) idAluno REFERENCIA Aluno FK Implementação de relacionamentos Possibilidades 1. Tabela própria 2. Adição de colunas a uma das tabelas 3. Fusão de tabelas – Alternativa depende da cardinalidade (máxima e mínima do relacionamento) 5 Cardinalidade N:N • ... Cardinalidade N:N – Nestes casos, o relacionamento deve ser convertido em uma tabela (associativa). 6 Aluno (id, nome, peso, rg) Matricula (idAluno, idCurso, dataHora) idAluno REFERENCIA Aluno idCurso REFERENCIA Curso Curso (id, nome, cargaHoraria) Introdução • ... Cardinalidade N:N – Exemplo 7 id rg nome peso 1 1234 João da Silva 89 2 1243 José 90,7 ... ... ... ... Aluno id nome cargaHoraria 1 Informática 1000 2 Matemática 3200 ... ... ... Curso idAluno idCurso dataHora 1 1 10/10/2014 14:00 1 2 01/03/2005 08:00 2 2 03/07/1999 08:00 Matricula Associativa Matricula (idAluno, idCurso, dataHora) idAluno REFERENCIA Aluno idCurso REFERENCIA Curso Cardinalidade 1:N – Cardinalidade 1:N • Nestes casos, cada entidade será convertida em uma tabela. Na entidade cuja cardinalidade do relacionamento seja N, insere-se uma FK para estabelecer a relação. 8 Aluno (id, nome, rg, idCurso) idCurso REFERENCIA Curso Curso (id, nome, cargaHoraria) Cardinalidade N:N com atributo no relacionamento • ... com atributo – Nestes casos, o conjunto de atributos do relacionamento deve ser convertido em campos que farão parte da tabela que conterá a ligação do relacionamento. 9 Aluno (id, nome, peso, rg, dataHora, idCurso) idCurso REFERENCIA Curso Curso (id, nome, cargaHoraria) Exercícios 1. Um nadador possui identificador, nome, especialidade, telefones e emails. Pede- se: a) Modelo conceitual b) Modelo relacional e tabelas (inserir duas tuplas para cada tabela) 10 Exercícios 2. Uma equipe é composta por vários jogadores. Um jogador joga apenas em uma equipe. A equipe possui um código, nome e presidente. O jogador possui um número de filiação, nome, data nascimento, peso e altura. Pede-se: a) Modelo conceitual b) Modelo relacional e tabelas (inserir duas tuplas para cada tabela) 11 Exercícios 3. Um medico atende inúmeros pacientes. Um paciente pode ser atendido por vários médicos. O médico possui CRM, nome e especialidade. O Paciente possui um código, rg, cpf, nome e idade. É necessário saber a data e hora da consulta. Pede-se: a) Modelo conceitual b) Modelo relacional e tabelas (inserir duas tuplas para cada tabela) 12 Cardinalidade 1:1 (obrigatórias) – Cardinalidade 1:1 (duas entidades obrigatórias) • Substituir as duas entidades por uma única entidade; • Escolher uma das identificações como chave primária; 13 Conferência (CodConf Nome, DataInsComOrg, Número, EnderComOrg) Cardinalidade 1:1 (obrigatória / opcional) – Cardinalidade 1:1 (opcional / obrigatória) • Substituir as duas entidades por uma única entidade; • Chave primária será da entidade obrigatória; 14 Correntista (Codigo, Nome, CodCartao, DataExp) Cardinalidade 1:1 (opcionais) – Cardinalidade 1:1 (duas entidades opcionais) • Adição de colunas em qualquer uma das entidades; 15 Mulher (identidadeM, Nome, Data, Regime, identidadeH) identidadeH referencia Homem Homem (identidadeH, Nome) Exercícios 1. Um medico atende um único paciente. Um paciente pode ser atendido um único médico. Todo médico tem paciente e todo paciente tem médico. O médico possui CRM, nome e especialidade. O Paciente possui um código, rg, cpf, nome e idade. É necessário saber a data e hora da consulta. Pede-se: a) Modelo conceitual b) Modelo relacional e tabela(s) (inserir duas tuplas para cada tabela) 16 Exercícios 2. Um medico atende um único paciente. Um paciente pode ser atendido um único médico. Todo médico tem paciente e nem todo paciente tem médico. O médico possui CRM, nome e especialidade. O Paciente possui um código, rg, cpf, nome e idade. É necessário saber a data e hora da consulta. Pede-se: a) Modelo conceitual b) Modelo relacional e tabela(s) (inserir duas tuplas para cada tabela) 17 Exercícios 3. Um medico atende um único paciente. Um paciente pode ser atendido um único médico. É possível ter médico sem paciente e paciente sem médico. O médico possui CRM, nome e especialidade. O Paciente possui um código, rg, cpf, nome e idade. É necessário saber a data e hora da consulta. Pede-se: a) Modelo conceitual b) Modelo relacional e tabela(s) (inserir duas tuplas para cada tabela) 18 Auto Relacionamentos – Valem as mesmas regras anteriores; 19 empregado (cpf, nome, idade, cpfgerente) Exercícios Dado o modelo conceitual abaixo apresentar o Modelo relacional e tabela(s) (inserir duas tuplas para cada tabela) a) 20 Exercícios b) c) 21 Resumo mapeamento de Relacionamentos 22 Tipo de Relacionamento Regra de implementação Tabela Própria Adição de Coluna Fusão de Tabelas
Compartilhar