Capítulo 2: Modelo ER
Conjuntos de entidades
Conjuntos de relações
Aspectos do desenho
Restrições
Chaves
Diagrama ER
Extensões ao modelo ER
Desenho dum Esquema de Base de Dados ER
Database System Concepts
2.1.1
©Silberschatz, Korth and Sudarshan (Modificado)
Conjuntos de entidades
Uma base de dados pode ser modelada como:
uma colecção de entidades,
relações (ou associações) entre entidades.
Uma entidade é um objecto existente e que é distinguível de
todos os outros objectos:
Exemplo: determinada pessoa, empresa, evento, planta
As entidades possuem atributos
Exemplo: as pessoas têm nomes e endereços
Um conjunto de entidades é um conjunto de entidades do
mesmo tipo e que partilham as mesmas propriedades.
Exemplo: o conjunto de todas as pessoas, empresas,
árvores, feriados
Database System Concepts
2.1.2
©Silberschatz, Korth and Sudarshan (Modificado)
Conjuntos de Entidades customer e loan
customer-id customer- customer- customername street
city
Database System Concepts
2.1.3
loan- amount
number
©Silberschatz, Korth and Sudarshan (Modificado)
Atributos
Uma entidade é representada por um conjunto de atributos, ou seja,
propriedades descritivas possuídas por todos os membros de um
conjunto de entidades.
Exemplo:
customer = (customer-id, customer-name,
customer-street, customer-city)
loan = (loan-number, amount)
Domínio – o conjunto de valores permitidos para cada atributo (e.g. o
domínio de customer-name pode ser o conjunto de todas as strings de
no máximo 50 caracteres)
Tipos de atributos:
Atributos simples e compostos.
Atributos univalor e multivalor
E.g. atributo multivalor: números de telefone
Atributos derivados
Pode ser calculado a partir de outros atributos
E.g. idade, a partir da data de nascimento
Database System Concepts
2.1.4
©Silberschatz, Korth and Sudarshan (Modificado)
Atributos Compostos
Database System Concepts
2.1.5
©Silberschatz, Korth and Sudarshan (Modificado)
Conjuntos de Relações
Uma relação é uma associação entre várias entidades
Exemplo: A associação entre o cliente Hayes e a conta A-102
Hayes
depositante
A-102
entidade cliente
relação
entidade conta
Um conjunto de relações é uma relação matemática entre n 2
entidades, cada uma pertencente a um conj. de entidades
{(e1, e2, … en) | e1 E1, e2 E2, …, en En}
em que (e1, e2, …, en) é uma relação
Exemplo:
(Hayes, A-102) depositante
Database System Concepts
2.1.6
©Silberschatz, Korth and Sudarshan (Modificado)
Conjunto de relações borrower
Database System Concepts
2.1.7
©Silberschatz, Korth and Sudarshan (Modificado)
Conjunto de Relações (Cont.)
Um atributo pode ser uma propriedade de um conjunto de relações.
Por exemplo, o conj, de relações depositante entre os conjs. de
entidades customer e account pode ter um atributo access-date
Database System Concepts
2.1.8
©Silberschatz, Korth and Sudarshan (Modificado)
Restrições de Mapeamento (Cardinalidades)
Restringem o número de entidades com as quais pode estar
associada uma outra entidade num determinado conjunto de
relações.
Para um conjunto de relações binárias a restrição de
mapeamento pode ser uma das seguintes:
um para um (ou 1:1)
um para muitos (ou um para vários, ou 1:N)
muitos para um (ou vários para 1, ou N:1)
muitos para muitos (ou vários para vários, N:M)
Database System Concepts
2.1.9
©Silberschatz, Korth and Sudarshan (Modificado)
Restrição 1:1
Proibe que uma entidade de A
se relacione com mais do que
uma entidade de B.
Proibe que uma entidade de B
se relacione com mais do que
uma entidade de B.
Exemplo: Numa empresa um
empregado tem no máximo um
carro, e um carro é atribuído a
no máximo um empregado
Nota: Alguns elementos de A ou B podem não estar
relacionados com elementos do outro conjunto.
Database System Concepts
2.1.10
©Silberschatz, Korth and Sudarshan (Modificado)
Restrição N:1
Proibe que uma entidade de A
se relacione com mais do que
uma entidade de B.
Permite que uma entidade de B
se relacione com mais do que
uma entidade de B.
Exemplo: Um aluno está
associado a no máximo uma
turma, mas uma turma pode
estar associada a mais que um
aluno
Nota: Alguns elementos de A ou B podem não estar
relacionados com elementos do outro conjunto.
Database System Concepts
2.1.11
©Silberschatz, Korth and Sudarshan (Modificado)
“Restrição” N:M
Não impõe restrições
Permite que uma entidade de A
se relacione com mais do que
uma entidade de B.
Permite que uma entidade de B
se relacione com mais do que
uma entidade de B.
Exemplo: Uma conta pode estar
associada a mais do que um
cliente, e um cliente pode ter
mais do que uma conta
associada
Nota: Alguns elementos de A ou B podem não estar
relacionados com elementos do outro conjunto.
Database System Concepts
2.1.12
©Silberschatz, Korth and Sudarshan (Modificado)
As cardinalidades afectam o desenho
access-date pode ser atributo de account, em vez de um atributo
da relação, se cada conta tiver apenas um cliente
I.e., a relação entre conta e cliente é muitos para um, ou
equivalentemente, entre cliente e conta é um para muitos.
Database System Concepts
2.1.13
©Silberschatz, Korth and Sudarshan (Modificado)
Chaves
Uma super-chave de um conjunto de entidades é um
conjunto de um ou mais atributos cujos valores determinam
univocamente cada entidade.
A determinação unívoca, depende do contexto em causa, e
é imposta como restrição.
Uma chave candidata de um conjunto de entidades é uma
super-chave minimal
Customer-id é uma chave candidata de customer
account-number é uma chave candidata de account
Apesar de poderem existir várias chaves candidatas, uma
das chaves candidatas é seleccionada para ser a chave
primária.
Database System Concepts
2.1.14
©Silberschatz, Korth and Sudarshan (Modificado)
Diagramas ER (DER)
Rectângulos representam conjuntos de entidades.
Losangos representam conjuntos de associações.
Linhas ligam atributos aos conjuntos de entidades e conjuntos de
entidades a conjuntos de associações.
Elipses representam atributos
Elipses duplas representam atributos multivalor.
Elipses tracejadas denotam atributos derivados.
Sublinhado representa atributos constituintes da chave primária
Database System Concepts
2.1.15
©Silberschatz, Korth and Sudarshan (Modificado)
DER com atributos compostos, multivalor e derivados
Database System Concepts
2.1.16
©Silberschatz, Korth and Sudarshan (Modificado)
Conjs. de Relação com Atributos
Database System Concepts
2.1.17
©Silberschatz, Korth and Sudarshan (Modificado)
Papéis
Os conjuntos de entidades participantes numa relação não são
obrigatoriamente distintos:
As etiquetas “manager” e “worker” são designadas papéis;
especificam como as entidades employee interagem por intermédio do
conjunto de relações works-for.
Os papéis são indicadas nos DERs anotando as linhas que ligam os
losangos aos rectângulos.
Os papéis são opcionais, sendo utilizados para clarificar a semântica
da relação.
Database System Concepts
2.1.18
©Silberschatz, Korth and Sudarshan (Modificado)
Restrições de Mapeamento
As restrições de mapeamento são expressas desenhando uma
seta (), significando “um,” ou uma linha (—), significando
“muitos,” entre o conj. de relações e o conj. de entidades.
E.g.: relação um para um:
Um cliente está associado no máximo com um empréstimo (loan)
através da relação mutuário (borrower).
Um empréstimo está associado no máximo com um cliente.
Database System Concepts
2.1.19
©Silberschatz, Korth and Sudarshan (Modificado)
Associações um para muitos
Na relação um para muitos, um empréstimo está associado no
máximo com um cliente através de mutuário, enquanto que um
cliente está associado com vários empréstimos (podendo ser 0)
através de mutuário
Database System Concepts
2.1.20
©Silberschatz, Korth and Sudarshan (Modificado)
Associações muitos para muitos
Um cliente está associado com vários empréstimos
(possivelmente 0) através de mutuário
Um empréstimo está associado com vários clientes
(possivelmente 0) através de mutuário
Database System Concepts
2.1.21
©Silberschatz, Korth and Sudarshan (Modificado)
Participação de um Conj. de Entidades
num Conj. de Relação
Participação total (indicado por uma linha dupla): toda a entidade do
conjunto de entidades participa em pelo menos uma relação do
conjunto de relações.
E.g. a participação de loan em borrower é total
todo o empréstimo tem de ter um cliente associado
Participação parcial: algumas entidades podem não participar em
qualquer relação do conjunto de relações.
E.g. a participação de customer em borrower é parcial
Database System Concepts
2.1.22
©Silberschatz, Korth and Sudarshan (Modificado)