Você está na página 1de 14

Banco de Dados - prof.

Daniel

Modelo Entidade-Relacionamento
l Percepção de que o mundo real é formado por um conjunto de objetos
chamados entidades e pelo conjunto dos relacionamentos entre estes
objetos

l Maior capacidade semântica; os aspectos semânticos do modelo se


referem à tentativa de representar o significado dos dados

ð 3 noções básicas:
µ conjunto de entidades,
µ conjunto de relacionamentos e
µ atributos

Conjunto de Entidades
Entidade é uma “coisa” ou um “objeto” no mundo real que pode ser
identificada de forma unívoca em relação a todos os outros objetos. A
entidade pode ser concreta (pessoa, livro), ou pode ser abstrata
(empréstimo, viagem de férias ou um conceito)

Conjunto de entidades é um conjunto de entidades de mesmo tipo que


compartilham as mesmas propriedades: os atributos

Exemplo:

1. Conjunto de todas as pessoas que são clientes de uma banco:


conjunto de entidades Cliente.
2. Conjunto de todos os empréstimos fornecidos pelo banco:
conjunto de entidades Empréstimo.
3. Conjunto de todas as contas abertas no banco: conjunto de
entidades Conta.

Atributos são propriedades descritivas de cada membro de um conjunto de


entidades. A designação de um atributo para um conjunto de entidades
expressa que o BD mantém informações similares de cada uma das
entidades do conjunto de entidades; entretanto, cada entidade pode ter seu
próprio valor em cada atributo.
Exemplo:

1. Atributos para o conjunto de entidades Cliente: nome_cliente,


rg_cliente, rua_cliente e cidade_cliente.
2. Atributos para o conjunto de entidades Empréstimo:
nro_emprestimo, total.
3. Atributos para o conjunto de entidades Conta: nro_conta, saldo.

Para cada atributo, existe um conjunto de valores possíveis, chamado


domínio do atributo. O domínio do atributo nome_cliente pode ser o
conjunto de todos as strings de um certo tamanho.

Formalmente, um atributo de um conjunto de entidades é uma função que


relaciona o conjunto de entidades a seu domínio. Uma entidade pode ser
descrita pelo conjunto formado pelos pares atributo / valor.

Categorias dos atributos no modelo E-R


Os valores dos atributos que descrevem as entidades constituem uma
porção significativa dos dados que serão armazenados no banco de
dados.

Um atributo pode ser caracterizado pelos seguintes tipos:

ð simples ou compostos
ð mono-valorados ou multivalorados
ð nulos
ð derivado

Atributos simples ou compostos

• Atributo simples: não é dividido em partes.


• Atributo composto pode ser dividido em partes (isto é, outros
atributos).
Ex: nome_cliente pode ser estruturado em prenome, nome-
intermediário e sobrenome.
O uso de atributos compostos em um esquema de dados é uma boa
escolha quando o usuário desejar se referir ao atributo como um todo
em certas ocasiões e somente a parte dele em outras.
Atributos mono-valorados ou multivalorados

• Atributos que assumem um único valor são chamados mono-


valorados.
• Instâncias onde um atributo possui um conjunto de valores para
uma única entidade são chamados multivalorados.

Ex: Conjunto de entidades Empregado e o atributo nome_dependente: cada


empregado pode ter um, nenhum ou vários dependentes; entretanto,
diferentes entidades Empregado dentro do conjunto de empregados terão
diferentes número de valores para o atributo nome_dependente.

Atributos nulos
Usados quando uma entidade não possui valor para determinado atributo.

Ex: se um empregado em particular não possui dependentes, o valor do


atributo nome_dependente para este dependente deverá ser nulo, e isto
significa que este atributo “não é aplicável”.

Nulo também pode significar que o valor do atributo é desconhecido.

Atributos derivados

O valor deste tipo de atributo pode ser derivado de outros atributos ou


entidades a ele relacionados.

Ex: o conjunto de entidades Cliente não possui o atributo


