O documento descreve o modelo orientado a objetos, incluindo sua definição, onde é usado, exemplos de diagramas, e vantagens e desvantagens. Ele fornece detalhes sobre como objetos representam entidades do mundo real com estados e comportamentos, e como são organizados em classes hierárquicas. Exemplos de sistemas de gerenciamento de banco de dados orientados a objetos comerciais e de código aberto são listados, juntamente com suas linguagens suportadas.
1. Modelo Orientado a objetos
Definição
No que é utilizado
Ex de diagramas
Vantagens e desvantagens
No Sistema de Gerenciamento de Banco de Dados Orientado a Objetos
(SGBDOO), a noção de objeto é usada no nível lógico e possui características não
encontradas nas linguagens de programação tradicionais, como operadores
de manipulação de estruturas, gerenciamento de armazenamento, tratamento de
integridade e persistência dos dados.
Os modelos de dados orientados a objetos tem um papel importante nos
SGBDs porque são mais adequados para o tratamento de objetos complexos
(textos, gráficos, imagens) e dinâmicos (programas, simulações), por possuírem
maior naturalidade conceitual e, finalmente, por estarem em harmonia com
fortes tendências em linguagens de programação e engenharia de software. A
junção entre as linguagens de programação e banco de dados é um dos problemas
que estão sendo tratados de forma mais adequada no contexto de orientação a
objetos.
No modelo de dados orientado a objetos (MDOO), toda e qualquer entidade
do mundo real é representada por um modelo conceitual o objeto. Um objeto
sempre estará associado a um estado e um comportamento. O estado de um objeto
é definido por um valor e suas propriedades, os atributos. Propriedades podem ter
valores primitivos,como strings ou inteiros, como também valores não primitivos. Um
objeto não primitivo consiste em um conjunto de propriedades. Conseqüentemente,
objetos podem ser recursivamente definidos sob a forma de outros objetos. O
comportamento de um objeto é especificado por métodos que operam sobre o
estado do objeto.Cada objeto é unicamente identificado por um sistema identificador
determinante (SID). Objetos com as mesmas propriedades e comportamento são
agrupados em classes.
Um objeto pode ser uma instância de somente uma única classe ou de várias
classes.Classes são organizadas hierarquicamente. Um subclasse herda
propriedades e métodos de uma superclasse, além do que, uma subclasse pode
possuir propriedades e métodos específicos. Em alguns sistemas de BDOO, classes
podem ter mais de uma super classe, configurando o que chamamos de herança
múltipla, enquanto que, outras classes são restritas a somente um superclasse,
herança simples.
2. Exemplo
UniCOSMOS (University of Campinas Object Storage Management System)
foi um protótipo desenvolvido na UNICAMP no período 1985–1989 para aplicações
em engenharia. Efetivamente, UniCOSMOS não era um sistema gerenciador de
base de objetos, mas sim um núcleo para tais sistemas onde alguns dos
mecanismos básicos de manipulação de objetos persistentes poderiam ser
avaliados.
Encontram-se no mercado:
- CACHÉ: trabalha com as seguintes linguagens: Java, .Net, C++, XML e
outras. É um banco de dados comercial.
- VERSANT: trabalha com as seguintes linguagens: Java e C++. É bastante
utilizado nos sistemas telecomunicações, redes de transporte, áreas médicas e
financeiras. É um banco de dados comercial.
- DB4Objects: Trabalha com as seguintes linguagens: Java e .Net. Sua
linguagem de Consulta é a Object Query Language (OQL) e é um banco de dados
distribuído em duas licenças, a GPL (licença pública Geral) e uma licença comercial.
- O2: Trabalha com as seguintes linguagens: C, C++ e o ambiente O2.
Sua linguagem de Consulta: O2Query, OQL. Seu gerenciador do Banco de Dados
é o O2Engine, e é um banco de dados comercial.
- GEMSTONE: trabalha com as seguintes linguagens: Java, C++, C#, XML e
outras. Sua linguagem de Consulta é o DML. É um banco de dados comercial.
- JASMINE: Possui alta conectividade com Web, suporte à linguagem Java.
Pode-se ainda desenvolver aplicações em Visual Basic usando Active/X, em
HTML (HyperText Markup Language) usando as ferramentas de conectividade
para Web disponíveis no Jasmine, em C e C++ usando APIs e em Java usando
interfaces de middleware embutidas no Jasmine. É um banco de dados comercial.
3. - MATISSE: Trabalha com as seguintes linguagens: Java, C#, C++, VB,
Delphi, Perl, PHP, Eiffel, SmallTalk. É um banco de dados comercial.
- Objectivity/DB: trabalha com as seguintes linguagens: C#; C++; Java;
Python, Smalltalk; SQL++ (SQL com objeto - extensões orientadas) e XML
(para a importação e a exportação somente). É um banco de dados comercial.
- Ozone: trabalha com as seguintes linguagens: Java e XML. É um banco de
dados opensource.
Vantagens
Entre as Vantagens dos SGBD’s OO, podemos destacar:
• Capacidade de Armazenamento de Objetos
• Podes de Processamento de Requisições
• Não possuem Chaves Primarias nem Estrangeiras, aumentando o
desempenho das consultas e processos
• Os Objetos se comunicam entre si através de mensagens.
Desvantagens
Entre as Desvantagens dos SGBD’s OO, podemos destacar:
• Falta de Padronização das linguagens de manipulação dos dados;
• Alto custo de aquisição das novas tecnologias;
• Curva de aprendizagem e adaptação ao novo ambiente demorada.