Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Aula 3 - Modelo Entidade-Relacionamento 
 
 
1. Conceitos básicos 
 
O modelo Entidade-Relacionamento (E-R) tem por base a 
percepção 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 
especificação do esquema da empresa que representa toda a 
estrutura lógica. O modelo E-R é um dos modelos com maior 
capacidade semântica; que se referem a tenativa de 
representar o significado dos dados. 
 
Existem três noções básicas empregadas pelo modelo E-R: 
conjunto de entidades, conjunto de relacionamentos, e os 
atributos. 
 
1.1. Conjunto de Entidades 
 
Uma entidade é uma coisa ou um objeto do mundo real que pode 
ser identificada de forma unívoca em relação a todos os outros 
objetos. Por exemplo, cada pessoa na empresa é 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 empréstimo, uma viagem de 
férias ou um conceito. 
 
 
 
 
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 são chamadas de extensões do conjunto de entidades. 
 
Uma entidade é representada por um conjunto de atributos. 
Atributos são propriedades descritivas de cada membro de um 
conjunto de entidades. 
 
Formalmente um atributo de um conjunto de entidades é uma 
função que relaciona o conjunto de entidades a seu domínio. Um 
atributo, como é usado no modelo E-R, pode ser caracterizado 
pelos seguintes tipos: 
 
• Atributos Simples ou compostos. Os atributos simples 
são aqueles que não são divididos em partes. Os 
compostos podem ser divididos em partes, por exemplo, 
nome_cliente, pode ser estruturado em prenome, 
nome_intermediário, e sobrenome. Os atributos 
compostos ajudam-nos a agrupar atributos 
correlacionados tornando o modelo mais claro. 
• Atributos monovalorados ou multivalorados. Um exemplo 
de um atributo monovalorado poderia ser o atributo 
número_empréstimo, o qual teria associado apenas um 
número de empréstimo. Pode acontecer, no entanto, que 
uma determinada instância possua um conjunto de valores 
para uma única entidade. Por exemplo, o atributo 
nome_dependente, da entidade empregado, pode ter um, 
nenhum ou vários dependentes cadastrados. 
• Atributos nulos. Um atributo é nulo quando uma entidade 
não apresenta valor para o mesmo. Por exemplo, se um 
empregado não possui dependentes o valor do atributo 
 
 
 
nome_dependente será nulo, significando que este 
atributo não é aplicável a esta instância 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 funcionário pode 
ser calculada pela data de seu aniversário. 
 
 
2. Conjunto de Relacionamentos 
 
Um relacionamento é uma associação entre uma ou várias 
entidades. Um conjunto de relacionamentos é um conjunto 
formado por relacionamentos de um mesmo tipo. 
 
Considere dois relacionamentos de entidades cliente e 
empréstimo. O conjunto de relacionamentos devedor denota a 
associação entre clientes e empréstimos bancários contraídos 
pelo cliente. 
 
A associação entre os conjuntos de entidades é referida como 
uma participação, isto é, o conjunto de entidades E1, E2,..., En 
participa do conjunto de relacionamentos R. 
 
A função que uma entidade desempenha em um relacionamento 
é chamada papel. Uma vez que os conjuntos de entidades 
participantes em um conjunto de relacionamentos são 
geralmente distintos, papéis são implícitos, e não são em geral, 
especificados. Mas, são úteis quando o relacionamento precisa 
ser esclarecido. 
 
Em conjuntos de relacionamentos recursivos, nomes explícitos 
de papéis muitas vezes são necessários. 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. 
 
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 binário é 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 binário. Algumas vezes, no entanto, aparecem 
relacionamentos que envolvem mais de dois conjuntos de 
entidades. Como exemplo, podemos combinar os conjuntos de 
relacionamentos devedor e agência_empréstimo formando o 
conjunto de relacionamentos CEA, entre as entidades Cliente, 
Empréstimo e Agência. 
 
O número de entidades que participam de um relacionamento 
define o grau deste relacionamento. Um conjunto de 
relacionamento binário tem grau 2, e um ternário, grau 3. 
 
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 número de telefone a ele 
associado. Caso seja modelado como entidade, reflete que um 
 
 
 
empregado pode ter vários (ou nenhum) números de telefones a 
ele associado. 
 
Já o atributo nome_empregado não poderia nunca ser modelado 
como entidade. 
 
Infelizmente não existe uma resposta simples para sabermos 
do que constitui um atributo e o que constitui uma entidade. As 
distinções vão depender da estrutura geral que está sendo 
modelada. 
 
Conjuntos de Entidades ou de Relacionamentos? 
 
Nem sempre fica claro se devemos modelar um objeto como um 
conjunto de entidades ou de relacionamentos. 
 
Por exemplo, considere o problema do empréstimo bancário 
representado como um relacionamento entre clientes e 
agências, com número_empréstimo e conta como atributos. 
Cada empréstimo é representado como um relacionamento 
entre um cliente e uma agência. 
 
Se todo empréstimo é tomado por exatamente um cliente e 
está associado à exatamente uma agência, podemos resolver o 
projeto de modo satisfatório, representando empréstimo como 
relacionamento. Mas, considere que vários clientes tomem um 
mesmo empréstimo em conjunto. Então, nesse caso, é 
necessário definir um relacionamento em separado para cada 
componente do empréstimo conjunto. Desta forma, os atributos 
descritivos numero_empréstimo e conta precisarão ser 
replicados para cada um dos relacionamentos. Os problemas que 
surgem devido a esta replicação são: (1) os dados são 
armazenados diversas vezes, desperdiçando espaço em 
 
 
 
memória, e (2) as atualizações deixam potencialmente os dados 
em estado inconsistente. Ao descrever empréstimo como uma 
entidade, este problema de replicação desaparece. 
 
