Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o...
-
Upload
nguyentram -
Category
Documents
-
view
213 -
download
0
Transcript of Construindo modelos ER - Thoughts & Words · ©Carlos A. Heuser Transparências para uso com o...
©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
©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
©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
©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
©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)
©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
©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
©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
©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
©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
©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
©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
©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)
©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.
©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
©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)
©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.
©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
©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
©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
©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.
©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)
©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
©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
©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
©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
©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
©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
©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)
©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
©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
©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
©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
©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
©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
©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)
©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
©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
©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
©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)
©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
©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
©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
©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
©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
©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
©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
©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
©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)
©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
©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
©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
©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
©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
©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
©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
©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
©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
©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)
©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
©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
©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.
©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
©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.
©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.
©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
©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
©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)
©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.
©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
©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.
©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.
©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.
©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
©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
©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.
©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))
©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)
©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)
©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
©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.
©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.
©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.
©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)
©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)
©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)