Anda di halaman 1dari 57

4

Projeto de
Banco de Dados

Carlos Alberto Heuser


Construindo modelos ER

Capítulo 3

Obs.: Material adaptado pela Profa. Roberta para disciplina Fundamentos de BD


Propriedades de modelos ER

• Modelo ER é um modelo formal

• Poder de expressão é limitado

• Equivalência entre modelos

©Carlos A. Heuser 3
Modelo ER é um modelo formal

• Modelo preciso, não ambíguo.

• Diferentes leitores de um mesmo modelo ER devem sempre


entender exatamente o mesmo.

• DER pode ser usado como entrada a uma ferramenta CASE.

©Carlos A. Heuser 4
Poder de expressão limitado

• Modelo ER apresenta apenas algumas propriedades de um banco de


dados:

– Foi concebido para o projeto da estrutura de um BD relacional.

• Poder de expressão limitado para expressar restrições de integridade


genéricas (regras de negócio).

©Carlos A. Heuser 5
Poder de expressão limitado - exemplo

p3
p1 p7
p6 p8
PESSOA p5
p2 p4

m
1 1 e
marido esposa
CASAMENTO
p1,p3

©Carlos A. Heuser 6
Poder de expressão limitado - exemplo

p3
p1 p7
p6 p8
PESSOA p5
p2 p4

m
1 1 e
marido esposa m e

CASAMENTO
p1,p3

p3,p6

©Carlos A. Heuser 7
Poder de expressão limitado - exemplo

p3
p1 p7
p6 p8
PESSOA p5
p2 p4

m
1 1 e
marido esposa m em e

CASAMENTO
p1,p3

p6,p8
p3,p6

©Carlos A. Heuser 8
Poder de expressão limitado - exemplo

p3
p1 p7
p6 p8
PESSOA p5
p2 p4

m m
1 1 e e e
marido esposa m em

CASAMENTO p5,p5
p1,p3

p6,p8
p3,p6

©Carlos A. Heuser 9
Poder de expressão limitado – outro exemplo

e3
e7 e1
e1
e6 e8
EMPREGADO e2 e4 e5 e3
supervisor supervisionado
super- super-
1 n visor visionado

SUPERVISÃO

e1,e3

©Carlos A. Heuser 10
Poder de expressão limitado - exemplo

e3
e7 e1
e1
e6 e8
EMPREGADO e2 e4 e5 e3
supervisor supervisionado super- super-
super- super- visor
1 n visor visionado
visionado e5

SUPERVISÃO

e1,e3 e3,e5

©Carlos A. Heuser 11
Poder de expressão limitado - exemplo

e3
e7 e1
e1
e6 e8
EMPREGADO e2 e4 e5 e3 ?
supervisor supervisionado super- super-
super- super- visor visionado super-
1 n visor visionado visor
e5

SUPERVISÃO

supervisionado e1,e3 e3,e5 e5,e1

©Carlos A. Heuser 12
Analisar...

Relacionamento que associa um produto


de uma indústria com seus componentes.

Restrição a ser imposta: um produto não


pode aparecer na lista de seus
componentes.

O modelo apresentado na figura contém


esta restrição (um produto não pode
aparecer na lista de seus componentes)?
Justifique.

13
Analisar...

Resposta: Não

É possível alterar o modelo em questão


para incluir esta restrição se
considerarmos três níveis de profundidade
da hierarquia de composição de cada
produto (produtos prontos, produtos
semiacabados e matérias-primas)?

Caso afirmativo, apresente a solução.

14
Analisar...

15
Equivalência entre modelos

• Dois modelos ER diferentes podem ser equivalentes.

• Modelos equivalentes:

– expressam e modelam a mesma realidade.

• Para fins de projeto de BD, dois modelos ER são equivalentes


quando:

– geram o mesmo esquema de BD.

• Considerar um conjunto de regras de tradução de modelos ER para


modelos lógicos de BD.

©Carlos A. Heuser 16
Exemplo de modelos equivalentes

Modelo que representa um conceito através de um


relacionamento n:n

=
Modelo que representa o mesmo conceito por meio de
uma entidade

17
Exemplo de equivalência entre modelos

a) CONSULTA como relacionamento n:n

(1,n) (0,n)
MÉDICO CONSULTA PACIENTE

código nome data/hora código nome

©Carlos A. Heuser 18
Modelo equivalente

b) CONSULTA como entidade

MÉDICO PACIENTE
(1,1) (1,1)
código nome código nome
(0,n) (1,n)

CONSULTA

data/hora

©Carlos A. Heuser 19
Transformação de relacionamento n:n em entidade

1. O relacionamento n:n é representado como uma entidade.

20
Transformação de relacionamento n:n em entidade

2. A entidade criada é relacionada às entidades que originalmente


participavam do relacionamento.

21
Transformação de relacionamento n:n em entidade

3. A entidade criada tem como identificador:

– as entidades que originalmente participavam do relacionamento.