Relacionamentos n-ésimos. 
 
Uma outra característica importante que diz respeito a 
relacionamentos, é que sempre é possível recompor um conjunto 
de relacionamentos não-binário, por um número de 
relacionamentos binários distintos. Mas, pode ser necessária a 
criação de um atributo de identificação para o conjunto de 
entidades criado para substituir o conjunto de relacionamentos. 
Além disso, um conjunto de relacionamentos n-ésimo mostra 
claramente todos os conjuntos de entidades que participam de 
uma determinada relação. O projeto correspondente usando 
somente relacionamentos binários torna mais difícil 
estabelecer as restrições desta participação. 
 
3. Mapeamento de Restrições 
3.1 Cardinalidade 
 
O esquema E-R de uma empresa pode definir certas restrições 
as quais o conteúdo do banco de dados deverespeitar. 
Exemplos de restrições são: o mapeamento de cardinalidades e 
a existência de dependências. 
 
O mapeamento de cardinalidades expressa o número de 
entidades às quais outras entidades podem estar associadas 
através de um conjunto de relacionamentos. Para um conjunto 
de relacionamentos binário, o mapeamento de cardinalidades 
segue as instruções abaixo: 
 
 
 
 
• Um para um. Uma entidade em A está associada no 
máximo a uma entidade em B, e uma entidade em B está 
associada no máximo a uma entidade em A. 
 
• Um para muitos. Uma entidade em A está associada a 
várias entidades em B. Uma entidade em B deve estar 
associada a uma única entidade em A. 
 
 
a1
a2
a3
a4
b1
b2
b3
b4
(a)
a1
a2
a3
b1
b2
b3
b4
b5
(b)
A B A B
 
 
Figura 1 – Mapeamento de cardinalidades. (a) Um para 
um. (b) Um para muitos. 
 
 
• 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. 
 
 
 
 
• 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
a2
a3
a4
b1
b2
b3
(a)
a1
a2
a3
b1
b2
b3
b4
(b)
A B A B
a5 a4
 
 
Figura 2 – Mpeamento de Cardinalidade. (a) Muitos para 
um. (b) Muitos para Muitos. 
 
O mapeamento de cardinalidade para um conjunto de 
relacionamentos em particular é obviamente dependente das 
situações reais que estão sendo modeladas. 
 
O rateio de cardinalidades de um relacionamento pode 
afetar a colocação dos atributos nos relacionamentos. 
Conjuntos de relacionamentos um para um, ou um para 
muitos devem associar os atributos a uma das entidades 
participantes. Considere o caso das entidades cliente e 
conta, e o relacionamento depositante. O atributo data-
acesso deverá estar associado à entidade conta. 
 
 
 
 
3.2 Dependência de Existência 
 
Uma classe importante de restrições á a dependência de 
existência. Se a existência da entidade x depende da 
existência da entidade y, então x é dito dependente da 
existência de y. E se y for excluído, o mesmo deve acontecer 
com x. A entidade y é chamada de entidade dominante e a x é 
chamada entidade subordinada. Como exemplo, considere o 
conjunto de entidades empréstimo e o conjunto de entidades 
pagamento. Toda entidade pagamento está associada a uma 
entidade empréstimo. Se uma entidade empréstimo é excluída, 
todas as entidades pagamento a ela associada devem ser 
excluídas também. Se por outro lado, uma entidade pagamento 
for excluída, a entidade empréstimo não será afetada. 
Portanto, a entidade empréstimo é dominante e a entidade 
pagamento subordinada. 
 
A participação 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 
participação do conjunto de entidades é dito parcial. A 
participação total está relacionada à existência de 
dependência. 
 
4. 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 distinção. 
 
4.1 Conjunto de Entidades 
 
 
 
 
Uma superchave é um conjunto de um ou mais atributos que, 
tomados coletivamente, nos permitem identificar de maneira 
unívoca, uma entidade em um conjunto de entidades. Ex. 
seguro_social, e a combinação de seguro_social com 
nome_cliente. 
 
Se K é uma superchave, então qualquer superconjunto de K é 
também uma superchave. Mas, queremos supoerchaves para as 
quais nenhuma subconjunto possa ser uma superchave. Essas 
superchaves são chamadas de chaves candidatas. 
 
O termo chave primária é o termon usado para caracterizar a 
chave candidata escolhida pelo projetista do banco como sendo 
de significado especial para a identificação das entidades . A 
especificação de uma chave representa uma restrição ao mundo 
real da empresa que está sendo modelada. 
 
 
4.2 Conjunto de Relacionamentos 
 
A chave primária de um conjunto de entidades permite-nos 
distinguir as várias entidades de um conjunto. Precisamos 
definir um mecanimo para a indetificação dos vários 
relacionamentos em um conjunto de relacionamentos. Seja R um 
conjunto de relacionamentos envolvendo os conjuntos de 
entidades E1, E2, ..., Em. Seja uma chave_primária (Ei) 
denotando o conjunto de atributos que formam a chave 
primária do conjunto de entidades Ei. Se o relacionamento R 
não possui atributos, então o conjunto de atributos abaixo 
descreve um relacionamento individual do conjunto R: 
 
 
 
 
 Chave_primária (E1) U Chave_primária (E2) U ... U 
Chave_primária (En) 
 
A estrutura da chave primária para o conjunto de 
relacionamentos depende do mapeamento da cardinalidade do 
mesmo. Se o relacionamento é muitos para muitos, a chave 
primária do relacionamento constitui a união das chaves 
primárias das duas entidades. Se o relacionamento é muitos 
para um, então a chave primária da entidade de menor 
cardinalidade pode identificar o relacionamento. Se o 
relacionamento é um para um, qualquer uma das chaves pode ser 
usada.

Mais conteúdos dessa disciplina