SCC0141 - Bancos de Dados e Suas Aplicações

25
SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Material original: Elaine Parros Machado de Sousa Mapeamento entre Esquemas Parte 2

description

SCC0141 - Bancos de Dados e Suas Aplicações. Prof. Jose Fernando Rodrigues Junior Material original: Elaine Parros Machado de Sousa Mapeamento entre Esquemas Parte 2. Disciplina. Nome. N o. Créditos. Sigla. Abstrações. Como mapear Conjuntos de Entidades?. Aluno. Nome. NUSP. CPF. RG. - PowerPoint PPT Presentation

Transcript of SCC0141 - Bancos de Dados e Suas Aplicações

Page 1: SCC0141 - Bancos de Dados e Suas Aplicações

SCC0141 - Bancos de Dados e Suas Aplicações

Prof. Jose Fernando Rodrigues Junior

Material original: Elaine Parros Machado de Sousa

Mapeamento entre EsquemasParte 2

Page 2: SCC0141 - Bancos de Dados e Suas Aplicações

Abstrações Como mapear Conjuntos de Entidades?

USP – ICMC – GBDI 2

Disciplina

NomeNo. Créditos

Sigla

Aluno

Nome

NUSP

CPFRG

Page 3: SCC0141 - Bancos de Dados e Suas Aplicações

O MER-X suporta duas abstrações de dados: Agregação

Generalização

Extensão do Mapeamento MER-MREL para suporte às abstrações

Mapeamento de Abstrações de Dados

Page 4: SCC0141 - Bancos de Dados e Suas Aplicações

Caso 1: CE Agregação é identificado por atributo próprio + chaves dos CEs que participam do CR gerador uma mesma instância do CR gerador resulta

em mais de uma entidade agregada

Sala

Data

Paciente MédicoAtendeN M

Consulta

NomeNomeRG CRM

Mapeamento de Agregação

Page 5: SCC0141 - Bancos de Dados e Suas Aplicações

Caso 1: CE Agregação é identificado por atributo próprio + chaves dos CEs que participam do CR gerador uma mesma instância do CR gerador resulta

em mais de uma entidade agregada

Sala

Data

Paciente MédicoAtendeN M

Consulta

NomeNomeRG CRM

Mapeamento de Agregação

No mapeamento tradicional, M-N, um mesmo paciente não poderá consultar o mesmo médico novamente – nem mesmo para o retorno.

Page 6: SCC0141 - Bancos de Dados e Suas Aplicações

Médico = {CRM, Nome}

Paciente = {RG, Nome}

Mapeamento de Agregação

Sala

Data

Paciente MédicoAtendeN M

Consulta

NomeNomeRG CRM

Consulta = {Paciente, Medico, Data, Sala}

Page 7: SCC0141 - Bancos de Dados e Suas Aplicações

Caso 2: CE Agregação é identificado por um de seus atributos as chaves dos CE que participam do CR gerador não são necessárias para identificar a agregação

Mapeamento de Agregação

Título

Professor Aluno- Pós

Orienta

Projeto

NomeNFunc

NomeNUSP

MN

Page 8: SCC0141 - Bancos de Dados e Suas Aplicações

Caso 2a: cada instância do CR gera apenas uma entidade agregada...

Mapeamento de Agregação

Título

Professor Aluno- Pós

OrientaMN

Projeto

NomeNFunc

NomeNUSP

Aluno = {NUSP, Nome}

Professor = {Nfunc, Nome}

Projeto = {Título, Orientador, Aluno}

Page 9: SCC0141 - Bancos de Dados e Suas Aplicações

Caso 2b: cada instância do CR gera mais de uma entidade agregada...

Mapeamento de Agregação

Título

Professor Aluno- Pós

OrientaMN

Projeto

NomeNFunc

NomeNUSP

Aluno = {NUSP, Nome}

Professor = {Nfunc, Nome}

Projeto = {Título, Orientador, Aluno}

Page 10: SCC0141 - Bancos de Dados e Suas Aplicações

Caso 2b: cada instância do CR gera mais de uma entidade agregada...

Mapeamento de Agregação

Título

Professor Aluno- Pós

OrientaMN

Projeto

NomeNFunc

NomeNUSP

Aluno = {NUSP, Nome}

Professor = {Nfunc, Nome}

Projeto = {Título, Orientador, Aluno}

Esse mapeamento apresenta um ganho semântico, com o título do projeto como chave.

Page 11: SCC0141 - Bancos de Dados e Suas Aplicações

Caso 3: mistura dos casos 1 e 2b. Duas formas de identificar CE Agregação: 1. chaves dos CE que participam do CR

gerador + atributo da agregação 2. atributo próprio da agregação

Sala

Data

Paciente MédicoAtendeN M

Consulta

NomeNomeRG CRM

Mapeamento de Agregação

NroRegistroConsulta

também identifica univocamente cada consulta

Page 12: SCC0141 - Bancos de Dados e Suas Aplicações

Sala

Data

Paciente MédicoAtendeN M

Consulta

NomeNomeRG CRM

NroRegistroConsulta

Médico = {CRM, Nome}

Paciente = {RG, Nome}

Consulta = {Paciente, Medico, Data,

NroRegistroConsulta, Sala}

Page 13: SCC0141 - Bancos de Dados e Suas Aplicações

