250 likes | 354 Views
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.
E N D
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 No. Créditos Sigla Abstrações • Como mapear Conjuntos de Entidades? Aluno Nome NUSP CPF RG USP – ICMC – GBDI
Mapeamento de Abstrações de Dados • O MER-X suporta duas abstrações de dados: • Agregação • Generalização • Extensão do Mapeamento MER-MREL para suporte às abstrações
Consulta M N Paciente Médico Atende CRM RG Data Nome Nome Sala 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
Consulta M N Paciente Médico Atende CRM RG Data Nome Nome Sala 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 No mapeamento tradicional, M-N, um mesmo paciente não poderá consultar o mesmo médico novamente – nem mesmo para o retorno.
Consulta = {Paciente, Medico, Data, Sala} Mapeamento de Agregação Consulta Médico = {CRM, Nome} Paciente = {RG, Nome} M N Paciente Médico Atende CRM RG Data Nome Nome Sala
Mapeamento de Agregação • 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 Projeto N M Aluno- Pós Orienta Professor NFunc NUSP Título Nome Nome
Projeto = {Título, Orientador, Aluno} Mapeamento de Agregação • Caso 2a: cada instância do CR gera apenas uma entidade agregada... Projeto N M Aluno- Pós Orienta Professor NFunc NUSP Título Nome Nome Aluno = {NUSP, Nome} Professor = {Nfunc, Nome}
Projeto = {Título, Orientador, Aluno} Mapeamento de Agregação • Caso 2b: cada instância do CR gera mais de uma entidade agregada... Projeto N M Aluno- Pós Orienta Professor NFunc NUSP Título Nome Nome Aluno = {NUSP, Nome} Professor = {Nfunc, Nome}
Projeto = {Título, Orientador, Aluno} Mapeamento de Agregação • Caso 2b: cada instância do CR gera mais de uma entidade agregada... Esse mapeamento apresenta um ganho semântico, com o título do projeto como chave. Projeto N M Aluno- Pós Orienta Professor NFunc NUSP Título Nome Nome Aluno = {NUSP, Nome} Professor = {Nfunc, Nome}
Consulta M N Paciente Médico Atende CRM RG Data Nome Nome Sala Mapeamento de Agregação • 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 NroRegistroConsulta também identifica univocamente cada consulta
Consulta M N Paciente Médico Atende CRM RG Data Nome Nome Sala NroRegistroConsulta Médico = {CRM, Nome} Paciente = {RG, Nome} Consulta = {Paciente, Medico, Data, NroRegistroConsulta, Sala}
Aula Livro Texto N N Professor Disciplina Ministra Data/Horário • 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.... NFunc Sigla Nome Nome Professor = {Nfunc, Nome} Disciplina = {Sigla, Nome} Aula = {Nfunc, Sigla, Data/Horário, LivroTexto}
Aula Livro Texto N N Professor Disciplina Ministra Data/Horário • 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.... NFunc Sigla Nome Nome Professor = {Nfunc, Nome} Disciplina = {Sigla, Nome} Ministra = {Nfunc, Sigla, LivroTexto} A semântica permite normalizar, gerando uma nova relação. Aula = {Nfunc, Sigla, Data/Horário}
Mapeamento da Generalização • Três alternativas principais: • Mapear o CEG e os CEE em relações diferentes • Mapear o CEG e todos os CEE em uma única relação • Mapear cada CEE (e apenas) em sua própria relação, junto com seus respectivos atributos genéricos
Mapeamento da Generalização - Alternativa 1 (relações diferentes)Procedimento Padrão 1 Ch CEG disjunção AG AtC D CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} ... CEEk CEE1 Aek Ae1 Uma relação geral com um atributo de tipo (AtC) disjunção.
Mapeamento da Generalização - Alternativa 1Procedimento Padrão 2 sobreposição Ch CEG AG AtC CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} O ... CEEk CEE1 Aek Ae1 A relação geral não possui atributo de tipo sobreposição.
Mapeamento da Generalização - Alternativa 1Procedimento Padrão 3 sobreposição Ch CEG AG AtC CEG = { Ch, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} CEC={ Ch, AtC} O ... CEEk CEE1 Aek Ae1 Uma terceira relação – CEC – que indica a qual tipo de entidade uma dada entidade se refere (neste caso, sobreposição).
Mapeamento da Generalização - Alternativa 2 (única relação)Procedimento Padrão 4 CEG = { Ch, AtC, AG, Ae1, ... Aek } Ch CEG disjunção AG AtC D ... CEEk CEE1 Aek Ae1 Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, com atributo de tipo disjunção.
Mapeamento da Generalização - Alternativa 2Procedimento Padrão 5 CEG = { Ch, AtC, AG, Ae1, ... Aek } sobreposição Ch CEG AtC AG O ... CEEk CEE1 Aek Ae1 Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, sem atributo de tipo sobreposição.
Mapeamento da Generalização - Alternativa 2Procedimento Padrão 6 CEG = { Ch, AG, Ae1,... Aek, BCEE1, ....BCEEk} sobreposição Ch CEG AG AtC O ... CEEk CEE1 Aek Ae1 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.
Mapeamento da Generalização - Alternativa 3 (não há relação genérica)Procedimento Padrão 7 CEE1 = { Ch, AG, AE1 } ... CEEk = { Ch, AG, AEk } participação total Ch CEG AG AtC Cada relação com seus atributos gerais e específicos. Sobreposição – uma dada entidade pode ser várias ao mesmo tempo. ... CEEk CEE1 Aek Ae1
Mapeamento da Generalização - Alternativa 3Procedimento Padrão 8 CEEk = { Ch, AG, AEk } CEC={ Ch, AtC} participação total Ch CEG AG AtC D Cada relação com seus atributos gerais e específicos. E outra que indica de qual tipo é cada instância disjunção. ... CEEk CEE1 Aek Ae1
Mapeamento da Generalização - Alternativa 3Procedimento Padrão 9 CEEk = { Ch, AG, AEk } CEC={ Ch, AtC} participação total Ch CEG AG AtC O Cada relação com seus atributos gerais e específicos. E outra que indica de qual tipo é cada instância sobreposição. ... CEEk CEE1 Aek Ae1
Os 9 Procedimentos Padrã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}