Você está na página 1de 86

Construindo modelos ER

Capítulo 3

©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

• Conselhos práticos
• Heurísticas
• Notações alternativas
• Processo de modelagem e alternativas

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

• Modelo ER é um modelo formal


• Poder de expressão é limitado
• Eqüivalência entre modelos

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 3
Modelo ER é um modelo formal

• Modelo preciso, não ambíguo


• Diferentes leitores de um mesmo modelo ER
devem sempre entender exatamente o mesmo
• DER pode ser usado como entrada a uma
ferramenta CASE
• Fundamental: todos os envolvidos devem estar
treinados na sua perfeita compreensão.
• Risco: sub-utilização

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

• Modelo ER apresenta apenas algumas


propriedades de um banco de dados
– Foi concebido para o projeto da estrutura de um
BD relacional
• Pouco poderoso para expressar restrições de
integridade (regras de negócio)

©Carlos A. Heuser
Transparê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 - exemplo

p3
p1 p7
p6 p8
PESSOA p5
p2 p4

1 1 m m
e m e e
marido esposa
CASAMENTO m p5,p5
p1,p3 e

p6,p8
p3,p6

©Carlos A. Heuser
Transparê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 limitado - exemplo

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

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 7
Exercício 3.1
Relacionamento que
associa um produto de uma
indústria com seus
componentes (em inglês, PRODUTO
“bill-of-materials”)
composto componente
Restrição que deve ser
n n
imposta
= COMPOSIÇÃO
um produto não pode
aparecer na lista de seus
componentes

©Carlos A. Heuser
Transparê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
(continuação)
Pergunta-se:
-O modelo apresentado na figura contém
esta restrição?
-Caso negativo, é possível alterar o modelo
em questão para incluir esta restrição, se
considerarmos que o nível de profundidade
da hierarquia de composição de cada PRODUTO
produto não excede três (tem-se apenas
produtos prontos, produtos semi-acabados composto componente
e matérias-primas)? Caso afirmativo, n n
apresente a solução.
-É possível estender a solução do quesito COMPOSIÇÃO
anterior para uma hierarquia não limitada
de níveis de composição?

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 9
Eqüivalência entre modelos

• Dois modelos ER diferentes podem ser


equivalentes
• Modelos equivalentes
– expressam o mesmo
– modelam a mesma realidade
• Para fins de projeto de BD, dois modelos ER são
equivalentes
– geram o mesmo esquema de BD
• Considerar um conjunto de regras de tradução de
modelos ER para modelos lógicos de BD
©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 10
Exemplo de eqüivalência entre
modelos
a) CONSULTA como relacionamento n:n

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

código nome data/hora código nome

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

b) CONSULTA como entidade

MÉDICO PACIENTE
(1,1) (1,1)

código nome código nome


(0,n) (1,n)
CONSULTA

data/hora

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 12
Transformação de relacionamento n:n
em entidade (1)
• O relacionamento n:n é representado como uma
entidade
• A entidade criada é relacionada às entidades que
originalmente 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 relacionamento
original tivesse atributos identificadores)

©Carlos A. Heuser
Transparê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:n
em entidade (2)
• Nos relacionamentos de que participa, a
cardinalidade da entidade criada é sempre (1,1)
• As cardinalidades das entidades que eram
originalmente associadas pelo relacionamento
são transcritas ao novo modelo conforme
mostrado na figura.

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 14
Modelo ER sem relacionamento n:n

• Relacionamento n:n pode ser transformado em


entidade
• É possível construir modelos sem relacionamentos
n:n
• Há variantes da abordagem ER, que
– excluem o uso de relacionamentos n:n
– excluem apenas o uso de relacionamentos n:n com
atributos
• Exemplo:
– várias abordagens baseadas na Engenharia de
Informações
©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 15
Identificando construções

• Determinação da construção da abordagem ER


(entidade, relacionamento,...) que será usada para
modelar um objeto de uma realidade
– não pode ser feita através da observação do objeto
isoladamente
– é necessário conhecer o contexto (modelo dentro
do qual o objeto aparece)

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 16
Identificando construções
Recomendação geral
• Decisão por uma construção para a modelagem
de um objeto está sujeita a alteração durante a
modelagem
• Não despender um tempo excessivo em longas
discussões sobre como modelar um objeto
• Desenvolvimento do modelo e o aprendizado
sobre a realidade irão refinando e aperfeiçoando
o modelo.

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

