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

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

Transformação ODMG Relacional. Implementação Relacional de BDs OO Transformação Esquema Objeto Esquema Relacional Transformação Esquema Objeto Esquema.

Apresentações semelhantes


Apresentação em tema: "Transformação ODMG Relacional. Implementação Relacional de BDs OO Transformação Esquema Objeto Esquema Relacional Transformação Esquema Objeto Esquema."— Transcrição da apresentação:

1 Transformação ODMG Relacional

2 Implementação Relacional de BDs OO Transformação Esquema Objeto Esquema Relacional Transformação Esquema Objeto Esquema Objeto-Relacional Camada OO no Topo de um SGBDR Integração de uma LPOO com um SGBDR Interoperabilidade de SGBDOO e SGBDR

3 Transformação Esquema Objeto Esquema Relacional Classe de Objetos Tabela Relacional –OID Chave Primária, Surrogate Key –Os métodos são implementados como stored procedures, ou SQL-functions ou SQL- triggers Herança com União –Alternativa 1: a superclasse e cada uma das subclasses são transformadas em tabelas relacionais; uma chave compartilhada ID é usada para preservar a identidade dos objetos através das tabelas

4 Transformação Esquema Objeto Esquema Relacional Herança com União –Alternativa 1: Usando o exemplo Pessoa-Estudante- Funcionário –Pessoa(ID, Nome, Endereço) –Estudante(ID, Curso, Ano-admissão) –Funcionário(ID, Depto, Sala) »Regra de Integridade Se ID = v em Pessoa então (ID = v em Estudante) (ID = v em Funcionário) (ID = v em Est e Func)

5 Transformação Esquema Objeto Esquema Relacional Herança com União –Alternativa 2: tudo em uma tabela; um atributo `Tipo´ não-nulo é incluído, para indicar o tipo do objeto/registro; os demais atributos, salvo ID, podem ser nulos

6 Transformação Esquema Objeto Esquema Relacional Herança com União –Alternativa 2: Usando o exemplo Pessoa-Estudante- Funcionário –Pessoa(ID, Tipo, Nome, Endereço, Curso, Ano- admissão, Depto, Sala) »Regras de Integridade Tipo {t | t = `Estudante´ t = `Funcionário´ t = `Estudante-Funcionário´} Se t = `Estudante´ então Depto NULL, Sala NULL Se t = `Funcionário´ então Curso NULL, Ano-admissão NULL

7 Transformação Esquema Objeto Esquema Relacional Herança com Exclusão Mútua –Alternativa 1: Um novo atributo `Subtipo´, podendo ser NULL, é acrescentado na tabela-superclasse; este atributo deve garantir que todo registro em uma tabela-subclasse é disjunto

8 Transformação Esquema Objeto Esquema Relacional Herança com Exclusão Mútua Usando o exemplo Empregado-Gerente-Trabalhador –Empregado(ID, Subtipo, Nome, Endereço, Salário) –Gerente(ID, Gratificação) –Trabalhador(ID, HorasExtras) »Regras de Integridade Subtipo {t | t = `Gerente´ t = `Trabalhador´ t IS NULL} ID em Empregado com t = `Gerente´ então ID em Gerente e ID em Trabalhador ID em Empregado com t = `Trabalhador´ então ID em Trabalhador e ID em Gerente ID em Empregado com t IS NULL então ID em Gerente e ID em Trabalhador

9 Transformação Esquema Objeto Esquema Relacional Herança com Exclusão Mútua –Alternativa 2: tudo em uma tabela; um atributo `Tipo´, podendo ser NULL, é incluído, para indicar o tipo do objeto/registro; os demais atributos, salvo ID, podem ser nulos

10 Transformação Esquema Objeto Esquema Relacional Herança com Exclusão Mútua Usando o exemplo Empregado-Gerente- Trabalhador –Empregado(ID, Tipo, Nome, Endereço, Salário, Gratificação, HorasExtras) »Regras de Integridade Tipo {t | t = `Gerente´ t = `Trabalhador´ t IS NULL} Se t = `Gerente´ então HorasExtras NULL Se t = `Trabalhador´ então Gratificação NULL Se t IS NULL então HorasExtras NULL, Gratificação NULL