22
Transformação de relacionamento n:n em entidade

3. A entidade criada tem como identificador:

– os atributos que eram identificadores do relacionamento original


(caso o relacionamento original tivesse atributos identificadores).

23
Transformação de relacionamento n:n em entidade

4. Nos relacionamentos de que participa, a cardinalidade da entidade


criada é sempre (1,1).

24
Transformação de relacionamento n:n em entidade

5. As cardinalidades das entidades que eram originalmente associadas


pelo relacionamento são transcritas ao novo modelo.

25
Transformação de relacionamento n:n em entidade

26
Modelo ER sem relacionamento n:n

• Relacionamento n:n pode ser transformado em entidade.

• É possível construir modelos sem relacionamentos n:n.

• Há variantes da abordagem ER, que

– excluem o uso de relacionamentos n:n, ou

– excluem apenas o uso de relacionamentos n:n com atributos

• Exemplo:

– várias abordagens baseadas na Engenharia de Informações (ver


adiante)

©Carlos A. Heuser 27
Identificando construções

• Determinação da construção da abordagem ER (entidade,


relacionamento,...) que será usada para modelar um objeto de uma
realidade:

– Não pode ser feita através da observação do objeto isoladamente.

– É necessário conhecer o contexto (modelo dentro do qual o objeto


aparece).

©Carlos A. Heuser 28
Identificando construções
Recomendação geral

• Decisão por uma construção para a modelagem de um objeto está


sujeita a alteração durante a modelagem.

• Não despender um tempo excessivo em longas discussões sobre


como modelar um objeto.

• Desenvolvimento do modelo e o aprendizado sobre a realidade irão


refinando e aperfeiçoando o modelo.

©Carlos A. Heuser 29
Atributo versus entidade relacionada

Como deve ser modelada a cor de um automóvel?

AUTOMÓVEL

cor

atributo?

©Carlos A. Heuser 30
Atributo versus entidade relacionada

AUTOMÓVEL AUTOMÓVEL
(0,n)
cor

(1,1)
COR

ou entidade
relacionada?

©Carlos A. Heuser 31
Atributo versus entidade relacionada
critérios (1)

• Objeto está relacionado com outros objetos:

– deve ser modelado como entidade.

• Caso contrário:

– pode ser modelado como atributo.

©Carlos A. Heuser 32
Atributo versus entidade relacionada
critérios (2)

• Conjunto de valores de um determinado objeto é fixo (domínio fixo):

– pode ser modelado como atributo.

• Existem transações no sistema que alteram o conjunto de valores do


objeto (domínio variável):

– não deve ser modelado como atributo.

©Carlos A. Heuser 33
Analisar....

Deseja-se modelar os clientes de uma organização. Cada


cliente possui um identificador, um nome, um endereço e
um país. Discuta as vantagens e desvantagens das duas
alternativas de modelagem de país:

Como atributo da entidade cliente ou como entidade


relacionada a cliente?

34
Atributo versus generalização/especialização

• Questão:

– Modelar um determinado objeto, exemplo a categoria funcional de


cada empregado de uma empresa:

• como atributo?

(categoria funcional como atributo da entidade EMPREGADO)

• ou como uma especialização?

(cada categoria funcional corresponde a uma especialização da


entidade empregado)

©Carlos A. Heuser 35
Atributo versus generalização/especialização

• Especialização deve ser usada quando as classes especializadas de


entidades possuem propriedades particulares:

– atributos

– relacionamentos

– generalizações/especializações

©Carlos A. Heuser 36
Atributo versus generalização/especialização

nome código

EMPREGADO

categoria
funcional categoria
funcional é
um atributo?

©Carlos A. Heuser 37
Atributo versus generalização/especialização

nome código nome código

ou é uma EMPREGADO
EMPREGADO
EMPREGADO
especialização?
t
categoria
funcional
MOTORISTA ENGENHEIRO

número da data de CREA


carteira de expiração da
habilitação carteira de
habilitação

©Carlos A. Heuser 38
Entidade versus especialização

• Questão:

– Deve-se modelar um determinado objeto como:

uma entidade relacionada a outra?

ou como uma especialização?

• Observar o identificador do objeto em questão:

– Lembrar que uma entidade especializada herda o identificador de


sua entidade genérica.

©Carlos A. Heuser 39
Entidade versus especialização

nome data de nascimento

número
endereço
do cartão
PESSOA

ct

escola
secundária
SERVIDOR ALUNO
cargo data de ingresso

©Carlos A. Heuser 40
Entidade versus especialização

nome data de nascimento

número
endereço
do cartão
PESSOA

ct

escola
secundária
Dados da pessoa
SERVIDOR como servidor –
ALUNO
Uma pessoa é
cargo data de ingresso
somente uma vez
servidor

©Carlos A. Heuser 41
Entidade versus especialização

nome data de nascimento

número
endereço
do cartão
PESSOA
1