AUTOMÓVEL
AUTOMÓVEL (0,n)
ou
cor
(1,1)
COR

©Carlos A. Heuser
Transparê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
critérios (1)
• Objeto está vinculado a outros objetos
– deve ser modelado como entidade
• Caso contrário
– pode ser modelado como atributo

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 19
Atributo versus entidade relacionada
critérios (2)
• Conjunto de valores de um determinado objeto é
fixo (domínio fixo)
– pode ser modelado como atributo
• Existem transações no sistema que alteram o
conjunto de valores do objeto (domínio variável)
– não deve ser modelado como atributo

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

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


possui um identificador, um nome, um endereço e um país. Discuta
as vantagens e desvantagens das duas alternativas de modelagem
de país:
a) Como atributo da entidade cliente
b) Como entidade relacionada a cliente.

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 21
Atributo versus
generalização/especialização
• Questão
• modelar um determinado objeto (por, exemplo, a
categoria funcional de cada empregado de uma
empresa)
como atributo?
categoria funcional como atributo da entidade
EMPREGADO)
ou como uma especialização?
cada categoria funcional corresponde a uma
especialização da entidade empregado)

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 22
Atributo versus
generalização/especialização
• Especialização deve ser usada quando
– as classes especializadas de entidades possuem
propriedades particulares:
atributos
relacionamentos
generalizações/especializações

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 23
Atributo versus
generalização/especialização
categoria
funcional
nome nome código
código

EMPREGADO EMPREGADO
t

MOTORISTA ENGENHEIRO

número da data de CREA


carteira de expiração da
habilitação carteira de
habilitação
©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 24
Atributo opcional

• Atributo opcional
– Podem indicar subconjuntos de entidades que são
modelados mais corretamente através de
especializações tipo de
• Exemplo empregado
nome
código

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

CREA CRM número da carteira


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

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 25
tipo de
empregado
nome Atributo opcional
código

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

CREA CRM número da carteira nome código


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

EMPREGADO
t

MOTORISTA MÉDICO ENGENHEIRO

número da data de CRM CREA


carteira de expiração da
habilitação carteira de
habilitação
©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 26
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 erro
de modelagem
– Ocultar entidades e relacionamentos em atributos
multivalorados

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 27
Atributo multivalorado
EMPREGADO
eliminação
nome
lançamento pagamento (0,n)
dependente (0,n) EMPREGADO
nome

(1,1) (1,1)

(0,n) (0,n) nome


LANÇAMENTO
PAGAMENTO DEPENDENTE
valor
(0,n) data de
nascimento
(1,1) código
TIPO
LANÇAMENTO
descrição
©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 28
Apresente um
diagrama ER que Exercício 3.3
modele mais
precisamente esta
realidade. Explique no
que seu diagrama é
mais preciso que o
mostrado na nome (0,1) sexo (0,1)
figura código

data de nascimento (0,1)


CLIENTE
telefone (0,n)

CIC CGC razão social


(0,1) (0,1) (0,1)
©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 29
Verificação do modelo

• Modelo deve ser correto


• Modelo deve ser completo
• Modelo deve ser livre de redundâncias

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 30
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. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 31
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 outra
entidade
• Usar o número incorreto de entidades em um
relacionamento.
– fundir em um único relacionamento ternário dois
relacionamentos binários independentes

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

• Deve fixar todas propriedades desejáveis do


banco de dados
• Somente pode ser verificado por alguém que
conhece profundamente o sistema a ser
implementado
– Envolver usuário

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 33
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 falta


de poder de expressão de modelos ER

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 34
Modelo deve ser livre de redundâncias

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


conceitos redundantes

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

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 35
O que fazer com construções
redundantes?
• Alternativas
– não devem aparecer no modelo ou
– devem aparecer indicadas como redundantes

• Implementação pode conter redundância


controlada de dados (performance)

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 36
Relacionamentos redundantes
FÁBRICA (0,n)
ATUAÇÃO
(1,1) (1,1)
F-D LOCALIZAÇÃO (0,n)
(0,n) FÁBR

DEPTO LOCALIZAÇÃO (0,n)