emprestimos_tomados que representa o nro. de empréstimos tomados do
banco por um cliente. Mas podemos derivar o valor deste atributo
contando o número das entidades Emprestimo associadas ao cliente em
questão.
Conjuntos de Relacionamentos
Um Relacionamento é a associação entre uma ou várias entidades.

Ex: relacionamento que associa o cliente João Batista ao empréstimo de


número 5569.

Conjunto de relacionamentos é um conjunto de relacionamentos de


mesmo tipo.
Definição Formal: é a relação matemática com n≥2 conjuntos de entidades
(podendo ser não distintos). Se E1, E2, ... En são conjuntos de entidades,
então um conjunto de relacionamentos R é um subconjunto de {( e1, e2,...,en)
| e1 ∈ E1, e2 ∈ E2,..., en ∈ En }, onde (e1, e2,...,en) são relacionamentos.

Exemplo:

1. Conjunto de relacionamentos devedor para representar a


associação entre Cliente e Empréstimo.
2. Conjunto de relacionamentos depositante para representar a
associação entre Cliente e Conta.

A associação entre os conjuntos de entidades é referida como uma


participação. Uma instância de relacionamento em um esquema E-R
representa a existência de uma associação entre a entidade e o mundo real
no qual se insere o empreendimento que está sendo modelado.

Exemplo:

Os conjuntos de entidades Cliente e Empréstimo participam do


conjunto de relacionamentos devedor. Portanto, se existe a
associação do cliente João Batista com o empréstimo de número
5569, isso quer dizer que no mundo real o cliente João Batista tomou
esse empréstimo.

Um relacionamento também pode ter atributos descritivos, da mesma forma


que os conjuntos de entidades.
Exemplo:

O conjuntos de relacionamentos depositante entre os conjuntos de


entidades Cliente e Conta pode ter o atributo data_ultimo_acesso.

O número de conjuntos de entidades que participam em um conjunto de


relacionamento é também o grau deste conjunto de relacionamento.
Um conjunto de relacionamento binário é de grau dois; um relacionamento
ternário é de grau três.

A função que uma entidade desempenha em um relacionamento é chamada


papel.

• Os papéis das entidades participantes são implícitos (não são, em geral,


especificados). MAS são úteis quando o significado de um relacionamento
precisa ser esclarecido ð os conj. de entidades e os conj. de
relacionamentos não são distinguíveis; ou quando o mesmo conj. de
entidades participa de um conj. de relacionamento mais de uma vez, com
diferentes papéis (conj. de relacionamentos recursivos).

Exemplo:

Conj. de entidades Empregado e conj. de relacionamentos


trabalha_para; o 1. empregado de um par tem o papel de gerente, o
outro tem o papel de empregado.

Metas de Projeto
Um conjunto de entidades e um conjunto de relacionamentos não são
noções precisas e é possível definir um conjunto de entidades e de
relacionamentos entre elas de várias formas diferentes

Uso de Conjuntos de Entidades ou Atributos


1. Caso: o conjunto de entidades empregado com os atributos
nome_emp e telefone.
nome_emp
telefone

empregado

MAS, um telefone pode ser uma entidade sujeita a seus próprios atributos
como nro_fone e localização, então podemos definir:

• Conjunto de entidades Empregado (atributo nome_emp)


• Conjunto de entidades Telefone (atributos nro_fone e localização)
• Conjunto de relacionamentos emp_telefone, denotando a associação entre
os empregados e os telefones que podem ter

Portanto temos:

2. Caso: conjunto de entidades Empregado (atributo nome_emp) + conjunto


de entidades Telefone (atributos nro_fone e localização) + conjunto de
relacionamentos emp_telefone (empregados e os telefones que podem ter)

nome_emp localização
nro_fone

empregado emp_fone telefone

Diferenças:

Ø No 1. caso, a definição implica que todo o empregado possui


precisamente um número de telefone a ele associado.
Ø No 2. caso, entretanto, a definição estabelece que o empregado pode ter
vários números de telefones (incluindo zero) a ele associados.

þ a 2a. definição é mais geral que a 1a. e pode refletir com


maior precisão as situações reais
Uso dos Conjuntos de Entidades ou Conjunto de
Relacionamentos
Não é sempre claro que um objeto é melhor expresso por um conjunto de
entidades ou por conjunto de relacionamentos.