11 Transformação Esquema Objeto Esquema Relacional Herança com Exclusão Mútua –Alternativa 3: sem o atributo Subtipo na superclasse; Usando o exemplo Empregado-Gerente- Trabalhador –Empregado(ID, Nome, Endereço, Salário) –Gerente(ID, Gratificação) –Trabalhador(ID, HorasExtras)

12 Transformação Esquema Objeto Esquema Relacional Herança com Exclusão Mútua »Regras de Integridade Se ID = v em Empregado então ((ID = v em Gerente) (ID = v em Trabalhador)) ((ID = v em Trabalhador) (ID = v em Gerente)) ( (ID = v em Gerente) (ID = v em Trabalhador))

13 Transformação Esquema Objeto Esquema Relacional Herança com Fragmentação –Alternativa 1: Um novo atributo `Subtipo´, não podendo ser NULL, é acrescentado na tabela-superclasse; este atributo deve garantir que todo registro em uma tabela-subclasse é disjunto

14 Transformação Esquema Objeto Esquema Relacional Herança com Fragmentação –Alternativa 1: Usando o exemplo Empregado-Gerente- Trabalhador-Horista –Empregado(ID, Subtipo, Nome, Endereço, Salário) –Gerente(ID, Gratificação) –Trabalhador(ID, HorasExtras) –Horista(ID, Período, Horas)

15 Transformação Esquema Objeto Esquema Relacional Herança com Fragmentação –Alternativa 1: »Regras de Integridade Subtipo {t | t = `Gerente´ t = `Trabalhador´ t = `Horista´ } ID em Empregado com t = `Gerente´ então ID em Gerente e ID em Trabalhador e ID em Horista ID em Empregado com t = `Trabalhador´ então ID em Trabalhador e ID em Gerente e ID em Horista ID em Empregado com t = `Horista´ então ID em Horista e ID em Gerente e ID em Trabalhador

16 Transformação Esquema Objeto Esquema Relacional Herança com Fragmentação –Alternativa 2: tudo em uma tabela; um atributo `Tipo´ não-nulo é incluído, para indicar o tipo do objeto/registro; os demais atributos, salvo ID, podem ser nulos Usando o exemplo Empregado-Gerente-Trabalhador- Horista –Empregado(ID, Tipo, Nome, Endereço, Salário, Gratificação, HorasExtras, Período, Horas)