Exemplo (caso 1): um relacionamento R1 entre o Professor P1 e a Disciplina D1 pode gerar várias entidades Aula, mas o Livro Texto não muda para cada uma destas aulas....

Data/Horário

Professor Disciplina

Ministra

Livro Texto

NN

Aula

NomeNFunc

NomeSigla

Professor = {Nfunc, Nome} Disciplina = {Sigla,

Nome} Aula = {Nfunc, Sigla, Data/Horário, LivroTexto}

Page 14: SCC0141 - Bancos de Dados e Suas Aplicações

Exemplo: um relacionamento R1 entre o Professor P1 e a Disciplina D1 pode gerar várias entidades Aula, mas o Livro Texto não muda para cada uma destas aulas....

Data/Horário

Professor Disciplina

Ministra

Livro Texto

NN

Aula

NomeNFunc

NomeSigla

Professor = {Nfunc, Nome} Disciplina = {Sigla,

Nome} Ministra = {Nfunc, Sigla, LivroTexto}

Aula = {Nfunc, Sigla,

Data/Horário}

A semântica permite normalizar, gerando uma nova relação.

Page 15: SCC0141 - Bancos de Dados e Suas Aplicações

Três alternativas principais:1. Mapear o CEG e os CEE em relações

diferentes

2. Mapear o CEG e todos os CEE 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

Page 16: SCC0141 - Bancos de Dados e Suas Aplicações

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1}... CEEk = { Ch, Aek}

Mapeamento da Generalização - Alternativa 1 (relações diferentes)Procedimento Padrão 1

disjunção

DAtC

Uma relação geral com um atributo de tipo (AtC) disjunção.

Page 17: SCC0141 - Bancos de Dados e Suas Aplicações

CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1}... CEEk = { Ch, Aek}

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

Mapeamento da Generalização - Alternativa 1Procedimento Padrão 2

sobreposição

OAtC

A relação geral não possui atributo de tipo sobreposição.

Page 18: SCC0141 - Bancos de Dados e Suas Aplicações

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEG = { Ch, AG } CEE1 = { Ch, Ae1}... CEEk = { Ch, Aek}

CEC={ Ch, AtC}

Mapeamento da Generalização - Alternativa 1Procedimento Padrão 3

OAtC

sobreposição

Uma terceira relação – CEC – que indica a qual tipo de entidade uma dada entidade se refere (neste caso, sobreposição).

Page 19: SCC0141 - Bancos de Dados e Suas Aplicações

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEG = { Ch, AtC, AG, Ae1, ... Aek }

Mapeamento da Generalização - Alternativa 2 (única relação)Procedimento Padrão 4

DAtC

disjunção

Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, com atributo de tipo disjunção.

Page 20: SCC0141 - Bancos de Dados e Suas Aplicações

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

Mapeamento da Generalização - Alternativa 2Procedimento Padrão 5

CEG = { Ch, AtC, AG, Ae1, ... Aek }

O

AtC

sobreposição

Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, sem atributo de tipo sobreposição.

Page 21: SCC0141 - Bancos de Dados e Suas Aplicações

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEG = { Ch, AG, Ae1,... Aek, BCEE1, .... BCEEk}

Mapeamento da Generalização - Alternativa 2Procedimento Padrão 6

OAtC

sobreposição

Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, sem atributo de tipo, e com atributos booleanos para determinar quais atributos correspondem a quais entidades.

Page 22: SCC0141 - Bancos de Dados e Suas Aplicações

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEE1 = { Ch, AG, AE1 }...CEEk = { Ch, AG, AEk }

Mapeamento da Generalização - Alternativa 3 (não há relação genérica)Procedimento Padrão 7

AtC

participação total

Cada relação com seus atributos gerais e específicos.

Sobreposição – uma dada entidade pode ser várias ao mesmo tempo.

Page 23: SCC0141 - Bancos de Dados e Suas Aplicações

Mapeamento da Generalização - Alternativa 3Procedimento Padrão 8

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEEk = { Ch, AG, AEk }

CEC={ Ch, AtC}

AtC

D

participação total

Cada relação com seus atributos gerais e específicos.E outra que indica de qual tipo é cada instância disjunção.

Page 24: SCC0141 - Bancos de Dados e Suas Aplicações

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEEk = { Ch, AG, AEk }

CEC={ Ch, AtC}

Mapeamento da Generalização - Alternativa 3Procedimento Padrão 9

AtC

O

participação total

Cada relação com seus atributos gerais e específicos.E outra que indica de qual tipo é cada instância sobreposição.

Page 25: SCC0141 - Bancos de Dados e Suas Aplicações

1 CEG = {Ch, AtC, AG} CEEi = {Ch, Aei}

2 CEG = {Ch, AG} CEEi = {Ch, Aei}

3 CEG = {Ch, AG} CEEi = {Ch, Aei} CEC = {Ch,

AtC}

4 CEG = {Ch, AG, AtC, Ae1, Ae2, .... Aem}

5 CEG = {Ch, AG, Ae1, Ae2, .... Aem}

6 CEG = {Ch, AG, Ae1, Ae2, .... Aem, BCEE1,

BCEE2, ...BCEEm}}

7 CEEi = {Ch, AG, Aei}

8 CEEi = {Ch, AG, Aei} CEC = {Ch,

AtC}

9 CEEi = {Ch, AG, Aei} CEC =

{Ch, AtC}

Os 9 Procedimentos Padrão