(1,1) DEPTO
(1,1) (0,n)
D-E
(0,n)
(0,n) (0,n)
EMPREGADO TRABALHO MÁQUINA
(0,n)
(0,1) SINDICATO
ASSOCIAÇÃO

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 37
Atributos redundantes ou deriváveis

CÓDIGO

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

nº de empregados código do departamento

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 38
Modelo deve refletir o aspecto
temporal
• 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. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 39
Atributos temporais

EMPREGADO
EMPREGADO
(1,1)

salário (0,n)
(0,n)
(a)
SALÁRIO
Banco de dados contém
apenas o salário atual data valor

(b)
Banco de dados contém
a história dos salários

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

EMPREGADO EMPREGADO
1 n
ALOCAÇÃO ALOCAÇÃO
data
1 n
MESA MESA

(a) (b)
Base de dados Base de dados
contém apenas a contém a história das
alocação atual alocações

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 41
Relacionamento 1:n temporal
nº documento nome nome
de lotação
EMPREGADO EMPREGADO
n n nº documento
de lotação
LOTAÇÃO LOTAÇÃO
data
1 n
DEPARTAMENTO DEPARTAMENTO

(a) (b)
Base de dados contém Base de dados contém
apenas a lotação atual a história das lotações

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

PARTICIPANTE PARTICIPANTE
n n
INSCRIÇÃO INSCRIÇÃO
data data
n n
CURSO CURSO

(a) (b)
Base de dados contém Base de dados contém
apenas a inscrição atual a história das inscrições

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 43
Consultas a dados referentes ao
passado
• Muitas vezes, informações referentes ao passado
sã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. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 44
Dados referentes ao passado
planejar 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ções
usadas na compilação

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 45
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. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 46
Entidade isolada
exemplo
– Exemplo: BD de uma universidade
– A entidade UNIVERSIDADE pode ser necessária,
caso se deseje manter no BD alguns atributos da
universidade
– O modelo não deveria conter o relacionamento
desta entidade com outras, como ALUNO ou
CURSO
• BD modela uma única universidade
• não é necessário informar no BD em que
universidade o aluno está inscrito ou a qual
universidade o curso pertence

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 47
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ção
de modelos
• Na prática e na literatura
– Muitas variantes de modelo ER
– Variantes em
• sintaxe
• semântica
©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 48
Variantes de modelos ER

• Peter Chen (acadêmica)


• Engenharia de Informações
• UML
• Merise (notação Européia)

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 49
Notação Engenharia de Informações

DEPARTAMENTO LOTAÇÃO EMPREGADO


(1,1) (0,n)

tem lotado
DEPARTAMENTO EMPREGADO
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. Heuser
Transparê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
• Relacionamentos representados por linha
• Conseqüências:
– apenas relacionamentos binários
– atributos aparecem exclusivamente em entidades
• Denominação de relacionamento na forma de
verbo
– DEPARTAMENTO tem lotado EMPREGADO
– EMPREGADO está lotado em DEPARTAMENTO

©Carlos A. Heuser
Transparê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

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


gráfica
• Generalização/especialização é chamada de
subconjunto (subtipo) de entidades
– representada através do aninhamento dos
símbolos de entidade

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 52
Engenharia de informações
subtipos de entidades
está lotado em DEPARTAMENTO
EMPREGADO tem lotado

GERENTE gerencia
é gerenciado por
SECRETÁRIA
ENGENHEIRO
domina
é dominado por
está alocado em
tem alocado

PROCESSADOR
DE TEXTOS PROJETO

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

• Transformar o modelo ER resultante do Exercício


3.3 para a notação Engenharia de Informações

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

DEPARTAMENTO LOTAÇÃO EMPREGADO


(1,1) (0,n)

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

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 55
Uso de ferramentas de modelagem
• Diagrama ER não deve ser confeccionado
manualmente
– 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 ferramenta
em computador para apoio à modelagem
• Alternativas:
– Uso de uma ferramenta CASE
– Uso de programas de propósito geral
©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 56
Estratégias de modelagem

• Estratégia de modelagem ER
– uma seqüência de passos (uma “receita-de-bolo”)
de transformação de modelos desde o modelo
inicial de modelagem até o final
• Diferentes estratégias
– Bottom-up
– Top-down
– Inside-out

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 57
Definição da estratégia de modelagem

