A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SCC Bancos de Dados e Suas Aplicações

Apresentações semelhantes


Apresentação em tema: "SCC Bancos de Dados e Suas Aplicações"— Transcrição da apresentação:

1 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

2 Abstrações Como mapear Conjuntos de Entidades? Aluno Disciplina Sigla
Nome No. Créditos Sigla Aluno Nome NUSP CPF RG USP – ICMC – GBDI

3 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

4 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édico Atende N M Consulta Nome RG CRM CE ou CEs – conjunto de entidades CR – conjunto relacionamento Na ilustração: o CR Consulta possui CEs Paciente e Médico Um CR gerador, produz um CE agregação. No caso, Consulta. Atende definiria um conjunto e, portanto, um paciente seria atendido uma única vez por cada médico, sem possibilidade de inserir novas consultas para um mesmo médico no sistema.

5 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. Sala Data Paciente Médico Atende N M Consulta Nome RG CRM CE ou CEs – conjunto de entidades CR – conjunto relacionamento Na ilustração: o CR Consulta possui CEs Paciente e Médico Um CR gerador, produz um CE agregação. No caso, Consulta. Atende definiria um conjunto e, portanto, um paciente seria atendido uma única vez por cada médico, sem possibilidade de inserir novas consultas para um mesmo médico no sistema.

6 Mapeamento de Agregação
Consulta N M Paciente Atende Médico RG CRM Data Nome Nome Sala Médico = {CRM, Nome} Paciente = {RG, Nome} Neste exemplo, o atributo Data, e o fato de que não pode haver um mesmo atendimento paciente-médico na mesma data, faz com que uma modelagem em que o relacionamento Atende tenha os atributos Data e Sala não seja suficiente, pois a cardinalidade M-N não garante a semântica desejada. Obs.: Apesar do exemplo usar semântica temporal, este problema não é exclusivo de relacionamentos envolvendo tempo. Consulta = {Paciente, Medico, Data, Sala}

7 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 Um professor tem um aluno por projeto e um projeto tem um único professor. Cada professor pode ter vários projetos e cada aluno pode ser orientado em vários projetos. Aluno- Pós Professor Orienta NFunc NUSP Título Nome Nome

8 Mapeamento de Agregação
Caso 2a: cada instância do CR gera apenas uma entidade agregada... Projeto N M Aluno- Pós Professor Orienta NFunc NUSP Título Nome Nome Aluno = {NUSP, Nome} Professor = {Nfunc, Nome} Neste exemplo Orientador + Aluno determinam uma chave candidata (isto é, juntos são atributos primos), de maneira que não é possível a repetição de uma orientação orientador-aluno. Projeto = {Título, Orientador, Aluno}

9 Mapeamento de Agregação
Caso 2b: cada instância do CR gera mais de uma entidade agregada... Projeto N M Aluno- Pós Professor Orienta NFunc NUSP Título Nome Nome Aluno = {NUSP, Nome} Professor = {Nfunc, Nome} Neste caso, pode haver a repetição de uma orientação orientador-aluno, de maneira que vários projetos podem ser desenvolvidos pela mesma parceria. Projeto = {Título, Orientador, Aluno}

10 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 Professor Orienta NFunc NUSP Título Nome Nome Aluno = {NUSP, Nome} Professor = {Nfunc, Nome} Neste caso, pode haver a repetição de uma orientação orientador-aluno, de maneira que vários projetos podem ser desenvolvidos pela mesma parceria. Projeto = {Título, Orientador, Aluno}

11 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 Sala Data Paciente Médico Atende N M Consulta Nome RG CRM NroRegistroConsulta também identifica univocamente cada consulta

12 Consulta = {Paciente, Medico, Data, NroRegistroConsulta, Sala}
Médico Atende N M Consulta Nome RG CRM NroRegistroConsulta Médico = {CRM, Nome} Paciente = {RG, Nome} Consulta = {Paciente, Medico, Data, NroRegistroConsulta, Sala} Qual é o problema sendo resolvido neste caso? Um único atributo como chave apresenta melhor desempenho e é mais fácil de ser usado.

13 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 N Aula NFunc Sigla Nome Nome Professor = {Nfunc, Nome} Disciplina = {Sigla, Nome} Neste caso, o fato de que o relacionamento tem atributo leva à necessidade de se ter uma tabela a mais, além da tabela que representa a agregação. No exemplo, se livro for armazenado na tabela da agregação, esta informação será replicada. Um professor ministra várias aulas de uma disciplina. Como armazenar dados a respeito de cada aula sendo que só pode haver uma única aula em cada data/horário? Aula = {Nfunc, Sigla, Data/Horário, LivroTexto}

14 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 N Aula NFunc Sigla Nome Nome Professor = {Nfunc, Nome} Disciplina = {Sigla, Nome} Neste caso, o fato de que o relacionamento tem atributo leva à necessidade de se ter uma tabela a mais, além da tabela que representa a agregação. No exemplo, se livro for armazenado na tabela da agregação, esta informação será replicada. Um professor ministra várias aulas de uma disciplina. Como armazenar dados a respeito de cada aula sendo que só pode haver uma única aula em cada data/horário? Neste exemplo, tanto o relacionamento N:N quanto a agregação levaram à criação de relações. No entanto, na maioria dos casos, uma única relação irá comportar todos os dados. Ministra = {Nfunc, Sigla, LivroTexto} A semântica permite normalizar, gerando uma nova relação. Aula = {Nfunc, Sigla, Data/Horário}

