Banco de Dados I 2007 Módulo II: Modelagem Entidade- Relacionamento versus Relacional (Aula 2) Clodis Boscarioli
Agenda: O Modelo Relacional; Mapeamento do ME-R para o MR.
Estrutura Básica Um banco de dados relacional consiste de uma coleção de relações (tabelas) de nomes únicos. Cada tabela possui um conjunto de linhas que representa um relacionamento entre um conjunto de valores. O conceito de tabelas está intimamente ligado ao conceito de uma relação matemática de onde se origina o nome deste modelo. Uma tabela é formada por um conjunto de colunas denominadas de atributos e por um conjunto de linhas denominadas de tuplas. Para cada atributo existe um conjunto de valores permitidos, chamado de domínio.
Relação Suponha que D1 denote o domínio do atributo A1, D2 denote o domínio do atributo A2 e... Dn denote o domínio do atributo N da tabela T1. Qualquer linha da tabela que possui estes atributos é denotada pela tupla (d1,d2,...,dn) em que d1, d2 e dn estão, respectivamente em D1, D2 e Dn. Em geral, uma instância de T1 é um subconjunto de D1 X D2 X... X Dn. Matematicamente, define-se uma relação como um subconjunto de um produto cartesiano de uma lista de domínios. O grau de uma relação é o número de atributos que a compõe.
Definindo uma Relação Esquema Aluno: Aluno (Nome, SSn, Fone, End, FoneComercial, Idade, Média) Especificando os domínios: Aluno (Nome: string, SSn:string, Fone:string, End:string, FoneComercial:string, Idade: string, Média:real) Outra forma: Aluno (Nome: Nomes, SSn:SSN, Fone:Tp_fone, End:string, FoneComercial: Tp_fone, Idade: string, Média:real)
Particularidades Não existe qualquer tipo de ordenação ou de definição de ordenação da definição de uma relação. As duas relações abaixo são ditas idênticas: nome_agência número_conta saldo nome_agência número_conta saldo Downtown A-101 500 Mianus A-215 700 Mianus A-215 700 Perryridge A-102 400 Perryridge A-102 400 Downtown A-101 500 Round Hill A-305 350 Round Hill A-305 350 Brighton A-201 900 Redwood A-222 700 Redwood A-222 700 Brighton A-201 900 Brighton A-217 750 Brighton A-217 750
Particularidades Uma definição alternativa para uma tupla é: um conjunto de pares (<atributo>,<valor>), em que cada par fornece o valor do mapeamento de um atributo Ai para um valor vi do dom(ai). As tuplas abaixo são idênticas: T = <(Nome, Dick Davisdson),(SSN, 422-11- 2320),(FoneResidencial, null),(endereço, 3452 Elgin Road),(FoneEscritorio, 749-1253),(Idade,25),(MPG 3,53)> T = <(Endereço, 3452 Elgin Road),(Nome, Dick Davisdson),(Idade,25),(MPG 3,53),(SSN, 422-11- 2320),(FoneEscritorio, 749-1253),(FoneResidencial, null)>
Particularidades Atomicidade de atributo = primeira forma normal. Modelo relacional plano. O valor null. As relações interpretam/representam fatos sobre entidades e fatos sobre relacionamentos.
O ME-R número_conta cidade_agência saldo nome_agência fundos conta agência conta agência depositante numero agência cliente devedor empréstimo nome_cliente cidade_cliente número_empréstimo rua_cliente total
O Modelo Relacional
Chaves Seja R um esquema de relação. Se dissermos que um subconjunto K de R é uma superchave para R, estaremos considerando restrições para as relações r(r), nas quais não existem duas tuplas distintas com mesmos valores em todos os atributos de K. Isto é, se t1 e t2 estão em r e t1 <> t2, então t1[k] <> t2[k]. Um esquema de relação pode incluir entre seus atributos a chave primária de outro esquema. Essa chave é chamada chave estrangeira. O atributo nome_agência em Conta é uma chave estrangeira, já que é chave primária em Agencia.
Exercício: Interprete o MER e crie um MR correspondente.
Representação Tabular de Entidade Fraca Suponha: no_e total no_p valor empréstimo EP pagamento Tabelas: pagamento, com os atributos número_pagamento, valor, número_empréstimo. empréstimo, com os atributos número_empréstimo, total.
Representação Tabular de Atributos Multivalorados Para um atributo multivalorado M, cria-se uma tabela T com uma coluna C que corresponde a M e as colunas correspondentes à chave primária do conjunto de entidades ou do conjunto relacionamento do qual M é atributo. No exemplo da localização de departamento: cada elemento da nova tabela é uma localização de um departamento.
Representação Tabular da Generalização Para a situação: num_conta saldo conta tx_juros ISA limite conta_poup conta_mov
Representação Tabular da Generalização Criar uma tabela para o conjunto de entidades de nível superior. Para cada conjunto de entidades de nível inferior, criar uma tabela que inclua: Uma coluna para cada um dos atributos daquele conjunto de entidades Uma coluna para cada atributo da chave primária do conjunto entidades de nível superior. Assim: conta, com os atributos número_conta e saldo conta_poupança, com os atributos número_conta e taxa_juros conta_movimento, com os atributos número_conta e limite_cheque_especial
Representação Tabular da Generalização Se a generalização é mutuamente exclusiva: nenhuma entidade é membro de mais de um conjunto de entidades de nível imediatamente inferior ao conjunto de entidades de nível superior; e todas as entidades do conjunto de entidades de nível superior são membro também de um dos conjuntos de entidades de nível inferior. Para cada conjunto de entidades de nível inferior, cria-se uma tabela que inclua uma coluna para cada um dos atributos deste conjunto de entidades mais uma coluna para cada atributo do conjunto de entidades de nível superior Assim: conta_poupança, com atributos número_conta, saldo e taxas_juros; conta_movimento, com os atributos número_conta, saldo e limite_cheque_especial
Representação Tabular da Agregação Relembrando... nome seguro rua cidade número saldo cliente devedor empréstimo Agente_ emp empregado seguro nome telefone
Representação Tabular da Agregação A tabela para o conjunto de relacionamentos agente_empréstimo inclui uma coluna para cada atributo, uma para chave primária do conjunto de entidades empregado e uma para o conjunto de relacionamentos devedor. Poderia também incluir uma coluna para cada um dos atributos descritivos descritivos do conjunto de relacionamentos agente_empréstimo, se eles existirem. Assim: cliente, com os atributos nome_cliente, seguro_cliente, rua, cidade; empréstimo, com os atributos número_empréstimo, total; devedor, com os atributos seguro_cliente, número_empréstimo; empregado, com os atributos seguro_empregado, nome_empregado, número_telefone; agente_empréstimo, com os atributos seguro_empregado, número empréstimo e seguro_cliente.
Referências Sistemas de Banco de Dados. (Cap. 2) Abraham Silberchatz, Henry F. Korth e S. Sudarshan. 3ª Edição. Makron Books, 1999. Introdução a Banco de Dados (Apostila). (Cap. 5-6) Osvaldo Kotaro Takai, Isabel Cristina Italiano, João Eduardo Ferreira. DCC-IME-USP, 2005. Fundamentos de Bancos de Dados. Alvez, W. P. Editora Érica, 2004.