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

Hierarquia de Visões de Objeto

  • Upload
    archie

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

Hierarquia de Visões de Objeto. Vânia Maria Ponte Vidal. 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. - PowerPoint PPT Presentation

Citation preview

Page 1: Hierarquia de  Visões de Objeto

Hierarquia de Visões de Objeto

Vânia Maria Ponte Vidal

Page 2: Hierarquia de  Visões de Objeto

2

Hierarquia de Visões de Objeto

Pessoa_ty

Estudante_ty Empregado_ty

EstudantePós_tyCREATE VIEW Pessoas_v OF Pessoa_ty

AS SELECT ...

CREATE VIEW Estudantes_v OF Estudante_ty UNDER Pessoas_v

AS SELECT ...

Page 3: Hierarquia de  Visões de Objeto

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)

Page 4: Hierarquia de  Visões de Objeto

4

Modelo “FLAT”

Tipo Atributos_Pessoa Atributos_Estudante Atributos_Empregado

{1,2,ou 3}Atributos_PessoaVisão Pessoas_V

Atributos_Pessoa Atributos_Empregado

Visão Empregados_V

Atributos_Pessoa Atributos_Estudante

Visão Estudantes_V

Tabela Pessoas

Page 5: Hierarquia de  Visões de Objeto

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);

Page 6: Hierarquia de  Visões de Objeto

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;

Page 7: Hierarquia de  Visões de Objeto

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”

Page 8: Hierarquia de  Visões de Objeto

8

Modelo “Horizontal”

Atributos_Pessoa Atributos_PessoaVisã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_Estudante

Atrib_Pessoa Atrib_Empregado

Page 9: Hierarquia de  Visões de Objeto

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);

Page 10: Hierarquia de  Visões de Objeto

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;

Page 11: Hierarquia de  Visões de Objeto

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

Page 12: Hierarquia de  Visões de Objeto

12

Modelo “Vertical”

Tipo Atributos_Pessoa Atributos_PessoaVisã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

Page 13: Hierarquia de  Visões de Objeto

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);

Page 14: Hierarquia de  Visões de Objeto

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

Page 15: Hierarquia de  Visões de Objeto

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

Page 16: Hierarquia de  Visões de Objeto

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.