Upload
vinicius-mainardi
View
43
Download
1
Embed Size (px)
Citation preview
Universidade Federal de UberlândiaFaculdade de Engenharia Mecânica
Engenharia Mecatrônica
Banco de dadosProf. Hiran Nonato
Transformações entre modelos (ER-X Relacional)
Parte 2
Última aula (7 passos)
1. Mapear todos os tipos-entidade forte
2. Mapear todos os tipos-entidade fraca
3. Mapear todos os tipos-relacionamento 1:1
4. Mapear todos os tipos-relacionamento 1:N
5. Mapear todos os tipos-relacionamento N:M
6. Mapear todos os atributos multivalorados
7. Mapear todos os tipos-relacionamento de grau > 2
2Banco de Dados - 2012-2
Última aula (7 passos)
1. Mapear todos os tipos-entidade forte
2. Mapear todos os tipos-entidade fraca
3. Mapear todos os tipos-relacionamento 1:1
4. Mapear todos os tipos-relacionamento 1:N
5. Mapear todos os tipos-relacionamento N:M
6. Mapear todos os atributos multivalorados
7. Mapear todos os tipos-relacionamento de grau > 2
3Banco de Dados - 2012-2
E o MER-X.
Mapeamento do MER-X
1. Mapear todos os tipos-entidade forte que não são subclasses
2. Mapear todos os tipos-entidade fraca que não são subclasses
3. Mapear todos os tipos-relacionamento 1:1
4. Mapear todos os tipos-relacionamento 1:N
5. Mapear todos os tipos-relacionamento N:M
6. Mapear todos os atributos multivalorados
7. Mapear todos os tipos-relacionamento de grau > 2
8. Mapear ocorrências de Generalização/Especialização
4Banco de Dados - 2012-2
Generalização/Especialização (1)
• Modelo Entidade Relacionamento
– E1 é superclasse
– E2, .... En são subclasses de E1
• Modelo Relacional
– A relação E1 será composta pelos atributos de E1
– As relações de E2 a En serão compostas pelos atributos:• Os atributos de E2
• A chave primária de E1
5Banco de Dados - 2012-2
Generalização/Especialização (1)
6Banco de Dados - 2012-2
Usuário
Aluno Professor
Matrícula SIAPE
d
CodUsuario
Nome
Generalização/Especialização (1)
7Banco de Dados - 2012-2
Usuário (codusuario, nome)Aluno (codusuario, matricula)Professor (codusuario, siape)
Empregado
Aluno Professor
Matrícula SIAPE
d
CodUsurio
nome
Generalização/Especialização (1)
8Banco de Dados - 2012-2
Empregado
Secretario Engenheiro
Setor Formação
d
Codempregado
nome
Tecnico
Conselho
Generalização/Especialização (1)
9Banco de Dados - 2012-2
Empregado (codempregado, nome)Secretario (codempregado, setor)
Tecnico (codempregado, conselho)Engenheiro (codempregado, formacao)
Empregado
Secretario Engenheiro
Setor Formação
d
Codempregado
nome
Tecnico
Conselho
Generalização/Especialização (1)
• Essa opção funciona para qualquer tipo de especialização– total, parcial, disjunta e sobreposta
• Interessante quando
– Existem poucas classes, cada uma com diversos atributos específicos
– Uma consulta tipicamente se concentra em uma ou poucas subclasses de cada vez
10Banco de Dados - 2012-2
Generalização/Especialização (2)
• Modelo Entidade Relacionamento
– E1 é superclasse
– E2 .... En são subclasses de E1
• Modelo Relacional
– As relações de E2 a En serão compostas pelos atributos:• Os seus próprios atributos
• Os atributos de E1
• A chave primária de E1
– A chave primária será a chave de E1
11Banco de Dados - 2012-2
Generalização/Especialização (2)
12Banco de Dados - 2012-2
Secretario (codempregado, nome, setor)Tecnico (codempregado, nome, conselho)
Engenheiro (codempregado, nome, formacao)
Empregado
Secretario Engenheiro
Setor Formação
d
Codempregado
nome
Tecnico
Conselho
Generalização/Especialização (2)
• Essa opção funciona apenas para participação total– É mais adequada para disjunção, mais suporta sobreposição
• Interessante quando– É freqüente o acesso a cada entidade em sua totalidade,
incluindo-se seus dados genéricos e específicos
– Esta opção evita junção no processo de consultas
• Não interessante quando– Houver a necessidade freqüente de acessar informações
envolvendo todas as entidades genéricas
– Houver a possibilidade de existirem especializações não previstas a priori
13Banco de Dados - 2012-2
Generalização/Especialização (3)
• Modelo Entidade Relacionamento
– E1 é superclasse
– E2 .... En são subclasses de E1
• Modelo Relacional
– A relação E1 será composta pelos atributos:• Os atributos de E1
• Os atributos de E2, ...., En
• Um atributo discriminador, caso necessário
14Banco de Dados - 2012-2
Generalização/Especialização (3)
15Banco de Dados - 2012-2
Empregado (codempregado, nome, setor, conselho, formacao, tipoempregado)
Empregado
Secretario Engenheiro
Setor Formação
d
Codempregado
nome
Tecnico
Conselho
Generalização/Especialização (3)
16Banco de Dados - 2012-2
Empregado (codempregado, nome, setor, conselho, formacao, tipoempregado)
Empregado
Secretario Engenheiro
Setor Formação
d
Codempregado
nome
Tecnico
Conselho
Sobreposição
Generalização/Especialização (3)
• Interessante para subclasses disjuntas
• Muitos campos nulos
17Banco de Dados - 2012-2
Generalização/Especialização (4)
• Modelo Entidade Relacionamento
– E1 é superclasse
– E2 .... En são subclasses de E1
• Modelo Relacional
– A relação E1 será composta pelos atributos:• Os atributos de E1
• Os atributos de E2, ...., En
• Vários atributos discriminadores de valores booleanos
18Banco de Dados - 2012-2
Generalização/Especialização (4)
19Banco de Dados - 2012-2
Empregado (codempregado, nome, secretario, setor, tecnico, conselho, engenheiro, formacao)
Empregado
Secretario Engenheiro
Setor Formação
d
Codempregado
nome
Tecnico
Conselho
Generalização/Especialização (4)
• Interessante quando– Existem poucos atributos específicos nas subclasses
– Houver a possibilidade de existirem especializações (sem atributo específico) não prevista à priori
20Banco de Dados - 2012-2
Agregação
• Para mapear ocorrências de agregação– Considerar cada um dos casos como o tipo-entidade
resultante da agregação é identificado
– Levar em consideração as chavess dos tipos-entidades componentes, o tipo-relacionamento gerador, os atributos do tipo-relacionamento gerador, o tipo-entidade agregação, e os atributos do tipo-entidade agregação
23Banco de Dados - 2012-2
Agregação (1)
• Deve ser usada– Quando o tipo-entidade agregação é identificado por atributo
próprio + chaves dos tipos-entidades que participam do tipo-relacionamento gerador
– Uma mesma instancia do tipo-relacionamento gerador resulta em mais de uma entidade agregada
24Banco de Dados - 2012-2
Agregação (1)
25Banco de Dados - 2012-2
Médico PacienteAtendeN M
Consulta
CRM
Nome
RG
Nome
Data
Paciente (RG, nome)Medico (CRM, nome)
Consulta (RG, CRM, Data)
Agregação (2)
• Deve ser usada– Quando o tipo-entidade agregação é identificado por um de
seus atributos
– Em geral o atributo é identificador da agregação era identificador do tipo-relacionamento gerador
26Banco de Dados - 2012-2
Agregação (2)
27Banco de Dados - 2012-2
Professor Aluno-pósOrientaN M
Projeto
Nro Func
Nome
Matri
Nome
Título
Professor (NroFunc, nome)Alunopos (Matricula, nome)
Projeto (Título, Professor, Aluno)
Agregação (3) Mistura da 1ª e 2ª opção
28Banco de Dados - 2012-2
Médico PacienteAtendeN M
Consulta
CRM
Nome
RG
Nome
Data
Paciente (RG, nome)Medico (CRM, nome)
Consulta (NroRegistro, data, RGPa, CRMMe)
NroRegistro
Exercícios para apresentação (05/01)
• Fazer um modelo entidade-relacionamento que consiga estabelecer as restrições possíveis para o minimundo “Facebook”.
• Este modelo deve contemplar questões, como:
– Perfil
– Conversas (Mensagens)
– Amigos
– Páginas
– Eventos
– Fotos
– Grupos
• Fazer o mapeamento para o modelo Relacional
• Fazer a inserção de pelo menos 5 registros em cada tabela.
29Banco de Dados - 2012-2