15 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 CEG – conjunto de entidades generalizador CEE_k – k-ésimo conjunto de entidades específico

16 CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} AtC D
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} ... CEE1 CEEk AG – atributos gerais AtC – atributo que especifica a Classe da (instância) da entidade, vai indicar a qual CEE se refere a entidade A disjunção é conseguida aqui por meio do atributo classificador – no entanto, deve-se observar que o banco de dados – por meio de recursos não relacionais – é responsável por garantir a disjunção. O mesmo vale para variações desta solução considerando participação total. Disjunção: uma dada entidade só pode ser uma única subentidade Embora o atributo AtC peça que um tipo seja determinado, este recurso não é suficiente para garantir que haverá tuplas nas relações descendentes. Ae1 Aek Uma relação geral com um atributo de tipo (AtC)  disjunção.

17 CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek}
Mapeamento da Generalização - Alternativa 1 Procedimento Padrão 2 sobreposição Ch CEG AG AtC CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} O ... CEE1 CEEk Sobreposição: um dada entidade pode ser mais do que uma subentidade. A sobreposição ocorre, pois como uma entidade genérica não possui tipo específico, ela pode aparecer em mais do que uma tabela descendente ao mesmo tempo. Nesse caso, não se usa AtC, pois uma dada entidade pode ser de várias subentidades. Problema: caso eu não saiba o tipo de uma entidade que será usada como parâmetro para uma consulta, eu tenho que vasculhar todas as tabelas até encontrar o que estou procurando. Ae1 Aek A relação geral não possui atributo de tipo  sobreposição.

18 CEG = { Ch, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek}
Mapeamento da Generalização - Alternativa 1 Procedimento Padrão 3 sobreposição Ch CEG AG AtC CEG = { Ch, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} CEC={ Ch, AtC} O ... CEE1 CEEk Nessa abordagem, usa-se uma terceira relação – CEC (Conjunto de Entidades de Classificação) – que indica a qual tipo de entidade uma dada entidade se refere. Ae1 Aek Uma terceira relação – CEC – que indica a qual tipo de entidade uma dada entidade se refere (neste caso, sobreposição).

19 CEG = { Ch, AtC, AG, Ae1, ... Aek } AtC D ...
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 Uma única tabela com todos os possíveis atributos de todas as possíveis entidades. AtC como NOT NULL garante participação total. ... CEE1 CEEk Ae1 Aek Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, com atributo de tipo  disjunção.

20 Mapeamento da Generalização - Alternativa 2 Procedimento Padrão 5
CEG = { Ch, AtC, AG, Ae1, ... Aek } sobreposição Ch CEG AG AtC O A sobreposição ocorre pois torna-se aceitável o preenchimento de atributos pertencentes a mais do que uma entidade específica. Uma única tabela com todos os possíveis atributos de todas as possíveis entidades. Mas sem um atributo que especifica a subentidade da entidade  sobreposição. Não garante participação total, pois não há mecanismo que force a entidade a pertencer a uma subentidade. Mesmo problema que o padrão 2, agravado pelo fato de que os atributos nulos serão interpretação semântica confusa. ... CEE1 CEEk Ae1 Aek Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, sem atributo de tipo  sobreposição.

21 CEG = { Ch, AG, Ae1,... Aek, BCEE1, .... BCEEk}
Mapeamento da Generalização - Alternativa 2 Procedimento Padrão 6 CEG = { Ch, AG, Ae1,... Aek, BCEE1, .... BCEEk} sobreposição Ch CEG AG AtC O ... CEE1 CEEk BCEEk: atributos boleanos que indicam quais atributos se aplicam para uma dada entidade. Um boleano para cada atributo específico. Solução ruim. Nesta abordagem, cada entidade pode ser mais do que uma subentidade ao mesmo tempo  sobreposição Ae1 Aek 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.

22 CEE1 = { Ch, AG, AE1 } ... CEEk = { Ch, AG, AEk } AtC ...
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. Na alternativa 3, não há tabela para a entidade genérica, apenas uma tabela para cada subentidade. Necessidade de participação total: todos os genéricos participam de alguma entidade específica. Problema semelhante ao padrão 2. ... CEE1 CEEk Ae1 Aek

23 CEEk = { Ch, AG, AEk } CEC={ Ch, AtC}
Mapeamento da Generalização - Alternativa 3 Procedimento 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. Aqui, uma tabela auxiliar – a CEC – indica de qual subentidade é cada entidade. A tabela auxiliar é interessante pois permite a consulta sobre quais entidades são o quê no banco. Como o atributo AtC entra na relação sem ser chave, este procedimento atende as situações em que a especialização é mutuamente exclusiva, isto é, uma dada entidade só pode ser de uma única subentidade. Mutualidade exclusiva aqui se refere a disjunção. AtC como NOT NULL. ... CEE1 CEEk Ae1 Aek

24 CEEk = { Ch, AG, AEk } CEC={ Ch, AtC}
Mapeamento da Generalização - Alternativa 3 Procedimento 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. Semelhante ao slide anterior. No entanto, AtC como atributo que compõe a chave, faz com que exista a possibilidade de sobreposição. ... CEE1 CEEk Ae1 Aek

25 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}} CEEi = {Ch, AG, Aei} CEEi = {Ch, AG, Aei} CEC = {Ch, AtC} CEEi = {Ch, AG, Aei} CEC = {Ch, AtC}


Carregar ppt "SCC Bancos de Dados e Suas Aplicações"

Apresentações semelhantes


Anúncios Google