Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o...

86
©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 1 Construindo modelos ER Capítulo 3

Transcript of Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o...

Page 1: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 1

Construindo modelos ER

Capítulo 3

Page 2: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 2

Construindo modelos ER

• Conselhos práticos

• Heurísticas

• Notações alternativas

• Processo de modelagem e alternativas

Page 3: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 3

Propriedades de modelos ER

• Modelo ER é um modelo formal

• Poder de expressão é limitado

• Eqüivalência entre modelos

Page 4: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 4

Modelo ER é um modelo formal

• Modelo preciso , não ambíguo

• Diferentes leitores de um mesmo modelo ERdevem sempre entender exatamente o mesmo

• DER pode ser usado como entrada a umaferramenta CASE

• Fundamental: todos os envolvidos devem estartreinados na sua perfeita compreensão.

• Risco: sub-utiliza ção

Page 5: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 5

Poder de expressão limitado

• Modelo ER apresenta apenas algumaspropriedades de um banco de dados– Foi concebido para o projeto da estrutura de um

BD relacional

• Pouco poderoso para expressar restri ções deintegridade (regras de negócio)

Page 6: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 6

Poder de expressão - exemplo

PESSOA

CASAMENTO

marido esposa

p1

p8

p7

p5p6

p4

p3

p2

p1,p3

p6,p8

m e

p3,p6

m

m p5,p5

1 1 e

e

e

m

Page 7: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 7

Poder de expressão limitado - exemplo

e1e8

e7

e5e6e4

e3

e2

e1,e3 e3,e5

EMPREGADO

SUPERVISÃO

1 n

supervisor supervisionadosuper-visor

super-visionado

super-visor

super-visionado

e1,e2 e3,e4

e5,e1

super-visor

super-visionado

Page 8: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 8

Exercício 3.1

Relacionamento queassocia um produto de umaindústria com seuscomponentes (em inglês,“bill-of-materials”)

Restrição que deve serimposta=um produto não podeaparecer na lista de seuscomponentes

PRODUTO

COMPOSIÇÃO

n ncomposto componente

Page 9: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 9

Exercício 3.1(continua ção)

Pergunta-se:-O modelo apresentado na figura contémesta restrição?-Caso negativo, é possível alterar o modeloem questão para incluir esta restrição, seconsiderarmos que o nível de profundidadeda hierarquia de composição de cadaproduto não excede três (tem-se apenasprodutos prontos, produtos semi-acabadose matérias-primas)? Caso afirmativo,apresente a solução.-É possível estender a solução do quesitoanterior para uma hierarquia não limitadade níveis de composição?

PRODUTO

COMPOSIÇÃO

n ncomposto componente

Page 10: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 10

Eqüivalência entre modelos

• Dois modelos ER diferentes podem serequivalentes

• Modelos equivalentes– expressam o mesmo– modelam a mesma realidade

• Para fins de projeto de BD, dois modelos ER sãoequivalentes– geram o mesmo esquema de BD

• Considerar um conjunto de regras de tradu ção demodelos ER para modelos lógicos de BD

Page 11: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 11

Exemplo de eqüivalência entremodelos

nome

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

código nome data/hora código

a) CONSULTA como relacionamento n:n

Page 12: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 12

Modelo equivalente

(1,n)(0,n)

MÉDICO

código nome

CONSULTA

data/hora

PACIENTE

nomecódigo

(1,1) (1,1)

b) CONSULTA como entidade

Page 13: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 13

Transforma ção de relacionamento n:nem entidade (1)

• O relacionamento n:n é representado como umaentidade

• A entidade criada é relacionada às entidades queoriginalmente participavam do relacionamento

• A entidade criada tem como identificador:– as entidades que originalmente participavam do

relacionamento– os atributos que eram identificadores do

relacionamento original (caso o relacionamentooriginal tivesse atributos identificadores)

Page 14: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 14

Transforma ção de relacionamento n:nem entidade (2)

• Nos relacionamentos de que participa, acardinalidade da entidade criada é sempre (1,1)

• As cardinalidades das entidades que eramoriginalmente associadas pelo relacionamentosão transcritas ao novo modelo conformemostrado na figura.

Page 15: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 15

Modelo ER sem relacionamento n:n

• Relacionamento n:n pode ser transformado ementidade

• É possível construir modelos sem relacionamentosn:n