17 Transformação Esquema Objeto Esquema Relacional Herança com Fragmentação –Alternativa 2: »Regras de Integridade Tipo {t | t = `Gerente´ t = `Trabalhador´ t =`Horista´} Se t = `Gerente´ então HorasExtras NULL, Período NULL, Horas NULL Se t = `Trabalhador´ então Gratificação NULL, Período NULL, Horas NULL Se t = `Horista´ então HorasExtras NULL, Gratificação NULL

18 Transformação Esquema Objeto Esquema Relacional Herança com Fragmentação –Alternativa 3: sem o atributo Subtipo na superclasse; Usando o exemplo Empregado-Gerente-Trabalhador- Horista –Empregado(ID, Nome, Endereço, Salário) –Gerente(ID, Gratificação) –Trabalhador(ID, HorasExtras) –Horista(ID, Período, Horas)

19 Transformação Esquema Objeto Esquema Relacional Herança com Fragmentação –Alternativa 3: sem o atributo Subtipo na superclasse; »Regras de Integridade Se ID = v em Empregado então ((ID = v em Gerente) (ID = v em Trabalhador) (ID = v em Horista)) ((ID = v em Trabalhador) (ID = v em Gerente) (ID = v em Horista)) ((ID = v em Horista) (ID = v em Gerente) (ID = v em Trabalhador))

20 Transformação Esquema Objeto Esquema Relacional Para Cada Tipo de Herança, Qual é a Melhor Implementação Relacional? –Prova-se que, para consultas em superclasse e em subclasse, a Alternativa 1 é pelo menos tão boa quanto as outras, em todos os casos –A prova é baseada em um Modelo de Custos e em Categorias de Consulta O Modelo de Custos leva em conta o tamanho dos registros de uma tabela e o seu número de registros Consultas sobre estruturas de herança podem ser assim categorizadas –Consultas em Superclasse: acessam atributos em superclasse –Consultas em Subclasse: acessam atributos em subclasse –Consultas Mistas: acessam atributos ao longo de estruturas de herança

21 Transformação Esquema Objeto Esquema Relacional Consultas em Superclasse –Usando o exemplo Empregado-Gerente- Trabalhador-Horista (Fragmentação), Alternativa 1 –Empregado(ID, Subtipo, Nome, Endereço, Salário) –Gerente(ID, Gratificação) –Trabalhador(ID, HorasExtras) –Horista(ID, Período, Horas)

22 Transformação Esquema Objeto Esquema Relacional Consultas em Superclasse –Nomes e endereços de todos os empregados horistas SELECT Nome, Endereço FROM Empregado (C1) WHERE Subtipo = `Horista´ (C1)

23 Transformação Esquema Objeto Esquema Relacional Consultas em Superclasse –Usando o exemplo Empregado-Gerente- Trabalhador-Horista (Fragmentação), Alternativa 2 –Empregado(ID, Tipo, Nome, Endereço, Salário, Gratificação, HorasExtras, Período, Horas) »SELECT Nome, Endereço FROM Empregado (C2) WHERE Tipo = `Horista´ (C2) As consultas são idênticas, porém C1 é melhor que C2 (Empregado na Alternativa 1 é pequena se comparada com Empregado na Alternativa 2)

24 Transformação Esquema Objeto Esquema Relacional Consultas em Superclasse – Usando o exemplo Empregado-Gerente- Trabalhador-Horista (Fragmentação), Alternativa 3 –Empregado(ID, Nome, Endereço, Salário) –Gerente(ID, Gratificação) –Trabalhador(ID, HorasExtras) –Horista(ID, Período, Horas)

25 Transformação Esquema Objeto Esquema Relacional Consultas em Superclasse –SELECT Empregado.Nome, Empregado.Endereço FROM Empregado, Horista (C3) WHERE Empregado.ID = Horista.ID (C3) C1 (sem junção) é melhor que C3 (com junção)

26 Transformação Esquema Objeto Esquema Relacional Consultas em Subclasse Listar as horas extras de todos os trabalhadores – Listar as horas extras de todos os trabalhadores SQL1 = SQL3 SELECT HorasExtras FROM Trabalhador SQL2 SELECT HorasExtras FROM Empregado WHERE Tipo = `Trabalhador´ SQL1 e SQL3 são melhores que SQL2

27 Transformação Esquema Objeto Esquema Relacional Consultas Mistas – Usando o exemplo Empregado-Gerente-Trabalhador- Horista (Fragmentação) Listar os detalhes de todos os gerentes SQL1 = SQL3 SELECT Nome, Endereço, Salário, Gratificação FROM Empregado, Gerente WHERE Empregado.ID = Gerente.ID SQL2 SELECT Nome, Endereço, Salário, Gratificação FROM Empregado WHERE Tipo = `Gerente´ SQL2 é melhor

28 Transformação Esquema Objeto Esquema Relacional Super classe Sub classe Mista Subtipo * Única Tabela Sem subtipo * * - Semanticamente próximas do esquema de objetos

29 Transformação Esquema Objeto Esquema Relacional Associação –1:1 –Tabela_B(ID, ID A,...) Tabela_A(ID,...) –Tabela_A(ID, ID B,...) Tabela_B(ID,...) –Tabela_AB(ID,...) Qual é a melhor transformação? Chave primáriaChave estrangeira Classe AClasse B 11

30 Transformação Esquema Objeto Esquema Relacional Associação –1:N Tabela_B(ID, ID A,...) Tabela_A(ID,...) Classe AClasse B 1N

31 Transformação Esquema Objeto Esquema Relacional Associação –M:N Tabela_A(ID,...) Tabela_B(ID,...) Tabela_AB(ID A, ID B,...) Classe AClasse B MN Classe Associação

32 Transformação Esquema Objeto Esquema Relacional Agregação –Usando o exemplo Catálogo-Brinquedo Catálogo(ID,...) Brinquedo(ID,...) Composto_de(ID C, ID B,...) chave estrangeira chave estrangeira

33 Transformação Esquema Objeto Esquema Relacional Composição –Usando o exemplo Universidade- Departamento Universidade(ID,...) Departamento(ID, ID U,...) – Regras de Integridade »Se Universidade.ID = v for removida então Departamento.ID U = v removido (DELETE CASCADE)


Carregar ppt "Transformação ODMG Relacional. Implementação Relacional de BDs OO Transformação Esquema Objeto Esquema Relacional Transformação Esquema Objeto Esquema."

Apresentações semelhantes


Anúncios Google