1 / 16

Hierarquia de Visões de Objeto

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.

archie
Download Presentation

Hierarquia de Visões de Objeto

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 ( 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 • 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 ( cpf NUMBER, nome VARCHAR2(100), empid NUMBER, ger NUMBER); CREATE TABLE SóPessoa_ty ( cpf NUMBER, nome VARCHAR2(100)); 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 • 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 • 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.

More Related