O modelo E-R e o Modelo Relacional so abstratos, ou seja, representaes lgicas de empresas reais. Como eles dois empregam princpios de projetos similares, podemos converter o projeto E-R em projeto relacional. Principais conceitos do MER: Tipos de entidades (regular, fraca) Graus de relacionamentos (binrio, n-rio) Atributos (simples, compostos, multivalorados) Restries (chave, cardinalidade, etc.) Regras para efetuarmos o mapeamento: Regra 1: Entidades Regulares
1.1. Para cada entidade regular E no esquema E-R, criamos uma relao R que inclui os atributos simples de E. 1.2. Para cada atributo composto de E inclumos somente os seus atributos simples. 1.3. Escolhemos um dos atributos chaves de E para ser a chave primria de R. Regra 2: Entidades Fracas
2.1. Para cada entidade fraca W, com entidade forte E, no esquema E-R, criamos uma relao R e inclumos todos os atributos simples de W como atributos de R. 2.2. Inclumos como atributos da chave estrangeira de R os atributos que compem a chave primria da entidade forte E. 2.3. A chave primria de R a combinao da chave primria da entidade forte E e a chave da entidade fraca W. Exemplo: MER do Banco emprstimo pagamento Paga _men to- Num_empre stimo
total Num_paga mento
total _pag data Pagamento(nmero_emprstimo,nmero_pagamento,data_pagamento,total_pagament o)
Regra 3: Relacionamentos 1:N que no envolvem entidades fracas
4.1. Identificamos a relao S que representa a entidade que participa do lado N do relacionamento.
4.2. Inclumos como chave estrangeira em S, a chave primria da relao T que representa a outra entidade (lado 1) que participa do relacionamento.
4.3. Inclumos qualquer atributo simples do relacionamento 1:N em S. EX.|: CONTA(Num_conta,saldo, Nome_agncia) AGNCIA(Nome_agncia, cidade, fundos) Conta Agncia Conta_a gncia Num_conta
saldo Nome_
agncia
fundos cidade 1 N
Regra 4: Relacionamento N:M 5.1. Criamos uma nova relao S para representar o relacionamento.
5.2. Inclumos como chave estrangeira em S as chaves primrias das relaes que participam do relacionamento. A combinao destas chaves formar a chave primria da relao S. 5.3. Inclumos qualquer atributo do relacionamento N:M em S.
Podemos mapear o relacionamento 1:1 ou 1:N de maneira similar ao M:N. Isto usado quando poucas instncias do relacionamento existe, evitando valores nulos nas chaves estrangeiras. EX. EMPRESTIMO(Num_emprstimo,total) CLIENTE(Nome_cliente,seguro,cidade) DEVEDOR(Num_emprstimo, seguro)
emprstimo cliente devedor Num_emprest imo
total Nome_ cliente cidade seguro
n
m
Regra 5: Atributos Multivalorados
6.1. Criamos uma nova relao R que inclui o atributo multivalorado A mais a chave primria K da relao que representa a entidade (ou relacionamento) que tem A como atributo.
6.2. A chave primria de R a combinao de A e K. 6.3. Se o atributo multivalorado composto => incluir seus componentes atmicos. Regra 6: Especializao/Generalizao 7.1. Converta cada especializao com m subclasses {S1,S2,...,Sm} e superclasse C, cujos atributos so {k, a1,..., an} onde k a chave primria, em esquemas de relaes usando uma das seguintes opes: A) Criar uma relao L para C com os atributos Atrib(L) = {k,a1, ... , an} e chave primria k. Criar tambm uma relao Li para cada subclasse Si, 1
i
m, com os seguintes atributos: Atrib(Li) = {k} { atributos de Si}, k ser a chave primria. Ex.: Contas bancrias CONTA(nmero_conta,saldo) CONTA_POUPANA(num_conta,taxa_juros) CONTA_MOVIMENTO(num_conta,limite_cheque_especial) EX. EMPREGADO(Matrcula,Nome, Salrio,Endereo, TipoTrab) SECRETRIA(Matricula, VelocidadeDigitao) TCNICO(Matrcula, Especialidade) ENGENHEIRO(Matrcula, Tipo, CREA) B) Se a generalizao mutuamente exclusiva e total Criar uma relao Li para cada subclasse Si, 1
i
m, com os atributos Atrib(Li) = {atributos de Si} {k,a1,...,an} e chave primria (Li) = k. Ex.:
CONTA_POUPANA(num_conta,saldo,taxa_juros) CONTA_MOVIMENTO(num_conta,saldo,limite_cheque_especial) Conta Conta_poupana Conta_movimento Taxa_juros saldo Limite_cheq _especial Num_conta
EX.: CARRO ( Identificao, Licena, Preo, VelMax, NumPassag) CAMINHO(Identificao, Licena, Preo, NumEixos, Tonelag) Regra 7: 8.1. Auto Relacionamento 1:N Cria-se um novo campo cujo contedo ser sempre igual a um valor j existente na chave primria da prpria tabela. FUNCIONRIO(cdigo, nome, chefe) 8.2. Auto Relacionamento N:M Cria-se uma nova tabela R contendo a chave primria de A como chave estrangeira em R e mais um campo cujo contedo ser igual a um valor j existente na chave primria de A. Esses dois campos formaro a chave primria da tabela R. DISCIPLINA(cdigo,nome) PR-REQUISITO(cd_disciplina,pr-requisito) Funcionrio chefiado por 1 Disciplina Pr- requisito N M N Questo 1 Exerccio de Modelagem Construa um Modelo de Entidades e Relacionamento para um banco que organizado em agncias.
Cada agncia localizada em uma cidade e identificada por um nome nico. O banco controla os fundos de cada uma dessas agncias
Os clientes do banco so identificados pelo nmero do seu seguro social. O banco mantm dados como nome, CPF, telefone, rua, cidade e estado do cliente.
Os clientes podem possuir contas e contrair emprstimos. O cliente pode estar associado a um bancrio especfico que cuida de seus negcios ou atua como gerente.
Os empregados do banco tambm so identificados por meio do nmero de seu seguro social. A administrao do banco mantm o nome e o nmero do telefone de seus empregados, dos dependentes. O banco tambm possui a data de contratao do empregado e com isto, seu tempo de trabalho.
O banco oferece dois tipos de contas: conta poupana e conta movimento. Um correntista pode possuir mais de uma conta. Cada conta possui um nico nmero. O banco controla o saldo de cada conta, assim como a data mais recente de acesso a esta conta. Por outro lado, cada conta poupana possui a taxa de juros associada, assim como so tambm registrados os excessos nos limites da conta movimento.
Um emprstimo originado em uma agncia pode ter sido obtido por um cliente. Um emprstimo identificado por um nmero nico. Para cada emprstimo o banco mantm o montante emprestado assim como os pagamentos das parcelas Transforme o Diagrama ER em projeto relacional Questo 2 Deseja-se modelar um banco de dados de futebol. Neste banco temos clubes que possuem torcida, tcnico, presidente e jogadores. Um time tem um nome e data de fundao. Registram-se os campeonatos ganhos por um time (ttulo, ano, nvel (local, regional ou nacional). Registram-se os jogos que um time realizou com informao sobre placar, renda, data, pblico pagante. Um jogo acontece num estdio. Cada estdio possui localizao, capacidade e nome. Um time realiza seus treinos num estdio numa determinada data. Registra-se informaes (nome, idade,sexo) dos torcedores tcnicos, jogadores e presidentes. Cada um destes tm seus relacionamentos com os times. Pede-se: 1) Faa o diagrama conceitual entidades-relacionamento do banco de dados descrito. 2) Transforme o Diagrama ER em projeto relacional Questo 3 Construa o diagrama E-R para a secretaria de uma universidade. A universidade mantm todos os dados sobre cada turma, inclusive do professor (que pode ter Mestrado, Doutorado e PHD), horrio e sala de aula. Tambm devem ser mantidos dados sobre disciplinas, com nome e nmero da disciplina; sala com nmero da sala, capacidade e prdio; alm de notas dos alunos. Pede-se: 1) Faa o diagrama entidades-relacionamento do banco de dados descrito. 2) Transforme o Diagrama ER em projeto relacional