• Há variantes da abordagem ER, que– excluem o uso de relacionamentos n:n– excluem apenas o uso de relacionamentos n:n com

atributos

• Exemplo:– várias abordagens baseadas na Engenharia de

Informa ções

Page 16: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 16

Identificando constru ções

• Determina ção da constru ção da abordagem ER(entidade, relacionamento,...) que será usada paramodelar 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)

Page 17: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 17

Identificando constru çõesRecomenda ção geral

• Decisão por uma constru ção para a modelagemde um objeto está sujeita a altera ção durante amodelagem

• Não despender um tempo excessivo em longasdiscussões sobre como modelar um objeto

• Desenvolvimento do modelo e o aprendizadosobre a realidade irão refinando e aperfei çoandoo modelo.

Page 18: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 18

Atributo versus entidade relacionada

AUTOMÓVEL

cor

AUTOMÓVEL

COR(1,1)

(0,n)ou

Page 19: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 19

Atributo versus entidade relacionadacritérios (1)

• Objeto está vinculado a outros objetos– deve ser modelado como entidade

• Caso contrário– pode ser modelado como atributo

Page 20: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 20

Atributo versus entidade relacionadacrité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 oconjunto de valores do objeto (domínio variável )– não deve ser modelado como atributo

Page 21: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 21

Exercício 3.2

Deseja-se modelar os clientes de uma organização. Cada clientepossui um identificador, um nome, um endereço e um país. Discutaas vantagens e desvantagens das duas alternativas de modelagemde país:a) Como atributo da entidade clienteb) Como entidade relacionada a cliente.

Page 22: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 22

Atributo versusgeneraliza ção/especializa ção

• Questão

• modelar um determinado objeto (por, exemplo, acategoria funcional de cada empregado de umaempresa)como atributo ?

categoria funcional como atributo da entidadeEMPREGADO)

ou como uma especializa ção?

cada cate goria funcional corresponde a umaespecializa ção da entidade empre gado)

Page 23: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 23

Atributo versusgeneraliza ção/especializa ção

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

propriedades particulares:

atributos

relacionamentos

generaliza ções/especializa ções

Page 24: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 24

Atributo versusgeneraliza ção/especializa ção

EMPREGADO

categoriafuncional

nomecódigo

EMPREGADO

nome código

MOTORISTA ENGENHEIRO

CREAnúmero dacarteira dehabilitação

data deexpiração dacarteira dehabilitação

t

Page 25: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 25

Atributo opcional

• Atributo opcional– Podem indicar subconjuntos de entidades que são

modelados mais corretamente através deespecializa ções

• Exemplo

EMPREGADO

tipo deempregado

nome

CREA(0,1)

CRM(0,1)

número da carteirade habilitação (0,1)

data de expiração dacarteira de habilitação (0,1)

código

Page 26: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 26

Atributo opcional

EMPREGADO

tipo deempregado

nome

CREA(0,1)

CRM(0,1)

número da carteirade habilitação (0,1)

data de expiração dacarteira de habilitação (0,1)

código

EMPREGADO

nome código

MOTORISTA ENGENHEIRO

CREAnúmero dacarteira dehabilitação

data deexpiração dacarteira dehabilitação

t

MÉDICO

CRM

Page 27: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 27

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 multi-valorado normalmente é modelado

como classe separada

• Atributos multivalorados podem induzir a um errode modelagem– Ocultar entidades e relacionamentos em atributos

multivalorados

Page 28: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 28

Atributo multivaloradoelimina ção

EMPREGADO

lançamento pagamento (0,n)dependente (0,n)

nome

nome

EMPREGADO

LANÇAMENTOPAGAMENTO DEPENDENTE

(0,n)

(1,1)

(0,n)

(1,1)

TIPOLANÇAMENTO

(1,1)

(0,n) valor

nome

data denascimento

código

descrição

Page 29: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 29

Exercício 3.3Apresente umdiagrama ER quemodele maisprecisamente estarealidade. Explique noque seu diagrama émais preciso que omostrado nafigura

CLIENTE

sexo (0,1)nome (0,1)

CIC(0,1)

CGC(0,1)

razão social(0,1)

data de nascimento (0,1)

código

telefone (0,n)

Page 30: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 30

Verifica ção do modelo

• Modelo deve ser correto

• Modelo deve ser completo

• Modelo deve ser livre de redundâncias

