Atributos de Relacionamento A quem pertencem os atributos

Propaganda
DIAGRAMA ENTIDADE-RELACIONAMENTO
Atributos de Relacionamento
A quem pertencem os atributos:
PRECO QUANTIDADE e PRAZO?
PRECO,
n
n
Produto
Produto
Fornecedor
V d
Vende
n
n
Vende
Preço
Fornecedor
Prazo
Quant
Unidade I
1
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
DESENVOLVIMENTO DA MODELAGEM
- Observar o contexto e não os objetos independentemente;
- Sujeita, a todo momento, a alterações;
- Durante o desenvolvimento do modelo, com o aumento do
conhecimento sobre a realidade a ser modelada, o modelo será
cada vez mais refinado e aperfeiçoado.
p
ç
CRITÉRIOS PARA A ESCOLHA DE CONSTRUÇÕES
- Atributo versus entidade relacionada;
- Atributo versus generalização/especialização;
- Atributos opcionais e multivalorados.
Unidade I
2
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
ATRIBUTO VERSUS ENTIDADE RELACIONADA
Modelar um objeto como atributo de uma entidade ou como
outra entidade relacionada àquela primeira?
Como modelar a COR de um automóvel?
Cor como atributo
AUTOMÓVEL
Cor como entidade
AUTOMÓVEL
(0,n) (1,1)
COR
cor
CRITÉRIOS
- Está vinculado a outros objetos (entidades, atributos,
relacionamentos, entidades genéricas ou especializadas)?
- Possui propriedades particulares que se deseja modelar?
l do
d objeto
bj t é fixo
fi durante
d
t toda
t d a vida
id do
d sistema?
i t
?
- O valor
Unidade I
3
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
ATRIBUTOS OPCIONAIS E MULTIVALORADOS
Aconselhável o emprego de atributos obrigatórios e
monovalorados
MODELAGEM DE ATRIBUTOS OPCIONAIS
- só os engenheiros têm CREA;
código
- só os médicos têm CRM;
nome
- só para quem tem CNH é que
categoria DtVcto tem significado;
EMPREGADO
f
funcional
i
l - será
ád
de grande
d interesse
i t
CREA
para a empresa controlar as
datas de vencimento das CNH
CRM N
Nº CNH DtVcto
dos médicos e engenheiros?
CNH
- o uso de atributos opcionais não
estará escondendo diferentes categorias de empregados?
CRITÉRIO
Verificar se a modelagem com o uso de generalização /
especialização não é mais conveniente.
Unidade I
4
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
MODELAGEM DE ATRIBUTOS OPCIONAIS
SOLUÇÃO MAIS ADEQUADA
EMPREGADO
código
MOTORISTA
Nº CNH
Unidade I
Dt Vcto CNH
nome
ENGENHEIRO
CREA
MÉDICO
CRM
5
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
MODELAGEM DE ATRIBUTOS MULTIVALORADOS
Indesejáveis pelos seguintes motivos:
- Ainda não têm implementação direta no modelo
relacional (SQL-2);
- Indução a erros na modelagem pela ocultação de
entidades
tid d e relacionamentos
l i
t em atributos
t ib t deste
d t tipo.
ti
código nome
EMPREGADO
Dependente (0,n)
Lançamento de
pagamento (0,n)
CRITÉRIO
A
Aconselhável
lhá l substituí-los
b tit í l por entidades
tid d relacionadas.
l i
d
Unidade I
6
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
SOLUÇÃO
Ç
Substituição de atributos multivalorados por entidades
relacionadas.
nome
EMPREGADO
(1,1)
(1,1)
(0,n)
LANÇAMENTO
PAGAMENTO
(0,n)
DEPENDENTE
valor
(0,n)
(1,1)
nome
data de
nascimento
código
descrição
Unidade I
7
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
CONSTRUÇÃO DE MODELO CONCEITUAL
ANTES DE LER UM MODELO DESCRITIVO, LEMBRE-SE:
- Um substantivo (sujeito) normalmente indica a
existência de uma entidade
- Um verbo (ação) é uma indicação da existência de um
relacionamento
- Um adjetivo (qualificação do sujeito), é uma
indicação da existência de um atributo de uma entidade
- Um advérbio temporal (qualificação do verbo), é uma
indicação da existência de um atributo de um relacionamento
Unidade I
8
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
CONSTRUÇÃO DE MODELO CONCEITUAL
1º PASSO - Ler cuidadosamente todo o texto para
compreendê-lo e ter uma idéia g
geral do que será modelado.
Se necessário leia todo o texto novamente, até que tenha a
total compreensão do que será modelado. Neste passo não
use material de escrita. Lembre-se:
Lembre se: entidade é um objeto e
atributo é uma qualidade de um objeto.
2 PASSO - Realize uma nova leitura no texto,
2º
texto agora
sublinhando à lápis o que você ache que seja uma entidade
(traço reto) sobre a qual deseja-se armazenar dados no BD.
Faça agora o mesmo para os atributos (traço ondulado)
ondulado).
Marque tudo (tudo mesmo) sem qualquer constrangimento.
Durante a modelagem, o que não for relevante será
d
desconsiderado
id
d
Unidade I
9
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
3º PASSO - Numa folha de p
papel
p auxiliar escreva à esquerda
q
em uma coluna todas as ENTIDADES (traço reto) que foram
levantadas. Noutra coluna à direita, escreva todos os
ATRIBUTOS (traço ondulado) também levantados. Faça uma
nova leitura do texto e certifique-se de que, segundo a sua
opinião, todas as entidades e atributos estão estão ali
documentados.
documentados
4º PASSO – Com uma linha feita a lápis, una os atributos
lançados na coluna da direita às entidades (coluna da
esquerda) que parecem pertencer.
Observe que ao final nenhum atributo pode sobrar, ou seja,
obrigatoriamente
bi
i
todos
d atributos
ib
terão que pertencer a alguma
l
entidade.
Observe também que em certas situações o atributo parece
pertencer a mais de uma entidade, isto pode indicar que este
atributo comum a duas entidades pode ser um atributo do
relacionamento entre elas.
Unidade I
10
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
5 PASSO – Desconfie das entidades que não têm atributos,
5º
atributos
com toda certeza elas ficarão fora do BD. Não tenha receio,
risque-as.
6º PASSO – Têm-se agora perfeitamente definidas as entidades,
os relacionamentos e os atributos de ambos.
Ai d é necessário
Ainda
á i levantar
l
t as cardinalidades
di lid d dos
d
relacionamentos, o que é feito à partir as informações contidas
no texto .
7º PASSO – Por último, desenhe o Modelo Conceitual.
Unidade I
11
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
Locadora de Vídeo
Uma pequena locadora de vídeo possui ao redor de 2.000 fitas de
vídeo, cujo empréstimo deve ser controlado.
C d fita
Cada
fit possuii um número.
ú
P
Para
cada
d filme,
fil
é necessário
á i saber
b seu
título e sua categoria (comédia, drama, aventura, ...). Cada filme
recebe um identificador próprio. Para cada fita é controlado que filme
ela contém.
contém Para cada filme há pelo menos uma fita,
fita e cada fita
contém somente um filme. Alguns poucos filmes necessitam 2 fitas.
Os clientes podem desejar encontrar os filmes estrelados pelo seu
ator predileto.
predileto Por isso,
isso é necessário manter a informação dos atores
que estrelam em cada filme. Nem todo filme possui estrelas. Para
cada ator, os clientes às vezes desejam saber o nome real, bem como
a data de nascimento.
nascimento
A locadora possui muitos clientes cadastrados. Somente clientes
cadastrados podem alugar fitas. Para cada cliente é necessário saber
seu prenome e seu sobrenome, seu telefone e seu endereço. Além
disso, cada cliente recebe um número de associado.
Finalmente, desejamos saber que fitas cada cliente tem
emprestadas.
p
Um cliente p
pode ter várias fitas em um instante no
tempo. Não são mantidos registros históricos de aluguéis.
Unidade I
12
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
VERIFICAÇÃO
Ç
DO MODELO
- Um modelo ER após construído deve ser validado e verificado;
- Um modelo ER para ser considerado bom deve:
- ser correto;
- ser completo;
- não conter redundâncias.
redundâncias
Unidade I
13
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
MODELO CORRETO
Não apresenta erros de modelagem (sintáticos e semânticos).
ERROS SINTÁTICOS
O modelo não respeita as regras de construção de modelos ER:
- associar atributos a atributos;
- associar atributos a relacionamentos;
- associar relacionamento a relacionamento;
- associar entidade a entidade;
- especializar
i li
atributos
t ib t ou relacionamentos;
l i
t
ERROS SEMÂNTICOS
O modelo respeita as regras de construção de modelos ER, mas
representa a realidade modelada de forma inconsistente:
- estabelecer as associações incorretas;
- usar uma entidade do modelo como atributo de outra entidade;
- usar número de entidades incorretas no relacionamento.
Unidade I
14
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
MODELO COMPLETO
- Verificar se todos os dados que devem ser mantidos
pelo BD estão presentes;
- verificar se as transações de modificação desejadas
no BD podem ser executadas sobre o modelo;
- verificar se todas as propriedades expressáveis estão
no modelo
d l e as não
ã expressáveis
á i estão
tã anotadas
t d à parte.
t
MODELO LIVRE DE REDUNDÂNCIAS
- O modelo deve ser mínimo e não deve ter conceitos
redundantes;
- redundâncias mais comuns:
- relacionamentos redundantes;
- atributos redundantes.
Unidade I
15
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
RELACIONAMENTOS REDUNDANTES
- Podem ser eliminados sem haver perda de informação.
(0,n)
FÁBRICA
ATUAÇÃO
(1,1)
(1 1)
(1,1)
F/D
LOCALIZAÇÃO
FABR
(0,n)
DEPARTAMENTO
(1,1)
LOCALIZAÇÃO
DEPTO
(1,1)
D/E
(0,n)
(0,n)
(0,n)
EMPREGADO
(0,n)
ASSOCIADO
Unidade I
TRABALHO
(0 n)
(0,n)
(0,n)
MÁQUINA
(0,n)
(1,1)
SINDICATO
16
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
ATRIBUTOS REDUNDANTES
Um atributo é redundante quando pode ser derivado à partir
de procedimentos de busca de dados ou cálculos sobre o BD
BD.
código
ódi
cadastro
d t nome
nome
DEPARTAMENTO
(1,1)
número de
empregados
g
Unidade I
(1,n)
LOTAÇÃO
EMPREGADO
código do
departamento
17
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
LOCAL DOS ATRIBUTOS
Os atributos e relacionamentos estão corretamente
posicionados?
cpf
nome
cpf
PESSOA
PESSOA
(1,n)
(1,n)
ALUGUEL
ALUGUEL
(0,n)
cod
nome
dt aluguel
(0,n)
endereco
IMOVEL
cod
endereco
IMOVEL
dt aluguel
l
l
Unidade I
18
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
ATRIBUTOS CUJOS VALORES SE MODIFICAM NO
TEMPO
Modelo: tende a refletir o seu estado momentâneo (instância)
Aspectos temporais: auditorias, questões legais e estatísticas
ex: O salário
lá i de
d um empregado
d é um atributo
t ib t que se modifica
difi
ao longo do tempo.
EMPREGADO
código
EMPREGADO
(1,1)
nome
Recebe
((0,n)
, )
código
nome
salário
Salário
S
lá i modelado
d l d como atributo
t ib t
= só registra o valor atual
SALÁRIO
data
valor
Salário modelado como entidade
= registra o histórico do valor
Unidade I
19
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
RELACIONAMENTOS QUE SE MODIFICAM NO TEMPO
A modelagem de relacionamentos 1:1 e 1:n que modificam-se
ao longo
g do tempo é realizada alterando-se o relacionamento
para n:n e criando-se um atributo identificador no próprio
relacionamento.
1:1
EMPREGADO
1: n
EMPREGADO
1
n
Alocação
1
Alocação
data
MESA
O BD só registra o valor
atual.
Unidade I
n
MESA
EMPREGADO
n
Lotação
1
DEPTO
EMPREGADO
data
n
Lotação
n
DEPTO
O BD registra o histórico.
20
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
RELACIONAMENTOS QUE SE MODIFICAM NO TEMPO
A modelagem de relacionamentos n:n que modificam-se ao
longo do tempo é realizada criando
criando-se
se um atributo identificador
no próprio relacionamento.
PARTICIPANTE
PARTICIPANTE
n
data
Inscrição
n
CURSO
O BD só registra o valor
atual.
Unidade I
data
n
Inscrição
n
CURSO
O BD registra o histórico.
21
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
ENTIDADE ISOLADA
- Entidade que não se relaciona a nenhuma outra do modelo
- Em princípio não torna o modelo incorreto
- Normalmente esta entidade é destinada à modelagem da
organização que está sendo modelada
-Deve
Deve ser investigada,
investigada pois pode estar ocultando algum
relacionamento.
PADRÕES DE MODELAGEM
- Inúmeros autores propondo inúmeros modelos
- Na prática e na literatura não há um só modelo ER
VARIANTES DE MODELOS ER
- Modelo proposto por Peter Chen;
- Notação de Engenharia de Informações; e
- MERISE.
Unidade I
22
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
NOTAÇÃO DE ENGENHARIA DE INFORMAÇÕES
Sua importância é devida ao fato de ser suportada por várias
ferramentas CASE. É também conhecida por Notação James Martin.
DEPARTAMENTO
(1,1)
DEPARTAMENTO
EMPREGADO
LOTAÇÃO
(0,n)
tem lotado
EMPREGADO
está lotado em
- Relacionamento representado por uma linha que une as
entidades
tid d ( não
ã estão
tã previstos
i t atributos
t ib t nos relacionamentos);
l i
t )
-O losango é substituído por verbos em ambas direções;
- As cardinalidades são representadas graficamente;
Unidade I
23
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
NOTAÇÃO DE ENGENHARIA DE INFORMAÇÕES
„Generalização/especialização:
subconjunto (subtipo) - aninhamento
Generalização/
Especialização
Unidade I
24
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
NOTAÇÃO DE ENGENHARIA DE INFORMAÇÕES
Engenharia de Informações
“Chen”
Unidade I
25
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
MERISE
Sua importância é devida ao fato de ser muito utilizada na França e
países europeus.
DEPARTAMENTO
(1,1)
DEPARTAMENTO
EMPREGADO
LOTAÇÃO
(0,n)
(0,n)
LOTAÇÃO
(1,1)
EMPREGADO
- O relacionamento é representado por uma elipse;
- As cardinalidades aparecem invertidas;
Unidade I
26
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
USO DE FERRAMENTAS DE MODELAGEM
- Trabalho profissional: não é recomendada a modelagem manual
-Apoio
p
do computador
p
à modelagem
g
é recomendável desde o início
USO DE FERRAMENTA CASE
- Existem em várias configurações e preços
- Exigências mínimas para uma ferramenta CASE:
- Capacidade de edição diagramática
- Dicionário de Dados
- Integração entre o DER e o DD
USO DE FERRAMENTAS DE PROPÓSITO
Ó
GERAL
- Empresas com orçamento apertado
- Uso de programas de propósito geral
- Dicionário de Dados editado através de planilha, editor de texto ou
preferencialmente um banco de dados;;
p
- Não há integração entre o DER e o DD
Unidade I
27
Banco de Dados I
DIAGRAMA ENTIDADE-RELACIONAMENTO
PRICED_PRODUCTS
ID
PRICE
PRICED PRODUCT
* PRICE
o QUANTITY IN STOCK
o SIZE CODE
PDT_ID
QUANTITY_IN_STOCK
SIZE_CODE
PPT_PK
PPT_PDT_FK
PPT_PDT_FK
K
FOR
OBTAINABLE AS
PRODUCT
#
*
*
o
o
PRODUCTS
ID
DESCRIPTION
PRODUCT TYPE
DISCOUNT DAY
PHOTO
ID
PROMPT Creating Table 'PRODUCTS'
CREATE TABLE PRODUCTS
(ID NUMBER(38) NOT NULL
,DESCRIPTION VARCHAR2(30) NOT NULL
,PRODUCT_TYPE VARCHAR2(10) NOT NULL
,DISCOUNT_DAY VARCHAR2(1)
,PHOTO
PHOTO VARCHAR2(40) );
PROMPT Creating Table 'PRICED_PRODUCTS'
CREATE TABLE PRICED_PRODUCTS
(ID NUMBER(10,0) NOT NULL
,PRICE
PRICE NUMBER(6
NUMBER(6,2)
2) DEFAULT 0 NOT NULL
,PDT_ID NUMBER(38) NOT NULL
,QUANTITY_IN_STOCK NUMBER(38)
,SIZE_CODE VARCHAR2(2) );
PROMPT Creating Primary Key on 'PRODUCTS'
ALTER TABLE PRODUCTS
ADD (CONSTRAINT PDT_PK PRIMARY KEY (ID));
DESCRIPTION
PRODUCT_TYPE
DISCOUNT_DAY
PHOTO
PDT_PK
PROMPT Creating Primary Key on
'PRICED_PRODUCTS'
ALTER TABLE PRICED_PRODUCTS
ADD (CONSTRAINT PPT_PK PRIMARY KEY (ID));
PROMPT C
Creating
ti F
Foreign
i
K
Keys on
'PRICED_PRODUCTS'
ALTER TABLE PRICED_PRODUCTS ADD
CONSTRAINT
PPT_PDT_FK FOREIGN KEY
(PDT_ID) REFERENCES PRODUCTS (ID);
Unidade I
28
Banco de Dados I
Download