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 deve respeitar.
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.
A
B
a1
b1
a2
b2
a3
b3
a4
b4
(a)
A
B
b1
a1
b2
a2
b3
a3
b4
b5
(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.
A
a1
a2
a3
B
A
B
b1
a1
b1
a2
b2
a3
b3
a4
b4
b2
a4
b3
a5
(a)
(b)
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 dataacesso 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.
Download

Aula 3 - Modelo Entidade-Relacionamento 1. Conceitos básicos O