Page 31: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 31

Modelo deve ser correto

• Erros– sintáticos– semânticos

• Erros semânticos mais difíceis de verificar

• Regras de normaliza ção auxiliam na valida ção

Page 32: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 32

Exemplos de erros semânticos

• Estabelecer associa ções incorretas.– associar a uma entidade um atributo que na

realidade pertence a outra entidade

• Usar uma entidade como atributo de outraentidade

• Usar o número incorreto de entidades em umrelacionamento.– fundir em um único relacionamento ternário dois

relacionamentos binários independentes

Page 33: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 33

Modelo deve ser completo

• Deve fixar todas propriedades desejáveis dobanco de dados

• Somente pode ser verificado por alguém queconhece profundamente o sistema a serimplementado– Envolver usuário

Page 34: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 34

Verifica ção de completitude

• Forma de verificar– dados que devem ser obtidos do banco de dados

estão presentes?– todas as transa ções de modifica ção do banco de

dados podem ser executadas sobre o modelo?

• Requisito é aparentemente conflitante com a faltade poder de expressão de modelos ER

Page 35: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 35

Modelo deve ser livre de redundâncias

• Modelo deve ser mínimo, isto é não deve conterconceitos redundantes

• Tipos de redundância– Relacionamentos redundantes– Atributos redundantes

Page 36: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 36

O que fazer com constru çõesredundantes?

• Alternativas– não devem aparecer no modelo ou– devem aparecer indicadas como redundantes

• Implementa ção pode conter redundânciacontrolada de dados (performance)

Page 37: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 37

Relacionamentos redundantesFÁBRICA

DEPTO

EMPREGADO TRABALHO MÁQUINA

LOCALIZAÇÃODEPTO

ASSOCIAÇÃO SINDICATO

LOCALIZAÇÃOFÁBR

ATUAÇÃO(0,n)

(0,n)

(0,n)

(1,1)

(1,1)

(0,n) (0,n)

(0,n)

(0,n)

(1,1)

(1,1)

(0,1)

(0,n)

(0,n)F-D

D-E

Page 38: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 38

Atributos redundantes ou deriváveis

DEPARTAMENTO LOTAÇÃO EMPREGADO(1,1) n

nº de empregados

CÓDIGO

código do departamento

Page 39: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 39

Modelo deve refletir o aspectotemporal

• Dados temporais– dados que mudam ao longo do tempo e– para as quais BD mantém histórico

• Tipos de dados temporais– Atributos cujos valores modificam ao longo do

tempo– Relacionamentos que modificam ao longo do

tempo

Page 40: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 40

Atributos temporais

data valor

salário

EMPREGADO

SALÁRIO

(1,1)

(0,n)

EMPREGADO

(a)

(b)

Banco de dados contémapenas o salário atual

Banco de dados contéma história dos salários

(0,n)

Page 41: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 41

Relacionamento 1:1 temporal

MESA1

1

ALOCAÇÃO

EMPREGADO

(a)

Base de dadoscontém apenas aalocação atual

(b)

Base de dadoscontém a história dasalocações

EMPREGADO

n

n

MESA

ALOCAÇÃOdata

Page 42: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 42

Relacionamento 1:n temporal

DEPARTAMENTO1

n

LOTAÇÃO

EMPREGADO

(a) (b)

Base de dados contémapenas a lotação atual

Base de dados contéma história das lotações

EMPREGADO

n

n

LOTAÇÃOdata

DEPARTAMENTO

nº documentode lotação

nº documentode lotação

nome nome

Page 43: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 43

Relacionamento n:n temporal

CURSOn

n

INSCRIÇÃO

PARTICIPANTE

(a) (b)

Base de dados contémapenas a inscrição atual

Base de dados contéma história das inscrições

PARTICIPANTE

n

n

data

CURSO

INSCRIÇÃOdata

Page 44: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 44

Consultas a dados referentes aopassado

• Muitas vezes, informa ções referentes ao passadosão eliminadas da base de dados (arquivamento)

• Podem ser necessárias no futuro– por motivos legais– para realiza ção de auditorias– para tomada de decisões

Page 45: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 45

Dados referentes ao passadoplanejar arquivamento

• Solu ção que poderia ser considerada– reincluir as informa ções no banco de dados,

quando elas forem necessárias– problema: restri ções de integridade referencial