• 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. Heuser
Transparê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 modelagem

• Identificar qual a fonte de informações principal


para 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. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 59
Estratégia “top-down”

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


• Ir gradativamente refinando estes conceitos em
conceitos mais detalhados

©Carlos A. Heuser
Transparê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”
processo (1)
• Modelagem superficial
– Enumeração das entidades
– Identificação dos relacionamentos (cardinalidade
máxima) e hierarquias de
generalização/especialização entre as entidades.
– Determinação dos atributos de entidades e
relacionamentos.
– Determinação dos identificadores de entidades e
relacionamentos.
– O banco de dados é verificado quanto ao aspecto
temporal

©Carlos A. Heuser
Transparê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 (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. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 62
Estratégia
tipo de
empregado
“inside-out”
nome
CIC
(0,n) (1,1)
EMPREGADO LOTAÇÃO DEPARTAMENTO

(1,n)
p
GERÊNCIA

(0,1) CREA

GERENTE SECRETÁRIA ENGENHEIRO


(1,n) (0,n)

DOMÍNIO PARTICIPAÇÃO

(0,n) (0,n)
PROCESSADOR PROJETO
DE TEXTOS

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 63
Reserva de passagens aéreas (1)

O objetivo do trabalho é projetar um sistema de reservas para uma companhia de


aviação. O sistema contará com um banco de dados central, que será acessado por
aplicaçõ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ódigo
gerado pelo sistema em computador. A reserva é feita para um único passageiro, do
qual se conhece apenas o nome. A reserva compreende um conjunto de trechos de
vôos, que acontecerão em determinada data/hora. Para cada trecho, a reserva é feita
em uma classe (econômica, executiva, etc.).
Um vôo é identificado por um código e possui uma origem e um destino. Por
exemplo, 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. Por
exemplo, o vôo 595 é composto de dois trechos, um de Porto Alegre a Londrina, o
outro de Londrina a São Paulo. Cabe salientar que há cidades que são servidas por
vários aeroportos. Por isso, é importante informar ao passageiro que faz a reserva,
qual é o aeroporto no qual o vôo passa.

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 64
Reserva de passagens aéreas (2)
Às vezes os clientes, ao fazer a reserva querem saber qual é o tipo de aeronave
que 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êm
pequenas mudanças de horário em certos dias da semana.
Cada reserva possui um prazo de validade. Caso os bilhetes não tenham sido
emitidos, até esgotar-se o prazo da reserva, a mesma é cancelada. Reservas
podem ser prorrogadas.
Como o “check-in” de todos os vôos está informatizado, a companhia possibilita a
reserva de assento para o passageiro. Reservas de assento podem ser feitas com
até três meses de antecedência
Além de efetivar reservas, o sistema deve servir para vários tipos de consultas que
os 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. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 65
Reserva de passagens aéreas
entidades
Entidades:
COMPANHIA, RESERVA, PASSAGEIRO, TRECHO, VOO,
CIDADE, AEROPORTO, TIPO-AERONAVE, HORARIO,
ASSENTO
Não foi criada uma entidade
pessoas que efetivaram a reserva
problema de homônimos
atributo da reserva

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 66
Reserva de passagens aéreas
relacionamentos
RESERVA HORÁRIO VOO
(0,n) (1,1)

(O,n)
(1,1) (0,n)
(1,n) (1,1)
RES-TRCH
TRECHO
(0,n) (0,n) (0,n) (0,n)

origem destino
(1,1) (1,1) (1,1)
(1,1)
ASSENTO TIPOAERONAVE AEROPORTO
(0,n) (0,n)
(0,n)

(1,1)
CIDADE

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 67
Reserva de passagens aéreas
atributos 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. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 68
Reserva de passagens aéreas
restrições de integridade
• Uma reserva de trecho somente pode ser realizada
caso existam vagas no trecho em questão na data em
questão.
• Uma reserva para um assento somente pode ser feita,
se o assento em questão existir no tipo de aeronave
utilizada no trecho de vôo em questão.

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 69
Reserva de passagens aéreas
redundâ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. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 70
Locação de veículos
enunciado (1)
O objetivo deste estudo de caso é construir um modelo ER para o BD de
uma empresa de locação de veículos. A empresa em questão aluga
automóveis, camionetas de passageiros e camionetas de carga.
Ela atende a dois mercados, o das pessoas físicas e o das pessoas
jurídicas. Para acelerar o atendimento, é importante conhecer os dados de
clientes que já tenham usado a locadora no passado. Para cada pessoa
física é necessário conhecer seu nome, sexo, data de nascimento,
endereço e CIC. Já para as pessoas jurídicas é necessário conhecer seu
nome, CGC, inscrição estadual e endereço. Os clientes são identificados
por um código interno a locadora.
A empresa tem uma grande rede de filiais, espalhada pelo sul do país. Em
um momento no tempo, um veículo encontra-se sob responsabilidade de
uma filial. Entretanto, como veículos podem ser alugados para viagens em
um sentido somente, eles podem mudar de filial. Um veículo é identificado
pela sua placa. Além disso, é necessário conhecer o número do chassis, o
número do motor, o tipo de veículo e a cor de cada veículo.
©Carlos A. Heuser
Transparê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ículos
enunciado(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ão
disponíveis em uma data futura,
•os veículos presentemente alugados pela filial, o ponto de entrega (caso seja
diferente do de locação) e data de entrega prevista.
Os veículos são classificados por uma tabela de tipos. Por exemplo, P3
corresponde a automóveis pequenos, de quatro portas e com ar-condicionado
e G4 a grandes automóveis de luxo. As reservas não são feitas para uma
marca ou modelo de veículo, mas para um tipo de veículo.
Para tipos de automóveis, os clientes desejam saber o tamanho, classificado
em 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 de
passageiros, as informações são as mesmas que para automóveis. Já para
tipos 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. Heuser
Transparê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ículos
enunciado(3)

Para cada tipo de veículo, há um determinado número de horas necessário


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

©Carlos A. Heuser
Transparê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ículos
entidades

Primeira leitura:
LOCADORA, TIPO AUTOM OU CAMIONETA PASS, TIPO
CAMIONETA CARGA, VEÍCULO, PESSOA FÍSICA, PESSOA
JURÍDICA e FILIAL
Além destas
RESERVA e LOCAÇÃO para manter informações sobre as
duas transações centrais da locadora

©Carlos A. Heuser
Transparê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ículos
entidades
• Há atributos e relacionamentos comuns às entidades
– TIPO AUTOM OU CAMIONETA PASS
– TIPO CAMIONETA CARGA
– Usada uma generalização das três entidades (TIPO
VEÍ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. Heuser
Transparê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ículos
entidades
• MOTORISTA armazena informações sobre a habilitação do
motorista
– não foram colocadas em CLIENTE
– cliente pessoa jurídica pode ter diferentes motoristas
cadastrados.

©Carlos A. Heuser
Transparê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ículos
relacionamentos
P JURÍDICA (0,n) RESERVA (0,n) REVISÃO
P FÍSICA
(0,n) (0,n) (0,n)

dest org
T CAM CARGA
(1,1) (1,1) (1,1) (1,1) (1,1))
(1,1) FILIAL
CLIENTE TIPO VEÍCULO
(1,1)) (1,1))
(0,1)
(1,n) T AUTOM
MOTORISTA CAM PASS
dest
(1, 1) (0,n) (0,n)
(0,n) VEÍCULO
(0,n) LOCADORA
LOCAÇÃO (1,1)
(0,n)

