Sunteți pe pagina 1din 57

MODELO ENTIDADE RELACIONAMENTO - MER

Disciplina: Banco de Dados 1 Professora: Leonardo Cerqueira Email: leonardo@fcsl.edu.br

Modelo Entidade-Relacionamento
! Tcnica diagramtica para a representao de

um modelo conceitual. ! Definida originalmente por Chen (76) e estendida na dcada de 80. ! Tcnica formal que estabeleceu-se como padro para modelagem conceitual de BD Relacional.

Modelo Entidade-Relacionamento
! O modelo Entidade-Relacionamento (E-R) tem

por base a percepo de que o mundo real formado por um conjunto de objetos chamados de entidades e pelo conjunto de relacionamentos entre esses objetos. ! Foi desenvolvido para facilitar o projeto do banco de dados, permitindo a especificao do esquema da empresa que representa toda a estrutura lgica. ! O modelo E-R um dos modelos com maior capacidade semntica; que se referem a tentativa de representar o significado dos dados.

Modelo Entidade-Relacionamento
! Existem trs noes bsicas empregadas pelo

modelo E-R:
! conjunto de entidades. ! conjunto de relacionamentos. ! atributos.

MER Conjunto de Entidades


! Uma entidade uma coisa ou um objeto do

mundo real que pode ser identificada de forma unvoca em relao a todos os outros objetos. ! Por exemplo, cada aluno na universidade uma entidade. ! Uma entidade tem um conjunto de propriedades, e os valores para alguns conjuntos dessas propriedades devem ser nicos. Uma entidade pode ser concreta como uma pessoa ou um livro, ou pode ser abstrata como um emprstimo, uma viagem de frias ou um conceito.

MER Conjunto de Entidades


! Um conjunto de entidades um conjunto de abrange

entidades de um mesmo tipo que compartilham as mesmas propriedades: os atributos. ! As entidades individuais que constituem um conjunto so chamadas de extenses do conjunto de entidades.

MER Conjunto de Entidades


! Representao Grfica: Retngulos

Funcionrios

Departamentos

Livros

MER Atributos
! Uma entidade representada por um

conjunto de atributos. ! Atributos so propriedades descritivas de cada membro de um conjunto de entidades. ! Podemos considerar atributos como sendo as caractersticas da entidade. ! Formalmente um atributo de um conjunto de entidades uma funo que relaciona o conjunto de entidades a seu domnio.

MER Atributos
! Um atributo, como usado no MER, pode ser

caracterizado pelos seguintes tipos:


! Atributos Simples: Os atributos simples so

aqueles que no so divididos em partes. Exemplo: sexo_cliente ! Atributos Compostos: Os compostos podem ser divididos em partes, por exemplo, nome_cliente, pode ser estruturado em prenome, nome_intermedirio, e sobrenome. Os atributos compostos ajudam-nos a agrupar atributos correlacionados tornando o modelo mais claro.

MER Atributos
! Um atributo, como usado no MER, pode ser

caracterizado pelos seguintes tipos:

! Atributos monovalorados ou multivalorados.

Um exemplo de um atributo monovalorado poderia ser o atributo nmero_emprstimo, o qual teria associado apenas um nmero de emprstimo.

! Pode acontecer, no entanto, que uma

determinada instncia possua um conjunto de valores para uma nica entidade.


! Por exemplo, o atributo nome_dependente, da

entidade empregado, pode ter um, nenhum ou vrios dependentes cadastrados.

MER Atributos
! Um atributo, como usado no MER, pode ser

caracterizado pelos seguintes tipos:

! Atributos nulos. Um atributo nulo quando uma

entidade no apresenta valor para o mesmo. Por exemplo, se um empregado no possui dependentes o valor do atributo nome_dependente ser nulo, significando que este atributo no aplicvel a esta instncia em particular. ! Atributo derivado. O valor deste atributo pode ser derivado de outros atributos ou entidades a ele relacionados. Por exemplo, a idade de um funcionrio pode ser calculada pela data de seu aniversrio.

MER Atributos
! Representao Grfica:
Endfun c Nomfunc Salfunc Matfunc Coddepto Funcionrios Matfunc NumDep Nomdep Dependentes

MER Atributos
! Representao Grfica:

Telefone*

MER Conjunto de Relacionamentos


! Um relacionamento uma associao entre uma ou

vrias entidades. Um conjunto de relacionamentos um conjunto formado por relacionamentos de um mesmo tipo. ! Considere dois relacionamentos de entidades cliente e emprstimo. O conjunto de relacionamentos devedor denota a associao entre clientes e emprstimos bancrios contrados pelo cliente. ! A associao entre os conjuntos de entidades referida como uma participao, isto , o conjunto de entidades E1, E2,..., Em participa do conjunto de relacionamentos R.

MER Conjunto de Relacionamentos