• Planejar informa ções estatísticas– Quando informa ções antigas são necessárias

apenas para tomada de decisões– Pode ser conveniente manter no banco de dados

informa ções compiladas e eliminar as informa çõesusadas na compila ção

Page 46: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 46

Entidade isolada

• Caso raro, mas não incorreto

• Entidade que muitas vezes aparece isolada

• Caso típico– Entidade que modela a organiza ção na qual o

sistema implementado pelo BD está embutida

Page 47: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 47

Entidade isoladaexemplo

– Exemplo: BD de uma universidade– A entidade UNIVERSIDADE pode ser necessária,

caso se deseje manter no BD alguns atributos dauniversidade

– O modelo não deveria conter o relacionamentodesta entidade com outras, como ALUNO ouCURSO

• BD modela uma única universidade

• não é necessário informar no BD em queuniversidade o aluno está inscrito ou a qualuniversidade o curso pertence

Page 48: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 48

Estabelecimento de padrões

• Modelos de dados são usados para comunica ção– com pessoas da organiza ção– com programas (ferramentas CASE, geradores de

código,…)

• É necessário estabelecer padrões de confec çãode modelos

• Na prática e na literatura– Muitas variantes de modelo ER– Variantes em

• sintaxe

• semântica

Page 49: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 49

Variantes de modelos ER

• Peter Chen (acadêmica)

• Engenharia de Informa ções

• UML

• Merise (nota ção Européia)

Page 50: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 50

Notação Engenharia de Informa ções

DEPARTAMENTO LOTAÇÃO EMPREGADO(0,n)(1,1)

DEPARTAMENTO EMPREGADOtem lotado

está lotado em

Notação para cardinalidade máxima e mínima:

Cardinalidade (mínima, máxima) 1

Cardinalidade mínima 0

Cardinalidade máxima n

Page 51: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 51

Notação Engenharia de Informa ções

• Relacionamentos representados por linha

• Conseqüências:– apenas relacionamentos binários– atributos aparecem exclusivamente em entidades

• Denomina ção de relacionamento na forma deverbo– DEPARTAMENTO tem lotado EMPREGADO– EMPREGADO está lotado em DEPARTAMENTO

Page 52: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 52

Notação Engenharia de Informa ções

• Notação para cardinalidade máxima e mínima égráfica

• Generaliza ção/especializa ção é chamada desubconjunto (subtipo) de entidades– representada através do aninhamento dos

símbolos de entidade

Page 53: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 53

Engenharia de informa çõessubtipos de entidades

EMPREGADO DEPARTAMENTO

GERENTE

SECRETÁRIA

ENGENHEIRO

PROCESSADORDE TEXTOS

tem lotadoestá lotado em

gerenciaé gerenciado por

PROJETO

está alocado emtem alocado

é dominado pordomina

Page 54: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 54

Exercício 3.4

• Transformar o modelo ER resultante do Exercício3.3 para a nota ção Engenharia de Informa ções

Page 55: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 55

Notação MERISE

DEPARTAMENTO LOTAÇÃO EMPREGADO(0,n)(1,1)

DEPARTAMENTO EMPREGADO0,n 1,1

LOTAÇÃO

Page 56: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 56

Uso de ferramentas de modela gem

• Diagrama ER não deve ser confeccionadomanualmente– muito trabalhoso– revisões são freqüentes– diagramas feitos à mão não são atualizados,

quando de altera ções do esquema

• Recomendável que seja usada uma ferramentaem computador para apoio à modelagem

• Alternativas:– Uso de uma ferramenta CASE– Uso de programas de propósito geral

Page 57: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 57

Estraté gias de modela gem

• Estratégia de modelagem ER– uma seqüência de passos (uma “receita-de-bolo”)

de transforma ção de modelos desde o modeloinicial de modelagem até o final

• Diferentes estratégias– Bottom-up– Top-down– Inside-out

Page 58: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 58

Defini ção da estraté gia de modela gem

• Na prática– Nenhuma das estratégias propostas na literatura é

universalmente aceita

• Normal– Combina ção das diversas estratégias de

modelagem

• Compreensível– Processo de modelagem é um processo de

aprendizagem

Page 59: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 59

Defini ção da estraté gia de modela gem

• Identificar qual a fonte de informa ções principalpara o processo de modelagem:

• Descri ções de dados existentes– estratégia bottom-up

