DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo SQL Magazine 15 - A Implementação Objeto-Relacional no Oracle

Artigo da Revista SQL Magazine - Edição 15.

capaSQL15.JPG

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.

 

Tabela de objetos

Uma tabela de objetos (object table), é uma classe especial de tabela cujas linhas são objetos. São tabelas que possuem a estrutura definida por um tipo de dado estruturado, object type. Desta forma, as linhas das tabelas tornam-se instâncias – ou objetos – do tipo que define a sua estrutura. A estes objetos, denominamos "objetos de linha".  A Object Table é criada através de um Object Type. Suas colunas consistem exatamente dos atributos definidos no Object Type, e cada linha da Object Table é em si um objeto (instância do object type), possuindo um identificador de objeto (OID).

Por exemplo, uma tabela que manipula objetos do tipo t_funcionario definido anteriormente pode ser definida por:

 

create table"



ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Methanias Colaço Rodrigues Júnior

Methanias Colaço Júnior (www.qualycred.com/methanias) é Doutor na área de Inteligência aplicada à Gestão e à Engenharia de Software e M.Sc. em Informática pela Universidade Federal de Campina Grande (UFCG) na área de Sistemas de Informação e Apoio à Decisão. Especialista em Ciência da Computação e T...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03