! A funo que uma entidade desempenha em

um relacionamento chamada papel. Uma vez que os conjuntos de entidades participantes em um conjunto de relacionamentos so geralmente distintos, papis so implcitos, e no so em geral, especificados. Mas, so teis quando o relacionamento precisa ser esclarecido.

MER Conjunto de Relacionamentos


! Em conjuntos de relacionamentos

recursivos, nomes explcitos de papis muitas vezes so necessrios. Por exemplo, o conjunto de entidades empregado, e o conjunto de relacionamentos trabalha_para, que modelado para ordenar os pares da entidade empregado. O primeiro empregado tem papel de gerente, enquanto que o outro tem o papel de empregado.

MER Conjunto de Relacionamentos


! Um relacionamento pode ter atributos

descritivos. O conjunto de relacionamentos depositante, com o conjunto de entidades cliente e conta, por exemplo, apresenta o atributo data_acesso. ! Relacionamento binrio um relacionamento que envolve dois conjuntos de entidades. A maior parte dos conjuntos de relacionamentos modelados em um sistema de banco de dados do tipo binrio.

MER Conjunto de Relacionamentos


! Algumas vezes, no entanto, aparecem

relacionamentos que envolvem mais de dois conjuntos de entidades. Como exemplo, podemos combinar os conjuntos de relacionamentos devedor e agncia_emprstimo formando o conjunto de relacionamentos CEA, entre as entidades Cliente, Emprstimo e Agncia. ! O nmero de entidades que participam de um relacionamento define o grau deste relacionamento. Um conjunto de relacionamento binrio tem grau 2, e um ternrio, grau 3.

MER Conjunto de Relacionamentos


! Representao Grfica: Losangos

Funcionrio

Tem

Dependente

Trabalha

Departamento

MER Conjunto de Relacionamentos


! Representao Grfica: Cross Feet

MER Conjunto de Entidades ou Atributos?


! Muitas vezes aparecem dificuldades no

reconhecimento do que seja uma entidade ou um atributo. ! Por exemplo, uma entidade empregado com dois atributos: nome_empregado, e telefone. O atributo telefone pode ser modelado como uma entidade. ! Se definirmos como atributo, isto implica dizer que cada empregado tem precisamente um nmero de telefone a ele associado. ! Caso seja modelado como entidade, reflete que um empregado pode ter vrios (ou nenhum) nmeros de telefones a ele associado.

MER Conjunto de Entidades ou Atributos?


! J o atributo nome_empregado no poderia

nunca ser modelado como entidade. ! Infelizmente no existe uma resposta simples para sabermos do que constitui um atributo e o que constitui uma entidade. As distines vo depender da estrutura geral que est sendo modelada.

MER Conjunto de Entidades ou Relacionamentos?


! Nem sempre fica claro se devemos modelar

um objeto como um conjunto de entidades ou de relacionamentos. ! Por exemplo, considere o problema do emprstimo bancrio representado como um relacionamento entre clientes e agncias, com nmero_emprstimo e conta como atributos. Cada emprstimo representado como um relacionamento entre um cliente e uma agncia.

MER Conjunto de Entidades ou Relacionamentos?


! Se todo emprstimo tomado por exatamente um cliente

e est associado exatamente uma agncia, podemos resolver o projeto de modo satisfatrio, representando emprstimo como relacionamento. ! Mas, considere que vrios clientes tomem um mesmo emprstimo em conjunto. Ento, nesse caso, necessrio definir um relacionamento em separado para cada componente do emprstimo conjunto. ! Desta forma, os atributos descritivos numero_emprstimo e conta precisaro ser replicados para cada um dos relacionamentos.

MER Conjunto de Entidades ou Relacionamentos?


! Os problemas que surgem devido a esta replicao so: ! Os dados so armazenados diversas vezes, desperdiando espao em memria. ! As atualizaes deixam potencialmente os dados em estado inconsistente. Ao descrever emprstimo como uma entidade, este problema de replicao desaparece.

MER - Relacionamentos n-simos.


! Uma outra caracterstica importante que diz respeito a

relacionamentos, que sempre possvel recompor um conjunto de relacionamentos no-binrio, por um nmero de relacionamentos binrios distintos. ! Mas, pode ser necessria a criao de um atributo de identificao para o conjunto de entidades criado para substituir o conjunto de relacionamentos. ! Alm disso, um conjunto de relacionamentos n-simo mostra claramente todos os conjuntos de entidades que participam de uma determinada relao. ! O projeto correspondente usando somente relacionamentos binrios torna mais difcil estabelecer as restries desta participao.

MER Relacionamento Ternrio


! Relacionamento simultneo entre trs entidades.

@CRMMed NomMed EndMed

Doena
0,N 1,N
Atestado

@CodDoe NomDoe

Mdico