• Conhecimento de pessoas sobre o sistema– estratégia top-down (inside-out)

Page 60: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 60

Estraté gia “top-down”

• Partir de conceitos mais abstratos (“de cima”)

• Ir gradativamente refinando estes conceitos emconceitos mais detalhados

Page 61: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 61

Estraté gia “top-down”processo (1)

• Modelagem superficial– Enumera ção das entidades– Identifica ção dos relacionamentos (cardinalidade

máxima) e hierarquias degeneraliza ção/especializa ção entre as entidades.

– Determina ção dos atributos de entidades erelacionamentos.

– Determina ção dos identificadores de entidades erelacionamentos.

– O banco de dados é verificado quanto ao aspectotemporal

Page 62: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 62

Estraté gia “top-down”processo (2)

• Modelagem detalhada– Domínios dos atributos.– Cardinalidades mínimas– Demais restri ções de integridade.

• Valida ção do modelo– Constru ções redundantes ou deriváveis a partir de

outras no modelo.– Valida ção com o usuário.

Page 63: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 63

Estraté gia“inside-out”

EMPREGADO DEPARTAMENTO

GERENTE SECRETÁRIA ENGENHEIRO

PROCESSADORDE TEXTOS

PROJETO

DOMÍNIO PARTICIPAÇÃO

LOTAÇÃO

tipo deempregado

nome

CREA

CIC(1,1)(0,n)

(1,n)

(0,n) (0,n)

(0,n)

GERÊNCIA

(1,n)

(0,1)

p

Page 64: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 64

Reserva de passa gens aéreas (1)

O objetivo do trabalho é projetar um sistema de reservas para uma companhia deaviação. O sistema contará com um banco de dados central, que será acessado poraplicações clientes, rodando tanto dentro da própria companhia, quanto fora dela.A transação central do sistema é a reserva. Uma reserva é identificada por um códigogerado pelo sistema em computador. A reserva é feita para um único passageiro, doqual se conhece apenas o nome. A reserva compreende um conjunto de trechos devôos, que acontecerão em determinada data/hora. Para cada trecho, a reserva é feitaem uma classe (econômica, executiva, etc.).Um vôo é identificado por um código e possui uma origem e um destino. Porexemplo, o vôo 595 sai de Porto Alegre com destino a São Paulo. Um vôo écomposto de vários trechos, correspondendo às escalas intermediárias do vôo. Porexemplo, o vôo 595 é composto de dois trechos, um de Porto Alegre a Londrina, ooutro de Londrina a São Paulo. Cabe salientar que há cidades que são servidas porvários aeroportos. Por isso, é importante informar ao passageiro que faz a reserva,qual é o aeroporto no qual o vôo passa.

Page 65: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 65

Reserva de passa gens aéreas (2)

Às vezes os clientes, ao fazer a reserva querem saber qual é o tipo de aeronaveque será utilizada em determinado trecho de vôo. Alguns poucos vôos,principalmente internacionais, têm troca de aeronave em determinadas escalas.Nem todos vôos operam em todos dias de semana. Inclusive, certos vôos têmpequenas mudanças de horário em certos dias da semana.Cada reserva possui um prazo de validade. Caso os bilhetes não tenham sidoemitidos, até esgotar-se o prazo da reserva, a mesma é cancelada. Reservaspodem ser prorrogadas.Como o “check-in” de todos os vôos está informatizado, a companhia possibilita areserva de assento para o passageiro. Reservas de assento podem ser feitas comaté três meses de antecedênciaAlém de efetivar reservas, o sistema deve servir para vários tipos de consultas queos clientes podem querer fazer:•possibilidades de viagem de uma cidade ou de um aeroporto para outro•o mesmo, mas restrito a determinados dias da semana•horários de chegada ou de saída em determinados vôos•disponibilidade de vagas em um trecho de vôo•disponibilidade de determinados assentos em um trecho de vôo.

Page 66: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 66

Reserva de passa gens aéreasentidades

Entidades:COMPANHIA, RESERVA, PASSAGEIRO, TRECHO, VOO,CIDADE, AEROPORTO, TIPO-AERONAVE, HORARIO,ASSENTO

Não foi criada uma entidadepessoas que efetivaram a reservaproblema de homônimosatributo da reserva

Page 67: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 67

Reserva de passa gens aéreasrelacionamentos

RESERVA