Anteriormente, foi definido empréstimo bancário modelado como uma


entidade.

Alternativa: podemos modelar o empréstimo não como entidade, mas como


um relacionamento entre Clientes e Agências (nro_emprestimo e total como
atributos descritivos). Assim, cada empréstimo é representado por um
relacionamento entre um cliente e uma agência.

• MAS dessa forma não podemos representar de maneira satisfatória


uma situação na qual vários clientes tomam um empréstimo de forma
conjunta, pois teríamos que definir um relacionamento em separado
para cada cliente componente de empréstimo conjunto, ou seja,
replicar os valores dos atributos descritivos nro_emprestimo e total
para cada um dos relacionamentos do par Cliente / Agência.

Problemas:

1. Os dados são armazenados diversas vezes, desperdiçando espaço em


memória
2. As atualizações podem deixar os dados em estado inconsistente, quando
os valores diferem nos atributos de dois relacionamentos que deveriam,
supostamente, possuir valores iguais.

Para evitar tais replicações ð teoria da normalização.

Uma linha mestra de projeto: recorrer ao conjunto de relacionamentos


para descrever uma ação que ocorre entre entidades.

Esta abordagem pode ser útil também para decidir se certos atributos
podem ser expressos de maneira mais apropriada como relacionamentos

Conjuntos de Relacionamentos
Binários versus n-ésimos
É possível recompor um conj de relacionamentos não binários (n-ésimos,
com n>2) por um número de conjs de relacionamentos binários distintos
Considere o conj de relacionamentos ternário (n=3) abstrato R, relacionados
aos conjuntos de entidades A, B e C. Então, podemos substituir o conj R por
um conjunto de entidades E, e criar três conjuntos de relacionamentos:

• RA, relacionando E e A
• RB, relacionando E e B
• RC, relacionando E e C

Se o conj de relacionamentos R possui atributos, eles são atribuídos ao


conj. de entidades E. Se necessário, um atributo especial de identificação é
criado para E (já que todo o conjunto de entidades deve ter ao menos um
atributo para distinguir seus membros).

Para cada relacionamento (ai, bi, ci) de R, podemos criar uma nova entidade ei
no conjunto de entidades E. Então, em cada um dos três novos conjuntos de
relacionamentos, inserimos um relacionamento como se segue:

• (ei, ai) em RA
• (ei, bi) em RB
• (ei, ci) em RC

Generalizando o processo para relacionamentos n-ésimos, podemos obter


modelos E-R com conj. de relacionamentos binários apenas. MAS:

• Atributos e conjuntos de relacionamentos extras aumentam a


complexidade do projeto e do armazenamento como um todo.
• Um conjunto de relacionamentos n-ésimo mostra todos os conjuntos
de entidades que participam de uma determinada relação, tornando
mais fácil estabelecer as restrições desta participação.

Mapeamento de Restrições
Um esquema E-R pode definir certas restrições as quais o conteúdo do BD
deve respeitar:

• Mapeamento de cardinalidades.
• Dependências de existência.

Mapeamento das Cardinalidades


Expressa o número de entidades às quais uma outra entidade pode estar
associada via um conjunto de relacionamentos.
Para os conjuntos de relacionamentos binários podemos definir as
seguintes cardinalidades:

• um para um
• um para muitos
• muitos para um
• muitos para muitos

U m par a um
Uma entidade em A está associada no máximo com uma entidade em
B, e uma entidade em B está associada com no máximo uma entidade
em A.

a1 b1

a2 b2

a3 b3

a4 b4

Um para muitos
Uma entidade em A está associada com várias entidades em B. Uma
entidade em B, entretanto, deve estar associada no máximo a uma
entidade em A

a1 b1

a2 b2

a3 b3

b4
Muitos para um
Uma entidade em A está associada a no máximo uma entidade em B.
Uma entidade em B, entretanto, pode estar associada a um número
qualquer de entidades em A

a1

a2 b1

a3 b2

a4

Muitos para muitos


