SCC0141 - Bancos de Dados e Suas Aplicações

Post on 20-Jan-2016

20 views 0 download

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

SCC0141 - Bancos de Dados e Suas Aplicações

Prof. Jose Fernando Rodrigues Junior

Material original: Elaine Parros Machado de Sousa

Mapeamento entre EsquemasParte 2

Abstrações Como mapear Conjuntos de Entidades?

USP – ICMC – GBDI 2

Disciplina

NomeNo. Créditos

Sigla

Aluno

Nome

NUSP

CPFRG

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

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

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.

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}

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

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}

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}

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.

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

Sala

Data

Paciente MédicoAtendeN M

Consulta

NomeNomeRG CRM

NroRegistroConsulta

Médico = {CRM, Nome}

Paciente = {RG, Nome}

Consulta = {Paciente, Medico, Data,

NroRegistroConsulta, Sala}

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}

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.

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

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.

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.

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).

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.

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.

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.

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.

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.

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.

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