CIDADE

(1,1)

(0,n)

(O,n)

TRECHO

AEROPORTO

VOO

(1,n)

origem destino

HORÁRIO

TIPOAERONAVEASSENTO

(1,1)

(0,n) (0,n)

(0,n)

(0,n)

(1,1)

(0,n)

(0,n)(0,n)

(1,1)

(0,n)

(1,1)

(1,1)

(1,1)(1,1)

RES-TRCH

Page 68: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 68

Reserva de passa gens aéreasatributos e identificadores

RESERVA (codigo reserva, passageiro,prazo)VOO (número)TRECHO ()AEROPORTO (código, nome)CIDADE (código, nome, país)TIPO AERONAVE (código, descrição)HORARIO (dia semana, horário partida, horário chegada)ASSENTO (número,classe)RSRV-TRCH (data)

Page 69: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 69

Reserva de passa gens aéreasrestri ções de inte gridade

• Uma reserva de trecho somente pode ser realizadacaso existam vagas no trecho em questão na data emquestão.

• Uma reserva para um assento somente pode ser feita,se o assento em questão existir no tipo de aeronaveutilizada no trecho de vôo em questão.

Page 70: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 70

Reserva de passa gens aéreasredundância e performance

• Observa ção geral– solu ção adotada conceitual– não inclui redundâncias de dados que objetivem

melhorar a performance– não atributos redundantes

• número de vagas em um trecho de vôo, em uma data,inclusive discriminado por classe

• criar entidade TRECHO-DIA

• etapa de projeto

Page 71: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 71

Loca ção de veículosenunciado (1)

O objetivo deste estudo de caso é construir um modelo ER para o BD deuma empresa de locação de veículos. A empresa em questão alugaautomóveis, camionetas de passageiros e camionetas de carga.Ela atende a dois mercados, o das pessoas físicas e o das pessoasjurídicas. Para acelerar o atendimento, é importante conhecer os dados declientes que já tenham usado a locadora no passado. Para cada pessoafísica é necessário conhecer seu nome, sexo, data de nascimento,endereço e CIC. Já para as pessoas jurídicas é necessário conhecer seunome, CGC, inscrição estadual e endereço. Os clientes são identificadospor um código interno a locadora.A empresa tem uma grande rede de filiais, espalhada pelo sul do país. Emum momento no tempo, um veículo encontra-se sob responsabilidade deuma filial. Entretanto, como veículos podem ser alugados para viagens emum sentido somente, eles podem mudar de filial. Um veículo é identificadopela sua placa. Além disso, é necessário conhecer o número do chassis, onúmero do motor, o tipo de veículo e a cor de cada veículo.

Page 72: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 72

Loca ção de veículosenunciado(2)

O sistema em computador deverá registrar:•os veículos disponíveis em determinada filial na data corrente,•as reservas para veículos em uma filial, com previsão de que veículos estarãodisponíveis em uma data futura,•os veículos presentemente alugados pela filial, o ponto de entrega (caso sejadiferente do de locação) e data de entrega prevista.Os veículos são classificados por uma tabela de tipos. Por exemplo, P3corresponde a automóveis pequenos, de quatro portas e com ar-condicionadoe G4 a grandes automóveis de luxo. As reservas não são feitas para umamarca ou modelo de veículo, mas para um tipo de veículo.Para tipos de automóveis, os clientes desejam saber o tamanho, classificadoem pequeno, médio e grande, o número de passageiros, o número de portas,bem como se possui os seguintes acessórios: ar-condicionado, rádio, toca-fitas, CD, direção hidráulica e câmbio automático. Para tipos de camionetas depassageiros, as informações são as mesmas que para automóveis. Já paratipos de camionetas de carga, as informações acima não são relevantes.Neste caso, os clientes desejam saber a capacidade de carga da camioneta.

Page 73: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 73

Loca ção de veículosenunciado(3)

Para cada tipo de veículo, há um determinado número de horas necessáriopara limpeza e revisão de entrega, entre uma reserva e outra.Além disso, o sistema deve programar as revisões dos veículos, impedindoque sejam reservados quando há revisões pendentes. Esta programação éfeita com base em um conjunto de parâmetros que são a quilometragematual do veículo, a quilometragem média diária de um veículo do tipo, bemcomo em uma tabela de revisões do tipo de veículo.A seguradora que segura os veículos, exige que, para cada veículoalugado, seja mantida a identificação do motorista, o número de suahabilitação e data de vencimento da mesma. A habilitação não pode vencerdentro do prazo da locação.