©Carlos A. Heuser
Transparê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ículos
atributos (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édia
diária)
• T AUTOM CAM PASS (tamanho, número passageiros, ar-
condicionado, rádio, toda-fitas, CD, direção hidráulica, câmbio
automático)
• T CAM CARGA (capcacidade carga)

©Carlos A. Heuser
Transparê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ículos
atributos (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. Heuser
Transparê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ículos
restrições de integridade
• A habilitação de um motorista não pode vencer durante o
período previsto para a locação
• Um veículo cuja quilometragem exceda a quilometragem de sua
próxima revisão não pode ser locado
• Para um cliente pessoa física somente deve haver um motorista
cadastrado. Neste caso, não deve ser informado o nome do
motorista, já que ele é a própria pessoa física
• Somente pode ser feita uma reserva caso existam veículos do
tipo previstos para estarem disponíveis na filial de origem na
data da reserva
• Uma locação para a qual não tenha sido feita reserva somente
pode ocorrer na mesma condição acima

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 80
Controle de almoxarifado
enunciado (1)

O enunciado deste trabalho foi adaptado de um livro de Peter Coad sobre projeto
orientado a objetos.
O almoxarifado pertence a um grupo de empresas do ramo industrial e serve para
estocar 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ários
receptáculos para peças (um receptáculo é uma bacia retangular de material
plástico). Os receptáculos são todos do mesmo tamanho. Os corredores são
numerados e os receptáculos são numerados por corredor. Por exemplo, o
receptáculo 2-10 é o décimo receptáculo do segundo corredor.
Em uma das extremidades do almoxarifado encontra-se o setor de recepção de
peças. Lá chegam as peças entregues pelos fornecedores. Quando ocorre a
chegada de peças, a primeira atividade é registrar na ordem de compra a chegada
das peças. Uma cópia de toda ordem de compra é sempre enviada ao setor de
recepção. Assim, neste setor sempre sabe-se quais as peças que estão por ser
entregues. As ordens de compra são geradas no setor de compras e apenas
repassadas ao almoxarifado.
©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 81
Controle de almoxarifado
enunciado (2)

Uma entrega corresponde sempre a uma ordem de compra. Entretanto, são


admitidas entregas parciais, isto é, entregas que não completam a ordem de
compra. Em uma entrega podem ser entregues diferentes quantidades de
diferentes peças.
As peças recebidas são colocadas sobre um estrado. Este estrado é então levado
para o almoxarifado por uma empilhadeira e as peças são distribuídas nos
receptá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 ainda
tenha espaço para a carga chegada. Caso não haja um receptáculo nestas
condições, procura-se um receptáculo vazio.
A saída do almoxarifado se dá contra pedidos de clientes. Um pedido pode
solicitar 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 o
caminhão do cliente. Não há pedidos pendentes, isto é, os clientes sempre pedem
quantidades de peças que há em estoque.

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 82
Controle de almoxarifado
enunciado (3)
O objetivo do sistema é o de aumentar o lucro do almoxarifado, ajudando sua
equipe a guardar e recuperar itens mais rapidamente e a conhecer as quantidades
estocadas.
O almoxarifado é de grande porte e constantemente há várias empilhadeiras
circulando por ele tanto para estocar entregas quando para buscar peças
referentes a um pedido.
Outros detalhes do sistema são fornecidos a seguir.
O almoxarifado somente atende empresas. É necessário manter um cadastro de
clientes 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úmero
interno à organização.
Para cada entrega, o setor de recepção monta uma lista de distribuição, que instrui
o operador sobre que peças, em quantidade ele deve estocar em que
receptáculos.
Para cada pedido, o setor de saída monta uma lista de busca, que instrui o
operador sobre que peças, em quantidade ele deve buscar em que receptáculos.

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 83
Controle de almoxarifado
enunciado (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 em
que receptáculos.
Em termos específicos de transações devem ser consideradas:
Transações de chegada
Registro da chegada de produtos
Instruções para estocagem (em que estrado, em que receptáculos)
Confirmação da estocagem em um receptáculo
Transações de saída de produtos
Registro de um pedido
Geração da lista de busca
Confirmação da busca
Consolidação de receptáculos (juntar as peças de mesmo tipo de dois
receptáculos diferentes)
©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 84
FORNECEDOR
Controle
(1,1)
de almoxarifado
(0,n)
(1,1) (0,n)
OC ENTREGA
(1,1) (1,1)

(1,n) (1,n)
(1,1) (0,n)
ITEM OC ITEM ENTR ITEM DISTR

(0,n) (0,n)

(0,n) (1,1)
(1,1) (1,1)

PEÇA RECEPT
(0,1) (0,n)

©Carlos A. Heuser
Transparências para uso com o livro Carlos A.Heuser, Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1998 85
Controle
de almoxarifado
PEÇA RECEPT
(1,1) (0,1) (0,n)
(1,1) (0,n)
(0,n)
(0,n)
(1,1)
ITEM PED ITEM BUSCA CORREDOR
(1,1) (0,n)
(1,n)

(1,1)

PEDIDO
(0,n) (0,n)

(1,1) (1,1)

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

Você também pode gostar