SlideShare une entreprise Scribd logo
1  sur  119
Unidade 4.1: BDOR – Oracle 11g Banco de Dados II – 2009.2 Prof. Cláudio de Souza Baptista, Ph.D. UFCG/CEEI/DSC
Oracle OR 11g ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Oracle OR 11g ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Relacional. Objeto-relacional  - Um banco de dados, tradicionalmente relacional, estendido para incluir os conceitos OO e estruturas como tipos de dados abstratos, nested tables e varying arrays. Orientado a objetos   - Um banco de dados orientado a objetos cujo projeto é, desde o seu início, desenvolvido com análise orientada a objetos. O ORACLE 11g fornece um suporte completo para todos os três diferentes tipos de implementação: Oracle OR 11g
Exemplo - UML
Esquema Relacional Projeto BD Relacional
Esquema  Objeto  Relacional
Definindo os Tipos
Tipos de Objetos (Object Types) ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Tipos de Objetos
Tipos de Objetos ,[object Object]
Tipos de Objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tipos de Objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tipos de objetos create type ENDERECO_TYP as object (rua  VARCHAR2(50),  cidade  VARCHAR2(25),  estado  CHAR(2),  cep  NUMBER); create table PESSOAS  (nome  VARCHAR2(25),  endereço  ENDERECO_TYP); ENDEREÇO_TYP  é usado para definir o tipo (domínio) da coluna  Endereço   da tabela  PESSOAS
Tipos de objetos Não é possível ocorrer uma inserção de dados em PESSOA_TYP. Isso porque um tipo de objeto descreve dados, mas não os armazena.  create type ENDERECO_TYP as object (rua  VARCHAR2(50),  cidade  VARCHAR2(25),  estado  CHAR(2),  cep  NUMBER); create type PESSOA_TYP as object (nome  VARCHAR2(25),  endereco  ENDERECO_TYP); ENDEREÇO_TYP  é usado para definir o tipo do atributo  Endereco   do tipo  PESSOA_TYP
Tipos de objetos Para armazenar dados é necessário a criação de uma tabela a partir de um tipo de objeto. create type PESSOA_TY as object (Nome  VARCHAR2(25),  CPF  NUMBER,  Endereco  ENDERECO_TY); create table PESSOAS of PESSOA_TY  (CPF  primary key ); A tabela  PESSOAS  irá armazenar dados com a estrutura do tipo  PESSOA_TY
Exemplo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Inserindo dados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Inserindo com NULL ,[object Object],[object Object],[object Object],[object Object],[object Object]
Constraints ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Trigger em Objetos Tipados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Métodos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Métodos ,[object Object],[object Object],[object Object],[object Object]
Métodos ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ex. Member method ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Métodos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Static Method ,[object Object],[object Object],[object Object],[object Object]
Static Method - Exemplo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Métodos para Comparação de Objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Métodos para Comparação de Objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Métodos para Comparação de Objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evolução de Tipos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evolução de Tipos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Herança de Tipos ,[object Object],[object Object],[object Object],[object Object],[object Object]
Herança de Tipos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Herança de Tipos – Drop Type ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Herança de Tipos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Herança de Tipos ,[object Object],[object Object],[object Object],[object Object],[object Object]
Overriding Method ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Overriding Method (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Overriding Method (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Overriding Method (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Overriding Method (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Overriding Method (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Overriding Method (cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Restrições em Overriding methods ,[object Object],[object Object],[object Object],[object Object]
Tabelas no ORACLE 11g ,[object Object],[object Object],[object Object],[object Object],[object Object]
Tabela de objetos vs.  Tabela relacional ,[object Object],[object Object],[object Object],[object Object]
Tabela de objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],create type PESSOA_TY as object (Nome  VARCHAR2(25),  CPF  NUMBER,  Endereco  ENDERECO_TY); create table PESSOAS of PESSOA_TY  (CPF  primary key );
Tabelas de Objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Manipulando tabelas de objetos   Existem diferenças significativas no modo de utilização de uma tabela de objetos.  Cada linha dentro de uma tabela de objetos possuirá um OID, e essas linhas poderão ser referenciadas como objetos.
Seleção em tabelas select  *   from PESSOAS; ============================================================ NOME  CPF  ENDERECO(RUA, CIDADE, ESTADO, CEP) ---------------------  ----------------  ---------------------------------------------------------------- Maria  Silva  543875432  ENDERECO_TY(‘Rua das Flores 84', ‘Campina Grande', ‘PB', 58102324) ,[object Object]
Seleção em tabelas SELECT VALUE (p) FROM PESSOAS p WHERE p.nome = ‘Maria Silva'; Resposta: VALUE(P)(NOME, CPF, ENDERECO(RUA, CIDADE, ESTADO, CEP)) -------------------------------------------------------------------------------- PESSOA_TY(‘Maria Silva', 543875432, ENDERECO_TY(‘Rua das Flores 84', ‘Campina Grande', ‘PB', 58102324) ,[object Object]
Seleção em tabelas SELECT  p.CPF FROM PESSOAS p WHERE  p.nome = ‘Maria Silva'; Resposta: CPF   -------------------------------------------------------------- 543875432
Seleção em tabelas SELECT p.endereco FROM PESSOAS p  WHERE p.nome = ‘Maria Silva'; Resposta: ENDERECO(RUA, CIDADE, ESTADO, CEP) ------------------------------------------------------------- ENDERECO_TY('rua das Flores 84', ‘Campina Grande', ‘PB', 58102324)
Seleção em tabelas select p.endereco.cidade from PESSOAS p where p.nome = ‘Maria Silva'; Resposta: ENDERECO.CIDADE ------------------------- Campina Grande
Inserção de dados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Inserção em tabelas de Objetos ,[object Object],[object Object],INSERT INTO  PESSOAS  VALUES (PESSOA_TY(‘Maria Silva', 543875432,  ENDERECO_TY(‘Rua das Flores 84', ‘Campina Grande', ‘PB', 58102324)) Métodos construtores para os tipos  PESSOA_TY  e  ENDERECO_TY . O nome do método construtor tem o mesmo nome do tipo.
Inserção usando substitutability ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Desligando a substitutability ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Desligando a substitutability ,[object Object],[object Object],[object Object]
Atualização e Remoção em tabelas de Objetos update PESSOAS p Set p.endereco= ENDERECO_TY(‘Rua das Margaridas 22',  ‘ Patos', ‘PB', 58453230) where p.nome = ‘Maria Silva'; Delete from PESSOAS p where p.nome = ‘Maria Silva';
Identificadores de objetos ,[object Object],[object Object],[object Object],[object Object]
Referenciando Objetos (REF) ,[object Object],[object Object],[object Object],[object Object],[object Object]
REF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REF ,[object Object],[object Object],[object Object],[object Object],[object Object]
REF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dangling REF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dangling REF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dangling REF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dangling  != NULL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SCOPED REF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Integridade Referencial em REF ,[object Object],[object Object],[object Object],[object Object],[object Object]
DEREF ,[object Object],[object Object],[object Object]
DEREF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DEREF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VALUE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Referenciando Objetos EMPREGADO_TY DEPARTAMENTO_TY depto create table  EMPREGADOS   (Nome  VARCHAR2(25),  CPF  NUMBER,  depto  REF  DEPARTAMENTO_TY ); create type  DEPARTAMENTO_TY  as object   (Nome  VARCHAR2(25),   ...  ); create table  DEPARTAMENTOS  of  DEPARTAMENTO_TY     (   ...  ); Os objetos do tipo  DEPARTAMENTO_TY  podem ser referenciados em  colunas de tabelas relacionais  ou em  atributos de outros objetos .
Tipo REF ,[object Object],[object Object],[object Object],[object Object],create type  EMPREGADO_TY  as object (Nome  VARCHAR2(25),  CPF  NUMBER,  depto  REF  DEPARTAMENTO_TY );
Selecionando dados de um tipo específico ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TREAT ,[object Object],[object Object],[object Object],[object Object],[object Object]
Coleções ,[object Object],[object Object],[object Object]
VARRAYS ,[object Object],[object Object],[object Object],[object Object]
VARRAYS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VARRAY ,[object Object],[object Object],[object Object],[object Object],[object Object]
VARRAY ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nested Table ,[object Object],[object Object],[object Object]
Nested Table (exemplo) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nested Table (exemplo) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Coleções Multi-dimensionais ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Coleções Multi-dimensionais ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Coleções Multi-dimensionais ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operações em coleções ,[object Object],[object Object],[object Object]
Operações em coleções ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operações em coleções ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operações em coleções ,[object Object],[object Object],[object Object]
Operações em coleções ,[object Object],[object Object],[object Object]
Operações em coleções ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Consulta em multi-coleções ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operações em coleções ,[object Object],[object Object],[object Object],[object Object],[object Object]
Operações em coleções ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operações em coleções ,[object Object],[object Object],[object Object],[object Object],[object Object]
Object Views ,[object Object],[object Object],[object Object]
Criando uma Object View ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Criando uma Object View – EX.2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Criando uma referência a Objetos numa View ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ex. De consulta à view anterior ,[object Object],[object Object],[object Object]
Outra forma de definir a View ,[object Object],[object Object],[object Object],[object Object]
Atualizando Object Views ,[object Object],[object Object],[object Object]
Atualizando Object Views ,[object Object],[object Object],[object Object]
Criando INSTEAD OF  Triggers numa View ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ex. De Hierarquia de Views ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ex. De Hierarquia de Views ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ex. De Hierarquia de Views ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Consultando Object Views ,[object Object],[object Object],[object Object]

Contenu connexe

Similaire à Unidade4.1 Oracle Or

Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 
Passagem de Objetos entre Java e Oracle
Passagem de Objetos entre Java e OraclePassagem de Objetos entre Java e Oracle
Passagem de Objetos entre Java e OracleAndré Reis
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8Emiliano Barbosa
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4Ed W. Jr
 
C++ Standard Template Library
C++ Standard Template LibraryC++ Standard Template Library
C++ Standard Template LibraryDuda Dornelles
 
Java Desktop
Java DesktopJava Desktop
Java Desktopciceroclc
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Emiliano Barbosa
 
Conceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de DadosConceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de DadosAlefe Variani
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Rafael Barbolo
 
LINQ - Language Integrated Query
LINQ - Language Integrated QueryLINQ - Language Integrated Query
LINQ - Language Integrated QueryDalton Valadares
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sqlNilson Augustini
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Marco Pinheiro
 

Similaire à Unidade4.1 Oracle Or (20)

Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Passagem de Objetos entre Java e Oracle
Passagem de Objetos entre Java e OraclePassagem de Objetos entre Java e Oracle
Passagem de Objetos entre Java e Oracle
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4
 
C++ Standard Template Library
C++ Standard Template LibraryC++ Standard Template Library
C++ Standard Template Library
 
Apostila - Banco de Dados
Apostila - Banco de DadosApostila - Banco de Dados
Apostila - Banco de Dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Ed1
Ed1Ed1
Ed1
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8
 
Conceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de DadosConceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de Dados
 
MYSQL - TLBDII
MYSQL - TLBDIIMYSQL - TLBDII
MYSQL - TLBDII
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)
 
LINQ - Language Integrated Query
LINQ - Language Integrated QueryLINQ - Language Integrated Query
LINQ - Language Integrated Query
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sql
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)
 

Unidade4.1 Oracle Or

  • 1. Unidade 4.1: BDOR – Oracle 11g Banco de Dados II – 2009.2 Prof. Cláudio de Souza Baptista, Ph.D. UFCG/CEEI/DSC
  • 2.
  • 3.
  • 4. Relacional. Objeto-relacional - Um banco de dados, tradicionalmente relacional, estendido para incluir os conceitos OO e estruturas como tipos de dados abstratos, nested tables e varying arrays. Orientado a objetos - Um banco de dados orientado a objetos cujo projeto é, desde o seu início, desenvolvido com análise orientada a objetos. O ORACLE 11g fornece um suporte completo para todos os três diferentes tipos de implementação: Oracle OR 11g
  • 7. Esquema Objeto Relacional
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Tipos de objetos create type ENDERECO_TYP as object (rua VARCHAR2(50), cidade VARCHAR2(25), estado CHAR(2), cep NUMBER); create table PESSOAS (nome VARCHAR2(25), endereço ENDERECO_TYP); ENDEREÇO_TYP é usado para definir o tipo (domínio) da coluna Endereço da tabela PESSOAS
  • 15. Tipos de objetos Não é possível ocorrer uma inserção de dados em PESSOA_TYP. Isso porque um tipo de objeto descreve dados, mas não os armazena. create type ENDERECO_TYP as object (rua VARCHAR2(50), cidade VARCHAR2(25), estado CHAR(2), cep NUMBER); create type PESSOA_TYP as object (nome VARCHAR2(25), endereco ENDERECO_TYP); ENDEREÇO_TYP é usado para definir o tipo do atributo Endereco do tipo PESSOA_TYP
  • 16. Tipos de objetos Para armazenar dados é necessário a criação de uma tabela a partir de um tipo de objeto. create type PESSOA_TY as object (Nome VARCHAR2(25), CPF NUMBER, Endereco ENDERECO_TY); create table PESSOAS of PESSOA_TY (CPF primary key ); A tabela PESSOAS irá armazenar dados com a estrutura do tipo PESSOA_TY
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52. Manipulando tabelas de objetos Existem diferenças significativas no modo de utilização de uma tabela de objetos. Cada linha dentro de uma tabela de objetos possuirá um OID, e essas linhas poderão ser referenciadas como objetos.
  • 53.
  • 54.
  • 55. Seleção em tabelas SELECT p.CPF FROM PESSOAS p WHERE p.nome = ‘Maria Silva'; Resposta: CPF -------------------------------------------------------------- 543875432
  • 56. Seleção em tabelas SELECT p.endereco FROM PESSOAS p WHERE p.nome = ‘Maria Silva'; Resposta: ENDERECO(RUA, CIDADE, ESTADO, CEP) ------------------------------------------------------------- ENDERECO_TY('rua das Flores 84', ‘Campina Grande', ‘PB', 58102324)
  • 57. Seleção em tabelas select p.endereco.cidade from PESSOAS p where p.nome = ‘Maria Silva'; Resposta: ENDERECO.CIDADE ------------------------- Campina Grande
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63. Atualização e Remoção em tabelas de Objetos update PESSOAS p Set p.endereco= ENDERECO_TY(‘Rua das Margaridas 22', ‘ Patos', ‘PB', 58453230) where p.nome = ‘Maria Silva'; Delete from PESSOAS p where p.nome = ‘Maria Silva';
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82. Referenciando Objetos EMPREGADO_TY DEPARTAMENTO_TY depto create table EMPREGADOS (Nome VARCHAR2(25), CPF NUMBER, depto REF DEPARTAMENTO_TY ); create type DEPARTAMENTO_TY as object (Nome VARCHAR2(25), ... ); create table DEPARTAMENTOS of DEPARTAMENTO_TY ( ... ); Os objetos do tipo DEPARTAMENTO_TY podem ser referenciados em colunas de tabelas relacionais ou em atributos de outros objetos .
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.

Notes de l'éditeur

  1. 05/12/09
  2. 05/12/09
  3. 05/12/09
  4. 05/12/09
  5. 05/12/09