Page 74: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 74

Loca ção de veículosentidades

Primeira leitura:LOCADORA, TIPO AUTOM OU CAMIONETA PASS, TIPOCAMIONETA CARGA, VEÍCULO, PESSOA FÍSICA, PESSOAJURÍDICA e FILIAL

Além destasRESERVA e LOCAÇÃO para manter informações sobre asduas transações centrais da locadora

Page 75: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 75

Loca ção de veículosentidades

• Há atributos e relacionamentos comuns às entidades– TIPO AUTOM OU CAMIONETA PASS

– TIPO CAMIONETA CARGA

– Usada uma generalização das três entidades (TIPOVEÍCULO)

• Mesmo para PESSOA F ÍSICA e PESSOA JUR ÍDICA– CLIENTE

• Entidade REVIS ÃO– revisões: informação multi-valorada

– não é atributo de TIPO VEÍCULO

Page 76: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 76

Loca ção de veículosentidades

• MOTORISTA armazena informa ções sobre a habilita ção domotorista– não foram colocadas em CLIENTE– cliente pessoa jurídica pode ter diferentes motoristas

cadastrados.

Page 77: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 77

Loca ção de veículosrelacionamentos

P JURÍDICA

LOCAÇÃO

(1,1) TIPO VEÍCULO

T AUTOMCAM PASS

CLIENTE

(1,1))

P FÍSICA

FILIAL

MOTORISTA

(0,n)

(0,n)

(1,1)

(0,n) (0,n)

(0,n)

(0,1)

T CAM CARGA

LOCADORA

REVISÃO

VEÍCULO

RESERVA

dest org

(0,n)

(0,n)(1,1)

dest

(1,1) (1,1) (1,1)

(0,n)

(1,1))(1,n)

(0,n)

(1, 1) (0,n)

(1,1))

Page 78: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 78

Loca ção de veículosatributos (1)

• CLIENTE (código, nome, endereço)

• P FÍSICA (sexo, data nascimento, CIC)

• P JURÍDICA (CGC, inscrição estadual)

• FILIAL (código, localização)

• VEÍCULO (placas, número chassis, número motor, cor, quilometragem,data medida quilometragem, quilometragem última revisão)

• TIPO VEÍCULO (código, tipo, horas limpeza, quilometragem médiadiária)

• T AUTOM CAM PASS (tamanho, número passageiros, ar-condicionado, rádio, toda-fitas, CD, direção hidráulica, câmbioautomático)

• T CAM CARGA (capcacidade carga)

Page 79: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 79

Loca ção de veículosatributos (2)

• REVISÃO (quilometragem)

• MOTORISTA (número habilitação, data vencimento, identidade, nome)

• RESERVA (número, data retirada, data devolução)

• LOCAÇÃO (número, data retirada, data devolução)

• LOCADORA (CGC, nome, endereço, telefone)

Page 80: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 80

Loca ção de veículosrestri ções de inte gridade

• A habilitação de um motorista não pode vencer durante operíodo previsto para a locação

• Um veículo cuja quilometragem exceda a quilometragem de suapróxima revisão não pode ser locado

• Para um cliente pessoa física somente deve haver um motoristacadastrado. Neste caso, não deve ser informado o nome domotorista, já que ele é a própria pessoa física

• Somente pode ser feita uma reserva caso existam veículos dotipo previstos para estarem disponíveis na filial de origem nadata da reserva

• Uma locação para a qual não tenha sido feita reserva somentepode ocorrer na mesma condição acima

Page 81: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 81

Controle de almoxarifadoenunciado (1)

O enunciado deste trabalho foi adaptado de um livro de Peter Coad sobre projetoorientado a objetos.O almoxarifado pertence a um grupo de empresas do ramo industrial e serve paraestocar peças destinadas às várias empresas do grupo. Cada empresa do grupo éconsiderada um cliente do almoxarifado.O almoxarifado está organizado em corredores. Cada corredor possui váriosreceptáculos para peças (um receptáculo é uma bacia retangular de materialplástico). Os receptáculos são todos do mesmo tamanho. Os corredores sãonumerados e os receptáculos são numerados por corredor. Por exemplo, oreceptáculo 2-10 é o décimo receptáculo do segundo corredor.Em uma das extremidades do almoxarifado encontra-se o setor de recepção depeças. Lá chegam as peças entregues pelos fornecedores. Quando ocorre achegada de peças, a primeira atividade é registrar na ordem de compra a chegadadas peças. Uma cópia de toda ordem de compra é sempre enviada ao setor derecepção. Assim, neste setor sempre sabe-se quais as peças que estão por serentregues. As ordens de compra são geradas no setor de compras e apenasrepassadas ao almoxarifado.

