Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1 Tópicos: a) MER - Representação alternativa b) Relacionamento Ternário c) MER Estendido – Agregação d) Partições de Conjuntos de Entidades e) Introdução ao Modelo Relacional f) Exercícios Propostos Modelo Conceitual E-R - parte 2 Relacionamentos ternários envolvem três entidades. 2UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Um empregado pode gerenciar opcionalmente 1 setor. Um setor é gerenciado por exatamente 1 empregado. MER - Representação alternativa Relacionamento parcialRelacionamento total Um empregado trabalha para exatamente 1 setor (1,1). Em um setor trabalham 1 ou mais empregados (1,N). gerencia (1,1) (0,1) Empregado Setor trabalha em (1,1)(1,N) 2 3UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira MER - Representação alternativa Exercícios: 1) Construa o MER na representação equivalente de um original (Chen). 2) Faça uma lista das diferenças de notação. 3) Faça uma lista das semelhanças de notação. 4) Considerando as diferenças, quais podem ser consideradas melhores que as originais. Fonte: [Elmasri & Navathe 2005] 4UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Relacionamento Ternário Modelo Entidades Relacionamentos O relacionamento ternário pode ser visualizado como um conjunto de triplas (ei, ej, ek) que deve ser entendido como uma extensão da classe de relacionamentos binários. CARDINALIDADES DE UM RELACIONAMENTO TERNÁRIO: 1. Escolha uma entidade e pergunte: Para um par de instancias das duas outras entidades quantas instâncias podemos ter ? 2. Coloque a resposta na entidade escolhida. 3. Repita as atividades 1 e 2 circulando pelas outras duas entidades. Exemplo: Professor-Aluno-Disciplina Devido a dificuldade de se encontrar um nome adequado para o relacionamento ele foi nomeado “P-A-D”. • Dado um professor e um aluno, pode existir um número qualquer de disciplinas ministradas (por esse professor para esse aluno). • Dado um aluno em uma disciplina, só há um professor associado a esse par de instancias. • Dado uma disciplina e um professor, pode existir um número qualquer de alunos matriculados. Professor Aluno 1 N Disciplina M P - A - D 3 5UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Modelo Entidades Relacionamentos CARDINALIDADES DE UM RELACIONAMENTO TERNÁRIO: Exemplos: Cliente-Inscrição-Seminario Cliente-Inscrição-Fatura Nota: As bolinhas indicam as seguintes restrições: a) Não há nenhuma inscrição que não pertença a relação “C – S – I”. b) Não há nenhum seminário que não pertença a relação “C – S – I”. c) Pode haver cliente que não pertence a relação “C – S – I”. Relacionamento Ternário Cliente Inscrição 1 1 Seminário N C - S - I Cliente Inscrição N 1 Fatura 1 C - I - F 6UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira MER Estendido Modelo Entidades Relacionamentos AGREGAÇÃO: • O relacionamento de agregação ocorre quando uma entidade se relaciona com um grupamento completo de duas ou mais entidades relacionadas. • O MER não permite expressar relacionamentos entre relacionamentos. • Uma agregação pode ser percebida como uma entidade de nível mais elevado de abstração. Exemplo: Em cada fatura são computados “os usos de veículos pelo associado” para a cobrança do mês. Observação: Não faz sentido agregações envolvendo relacionamentos “1 : N”. Os dois diagramas abaixo são semanticamente equivalentes. Associado Veículo usa N M Fatura computa N 1 E 1 E 2 1 N E 3 R 2 R 1 E 1 E 2 1 N E 3 R 2 R 1 4 7UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira MER Estendido Modelo Entidades Relacionamentos GENERALIZAÇÃO E ESPECIALIZAÇÃO: (partições de conjuntos de entidades) As partições em categorias acontecem pela necessidade de que as categorias possuírem atributos próprios; exemplos: Cliente: � Correntista Não correntista Conta: � Platina Ouro Prata Veículo: � Pequeno Médio Grande Conta Poupança InvestimentoCorrente idConta dataCliente idTipo diaAbertura Cliente P.JurídicaP.Física idCliente nome endereço telefone cpf limite taxaJuros cgc pessoaContato tipo cliente idTipo limite taxaJuros idTipo diaAbertura taxaJuros tipo conta 8UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Relações e instâncias Introdução ao Modelo Relacional Exemplo de uma relação de grau 8, com o seu esquema. A tabela representa os dados do conjunto de entidades veículos. veículo = { placa, modelo, ar, portas, passageiros, ano, preço, foto } Colunas (atributos) Linhas (tuplas) DEFINIÇÕES: O modelo relacional é representado por tabelas de valores. Cada tabela, denominada relação, é organizada em linhas e colunas. O número de colunas da tabela define o grau da relação. O esquema de uma relação é descrito pelo seu identificador e pelo conjunto de nomes de suas colunas. A instância de uma relação em um determinado momento é formada por todas as tuplas que pertencem a relação naquele momento. 5 9UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Definições Introdução ao Modelo Relacional Sejam os atributos: A1, A2, …, An ���� R = (A1, A2, …, An ) é uma relação. Formalmente: dados os conjuntos de domínios: D1, D2, …. Dn uma relação R é um subconjunto do produto cartesiano dos domínios. R CCCC D1 x D2 x … x Dn Então, uma relação (tabela) é um conjunto de n-tuplas (a1, a2, …, an) onde cada ai Є Di Atributos são os nomes das colunas. (ex. compromisso) Domínio de um atributo especifica o tipo de valores que o atributo pode receber. (ex. “compromisso” ���� valores da moeda com 3 inteiros e duas casas decimais; “nomeAssociado” ���� nomes de pessoas no formato String[60] ). idPlano nomePlano compromisso valorHoraMS valorHoraFS OD Ocasional Driver 65,00 9,00 12,25 EVP$50 Extra Value $50 50,00 8,10 11,03 EVP$75 Extra Value $75 75,00 8,10 11,03 EVP$125 Extra Value $125 125,00 8,10 11,03 EVP$250 Extra Value $ 250 250,00 7,65 10,41 10UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira DataBase Introdução ao Modelo Relacional Relação: ASSOCIADO Relação: ESCOLHA Relação: PLANO • O banco de dados relacional deve ser percebido como um conjunto formado por muitas tabelas (nada mais que tabelas). A ordenação das tuplas não é relevante. A ordenação das colunas não é relevante. PARA UM CONJUNTO A ORDEM É IRRELEVANTE. idAssociado idPlano dataEscolha ASSO22 OD 10/01/11 ASSO65 EVP$125 10/01/09 ASSO10 OD 10/01/02 ASSO20 EVP$50 10/01/03 ASSO60 OD 10/01/04 ASSO40 EVP$125 10/01/09 Associado Plano escolhe N 1 idAssociado nomeAssociado dataAssociado cidade dataEscolha idPlano nomePlano compromisso valorHoraMS valorHoraFS idAssociado nomeAssociado dataAssociado cidade ASSO40 Valdir Pereira 10/01/07 campos ASSO65 Beth Carvalho 10/01/09 rio ASSO22 Nara Leão 10/01/11 vitória ASSO10 Manuel Santos 10/01/02 rio ASSO60 João Saldanha 10/01/04 alegrete ASSO20 Elsa Soares 10/01/03 rio idPlano nomePlano compromisso valorHoraMS valorHoraFS OD Ocasional Driver 65,00 9,00 12,25 EVP$50 Extra Value $50 50,00 8,10 11,03 EVP$75 Extra Value $75 75,00 8,10 11,03 EVP$125 Extra Value $125 125,00 8,10 11,03 EVP$250 Extra Value $ 250 250,00 7,65 10,41 6 11UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Keys - chaves Banco de Dados Relacional Seja uma chave K ⊆⊆⊆⊆ na relação R: K é uma “super chave” de R se os valores assumidos por K são suficientes para identificar de forma única (impar) cada tupla (linha da tabela). Exemplo de “super chaves” da relação Associado: {idAssociado}, {nomeAssociado} e {idAssociado, nomeAssociado} A super chave K é uma chave candidata se ela for “mínima” (nenhum atributo pode ser eliminado sem destruir a propriedade de imparidade). Exemplo: {idAssociado} é uma chave candidata para Associado. Uma das chaves candidatas é escolhida para ser a chave primaria (PK). Termo relacional formal Significado equivalente relação Tabela tupla Linha ou registro de uma tabela atributo Coluna ou campo chave primária Identificador único domínio Grupo fonte de valores 12UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Keys - chaves Banco de Dados Relacional A chave estrangeira: (FK - Foreign Key) É um atributo de uma relação que precisa aparecer em outra relação. Exemplo: idAssociado e idPlano são chaves estrangeiras para a relação Escolha. _____________________________________________________ Um BD relacional é um conjunto de tabelas que o usuário “percebe”. Propriedades das relações: 1. Uma tabela é formada pelo mesmo tipo de tuplas. 2. Não há tuplas duplicadas. 3. As tuplas não seguem uma ordenação. 4. Os atributos não seguem ordenação. 5. Os valores dos atributos são atômicos. 6. As tuplas possuem um identificador único chamado chave primária (PK). Associado Plano escolhe N 1 idAssociado nomeAssociado dataAssociado cidade dataEscolha idPlano nomePlano compromisso valorHoraMS valorHoraFS 7 13UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Keys - chaves Banco de Dados Relacional Restrições de Integridade (regras gerais): São regras que devem ser satisfeitas pelas relações. 1. Restrição de Integridade da Chave: Uma chave candidata não pode ter o mesmo valor em duas tuplas distintas da mesma relação. 2. Restrição de Integridade da Entidade: A chave primária de qualquer relação não pode assumir o valor “nulo”. 3. Restrição de Integridade Referencial: uma relação que faz referência a outra relação (através do conceito de Chave Estrangeira) deve referenciar a uma tupla existente naquela relação. 14UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira MAPEAMENTO ENTRE OS MODELOS PROJETO CONCEITUAL PROJETO FÍSICO Relacionamentos 1 : 1 Criar apenas uma tabela representando a entidade “forte”. Incluir os atributos da entidade “fraca” como atributos na entidade “forte”. Relacionamentos 1 : N Criar duas tabelas (relações) representando cada entidade da associação. Colocar como chave estrangeira a PK (chave primária) do lado “1” (um) na tabela do lado “N” (muitos). Relacionamentos N : M Criar, em adição, uma tabela para representar essa associação. Essa tabela deverá possuir ambas as PKs (chaves primárias) das duas entidades associadas. MER - Esquema Relacional Associado Plano escolhe N 1 idAssociado nomeAssociado dataAssociado cidade dataEscolha idPlano nomePlano compromisso valorHoraMS valorHoraFS MER ESQUEMA RELACIONAL Associado = {idAssociado, nomeAssociado, dataAssociado, cidade} Plano = { idPlano, nomePlano, compromisso, valorHoraMS, valorHoraFS } Escolhas = { idPlano, idAssociado, dataEscolha} 8 15UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira MAPEAMENTO ENTRE OS MODELOS PROJETO CONCEITUAL PROJETO FÍSICO Relacionamentos 1 : 1 Criar apenas uma tabela representando a entidade “forte”. Incluir os atributos da entidade “fraca” como atributos na entidade “forte”. Relacionamentos 1 : N Criar duas tabelas (relações) representando cada entidade da associação. Colocar como chave estrangeira a PK (chave primária) do lado “1” (um) na tabela do lado “N” (muitos). Relacionamentos N : M Criar, em adição, uma tabela para representar essa associação. Essa tabela deverá possuir ambas as PKs (chaves primárias) das duas entidades associadas. MER - Esquema Relacional Associado Plano escolhe N 1 idAssociado nomeAssociado dataAssociado cidade dataEscolha idPlano nomePlano compromisso valorHoraMS valorHoraFS MER Associado = { idAssociado, nomeAssociado, dataAssociação, cidade } Plano = { idPlano, idAssociado, dataEscolha, nomePlano, compromisso, valorHoraMS, valorHoraFS } ESQUEMA RELACIONAL 16UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Exercícios Represente o diagrama abaixo através de relacionamentos binários. Cidade Distribuidor N N Produto 1 C - D - P Construa o MER para a descrição parcial: 1. Um “grupo” de seguradoras de automóveis deseja um sistema que guarde o histórico de sinistros (com data, local, tipo [colisão, roubo] e descrição) em automóveis para calcular o valor do prémio/risco de automóveis. Os clientes podem possuir um certo número de automóveis. Dos automóveis [compacto, médio e grande] deve-se guardar a placa, chassis, renavan, fabricante, modelo e ano. 9 17UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira BIBLIOGRAFIA C. J. Date, “Introdução a Sistemas de Bancos de Dados” – 8ª Edição”, Editora Campus, 2003. Peter Rob and Carlos Coronel, Database Systems: Design Implementation and Management, 5th Edition, Course Technology, 2001. Setzer, Valdemar; Banco de Dados – conceitos, modelos, gerenciadores, projeto lógico e projeto físico; Editora Edgard Blücher Ltda., SP, 1986. Silberschatz, Avi; Korth, H; Sudarshan, S; Database System Concepts, 6th Edition, McGraw-Hill, 2005. Chen, Peter; The Entity-Relationship Model - Toward a Unified View of Data, ACM Transactions on Database Systems 1 (1): 9–36. (March 1976). R. Elmasri & S. Navathe, Fundamentals of Database Systems (6th Edition) Pearson/Addison Wesley, 2007