Prévia do material em texto
IF64A-Banco de Dados 1
pbugatti@utfpr.edu.br
Prof. Pedro Henrique Bugatti
Mapeamento
o Na primeira aula sobre mapeamento…
o procedimento básico em 7 passos
o alternativas de mapeamento:
o CR binários 1:1
!
o Abstrações
o Agregação
o Generalização/Especialização
2
3
o O MER-X suporta duas abstrações de dados:
o Agregação
o Generalização/Especialização
!
o Extensão do Mapeamento MER-MREL para
suporte às abstrações
Mapeamento de Abstrações de
Dados
AGREGAÇÃO
4
o Como mapear Agregação se:
o agregação é identificada por atributo próprio +
chave(s) de CE(s) que participa(m) do CR gerador
5
Mapeamento de Agregação
Data_Ingresso
Pessoa Universidade IngressaN M
Aluno
Nome_UnivNome_Pessoa
CPF_Pessoa CGC_Univ
6
Mapeamento de Agregação
Data_Ingresso
Pessoa Universidade IngressaN M
Aluno
Nome_UnivNome_Pessoa
CPF_Pessoa CGC_Univ
Orienta
Professor
Nome_Professor
CPF_Professor
P
S
Exercícios
! 1) Em um hospital, um paciente pode realizar consultas
com vários médicos. Cada consulta pode ter vários
exames realizados. Devem ser armazenados os dados
da consulta (data, horário e motivo) e os dados dos
exames (descrição e resultado).
!
!
! 2) Em uma dada biblioteca um cliente pode retirar
vários livros e um livro pode ser retirado por vários
clientes. Para toda retirada devem ser armazenadas a
data de retirada e a data de devolução. Os livros
devolvidos com atraso têm uma multa. Sobre a multa,
devem ser armazenados a quantidade de dias e valor.
7
GENERALIZAÇÃO/
ESPECIALIZAÇÃO
8
9
1. Mapear todos os CEs Fortes que não fazem parte de ocorrências
de generalização
2. Mapear todos os CEs Fracas que não fazem parte de ocorrências
de generalização
!
3. Mapear todos os CR de cardinalidade 1:1 do DER
4. Mapear todos os CR de cardinalidade 1:N do DER
5. Mapear todos os CR de cardinalidade M:N do DER
6. Mapear todos os CR de Grau >2 do DER
7. Mapear todos os Atributos Multivalorados de CEs e CRs do
DER
Alterando os 7 Passos ...
Passo 2a)
Passo 2A
• Analisar uma a uma todas as ocorrências
da abstração de generalização e escolher a
melhor opção de mapeamento
• Cada ocorrência da abstração é mapeada
de maneira independente (mesmo dentro
de uma mesma hierarquia)
Mapeamento da Generalização
11
! Três alternativas principais:
1. Mapear o CEG e os CEEs em relações
diferentes
2. Mapear o CEG e todos os CEEs em uma
única relação
3. Mapear cada CEE (e apenas) em sua
própria relação, junto com seus
respectivos atributos genéricos
Mapeamento da Generalização
12
!
! Cada alternativa pode ser mapeada
de mais de uma maneira
! Procedimento Padrão de Mapeamento
Mapeamento da Generalização
13
Mapear o CEG e os CEEs em
relações diferentes
Alternativa 1
14
Alternativa 1
Procedimento Padrão 1
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
D
CEG = { Ch, AtC, AG }
!
CEE1 = { Ch, AE1}
!
...
!
CEEi = { Ch, AEi}
AtC
AtC
15
o a ocorrência da generalização deve
ser mutuamente exclusiva
(disjunção).
Alternativa 1
Procedimento Padrão 1 (cont.)
CEG = { Ch, AtC, AG }
CEE1 = { Ch, AE1}
...
CEEi = { Ch, AEi}
16
CEG = { Ch, AG }
!
CEEi = { Ch, AEi }
!
CEC={ Ch, AtC }
Alternativa 1
Procedimento Padrão 2
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
O AtC
AtC
17
o Semelhante ao procedimento 1: usado
quando a Generalização é definida com
sobreposição
Alternativa 1
Procedimento Padrão 2 (cont.)
CEG = { Ch, AG }
!
CEC = { Ch, AtC}
!
CEE1 = { Ch, AE1}
...
CEEi = { Ch, AEi}
18
o Alternativa1 é interessante quando:
!
o existem poucos CE Específicos (todos conhecidos),
cada um com diversos atributos específicos
!
o consultas tipicamente se concentram em um ou
poucos CEEs de cada vez
!
o Aplicável a Especialização Total ou Parcial
Alternativa 1
19
Mapear o CEG e todos os
CEEs em uma única
relação
Alternativa 2
20
CEG = { Ch, AtC, AG, AE1, ... AEi }
Alternativa 2
Procedimento Padrão 3
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
D
AtC
AtC
21
ogeneralização deve ser mutuamente
exclusiva
o o valor de AtC deve ser não nulo
o em cada tupla apenas os atributos
correspondentes ao subtipo da entidade
podem possuir valor
o e os atributos correspondentes aos demais
subtipos devem ser sempre mantidos nulos
Alternativa 2
Procedimento Padrão 3 (cont.)
CEG = { Ch, AtC, AG, Ae1, ... Aek }
22
o Generalização definida com
sobreposição
o Se uma entidade pertence a
um CEE, então na tupla
pelo menos 1 atributo
correspondente ao CEE
deve possuir valor não nulo
Alternativa 2
Procedimento Padrão 4
CEG = { Ch, AtC, AG, AE1, ... AEi }
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
O
AtC
AtC
23
o Indica a quais CEEs um
entidade pertence usando
valores booleanos
!
CEG = { Ch, AG, AE1,... AEi, BCEE1, .... BCEEi}
Alternativa 2
Procedimento Padrão 5
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
O AtC
AtC
24
o Alternativa 2 é interessante quando:
!
o existem poucos atributos específicos nos CEEs
!
o houver a possibilidade de existirem especializações
(sem atributos específicos) não previstas no projeto
!
o Aplicável a Especialização Total ou Parcial
Alternativa 2
25
Mapear cada CEE (e apenas)
em sua própria relação,
junto com seus respectivos
atributos genéricos
Alternativa 3
26
CEE1 = { Ch, AG, AE1 }
...
!
CEEi = { Ch, AG, AEi }
Alternativa 3
Procedimento Padrão 6
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
AtC
AtC
27
Alternativa 3
Procedimento Padrão 7
CEE1 = { Ch, AG, AE1 }
...
!
CEEi = { Ch, AG, AEi }
!
CEC={ Ch, AtC}
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
D AtC
AtC
!
!
Como o atributo AtC entra na relação
sem ser chave, este procedimento
atende as s i tuações em que a
especialização é mutuamente exclusiva
28
Alternativa 3
Procedimento Padrão 8
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
O AtC
AtC
CEE1 = { Ch, AG, AE1 }
...
!
CEEi = { Ch, AG, AEi }
!
CEC={ Ch, AtC}
29
o Alternativa 3 é interessante quando:
o é frequente o acesso a cada entidade em
sua totalidade, incluindo seus dados
genéricos e específicos
o aplicável apenas para Especialização Total
Alternativa 3
30
o Atributos específicos que podem
identificar univocamente o CEE podem
ser colocadas como chaves secundárias
Casos Especiais
Pessoa = {CPF, Nome, Vinculo}
!
Aluno = {CPF, RA Curso}
CPF
Nome
RA
Curso
Pessoa
Professor Aluno
D
Vínculo
‘docente’ ‘aluno’
Vinculo
Exercício: mapear para o Modelo Relacional, discutindo, para cada
ocorrência da abstração, o porquê da opção de mapeamento
escolhida
PessoaCPF
Nome
Endereço
VínculoRA
Curso
N#Func
Função
Titulação
Aluno Funcionário Docente
Vínculo
Graduação Pós-Grad. Assistente Doutor
Semestre
Curso Titulação
Área
Orienta Pós?
O
O D
32
Exercício Seguradora - Mapeamento
Em uma seguradora de automóveis, um cliente tem pelo
menos um carro e um carro pertence a um único cliente.
Cada carro possui um número de acidentes associados a
ele, devendo ser armazenados a data, o local e uma
descrição do acidente. O acidente pode ser com vítima
ou sem vítima. Se for com vítima, devem ser
armazenados um histórico (contendo os nomes das
vítimas e o tipo de lesão sofrida) e o valor gasto com
indenização das vítimas. Se for sem vítima deve ser
armazenado o valor gasto com danos materiais.33
Exercício Biblioteca - Mapeamento
Em uma biblioteca há vários tipos de materiais (livros,
revistas e audiovisual). Para os livros são armazenados
o autor e a editora; as revistas têm número, volume e
data; os materiais audiovisuais têm o nome do diretor
e o tempo de duração. Um cliente pode retirar vários
materiais e um material pode ser retirado por vários
clientes. Para toda retirada devem ser armazenadas a
data de retirada e a data de devolução. Os materiais
devolvidos com atraso têm uma multa. Sobre a multa,
devem ser armazenados a quantidade de dias e o
valor.
Referências
!
! ELMASRI, Ramez; NAVATHE, Shamkant B.
Sistemas de banco de dados. 4. ed. São Paulo:
Pearson Addison Wesley, 2005.
!
! Sousa, E. P. M. Notas de aula – SCC240. ICMC-
USP.
34
IF64A-Banco de Dados 1
pbugatti@utfpr.edu.br
Prof. Pedro Henrique Bugatti