escola
número Pessoa pode tersecundária
n
vários cargos –
SERVIDOR CARGO ALUNO
Uma instância por
cargo do servidor
data de ingresso
cargo
data início
data fim

©Carlos A. Heuser 42
Entidade versus especialização

nome data de nascimento

número
endereço
do cartão
PESSOA

escola
secundária
Dados da pessoa
SERVIDOR ALUNO
como aluno –
cargo por
uma instância data de ingresso
pessoa

©Carlos A. Heuser 43
Entidade versus especialização

nome data de nascimento

número
endereço
do cartão
PESSOA

ct

escola secundária

ALUNO
Dados da pessoa
SERVIDOR 1
como aluno –
cargo por
uma instância
n
pessoa
INGRESSO
data de ingresso
©Carlos A. Heuser 44
Entidade versus especialização

nome data de nascimento

número
endereço
do cartão
PESSOA

ct

escola secundária

ALUNO
SERVIDOR 1
cargo
n
Dados de cada
INGRESSO
ingresso do aluno
data de ingresso
©Carlos A. Heuser 45
Atributo opcional

• Atributo opcional:

– Pode indicar subconjunto de entidade, que pode ser modelado mais


corretamente através de especialização.

tipo de
empregado
nome
código

data de expiração da
EMPREGADO carteira de habilitação (0,1)

CREA CRM número da carteira


(0,1) (0,1) de habilitação (0,1)

©Carlos A. Heuser 46
Atributo opcional

tipo de
empregado
nome
código
data de expiração da
EMPREGADO carteira de habilitação (0,1) nome código
CREACRM número da carteira
(0,1) (0,1) de habilitação (0,1)
EMPREGADO
t

MOTORISTA MÉDICO ENGENHEIRO

número da data de CRM CREA


carteira de expiração da
habilitação carteira de
habilitação
©Carlos A. Heuser 47
Atributo opcional

tipo de
empregado
nome
código
data de expiração da
EMPREGADO carteira de habilitação (0,1) nome código
CREACRM número da carteira
(0,1) (0,1) de habilitação (0,1)
EMPREGADO
t

MOTORISTA MÉDICO ENGENHEIRO

número da data de CRM CREA


carteira de expiração da
habilitação carteira de
habilitação
©Carlos A. Heuser 48
Atributo opcional

tipo de
empregado
nome
código

data de expiração da
EMPREGADO carteira de habilitação (0,1) nome código
CREACRM número da carteira
(0,1) (0,1) de habilitação (0,1)
EMPREGADO
t

MOTORISTA MÉDICO ENGENHEIRO

número da data de CRM CREA


carteira de expiração da
habilitação carteira de
habilitação
©Carlos A. Heuser 49
Atributo opcional

tipo de
empregado
nome
código

data de expiração da
EMPREGADO carteira de habilitação (0,1) nome código
CREACRM número da carteira
(0,1) (0,1) de habilitação (0,1)
EMPREGADO
t

MOTORISTA MÉDICO ENGENHEIRO

número da data de CRM CREA


carteira de expiração da
habilitação carteira de
habilitação
©Carlos A. Heuser 50
Atributo multivalorado é indesejável

• SGBD relacional que segue o padrão SQL/2:

– Atributo multivalorado não possui implementação direta.

• SGBD OO ou objeto/relacional:

– Atributo multivalorado normalmente é modelado como classe


separada.

• Atributos multivalorados podem induzir a um erro de modelagem

– Ocultar entidades e relacionamentos em atributos multivalorados

©Carlos A. Heuser 51
Atributo multivalorado

EMPREGADO

lançamento pagamento (0,n)


dependente (0,n)
nome

©Carlos A. Heuser 52
Atributo multivalorado
eliminação

EMPREGADO nome

lançamento pagamento (0,n) EMPREGADO


dependente (0,n)
nome
(1,1) (1,1)

(0,n) (0,n) nome


LANÇAMENTO
DEPENDENTE
PAGAMENTO
valor
(0,n) data de
nascimento
(1,1) código
TIPO
LANÇAMENTO
descrição
©Carlos A. Heuser 53
Atributo multivalorado
eliminação

EMPREGADO nome

lançamento pagamento (0,n) EMPREGADO


dependente (0,n)
nome
(1,1) (1,1)

(0,n) (0,n) nome


LANÇAMENTO
DEPENDENTE
PAGAMENTO
valor
(0,n) data de
nascimento
(1,1) código
TIPO
LANÇAMENTO
descrição
©Carlos A. Heuser 54
Exercício

Apresente um diagrama ER que modele mais precisamente esta


realidade. Explique no que seu diagrama é mais preciso que o
mostrado na figura abaixo.

CPF CNPJ

55
Exercício

Construa um DER que modela a mesma realidade mostrada no


DER abaixo, usando apenas relacionamentos 1:n.

56
Exercício

Construa um DER que modela a mesma realidade mostrada no


DER abaixo, usando apenas relacionamentos 1:n.

57

Anda mungkin juga menyukai