III – Oracle 10g Herança.

Slides:



Advertisements
Apresentações semelhantes
Transformação ODMG  Relacional
Advertisements

Object Query Language - OQL
Object Definifion Language - ODL
III – Oracle 9i Coleções.
Estudo de Caso, modelo Oracle 10g
Gerenciamento de Dados e Informação Estudo de caso – PL/SQL
VI- Implementação Objeto-Relacional
Prof.: Bruno Rafael de Oliveira Rodrigues
Hierarquia de Visões de Objeto
Bancos de Dados Orientados a Objeto
Banco de Dados Objetos Relacionais
Banco de dados Profª Kelly Medeiros.
PostgreSQL.
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Transformação ODMG Relacional. Implementação Relacional de BDs OO Transformação Esquema Objeto Esquema Relacional Transformação Esquema Objeto Esquema.
IV- Metodologia de Projeto de BD OO. Transformação ODMG OR.
Conceitos de SGBD Objeto-Relacional Oracle 10g [2]
Equipe de monitoria Aula prática 4
Equipe de monitoria Aula prática 4
Bancos de Dados Espaciais
Vânia Maria Ponte Vidal
SQL Server 2012 Tipos de Dados e Tabelas
PL/SQL, Procedures e Funções
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.
Monitoria GDI Aula Prática
Tipos de Linguagens do Banco de Dados
Equipe de monitoria Aula prática 3.  Caso de estudo  Igualando situações  Cursor  Function  Procedure  Trigger  Package  Surpresa...
Equipe de monitoria Aula prática 4
Primeira aula de PL/SQL Parte II
Especialização em Tecnologia da Informação
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
Conceitos de SGBD Objeto-Relacional Oracle 10g [1]
Cursor Professor Esp. Diego André Sant’Ana
III – Oracle10g Apontadores – Tipo de Dado (REF).
III – Oracle 10g Coleções. Introdução Coleção: formada de objetos do mesmo tipo, cada um com um índice (posição) único dentro da coleção –NESTED TABLE.
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
III – Oracle10g Funções que Manipulam Apontadores.
Com coleções, cursor não é mais necessário
SEQUENCE, PROCEDURE, FUNÇÃO, TRIGGER
Monitoria GDI Aula Prática
Desenvolvendo um script SQL
Criação de Tabelas. CREATE TABLE nome_da_tabela ( >>. >> ) Ex.: SQL SERVER 2008 CREATE TABLE pessoa ( CPF VARCHAR(11) NOT NULL, NOME VARCHAR(100) NOT.
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
Bancos de Dados Abordagens de SGBD
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
Ricardo Ferreira Schiavo
©Silberschatz, Korth and Sudarshan (modificado)9.1.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
III – Oracle 9i Indexação. Índices Baseados em Funções É um índice baseado no valor de retorno de uma expressão ou função –A função pode ser um método.
Universidade Federal de Mato Grosso Especialização em Banco de Dados SQL Multimedia and Application Packages — SQL/MM Still Image Fundamentos de Banco.
Banco de Dados I I Comandos SQL
©Silberschatz, Korth and Sudarshan (modificado)9.1.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
III - Oracle9i Apontadores – Tipo de Dado (REF). Identificador de Objeto A todo objeto de uma “object table” é associado um OID (“Object IDentifier”)
Conceitos de SGBD Objeto-Relacional Oracle 10g [2] Monitoria GDI André Braga, Daniel Penaforte, Domingos Ribeiro, João Pascoal, Maria Carolina.
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
 Introdução  Definindo Visões de Objeto  Usando Visões de Objeto  Atualizando Visões de Objeto.
III – Oracle 9i Herança. Pessoa EmpregadoEstudante Est. Parcial Pessoa_tab.
Orientação a objetos no ORACLE 9i Extensões para criar objetos complexos TADs (Tipos de Objetos) Tipo Referência (REF) Tipo Coleção Nested Tables (Tabelas.
III – Oracle 9i Herança. Pessoa EmpregadoEstudante Est. Parcial Pessoa_tab.
Tipos e Subtipos CREATE TYPE Pessoa_ty AS OBJECT ( cpf NUMBER, nome VARCHAR2(30), endereço VARCHAR2(100)) NOT FINAL; CRIANDO SUBTIPOS CREATE TYPE Estudante_ty.
Banco de Dados Relacional Objeto-
Esquema Relacional Aplicando um Modelo de Objetos para Dados Relacionais.
III – O Modelo OR Estudo de Caso, modelo Oracle9i.
Transformação ODMG  Relacional. Implementação Relacional de BDs OO Transformação Esquema Objeto  Esquema Relacional.
Banco de Dados II Prof: Márcio Soussa Curso de Sistemas de Informação Faculdades Jorge Amado.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
2ª Aula Prática O-R Fernando Fonseca.
Transcrição da apresentação:

III – Oracle 10g Herança

Pessoa Pessoa_tab Empregado Estudante Est. Parcial

Criar um super tipo CREATE TYPE Pessoa_typ AS OBJECT ( rg NUMBER, nome VARCHAR2(30), endereço VARCHAR2(100)) NOT FINAL Criar um sub tipo CREATE TYPE Estudante_typ UNDER Pessoa_typ ( id_departamento NUMBER, formação VARCHAR2(30))

Criar um sub tipo de um sub tipo CREATE TYPE estudante_parcial_typ UNDER Estudante_typ ( num_horas NUMBER) Final de um ramo de uma árvore CREATE TYPE Empregado_typ UNDER Pessoa_typ ( id_empregado NUMBER, gerente VARCHAR2(30)) [FINAL]  

Método FINAL Não pode ser redefinido em um sub tipo CREATE TYPE T AS OBJECT (..., MEMBER PROCEDURE Imprimir(), FINAL MEMBER FUNCTION area(x NUMBER)...) NOT FINAL Tipo abstrato Default: INSTANTIABLE Podemos criar instâncias ou não CREATE TYPE Endereço_typ AS OBJECT (...) NOT INSTANTIABLE NOT FINAL  

Hierarquia de Tipos e “Object Tables” Como estudante (estudante parcial) (empregado) é uma pessoa Estudantes, estudantes parciais e empregados podem ser criados em Pessoa_tab Pessoas em Pessoa_tab, empregados em Empregado_tab, estudantes em Estudante_tab, estudantes parciais em Estudante_Parcial_tab Outra alternativa: pessoas em Pessoa_tab, empregados em Empregado_tab, estudantes e estudantes parciais em Estudante_tab Ou a alternativa ‘normal’: somente os tipos das folhas da hierarquia são instanciáveis

CREATE TABLE Pessoa_tab OF Pessoa_typ ( … ) INSERT INTO TABLE Pessoa_tab VALUES (Estudante_typ ( … ) )

Consultas Função TREAT SELECT p.nome, TREAT(VALUE(p) AS Empregado_typ).salario AS p.salario FROM Pessoa_tab p Imprime os salários das pessoas-empregados, e SALARIO IS NULL para as pessoas que não são empregados

Função IS OF SELECT VALUE(p) FROM Pessoa_tab P WHERE VALUE(p) IS OF (Empregado_typ, Estudante_typ) Retorna os estados dos objetos pessoa-estudante, pessoa-estudante-parcial, pessoa-empregado Não retorna estados de objetos exclusivamente pessoa FROM Pessoa_tab p WHERE VALUE(p) IS OF(ONLY Estudante_typ) Só objetos estudante, excluindo estudante-parcial

SELECT DEREF(REF(p)) FROM Pessoa_tab p Os resultados de REF e DEREF podem incluir objetos do tipo pessoa e objetos dos subtipos empregado, estudante e estudante parcial

Exercícios BD Filmes, da sala de aula, e sua implementação Oracle 10g CREATE TYPE Filme_objtyp / CREATE TYPE Estrela_objtyp CREATE TYPE RefFilme_objtyp AS OBJECT ( RefFilme REF Filme_objtyp) CREATE TYPE RefEstrela_objtyp AS OBJECT ( RefEstrela REF Estrela_objtyp)

CREATE TYPE Estrelas_ntabtyp AS TABLE OF RefEstrela_objtyp / CREATE TYPE Filmes_ntabtyp AS TABLE OF RefFilme_objtyp

CREATE TYPE Filme_objtyp AS OBJECT ( Titulo VARCHAR2(60), Ano INTEGER, Duracao NUMBER, Estrelado_por_ntab Estrelas_ntabtyp ) /

CREATE TYPE Estrela_objtyp AS OBJECT ( Nome VARCHAR2(60), Estrelou_em_ntab Filmes_ntabtyp, MEMBER FUNCTION Numero_filmes RETURN INTEGER, PRAGMA RESTRICT_REFERENCES (Numero_filmes, RNDS, RNPS, WNDS, WNPS) ) /

CREATE OR REPLACE TYPE BODY Estrela_objtyp AS MEMBER FUNCTION Numero_filmes RETURN INTEGER IS BEGIN RETURN SELF.Estrelou_em_ntab.COUNT; END; / CREATE TABLE Filme_objtab OF Filme_objtyp NESTED TABLE Estrelado_por_ntab STORE AS Estrelas

CREATE TABLE Estrela_objtab OF Estrela_objtyp NESTED TABLE Estrelou_em_ntab STORE AS Filmes / a) Estender o “script” para implementar a classe class Des_Animado extends Filme { (extent Desenhos) relationship Set<Estrela> dublado_por; ...}; 

b) Povoar a “object table” Desenho_objtab, e em seguida as “nested tables” respectivas c) Inserir tudo em um único comando INSERT d) Quais os filmes dublados por Marília Pêra?