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

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

Hierarquia de Visões de Objeto Vânia Maria Ponte Vidal.

Apresentações semelhantes


Apresentação em tema: "Hierarquia de Visões de Objeto Vânia Maria Ponte Vidal."— Transcrição da apresentação:

1 Hierarquia de Visões de Objeto Vânia Maria Ponte Vidal

2 2 Hierarquia de Visões de Objeto Pessoa_ty Estudante_tyEmpregado_ty EstudantePós_ty CREATE VIEW Pessoas_v OF Pessoa_ty AS SELECT... CREATE VIEW Estudantes_v OF Estudante_ty UNDER Pessoas_v AS SELECT...

3 3 Hierarquia de Visões de Objeto Uma consulta a visão Pessoas_v Pode conter objetos do tipo Pessoa_ty e Estudante_ty Uma sub-visão herda o OID da super visão. A consulta que define a visão determina se a visão é atualizável. Para uma visão ser atualizável, sua consulta não pode conter: junção, operadores de conjunto, funções de agregação, GROUP BY, DISTINCT, expressões. Uma mesma hierarquia de visões pode estar baseada em diferentes modelos de armazenamento (FLAT, HORIZONTAL e VERTICAL)

4 4 Modelo FLAT Tipo Atributos_Pessoa Atributos_Estudante Atributos_Empregado {1,2,ou 3} Atributos_Pessoa Visão Pessoas_V Atributos_Pessoa Atributos_Empregado Visão Empregados_V Atributos_Pessoa Atributos_Estudante Visão Estudantes_V Tabela Pessoas

5 5 Modelo FLAT CREATE TABLE Pessoas ( tipo NUMBER(1), cpf NUMBER, nome VARCHAR2(100), deptid NUMBER, curso NUMBER, empid NUMBER, ger NUMBER); CREATE TYPE Pessoa_ty AS OBJECT ( tipo NUMBER(1), cpf NUMBER, nome VARCHAR2(100)) NOT FINAL; CREATE TYPE Estudante_ty UNDER Pessoa_ty (deptid NUMBER, curso NUMBER); CREATE TYPE Empregado_ty UNDER Pessoa_ty (empid NUMBER, ger NUMBER);

6 6 Modelo FLAT CREATE VIEW Pessoas_v OF Pessoa_ty WITH OBJECT OID (cpf) AS SELECT cpf, nome FROM Pessoas WHERE tipo = 1; CREATE VIEW Empregados_v OF Empregado_ty UNDER Pessoas_v AS SELECT cpf, nome, empid, ger FROM Pessoas WHERE tipo = 3; CREATE VIEW Estudantes_v OF Estudante_ty UNDER Pessoas_v AS SELECT cpf, nome, deptid, curso FROM Pessoas WHERE tipo = 2;

7 7 Vantagens Simplicidade Todos os dados de um objeto estão em uma única tabela. Todas os objetos de uma visão de Objeto estão em uma única tabela. Objetos podem mudar de tipo facilmente. Desvantagens Valores nulos Dificuldades na evolução do esquema (criar novos atributos ou subtipos) Sutipos têm que ser disjuntos. Modelo FLAT

8 8 Modelo Horizontal Atributos_Pessoa Visão Pessoas_V Visão Empregados_V Visão Estudantes_V Tabela SóPessoa_ty Atrib_Pessoa Atrib_Empregado Tabela SóEmpregado_ty Tabela SóEstudante_ty Atrib_Pessoa Atrib_Estudante Atrib_Pessoa Atrib_Empregado

9 9 Modelo Horizontal CREATE TABLE SóPessoa_ty ( cpf NUMBER, nome VARCHAR2(100)); CREATE TABLE SóEstudante_ty ( cpf NUMBER, nome VARCHAR2(100), deptid NUMBER, curso NUMBER); CREATE TABLE SóEmp_ty ( cpf NUMBER, nome VARCHAR2(100), empid NUMBER, ger NUMBER);

10 10 Modelo Horizontal CREATE VIEW Pessoas_v OF Pessoa_ty WITH OBJECT OID (cpf) AS SELECT * FROM SóPessoas; CREATE VIEW Empregados_v OF Empregado_ty UNDER Pessoas_v AS SELECT * FROM SóEmpregados ; CREATE VIEW Estudantes_v OF Estudante_ty UNDER Pessoas_v AS SELECT * FROM SóEstudantes;

11 11 Vantagens Todos os dados de um objeto estão em uma única tabela. evita valores nulos. É muito eficiente para processar consultas da forma: Modelo Horizontal SELECT VALUE (p) FROM Pessoas_v p WHERE VALUE(P) IS OF (ONLY Pessoa_ty ) Desvantagens Objetos não podem mudar de tipo facilmente.. Não é eficiente para processar consultas da forma: SELECT * FROM Pessoas_v

12 12 Modelo Vertical Tipo Atributos_Pessoa Atributos_Pessoa Visão Pessoas_V Visão Empregados_V Visão Estudantes_V Tabela Todas_Pessoas CPF Atrib_Empregado Tabela Todos_Empregados Tabela Todos _Estudantes Atrib_Pessoa Atrib_Estudante Atrib_Pessoa Atrib_Empregado {1,2,ou 3} CPF Atrib_Estudante

13 13 Modelo Vertical CREATE TABLE Pessoas ( tipo NUMBER(1), cpf NUMBER, nome VARCHAR2(100)); CREATE TABLE Estudantes ( cpf NUMBER, deptid NUMBER, curso NUMBER); CREATE TABLE Empregados ( cpf NUMBER, empid NUMBER, ger NUMBER);

14 14 Modelo vertical CREATE VIEW Pessoas_v OF Pessoa_ty WITH OBJECT OID (cpf) AS SELECT cpf, nome FROM Pessoas WHERE tipo = 1; CREATE VIEW Estudantes_v OF Estudante_ty UNDER Pessoas_v AS SELECT p.cpf, p.nome, e.deptid, e.curso FROM Pessoas p, Estudantes e; WHERE p.tipo=2 AND e.cpf=p.cpf

15 15 Modelo vertical CREATE VIEW Empregados_v OF Empregado_ty UNDER Pessoas_v AS SELECT p.cpf, p.nome, e.empid, e.ger FROM Pessoas p, Empregados e; WHERE p.tipo=3 AND e.cpf=p.cpf

16 16 Vantagens Evita valores nulos É muito eficiente para processar consultas da forma: Modelo Horizontal SELECT * FROM Pessoas_v Desvantagens os dados de um objeto estão distribuídos várias tabelas. Precisa fazer a junção destas tabelas para criar o objeto.


Carregar ppt "Hierarquia de Visões de Objeto Vânia Maria Ponte Vidal."

Apresentações semelhantes


Anúncios Google