Comparativo entre Banco de Dados Orientado a Objetos (BDOO) e

Propaganda
Comparativo entre Banco de Dados Orientado a
Objetos (BDOO) e Bancos de Dados Objeto Relacional
(BDOR)
Daniel Ramon Silva Pinheiro, Danilo Santos Souza, Rafael Oliveira Vasconcelos,
Fábio Soares Silva
RESUMO. Este artigo descreve as principais características dos Bancos de
Dados Orientados a Objetos (BDOO) e dos Bancos de Dados Objeto Relacional
(BDOR), faz uma breve explanação sobre orientação a objetos para que se
tenha um melhor entendimento das características e funcionamento dos bancos
BDOO e BDOR. É explicado os principais detalhes, importância e as
linguagens de definição de objetos (ODL) e consulta a objetos (OQL) do padrão
ODMG utilizado nos BDOOs, apresenta o padrão SQL3, também conhecido
como SQL99 utilizado nos BDORs. Por fim faz um comparativo dos modelos
orientado a objetos e objeto-relacional, tendo como base suas principais
características, apresentadas no próprio artigo, e apontando vantagens e
desvantagens de cada modelo Banco de Dados e dos softwares existentes que
seguem os padrões supracitados.
PALAVRAS-CHAVE: BDOR, BDOO, Características, Desempenho
Abstract. This article describes the main features of the Object Oriented
Databases (OODB) and Object Relational Databases (ORDB), a brief
explanation on the objects orientation that have a better understanding of the
characteristics and operation of banks and OODB and ORDB. It explained the
main details, and the importance and language of object description (ODL) and
the object query (OQL) of ODMG standard used in ODBDs, presents the SQL3
standard, also known as SQL99 used in ORDBs. Finally make a comparison of
models objects oriented and object relational, based on its main features,
presented in the article and pointing out advantages and disadvantages of each
type Database and software available that follow the patterns above.
Keywords: Features, OODB, ORDB, Performance
1 Introdução
A necessidade de manipulação e armazenamento de dados complexos vem
crescendo rapidamente com o passar do tempo. Essa necessidade fez com que o
paradigma orientado a objetos fosse agregado aos Sistemas Gerenciadores de Banco
de Dados (SGBDs). As informações complexas, como gráficos, imagens, áudio,
vídeo, mapas, entre outros, requerem funcionalidades que vão além do que o modelo
relacional de banco de dados pode oferecer. Por essa razão, surgiu o modelo de banco
de dados orientado a objetos, que traz muitos benefícios em relação ao banco de
dados relacional, pela sua produtividade ao agregar a orientação a objetos ao banco de
dados. Entretanto, por ser um modelo jovem e imaturo que carece de mais estudo e
desenvolvimento, suas operações são lentas quando comparadas com os bancos de
dados relacionais existentes. Por essa razão, foi desenvolvido o banco de dados objeto
relacional, o qual agrega características de ambos os bancos, o BDOO e o BDR,
possuindo assim características da orientação a objetos combinada com tecnologia
relacional que domina o mercado e funciona perfeitamente, seja no desempenho ou na
confiabilidade do SGBD.
Este artigo apresentará características dos BDOO e DBOR, com uma comparação
das vantagens e desvantagens dos dois modelos.
2. Banco de Dados Orientado a Objetos
Os Banco de Dados Orientado a Objetos sugiram da necessidade de armazenar
dados complexos e de acabar com a disparidade que havia na modelagem da
aplicação e do Banco de Dados (BD). Com o advento das linguagens de programação
orientadas a objetos, os programadores passaram a utilizar este paradigma e a
modelagem então naturalmente passou também a seguir este modelo. O outro ponto é
que objetos complexos precisam ser quebrados em diversas tabelas, ou relações, para
serem armazenados e com isto para recuperar tal informação é preciso realizar um
JOIN entre diversas tabelas.
Com a orientação a objetos, é possível modelar objetos de forma mais próxima ao
mundo real, como por exemplo, em um sistema de geoprocessamento, engenharia,
pesquisa científica e tantos outros sistemas não triviais. Um Bando de Dados
Orientado a Objetos – BDOO – permite ainda que a aplicação manipule objetos,
independente se eles são persistentes ou não, pois é possível armazenar todo o objeto
e não apenas seus atributos.
Diferentemente do modelo Relacional, o BDOO não utiliza o conceito de chave
primária ou secundária. As chaves foram substituídas pelo identificador de objeto
(OID – Objetct Identifier), que é controlado pelo próprio SGBD – Sistema
Gerenciador de Banco de Dados – e não é visível ao usuário do Banco de Dados. O
OID pode ser visto como uma referência ao objeto em memória, assemelhando-se a
um ponteiro, porém um OID nunca é alterado e nem reaproveitado, diferentemente do
que acontece quando o objeto está em memória, onde é utilizado o endereço físico da
memória RAM (Random Access Memory). Apesar da característica mencionada, é
possível criar campos como chave para facilitar a identificação dos objetos
armazenados por parte do usuário.
2.1 Orientação a Objetos
A orientação a objetos fornece recursos como encapsulamento, herança,
polimorfismo e sobrecarga que serão rapidamente explicados.
Segundo Elmasri e Navathe, “o conceito de encapsulamento é uma das principais
características das linguagens e dos sistemas OO. Ele está relacionado também com
os conceitos de tipos abstratos de dados e ocultar a informação nas linguagens de
programação”. Encapsular dados significa que as variáveis serão acessadas por
métodos definidos em sua estrutura. Uma vantagem é poder ocultar a complexidade
na manipulação do objeto por meio das operações disponibilizadas de tal forma que
aumenta a segurança e produtividade.
Herança é o mecanismo pelo qual a linguagem de programação orientada a objetos
(LPOO) fornece a possibilidade do reaproveitamento de código. É possível uma
classe herdar os métodos e atributos de outra classe chamada superclasse ou classe
mãe e assim estender a classe mãe.
O polimorfismo é a capacidade que um objeto tem de ora se comportar de uma
maneira, ora de outra. Considere as classes as classes Pessoa, Funcionário e Aluno.
Com uma variável do tipo Pessoa, é possível utilizá-la para representar um objeto do
tipo Pessoa, mas também objetos do tipo Funcionário e Aluno.
O polimorfismo dá a possibilidade da sobrecarga de operadores, no qual subclasses
podem modificar a implementação de um método definido na superclasse.
Considerando o exemplo anterior e que cada classe tenha um método chamado
Remover, para remover uma pessoa basta apenas excluir o seu registro, já para um
aluno é preciso verificar se o mesmo não possui nenhuma pendência na organização,
excluir o aluno das disciplinas que está matriculado e por fim alterar o seu estado. Já
para um funcionário é preciso remover o acesso às informações da instituição,
calcular e pagar a indenização caso se aplique e alterar o estado do funcionário.
Percebe-se que cada classe tem a sua própria implementação, apesar de
compartilharem o mesmo nome do método.
2.2 Padrão ODMG
“O sucesso dos sistemas de banco de dados relacionais não resulta apenas de um
nível mais alto de independência de dados e um modelo de dados mais simples do que
os sistemas anteriores. Seu sucesso se deve também à padronização que sofreram. A
aceitação do padrão SQL permite o alto grau de portabilidade e interoperabilidade...
Portabilidade é a capacidade de executar um programa de aplicação particular em
diferentes sistemas com modificações mínimas no programa.” (Vieira, 2001)
Interoperabilidade se refere à habilidade de uma aplicação acessar múltiplos SGDBs
distintos.
O padrão ODGM (Object Database Management Group) se baseia em:
•
Modelo de Objetos
•
Linguagem de Definição de Objetos (ODL)
•
Linguagem de Consulta a Objetos (OQL)
•
Acoplamento (binding)
Elmasri e Navathe, 2005, dizem que o modelo de objetos fornece os tipos de
dados, os construtores de tipos e outros conceitos que podem ser utilizados na ODL
para especificar esquemas de BDs. O modelo define objetos e literais no qual os
objetos possuem um OID e um estado, ou valor atual, já as literais possuem apenas
um valor sendo basicamente uma constante. Tanto os objetos como as literais podem
ser do tipo atômico, coleção ou estruturado.
A linguagem ODL é usada para criar a definição dos tipos de objetos, por isso deve
suportar todos os construtores semânticos do Modelo de Objetos. É apenas uma
linguagem de definição e independente de qualquer linguagem de programação, sendo
utilizado o binding para a LPOO específica.
A OQL é uma linguagem declarativa não procedural que pode ser utilizada dentro
linguagens de programação. A OQL é baseada na SQL, adicionando conceitos do
padrão ODMG como OID, objetos complexos, herança, polimorfismo,
relacionamento e operações.
O binding, ou acoplamento, especifica como as estruturas em ODL são mapeadas
para estruturas na LPOO escolhida, como C# por exemplo. É o binding que converte
o objeto do BD para a aplicação.
3 Banco de Dados Objeto Relacional
Com a evolução dos paradigmas de programação e a gradativa manipulação de
dados complexos, houve a necessidade da evolução dos SGDB’s de forma a
acompanhar e atender as exigências requisitadas. Dessa evolução nascem os
SGBDOO, os SGBDOR e evoluções nos SGBDR.
Analisando de forma sucinta o SGBDOO, temos respectivamente um banco que
facilita a aproximação do mundo real, devido a trabalhar com orientação a objetos e
suas características (herança, encapsulamento, abstração, polimorfismo), um banco
que permite a manipulação de dados complexos, mesmo com desempenho inferior ao
relacional e que possui um pobre nível nas consultas dos dados. Continuando a
analise só que de um SGBDR, temos um banco que atua a um bom tempo no mercado
pelo fato de se ter anos de desenvolvimento, investimentos e aperfeiçoamentos, um
banco com desempenho superior aos SGBDOO, um SGBD que apresenta ricas
consultas e que possui dificuldade em manipular dados complexos.
Como podemos notar no parágrafo acima temos em cada tipo de SGBD citado,
vantagens e desvantagens nos mesmos. Então se notou a carência de um SGBD que
tivesse a capacidade de manipular dados complexos, que se adequasse ao paradigma
de programação atual (orientação a objetos), que tivesse bom desempenho e que
demonstrasse ricas consultas de dados. É a partir dessas vantagens de cada SGBD que
se fundamenta o SGBDOR.
O SGBDOR emprega um modelo que coloca a orientação a objetos em tabelas,
unindo os dois paradigmas em um só. Utiliza os conceitos de supertabelas, supertipos,
herança, reutilização de código, encapsulamento, controle de identidade de objetos
(OID), referência a objetos, consultas avançadas e alta proteção dos dados.
Com esse novo conceito surgiu à necessidade de uma linguagem padrão para o uso
com o SGBDOR. É a partir daí que nasce o SQL-3, que na verdade é uma extensão do
SQL-2 complementado com características do modelo objeto-relacional.
Alguns exemplos de aplicações que utilizam SGBDOR são os seguintes:
armazenamento de imagens (obtidas por satélite ou de alguma outra forma digital);
projetos de arquitetura; dados sobre o espaço (regiões geográficas, criação de mapas),
sistemas de informações geoespaciais, entre outros.
Apesar de ser um conceito relativamente novo no mundo da tecnologia de banco
de dados, o SGBDOR tem sido uma das promessas capaz de substituir o SGBDR e o
SGBDOO. O fato de obter o melhor do SGBDOO e do SGBDR faz tender que seja o
modelo de banco de dados “ideal” para atender as necessidades atuais.
3.1 Padrão SQL3 ou SQL99
Assim como o SGBDOO e SGBDR possuem padrões de linguagem de consulta,
com a evolução do conceito objeto relacional ocorreu a necessidade da criação de
mais um padrão para manipular o mesmo, findando assim a criação do padrão SQL3
ou SQL99.
Criado em 1999 com o intuito de propor interação entre o banco de dados e
aplicações orientadas a objetos de forma mais natural, inclui novos tipos de dados,
novos operadores, suporte para a noção de objeto (OIDs, métodos, tipos de dados
estruturados definidos pelo usuário e etc.), consultas recursivas, triggers, navegação
pela estrutura dos objetos, chamada de métodos (na própria formulação da consulta) e
etc. Nele, representamos objetos como linhas (ROW) que definem uma tupla em
forma de registro. Diferente do modelo relacional, onde cada atributo possui valores
atômicos, pode ocorrer de objetos posuirem outros objetos ou de mais de um registro,
caracterizando o conceito de relação aninhada, onde os atributos podem ser
constituídos de outras relações e não apenas de valores atômicos.
Um conjunto de novos operadores pode ser encontrado no SQL3, alguns deles são
os seguintes: Set, Cast-Multiset, Cursor, Bag, List, Array, Row.
Outro ponto que vale ressaltar é o uso do tipo de dado LOB, utilizado para dados
muito grandes como vídeos, música e etc. Possui dois subtipos que são o CLOB
(Character LOB) e BLOB (Binary LOB).
Enfim, um conjunto de outras utilidades pode ser encontrado na linguagem SQL3
ou SQL99 de modo a facilitar o uso do SGBDOR de forma eficiente e padronizada.
4 Comparação BDOO x BDOR
Como já apresentado, os Banco de Dados Orientado a Objetos (BDOO) sugiram da
necessidade de armazenar dados complexos e de acabar com a disparidade que havia
na modelagem da aplicação e do Banco de Dados (BD). Logo, as vantagens do
BDOO vieram rapidamente à tona: possui uma abordagem flexível, facilidade de
manusear objetos complexos, trabalha com noções de objetos, classes, relacionamento
e identidade de objetos.
Entretanto, logo foram percebidas suas limitações, principalmente a relacionada ao
desempenho quando comparado com o Banco de Dados Relacional (BDR) e a falta de
fundamentação matemática, o que dificulta realizar consultas complexas. Por conta,
principalmente destas limitações, foi desenvolvido do Banco de Dados Objeto
Relacional (BDOR). Este apresenta diversas vantagens em relação ao BDOO e ao
BDR. Em poucas palavras, pode-se dizer que o BDOR surgiu para agregar as
vantagens da orientação a objetos (herança, polimorfismo, encapsulamento,
abstração) que há no BDOO, juntamente com o alto desempenho, eficiência e
maturidade do BDR.
O armazenamento de dados, tanto em BDOO, quanto em BDOR, se torna
relativamente simples, uma vez que em ambos os bancos oferecem suporte a dados
complexos. Entretanto, a principal vantagem do BDOR é a capacidade manipular
dados complexos, persistentes e ao mesmo tempo manter a facilidade de uso dos
métodos de consulta do SQL3.
O BDOO possui um modelo rico de dados, ou seja, possui representação de objetos
complexos, é extensível (oferece suporte para novos tipos de dados capazes de operar
no objeto), ofereço suporte à ocultação da informação e herança. Seu ponto fraco é
seu baixo desempenho, uma vez que sua otimização de consultas é bastante
complexa, logo é perdido um tempo precioso neste processo. O BDOR oferece todas
as características citadas no parágrafo anterior, exceto a do baixo desempenho. O
BDOR possui uma otimização de consulta mais simples, e consequentemente, não
perde tanto desempenho quanto o BDOO.
Com relação ao mercado, o BDOO é voltado para aplicações de pequena escala,
por questões de desempenho. Já o BDOR busca alcançar aplicações de larga escala, a
qual é atualmente dominada pelos BDR.
Conclusão
A orientação a objetos é a tendência seja qual for a situação, o seu dilema é o fato
da perda de desempenho. Assim como primeiras linguagens de programação onde
tudo era um objeto, os BDOOs sofrem com o desempenho. Quando só existia o
BDR, apareceu a necessidade de armazenar dados complexos, uma ótima solução foi
o BDOO, entretanto, por seu desempenho não satisfatório, um outro banco foi
desenvolvido, o BDOR, que agrega características da orientação a objetos e
otimização do BDR. O modelo objeto relacional pode ser comparado às linguagens de
programação atuais, onde apenas dados complexos são representados como objetos,
tendo assim maior desempenho.
O BDOR ainda não alcançou aplicações de larga escala, pois se trata de um banco
relativamente novo, mas como suas vantagens estão se tornando cada vez mais
evidentes, a tendência é que as empresas e aplicações que manipulam dados
complexos comecem a utilizar o BDOR e no futuro este modelo de banco de dados
tome o lugar do tradicional BDR.
Referências
1. Berz, Everton L., Wagner, Roger; Figueira, Thiago G. Sistemas Gerenciadores de Banco de
Dados
Orientado
a
Objeto
e
Objeto-Relacional.
Disponível
em
<
http://www2.wzero.com.br:81/eurico/folders/Faccat/BDII/trabalhos/BDRO_trabG2.pdf>
Acesso em 29/04/2009
2. Boscarioli, Clodis; Bezerra, Anderson; Benedicto, Marcos de; Delmiro, Gilliard. Uma
reflexão
sobre
Banco
de
Dados
Orientados
a
Objetos.
Disponível
em
<
http://conged.deinfo.uepg.br/artigo4.pdf> Acesso em 29/04/2009
3. Campos, Maria Luiza M.; Klein, Lawrence Z.; Tanaka, Astério K. A Tecnologia ObjetoRelacional em Ambientes de Data Warehouse: Uso de Séries Temporais como Tipo de
Dado Não Convencional. Disponível em <http://www.inf.ufsc.br/sbbd99/anais/SBBDCompleto/30.PDF>. Acesso em 29/04/2009
4. Debus, Rafael; Pittol, Eduardo; Caorsi, Nicolas. Banco de Dados Orientados a Objetos.
Disponível em < http://www.inf.unisinos.br/~bandeira/BDOO.doc> Acesso em 29/04/2009
5. Fonseca, André de A.; Neto, Antonio de A. S.; Souza, Lucas T. de; Dourado, Tasso L.
Banco
de
Dados
Objeto-Relacional
(BDOR).
Disponível
https://disciplinas.dcc.ufba.br/pub/MATA60/WebHome/BDOR_2008.1.pdf>
em
<
Acesso
em
29/04/2009
6. Fonseca,
Fernando;
Salgado,
Ana
C.
Banco
de
Dados.
Disponível
em
<
http://www.cin.ufpe.br/~in940/BD-OO.pdf> Acesso em 29/04/2009
7. Mattoso, Marta; Baião, Fernanda. Bancos de Dados Orientados a Objetos e Relacionais a
Objetos. Disponível em <
http://www.cos.ufrj.br/~marta/BDOO_OR_sbbd2003.pdf>
Acesso em 29/04/2009
8. Neves, Nilton A. das; Rocha, Gabriel A.; Segundo, Alonso de O. Banco de Dados ObjetoRelacional
(BDOR).
Disponível
em
<https://disciplinas.dcc.ufba.br/pub/MATA60/WebHome/BDOR_2008.1.pdf> Acesso em
29/04/2009
9. Ricarte, Ivan L. M. Sistemas de Bancos de Dados Orientados a Objetos. Disponível em
<ftp://ftp.dca.fee.unicamp.br/pub/docs/ricarte/apostilas/mc_sbdoo.pdf>
Acesso
em
29/04/2009
10.Roma, Adriana. Modelos de Banco de Dados Orientados a Objetos. Disponível em <
http://www.inf.ufrgs.br/~clesio/cmp151/cmp15120031/BDsOrientadosObjetos.pdf> Acesso
em 29/04/2009
11.Soares, Deyve. Banco de Dados Objeto Relacional (SGBDOR). Disponível em
<http://www.computacao.unitri.edu.br/downloads/monografia/93941146082690.pdf>
Acesso em 29/04/2009
12.Vieira, Marina T. P. Banco de Dados Orientado a Objetos. Disponível em
<http://www.recope.dc.ufscar.br/recope/download/bd/apostilabdoo.pdf>
29/04/2009
Acesso
em
Download