1,N @1CodPac @2CodDoe @3CRMMed @4DtIni DtFim

Paciente

@CodPac NomPac EndPac

MER Mapeamento de Restries


! O esquema E-R de uma empresa pode definir certas

restries as quais o contedo do banco de dados deve respeitar. ! Exemplos de restries so: o mapeamento de cardinalidades e a existncia de dependncias.

MER - Cardinalidade
! O mapeamento de cardinalidades expressa o

nmero de entidades s quais outras entidades podem estar associadas atravs de um conjunto de relacionamentos. ! Dada duas entidades X e Y, cardinalidade a quantidade de ocorrncias da entidade X que esto associadas com uma ocorrncia de Y, e vice-versa.

MER - Cardinalidade
! Para um conjunto de relacionamentos binrio, o

mapeamento de cardinalidades segue as instrues abaixo:


! Um para um. Uma entidade em A est associada no mximo

a uma entidade em B, e uma entidade em B est associada no mximo a uma entidade em A. (1:1)

Funcionario

Chefia

Departamento

MER - Cardinalidade
! Um para muitos. Uma entidade em A est associada a

vrias entidades em B. Uma entidade em B deve estar associada a uma nica entidade em A. (1:N) ! Muitos para um. Uma entidade em A est associada a no mximo uma entidade em B. Uma entidade em B, entretanto, pode estar associada a um nmero qualquer de entidades em A. (N:1)

Funcionario

possu i

N Dependente

MER - Cardinalidade
! Muitos para muitos. Uma entidade em A est associada a

qualquer nmero de entidades em B e uma entidade em B est associada a um nmero qualquer de entidades em A. (N:N) ou (M:M)

Funcionario

Trabalha

Projeto

MER Dependncia de Existncia


! Uma classe importante de restries a

dependncia de existncia. ! Se a existncia da entidade x depende da existncia da entidade y, ento x dito dependente da existncia de y. ! E se y for excludo, o mesmo deve acontecer com x. A entidade y chamada de entidade dominante e a x chamada entidade subordinada. ! Dizemos que o relacionamento e Obrigatrio, caso contrrio dizemos que Opcional.

MER Dependncia de Existncia


! Como exemplo, considere o conjunto de

entidades emprstimo e o conjunto de entidades pagamento. ! Toda entidade pagamento est associada a uma entidade emprstimo. Se uma entidade emprstimo excluda, todas as entidades pagamento a ela associada devem ser excludas tambm. ! Se por outro lado, uma entidade pagamento for excluda, a entidade emprstimo no ser afetada. ! Portanto, a entidade emprstimo dominante e a entidade pagamento subordinada.

MER Dependncia de Existncia


! A participao de um conjunto de entidades E no

conjunto de relacionamento R dita total se todas as entidades em E participam de pelo menos um relacionamento em R. ! Se somente algumas entidades em E participam do relacionamento R a participao do conjunto de entidades dito parcial. ! A participao total est relacionada existncia de dependncia.

MER Dependncia de Existncia


! Representando o Relacionamento Obrigatrio/

Opcional: Consideremos um relacionamento entre X e Y.


! Obrigatrio: Para uma ocorrncia de X tem pelo

menos uma ocorrncia de Y. ! Opcional: Para uma ocorrncia de X no precisas existir nenhuma ocorrncia de Y. Funcionrio Dependente Te
1,1 1,1

m Chefia

0,N

0,1

Departamento

MER - Cardinalidade
Notao: Cross Feet

MER Chaves
! Precisamos especificar como as entidades dentro

de um dado conjunto de entidades e os relacionamentos dentro de um conjunto de relacionamentos podem ser identificados. ! O conceito de chave nos ajuda a fazer esta distino.
! Chave Candidata ! Chave Alternativa ! Chave Primria ! Chave Estrangeira

MER Chave candidata


! Uma chave candidata um conjunto de um ou mais

atributos que, nos permitem identificar de maneira unvoca, uma entidade em um conjunto de entidades. ! Exemplo:
! Matricula, CPF.

MER Chave Primria


! O termo chave primria o termo usado para

caracterizar a chave candidata escolhida pelo projetista do banco como sendo de significado especial para a identificao das entidades. ! A especificao de uma chave representa uma restrio ao mundo real da empresa que est sendo modelada. ! Chave primria = Primary Key (PK)

MER Chave Estrangeira


! Representa o relacionamento entre entidades. A chave

estrangeira de uma entidade deve ser chave primaria na entidade relacionada. ! Uma entidade pode ter vrias chaves estrangeiras, de acordo com os relacionamentos que elas possuem. ! Chave estrangeira = Foreing Key (FK)

MER - Chaves
! Representao Grfica:

PK Sublinhada FK Duplo circulo

Endfun c Nomfunc Salfunc Matfunc Coddepto Funcionrios Matfunc NumDep Nomdep Dependentes