Uma entidade em A está associada a qualquer número de entidades
em B, e uma entidade em B está associada a um número qualquer de
entidades em A

a1 b1

a2 b2

a3 b3

a4 b4
Dependência de Existência
Se a existência da entidade X depende da existência da entidade Y, então X é
dito ser dependente da existência de Y.

Operacionalmente, se Y for excluído, o mesmo deve acontecer com X.


A entidade Y é chamada entidade dominante e a Y é chamada entidade
subordinada.

l A participação de um conjunto de entidades E no conjunto de


relacionamento R é dita total se todas as entidades em E participam em
pelo menos um relacionamento R.
l Se somente algumas entidades em E participam no relacionamento R, a
participação do conjunto de entidades E no relacionamento R é dito
parcial.

Exemplo:

Relacionamento Cliente – Empréstimo: participação parcial


Relacionamento Pagamento – Empréstimo: participação total

A participação total está estreitamente relacionada à dependência de


existência.

Chaves
O conceito de chave é utilizado para fazer a distinção entre entidades e
relacionamentos individuais, na perspectiva do banco de dados.

Chaves em conj. de entidades


• Superchave: conj. de atributos de um conj. de entidades que identifique
univocamente cada entidade,
• Chave: superchave da qual não se pode retirar nenhum atributo e ainda
preservar-se a propriedade de identificação unívoca.

Exemplo:

Conj. entidades Aluno com atributos nome, idade, curso e número.


• superchave(Aluno) = {nome, curso, número}
• chave(Aluno) = {número}
Em geral, adota-se a convenção de que os atributos chaves são grifados. Se
mais de um atributo participa de uma mesma chave, grifam-se todos os
atributos participantes com o mesmo n.o de traços.

• Chave candidata: é comum que exista mais de uma chave para uma
mesma entidade; cada uma delas é chamada chave candidata.

Exemplo:

Conj. entidades Aluno com atributos nome, idade, curso e número.


chave(Aluno) = {número}
chave(Aluno) = {nome}

Havendo mais do que uma chave candidata, escolhe-se uma para ser a
chave primária. Essa é a chave que se pressupõe ser a mais freqüente-
mente utilizada para acessos nessa entidade, e é indicada grifando-se com
apenas um traço.

Chaves em conj. de relacionamentos


Seja R um conj. de relacionamentos envolvendo o conj. de entidades E1,
E2, ..., En. Então:

chave_primária(E1) ∪ chave_primária(E2) ∪ ... ∪ chave_primaria(En)

forma uma superchave do conjunto de relacionamentos R.

Já a estrutura de chave primária depende do mapeamento de cardinalidades


do conjunto de relacionamentos:

• Muitos para muitos = união das chaves primárias das


entidades participantes

• Muitos para um = chaves da entidade “muitos”.

• Um para um = chave primária de qualquer umas das


entidades participantes.
Conjunto de Entidades Fracas
Um conjunto de entidades pode não ter atributos suficientes para formar
uma chave primária. Esse conjunto de entidades é denominado entidade
fraca (ou subordinada). Entidades que possuem chave primária são
denominadas entidades fortes (ou dominantes).

Exemplo:

Conj. de entidades Pagamento, relacionado a Empréstimo, com os


seguintes atributos:

• num_parcela
• data_pagto
• valor
O atributo num_parcela, apesar de identificar o pagamento, pode se repetir
em relação aos vários empréstimos. Esse atributo que identifica uma
entidade fraca, em relação à chave primária da entidade dominante, é
denominado identificador ou chave parcial.

Representações – Diagrama E-R

l Retângulo: conjunto de entidades

l Retângulo duplo: entidade fraca

l Elipses: atributos

l Losangos: conjunto de relacionamentos

l Linha: unem os elementos

l Elipses duplas: atributos multivalorados

l Linhas duplas: participação total de entidade em conj. de


relacionamentos.
Exemplos

1. D-ER Clientes

nome rua
data_acesso
número saldo

rg cidade

M depositante N
cliente conta

2. D-ER Empréstimos

valor

num_parcela data_pagto
total o
num_emp

M
1
emprestimo emp_pag pagamento

Você também pode gostar