Artigo SQL Magazine 15 - A Implementação Objeto-Relacional no Oracle
Artigo da Revista SQL Magazine - Edição 15.
Clique aqui para ler esse artigo em PDF.
Clique aqui para ler todos os artigos desta edição
A Implementação Objeto-Relacional no Oracle
por Methanias Colaço Rodrigues Júnior
A maior parte dos sistemas gerenciadores de bancos de dados (SGBDs) utilizados é baseada no modelo relacional. No entanto, SGBDs baseados em outros modelos têm surgido devido à demanda de novas aplicações. Muitas aplicações, impulsionadas pela WEB, requererem técnicas de acesso que melhorem o desempenho e estruturas de dados muito mais complexas que as tabelas relacionais, com diversos tipos adicionais, como imagem e vídeo, fundamentados na tecnologia de orientação a objetos.
A principal estrutura do modelo objeto-relacional são as tabelas, entretanto, com muito mais recursos do que as tabelas puramente relacionais. Entre esses recursos podemos destacar: definição de tipos pelo usuário, registros e vetores, métodos e funções, referências, herança e polimorfismo. São acrescentadas também estruturas a linguagens de consulta relacionais, como SQL, para tratar os tipos de dados acrescentados. O objetivo é preservar os fundamentos relacionais, em particular o acesso declaratório ao dado, acrescentando novas funcionalidades.
Para utilizar os recursos de orientação a objetos a Oracle, a partir da versão 8, implementou diversos conceitos que definem um modelo objeto-relacional tais como: tipo objeto, tabela de objetos, etc. Examinaremos os principais conceitos a seguir.
Modelo Objeto-Relacional Oracle
Tipo Objeto
O Oracle suporta o conceito de objetos complexos. Podemos criar tipos de dados adicionais e depois fazermos referência a esses tipos de dados dentro de outros objetos. Essa capacidade de estender o banco de dados com tipos adicionais é um recurso muito importante, pois ajuda a simplificar, por exemplo, a complexidade do tratamento a tipos de dados complexos.
Um outro ponto importante a observar é que os tipos criados são gravados no esquema armazenado no banco de dados. Então, outras declarações que acessam o banco de dados podem fazer uso das definições desses tipos. Tipicamente, as definições de tipo em linguagens de programação (incluindo linguagens de programação persistentes) não são armazenadas em um banco de dados e só podem ser vistas por programas que incluem um arquivo texto contendo as definições.
O exemplo da Listagem 1 demonstra a criação de um tipo de dados definido pelo usuário.
create type t_endereco as object (
rua varchar2(40)
cidade varchar2(30),
uf char(2),cep number(8) )
Listagem 1.
Ainda é possível usar tipos aninhados, ou seja, um tipo pode ser um atributo de outro tipo. O exemplo da Listagem 2 mostra o tipo t_endereco sendo referenciado por t_funcionario.
create type t_funcionario as object (
matricula number(5),
nome varchar2(30),
data_admissao date,
endereco t_endereco)
Listagem 2." [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo