Mapeamento de Modelos de dados Orientados a Objetos para Modelos Relacionais.

por Rafael Zolet Kurike *

 

Nos últimos anos, o paradigma de orientação a objetos vem se desenvolvendo
na área de programação. Várias experiências têm mostrado que esse paradigma
aumenta a produtividade dos programadores a modularidade dos programas. Na
área de bancos de dados, sabe-se que os modelos de dados clássicos, como por
exemplo o modelo relacional, não são apropriados para descrever e manipular
os dados das chamadas "novas aplicações", tais como projeto assistido por
computador (CAD), manufatura de produtos (CAM), produção de software (CASE),
automação de escritórios (OIS), aplicações médicas e científicas,
representação do conhecimento para aplicações de inteligência artificial,
etc [The90]. Os dados dessas aplicações são muito complexos e evolutivos,
sendo necessária a modelagem não somente de sua estrutura, mas também de seu
comportamento.

Para compensar estas deficiências, vários modelos de dados tem sido
propostos. Primeiramente, os estudos na área foram dirigidos para os modelos
semânticos e extensões do modelo relacional. Mais recentemente, surgiram
modelos que procuram enfatizar os aspectos comportamentais dos objetos que
manipulam, sendo baseados principalmente em conceitos oriundos da
programação orientada a objetos. Isso se deve ao fato de que a orientação a
objetos auxilia a lidar com a complexidade nas mais diferentes aplicações.
Esses modelos são denominados modelos de dados orientados a objetos [Nav92].

Os modelos de dados orientados s objetos são mais expressivos e flexíveis
que o modelo relacional. O modelo de dados relacional foi criado para
permitir a representação de uma grande variedade de problemas usando um
pequeno conjunto de conceitos simples. Por outro lado, os modelos orientados
a objetos foram projetados para a criação e representação de estruturas bem
mais complexas de uma maneira coerente e uniforme [SZ87].

Apesar de inúmeras vantagens encontradas ao se utilizar o paradigma de
orientação a objetos, ainda não existem SGBDs OO comercialmente disponíveis
para aplicações de grande porte. Os SGBDs relacionais ainda representam o
estado da arte na tecnologia tradicional de bancos de dados e são os mais
estudados na literatura. Suas maiores vantagens são a simplicidade e a
portabilidade entre implementações. Esses sistemas continuam a dominar o
mercado , sendo utilizados nas mais diversas aplicações [Sac94].

Entretanto, os conceitos de orientação a objetos podem ser utilizados como
mecanismos de abstração para o projeto de bancos de dados relacionais. A
modelagem orientada a objetos, por utilizar conceitos mais claros e
naturais, permite produzir bancos de dados relacionais mais adequados às
aplicações do mundo real, evitando os problemas de normalização
freqüentemente associados ao projeto relacional [PBRV90]. Além disso, a
modelagem orientada a objetos aumenta a integração entre os dados e as
aplicações [BPR88]. Dessa forma, uma abordagem orientada a objetos para o
projeto de lógico de bancos de dados relacionais permite que as aplicações
sejam projetadas de forma integrada, em que dados e operações podem ser
projetados ao mesmo tempo.

Com o crescimento do mercado, as linguagens orientadas a objetos começaram a
dar maior enfoque em um novo paradigma, a análise, projeto e codificação de
sistemas. É claro que os bancos de dados não poderiam ficar imunes à esse
novo modo de encarar o desenvolvimento de sistemas. Houve, entretanto, um
desenvolvimento mais rápido nas linguagens orientadas a objetos (OO) que nos
Sistemas Gerenciadores de Bancos de Dados Orientados a Objetos (SGBD OO), o
que deixou os desenvolvedores e administradores de BD numa situação curiosa:
mesmo querendo adotar a orientação a objetos, eles têm que parar na hora de
manipular seus dados. Linguagens visuais como o JAVA, por exemplo, embora
sejam orientadas o objetos em sua essência, acessam os bancos de dados de
maneira convencional, ou seja, não orientada a objetos e usando SQL. Com
isso, um mesmo programa tem uma parte OO e uma parte estruturada. Alguns
autores dizem que quando linguagens OO utilizam SQL embutido para acesso a
dados remotos em um SGBD, as facilidades e vantagens da orientação a objetos
presentes nessas linguagens não são exploradas totalmente.

Outro ponto importante, é saber se a aplicação da OO no armazenamento
estático de dados será tão mais eficiente para dados convencionais (strings
e números) como parecem ser para dados especiais como som, imagens e textos
desestruturados. Caso ela não represente um grande avanço em relação aos
SGBDs relacionais também nessa área, haverá sempre a possibilidade de termos
um grande uso de SGBDs OO para armazenamento de dados multimídia e os velhos
e bons SGBDs relacionais para dados convencionais, o que não representaria
pouco.

Enquanto o armazenamento de dados OO não se tornar comercialmente disponível
apenas, a opção mais adequada é desenvolver o sistema utilizando OO na
análise e no projeto, e posteriormente armazenar os dados relacionalmente.


(*)  Rafael Zolet Kurike rzkurike@din.uem.br