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

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

Hierarquia de Visões de Objeto

Apresentações semelhantes


Apresentação em tema: "Hierarquia de Visões de Objeto"— Transcrição da apresentação:

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

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

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 Modelo “FLAT” Tabela Pessoas
Tipo Atributos_Pessoa Atributos_Estudante Atributos_Empregado Visão Pessoas_V {1,2,ou 3} Atributos_Pessoa Visão Empregados_V Atributos_Pessoa Atributos_Empregado Visão Estudantes_V Atributos_Pessoa Atributos_Estudante

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

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 Estudantes_v OF Estudante_ty UNDER Pessoas_v AS SELECT cpf, nome, deptid, curso FROM Pessoas WHERE tipo = 2; CREATE VIEW Empregados_v OF Empregado_ty UNDER Pessoas_v AS SELECT cpf, nome, empid, ger FROM Pessoas WHERE tipo = 3;

7 Modelo “FLAT” Vantagens Desvantagens 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.

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

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

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

11 Modelo “Horizontal” Vantagens Desvantagens SELECT VALUE (p)
Todos os dados de um objeto estão em uma única tabela. evita valores nulos. É muito eficiente para processar consultas da forma: 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 Modelo “Vertical” Tabela Todas_Pessoas Visão Pessoas_V
Tipo Atributos_Pessoa Atributos_Pessoa {1,2,ou 3} Visão Empregados_V Tabela Todos_Empregados Atrib_Pessoa Atrib_Empregado CPF Atrib_Empregado Tabela Todos _Estudantes Visão Estudantes_V CPF Atrib_Estudante Atrib_Pessoa Atrib_Estudante

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

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 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 Modelo “Horizontal” Vantagens Desvantagens Evita valores nulos
É muito eficiente para processar consultas da forma: 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"

Apresentações semelhantes


Anúncios Google