7/5/2009
1
Modelagem de
Dados
Efetivação Lógica dos Relacionamentos
Efetivação Lógica dos
Relacionamentos
Aula
08
1
Análise de
Relacionamentos
•
Em
diversas
situações
temos
uma
interpretação
distorcida
de
um
relacionamento.
Não
é
tarefa
simples,
identificar
os
graus
dos
relacionamen
‐
tos e
as
tabelas
que
irão
se
relacionar.
•
É
necessário
desmembrar
o
problema,
a
princí
‐
pio,
em
entidades.
•
Em
seguida,
devemos
criar
as
relações
e
seus
atributos
de
ligação.
Temos
que
visualizar
algo
que
ainda
vai
existir,
e
isto
é
tarefa
complexa.
2
Teste de
Relacionamento
•
Voltemos
ao
exemplo
de
uma
escola:
– Temos um cadastro de alunos.
– Cada aluno está associado a um curso e a um turno específico e preciso saber quais são os alunos que pertencem
3 específico e preciso saber quais são os alunos que pertencem a este curso e turno.
– Cada aluno poderá cursar uma ou mais disciplinas e cada disciplina poderá ter um ou mais alunos matriculados. Neste caso poderemos também controlar o lançamento de notas de cada aluno e de cada disciplina.
Teste de
Relacionamento
•
Esboçamos
então
o
seguinte
diagrama:
4
Teste de
Relacionamento
•
Para
que
as
entidades
se
relacionem,
devem
existir
atributos
em
comum
entre
elas:
5
Teste de
Relacionamento
•
Através das
regras do
negócio,
podemos ler a
cardinalidade dos
relacionamentos usando os
recursos verbais:
Cada curso poderá ter vários alunos associados
6 – Cada curso poderá ter vários alunos associados
(relacionamento 1:muitos).
– Cada turno poderá ter vários alunos associados (relacionamento 1:muitos).
7/5/2009
2
Teste de
Relacionamento
•
Porém quando temos dificuldades de
enxergar
desta forma,
podemos lançar mão do
recurso
do
diagrama de
instâncias.
É fácil de montar
7 – É fácil de montar.
– Nos mostra a cardinalidade da relação.
– Mostra quem é a entidade fraca e quem é a forte. – Mostra qual entidade deve receber a chave estrangeira.
Teste de
Relacionamento
•
No
exemplo:
–Para ler a cardinalidade da relação entre as entidades
CURSO e ALUNO, por exemplo, faça uma tabela com poucos registros.
8
–Eles podem ser aleatórios:
Teste de
Relacionamento
•
Ligue os alunos a
alguns cursos usando as
regras do
negócio,
por exemplo:
9
–Como de um registro de CURSO (Ex: TPD) temos várias
linhas ligando a ALUNOS (alunos 5, 6, e 7), então esta relação é de 1 para muitos (1: m).
Teste de
Relacionamento
•
Conclusão:
–Como os registros de ALUNOS só recebem uma ligação por
vez, esta entidade: * É fraca,
10 * Deve receber a chave primária de CURSO como chave
estrangeira.
•
Caso tivessemos múltiplas ligações em regis
‐
tros de
ambas entidades,
o
relacionamento
seria m:m
e
seria necessário criar uma entida
‐
de
auxiliar associativa.
Efetivação Lógica
•
É
preciso
incluir
campos
na
estrutura
de
dados
das
entidades
para
que
se
efetuem
os
relacio
‐
namentos.
Logo
devem
haver
campos
comuns.
•
Quando
um
campo
em
uma
entidade
caracteri
‐
11
p
za
‐
se por
ser
a
chave
de
identificação
única
denomina
‐
se
CHAVE
PRIMÁRIA.
•
Quando
em
uma
entidade
temos
um
campo
que
é
CHAVE
PRIMÁRIA
de
outra
entidade,
denomina
‐
se
CHAVE
ESTRANGEIRA..
Efetivação Lógica
•
Esta
ligação
realiza
‐
se
por
comparação
do
valor
da
Chave
Estrangeira
com
o
valor
da
Chave
Primária
de
outra
tabela,
sendo
um
papel
do
SGBD
e
não
da
modelagem.
12
•
Exemplo:
•Se temos um aluno de nome João e um curso de Admi‐
7/5/2009
3
Efetivação Lógica
13
Efetivação Lógica
•
Podemos
então
levantar
às
questões:
•Quais os nome dos alunos do curso de Administração ? •Quantos alunos temos matriculados em cada curso ? •Quantos cursos estão inscritos?
14
•
Para
um
bom
trabalho
de
modelagem,
deve
‐
mos esquecer
estas
perguntas,
e
nos
preocu
‐
parmos com
os
dados,
não
nos
importando
com
procedimentos
que
serão
inerentes
ao
sistema
final.
Efetivação Lógica
•
Portanto
é
mais
importante
nesta
fase
respon
‐
der a
seguinte
pergunta:
• Sabendo o nome ou matrícula de um aluno, será possível descobrir os dados relativos ao curso em
15
possível descobrir os dados relativos ao curso em que ele está matriculado?
•
Para
esta pergunda ter uma resposta afirmati
‐
va,
é
preciso que o
modelo tenha um
encadea
‐
mento lógico entre
as
relações.
Relacionamentos Encadeados
•
Foi
dada
a
seguinte
questão:
•Uma empresa pode ter várias filiais. •Cada filial de uma empresa pode ter vários
departamentos
16 departamentos.
•Um departamento de uma filial pode ter vários
empregados.
Relacionamentos Encadeados
•
1º
passo:
Criar
as
entidades
e
as
chaves
chaves primárias
• Filiais(código da filial (PK), nome da filial)
( ódi d d ( ) d
17
• Departamento (código do departamento (PK), nome do
departamento)
• Funcionário(matricula (PK), nome, endereço, telefone,
salário base, código do departamento)
Relacionamentos Encadeados
•
2º
passo:
Executar
os
relacionamentos
•Cada filial ‐> vários departamentos •Cada departamento > varíos empregados
18
•Cada departamento ‐> varíos empregados
•
Entendemos
tratar
‐
se
de
dois
relacionamentos
7/5/2009
4
Relacionamentos Encadeados
•
O
diagrama de
entidade relacionamento deste
problema será:
19
Relacionamentos Encadeados
Notamos
que
:
•A chave primária de uma tabela passou a ser chave estrangei‐
ra das outra.
•A entidade FUNCIONÁRIO recebeu duas chaves estrangeiras:
o código do departamento e o código da filial
20 o código do departamento e o código da filial.
•Esta HERANÇA se processa da seguinte forma: através da
chave estrangeira coddepartamentoque está na entidade
FUNCIONÁRIO, saberemos a que departamento o funcionário pertence. Já através da chave estrangeira codfilialsaberemos
a que filial o funcionário estará ligado.
Relacionamentos Encadeados
21
Relacionamentos Encadeados
22
Relacionamentos Encadeados
Pelo
diagrama
de
instâncias
fica
fácil
também
notar
este
encadeamento
de
entidades:
23
Exercício (Entrega na próxima aula)
• Deseja‐se fazer um modelo de dados para gerenciar uma pequena biblio‐
teca. Sabe‐se que cada usuário da biblioteca deve ser cadastrado com uma matrícula, nome, email e endereço. Cada livro, que possui um código, título, código da editora, autor e ano, pode ser reservado por vários usuá‐
rios (como uma fila), mas cada usuário pode reservar apenas um livro por vez, apesar de poder pegar emprestado vários livros por vez. Note que
d f i d di l f d
deve ser feito um cadastro a parte para editora com nome, telefone, ende‐
reço e código do fornecedor, assim como o cadastro encadeado de forne‐
cedor contendo nome, CNPJ, telefone, endereço e código.
• Faça (Individual):
– O dicionário de dados do modelo.
– O diagrama de instância de cada uma das relações (com excessão daquelas criadas pelas entidades associativas), com suas respectivas cardinalidades.
– Monte o diagrama de Entidade Relacionamento do modelo.