Page 82: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 82

Controle de almoxarifadoenunciado (2)

Uma entrega corresponde sempre a uma ordem de compra. Entretanto, sãoadmitidas entregas parciais, isto é, entregas que não completam a ordem decompra. Em uma entrega podem ser entregues diferentes quantidades dediferentes peças.As peças recebidas são colocadas sobre um estrado. Este estrado é então levadopara o almoxarifado por uma empilhadeira e as peças são distribuídas nosreceptáculos. Um estrado pode conter diferentes peças. Para cada peça, procura-se um receptáculo que já contenha unidades da peça em questão e que aindatenha espaço para a carga chegada. Caso não haja um receptáculo nestascondições, procura-se um receptáculo vazio.A saída do almoxarifado se dá contra pedidos de clientes. Um pedido podesolicitar vários tipos de peças. Todas peças que atendem um pedido são juntadas,embaladas e colocadas em uma rampa de carga (numerada) onde encosta ocaminhão do cliente. Não há pedidos pendentes, isto é, os clientes sempre pedemquantidades de peças que há em estoque.

Page 83: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 83

Controle de almoxarifadoenunciado (3)

O objetivo do sistema é o de aumentar o lucro do almoxarifado, ajudando suaequipe a guardar e recuperar itens mais rapidamente e a conhecer as quantidadesestocadas.O almoxarifado é de grande porte e constantemente há várias empilhadeirascirculando por ele tanto para estocar entregas quando para buscar peçasreferentes a um pedido.Outros detalhes do sistema são fornecidos a seguir.O almoxarifado somente atende empresas. É necessário manter um cadastro declientes com CGC, nome, endereço e telefone de contato. Para cada peça énecessário conhecer seu UPC (“Universal Product Code”), descrição e númerointerno à organização.Para cada entrega, o setor de recepção monta uma lista de distribuição, que instruio operador sobre que peças, em quantidade ele deve estocar em quereceptáculos.Para cada pedido, o setor de saída monta uma lista de busca, que instrui ooperador sobre que peças, em quantidade ele deve buscar em que receptáculos.

Page 84: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 84

Controle de almoxarifadoenunciado (4)

Em termos de processos, é necessário que o sistema processe o seguinte:Dê as ordens de distribuição de peças chegadas para cada chegada.Dê as ordens para busca para cada pedido.Mantenha a quantidade estocada de cada item e de cada receptáculo.Informe que peças em que quantidade devem ser estocadas ou buscadas emque receptáculos.

Em termos específicos de transações devem ser consideradas:Transações de chegadaRegistro da chegada de produtosInstruções para estocagem (em que estrado, em que receptáculos)Confirmação da estocagem em um receptáculoTransações de saída de produtosRegistro de um pedidoGeração da lista de buscaConfirmação da buscaConsolidação de receptáculos (juntar as peças de mesmo tipo de doisreceptáculos diferentes)

Page 85: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 85

Controlede almoxarifado

ITEM OC

OC

(0,n)(1,1)

(0,n)

(1,1)

(1,1)

(1,n)

PEÇA

ITEM ENTR

ENTREGA

(0,n)

(1,1)

(1,n)

(1,1)

(0,n)(1,1)

ITEM DISTR

(0,n)

(0,n)(1,1)

RECEPT

FORNECEDOR

(1,1)

(0,n)(0,1)

Page 86: Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre,

©Carlos A. HeuserTransparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 86

Controlede almoxarifado

PEÇA RECEPT

CORREDOR(1,1)

(0,n)

ITEM PED

PEDIDO

(0,n)

(0,n)

(1,1)

(1,1)

(1,n)

(1,1)

(0,n)(1,1)ITEM BUSCA

(0,n)

CLIENTE

(1,1)

RAMPA

(1,1)

(0,n)

(0,n)(0,1)