MER - Chaves
! Representao Grfica:
Funcionrio
@Matfunc Nomfunc Endfunc Salfunc Coddepto

Tem

Dependente
@1Matfunc @2NumDep Nomdep

PK simples Precedido de @ PK simples Precedido de @n onde n seqencial FK - Sublinhado

MER - PK/FK X Cardinalidade


Um-para-Um (1:1) Um-para-Muitos (1:N)
P K P K F K F K

Funcionrio
1,N @Matfunc Nomfunc Endfunc Salfunc Coddepto

1,1 1,1

Te m

0,N

Dependente

@1Matfunc @2Numdep Nomdep

Chefia

Trabalh a

1,1 Departamento @Coddepto Nomdepto


Matfuncchf

0,1

MER - PK/FK X Cardinalidade


Muitos-para-Muitos (N:N)

P K

F K

F K

P K

Funcionrio
@Matfunc Nomfunc Endfunc Salfunc Coddepto

1,N

Trabalha_e m @1CodProj @2MatFunc DataInicial DataFinal NumHoras

0,N

Projeto
@CodProj NomProj DtIni DtFim

MER Auto-Relacionamento
! Relacionamento entre ocorrncias de uma mesma

entidade. (Recursivo ou Reflexivo) Hierarquia.

@Coddepto Nomdepto Coddeptsup

Departamento
N

Pertence

MER Entidade Associativa


! Relacionamentos so tratados como entidade de nvel

mais alto. (Agregao)

Funcionrio
@Matfunc Nomfunc Endfunc Salfunc Coddepto

1,N

Equip e 0,N 0,N 0,N

Projeto

@1CodProj @2MatFunc

@CodProj NomProj DtIni DtFim @CodRec DesRec

@1CodProj @2MatFunc @3CodRec

Recurs o Equipe

Recurso Informtica

MER Entidade Associativa

Clientes

(1,N)

Correntista

(1,N)

Contas

Concesso (0,1) CartesMagnticos

MER Integridade Referencial


! Cascade (C) - A excluso da PK implica na excluso dos

valores de FK correspondentes.

@Matfunc Nomfunc Endfunc Salfunc Coddepto

Funcionrio

Tem

Dependente

@1Matfunc @2NumDep Nomdep

MER Integridade Referencial


! Restrict (R) - A excluso da PK s ocorre se no existir

valores de FK correspondentes.

R @CodAge NomAge EndAge

Agncia

Poss ui

Conta

@1CodAge @2NumCta ValSal ValLimEsp

MER Integridade Referencial


! Set Null (N) - A excluso da PK implica na atualizao

dos valores de FK correspondentes com NULO. (Opcional)

@CodDepto NomDepto

Departamento

Tem

Equipamento

@CodEqu DesEqu CodDepto

MER - Generalizao
! Unio de duas ou mais entidades de nvel mais

baixo produzindo uma entidade de nvel mais alto. Conjuntos de entidades vistos como um conjunto de entidade genrico.

Homem Funcionrio Mulher

MER - Generalizao

Empregados
Nro_Habilitao

CI Nome

Motoristas

Secretrias
Lnguas (1,N)

Engenheiros
Formaes (1,N)

MER - Especializao
! Separao de uma entidade de nvel mais alto

formando um conjunto de entidades de nvel mais baixo. Algumas entidades possuem propriedades adicionais, sendo especializadas em outro conjunto de entidades (herana)
Conta Corrente Conta Bancria Conta Poupana

MER Gen/Esp
Pessoa

Funcionrio

Professor Empregados

Aluno

Motoristas

Secretrias

Engenheiros

Como modelar um sistema?


1.! 2.! 3.! 4.! 5.! 6.!

Identificar o Universo. Identificar as entidades envolvidas. Identificar os relacionamentos entre elas. Definir os atributos das entidades, PKs, e FKs. Especificar as restries de cardinalidade, obrigatoriedade/opcionalidade Definir as restries de integridade (Cascade, Restrict ou Set Null).

Exerccio: CADASTRO NACIONAL DE VECULOS


! Voc apresentar um modelo de entidades e relacionamento para um

sistema que ir controlar o cadastro nacional de veculos. Sabe-se que: ! O veculo possui sempre uma placa nica em todo pas. Alm disso, ele ser emplacado sempre em uma localidade do pas. O controle do cadastro ser feito por estado; ! O veculo possui sempre um responsvel legal por ele. necessrio manter o histrico desta responsabilidade (propriedade); ! O veculo pertence sempre a uma categoria, conforme as especificaes do Departamento Nacional de Trnsito. Esta categoria pode classificar os tipos de veculos existentes no pas; ! O veculo sempre de um modelo, que por sua vez pertence sempre a uma marca. necessrio a informao do ano de fabricao do veculo.

S-ar putea să vă placă și