Você está na página 1de 51

FACULDADE DE TECNOLOGIA DE SO PAULO

SISTEMA DE BANCO DE DADOS


ORIENTADOS A OBJETOS

GUILHERME CANTURIA DE CARVALHO

SO PAULO
2011

FACULDADE DE TECNOLOGIA DE SO PAULO

SISTEMA DE BANCO DE DADOS


ORIENTADOS A OBJETOS

GUILHERME CANTURIA DE CARVALHO


TECNLOGO EM PROCESSAMENTO DE DADOS
GABRIEL ISSA JABRA SHAMMAS - ORIENTADOR

SO PAULO
2011

AGRADECIMENTOS
Agradeo aos meus pais, que me apoiaram durante toda a minha vida e sem o
apoio e incentivos de ambos no teria chegado a este momento.
A Deus, por estar presente em todos os momentos e me fornecendo fora nas
dificuldades enfrentadas.
Aos meus amigos, que contriburam para o meu crescimento pessoal e tornaram
o perodo do desenvolvimento do trabalho mais prazeroso.
Por fim agradeo ao meu orientador e a todos que contriburam de alguma forma
para a criao deste trabalho.

iii

SUMRIO
LISTA DE FIGURAS......................................................................................................vi
LISTA DE SIGLAS........................................................................................................vii
RESUMO.........................................................................................................................ix
ABSTRACT......................................................................................................................x
1 INTRODUO..............................................................................................................1
1.2 OBJETIVOS................................................................................................................2
2 CONCEITOS DE BANCO DE DADOS.......................................................................3
2.1 DADOS.......................................................................................................................4
2.2 ABSTRAO DE DADOS........................................................................................4
3 MODELOS DE DADOS................................................................................................6
3.1 MODELO HIERRQUICO........................................................................................6
3.2 MODELO DE REDE..................................................................................................7
3.3 MODELO RELACIONAL..........................................................................................8
3.4 MODELO RELACIONAL NO-NORMALIZADO.................................................9
3.5 MODELO ENTIDADE-RELACIONAMENTO......................................................10
4 PARADIGMA DA ORIENTAO A OBJETOS......................................................12
4.1 O QUE UM OBJETO ? .........................................................................................13
4.2 CLASSE DE OBJETOS............................................................................................14
4.3 HERANA................................................................................................................15
4.4 POLIMORFISMO.....................................................................................................16
4.5 ENCAPSULAMENTO.............................................................................................16
5 BANCO DE DADOS ORIENTADOS A OBJETOS..................................................18
5.1 O QUE SO ? ..........................................................................................................19
5.3 CONCEITO DE ORIENTAO A OBJETOS PARA BDOO................................21
5.3.1 PERSISTNCIA DOS OBJETOS.........................................................................21
iv

5.3.2 OBJETOS PARA BANCO DE DADOS...............................................................22


5.3.2.1 OBJETOS COMPLEXOS...................................................................................23
5.3.2.2 IDENTIFICADOR DE OBJETOS......................................................................23
5.3.3 HIERARQUIA DE CLASSES E HERANAA PARA BDOO............................23
5.3.4 ENCAPSULAMENTO..........................................................................................24
5.4 CONCEITOS DE BANCO DE DADOS PARA BDOO..........................................25
5.4.1 TRANSAES......................................................................................................25
5.4.1.1 TRANSAES DEMORADAS........................................................................26
5.4.1.2 TRANSAES ANINHADAS..........................................................................27
5.4.1.3 TRANSAES EM COOPERAO................................................................27
5.4.2 CONCORRNCIA.................................................................................................27
5.4.3 GERENCIAMENTO DE RECUPERAO.........................................................29
5.4.4 VERSIONAMENTO..............................................................................................30
5.4.5 CONSULTAS.........................................................................................................30
6 EXEMPLOS DE BDOO..............................................................................................32
6.1 O2...............................................................................................................................32
6.2 OBJECTSTORE........................................................................................................34
6.3 POSTGRES...............................................................................................................36
6.4 JASMINE..................................................................................................................37
7 CONCLUSO..............................................................................................................39
REFERNCIAS BIBLIOGRFICAS............................................................................41

LISTA DE FIGURAS
Figura 2.1 Conceitos de bancos de dados
Figura 2.2 Os nveis de abstrao
Figura 3.1 Modelo Hierrquico
Figura 3.2 Modelo de Rede
Figura 3.3 Modelo Relacional
Figura 3.4 Modelo Relacional No-Normalizado
Figura 3.5 Relacionamento do MER
Figura 4.1 Declarao de Classes
Figura 4.2 Herana entre Classes
Figura 5.1 Estrutura de BDOO
Figura 6.1 Declarao de Dados do O2
Figura 6.2 Manipulao de Dados do O2
Figura 6.3 Declarao de Dados do Objectstore
Figura 6.4 Manipulao de Dados do Objectstore
Figura 6.5 Declarao de Dados do Postgres
Figura 6.6 Manipulao de Dados do Postgres
Figura 6.7 Declarao de Dados do Jasmine
Figura 6.8 Manipulao de Dados do Jasmine

vi

LISTA DE SIGLAS
BD

Banco de Dados

SGBD

Sistema Gerenciador de Banco de Dados

MR

Modelo Relacional

1FN

Primeira Forma Normal

MRNN

Modelo Relacional No-Normalizado

CAD

Computer-Aided Design

CAM

Computer-Aided Manufacture

CASE

Computer-Aided Software Enineering

GIS

Geographic Information System

SQL

Structure Query Language

OQL

Object Query Languade

ODQL

Object Database Query Language

MER

Modelo de Entidade-Relacionamento

OO

Orientao a Objetos

Xerox PARC -

Xerox Palo Alto Research Center

POO

Programao Orientada a Objeto

BDOO

Banco de Dados Orientados a Objetos

OID

Identificadores de Objetos

ACID

Atomicidade, Coerncia, Isolamento e Durabilidade

TPS

Transaes por Segundo

vii

SGBDOO

Sistemas Gerenciador de Banco de Dados Orientados a

Objetos

viii

RESUMO
Sistemas de banco de dados representam um papel fundamental em aplicaes
de processamento de informao no-numrica, onde a utilizao de tais sistemas
permite facilitar a manuteno de dados consistentes que podem ser compartilhados por
diversas aplicaes, as quais no precisam conhecer o modo como tais dados so
internamente armazenados ou representados. A tecnologia de banco de dados j est
madura para diversas aplicaes, principalmente nas reas administrativas e comerciais.
Entretanto, novas categorias de aplicaes tm demandado o gerenciamento de
dados mais complexos. Para essas aplicaes, o paradigma de orientao a objetos surge
como alternativa adequada para a representao e manipulao dos dados, mas preciso
ainda integrar de forma adequada esta tecnologia a sistemas de banco de dados.
Sistemas gerenciadores de bancos de dados orientados a objetos constituem a
proposta corrente para a soluo desse problema. Neste trabalho apresentam-se os
aspectos bsicos da modelagem e da tecnologia de tais sistemas, com um breve estudo
sobre a evoluo dos bancos de dados e seus respectivos modelos, analise dos
paradigmas da orientao a objetos e dos conceitos de banco de dados.

ix

ABSTRACT
Database systems represent an essential part in the nom-numeric information
processing application, where the use of such systems allows to make easier the
maintenance of consistent data and can be shared by various applications without
needing to know the way where such data are internally stored or represented. The
database technology is already mature for various applications, mainly in administrative
and commercial areas.
However, new categories of application have demanded more complete data
management. For those application, the object-oriented paradigm emerges as a suitable
alternative for representation and handling of data, but its still needed a properly
integration of this technology to database systems.
Object-oriented database management systems form a current proposal for
solving this problem. In this paper are presented the basic aspects of the modeling and
of the technology of such systems with a brief study about the evolution of database and
their respective models, object-oriented paradigms and database concepts.

1 INTRODUO
A cada dia as empresas dependem mais de grandes e crescentes volumes de
informao para suas decises de negocio, e essa informao deve estar sempre correta
e de fcil acesso. Por isso essas empresas exigem sistemas de informao que atendam
no s a suas necessidades funcionais, mas tambm estejam integrados com a
necessidade de mudanas no negocio.
Para atender essas necessidades, surgem inmeros avanos computacionais a fim
de possibilitar esse desenvolvimento dos negcios. Entre todos esses avanos
computacionais pode-se citar a tecnologia de orientao a objetos.
As tecnologias de orientao a objetos esto cada vez mais presentes em todas
as reas da computao, desde linguagens de programao at os bancos de dados.
Atravs do modelo orientado a objeto pode-se expressar problemas do mundo real de
forma mais fcil e naturalmente usando-se componentes modularizados. [KHO94]
Est nova tecnologia ao mesmo tempo em que trouxe inmeras vantagens
computacionais, tambm trouxe alguns problemas, dentre eles o fato que sistemas que
utilizam a tcnica de orientao a objetos necessitam armazenar seus registros e estes
so armazenados em banco de dados relacionais, dos quais tem uma enorme difuso no
mercado. Entretanto tal medida no uma boa prtica, pois o mundo real est sendo
representado na forma de tabelas e uma possvel adaptao do modelo orientado a
objetos para o modelo relacional exige um gasto enorme de tempo e produo. Alm
desses motivos, bancos de dados relacionais apresentam-se inadequados a algumas
necessidades dos novos avanos de sistemas computacionais.

Diante disso, este trabalho aborda uma das possveis solues para a correo
desta divergncia entre sistemas baseados no paradigma da orientao aos objetos e
banco de dados relacionais. Soluo esta denominada como Banco de Dados Orientados
a Objetos.
Os bancos de dados orientados a objetos integram os conceitos de orientao a
objetos como herana, identidade do objeto e tipo abstrato de dados com aptides de um
banco de dados como transaes, segurana, recuperao, etc. Atravs de construes
orientadas a objetos, os usurios podem esconder os detalhes de implementao de seus
mdulos, compartilhar a referencia a objetos e expandir seus sistemas atravs de
mdulos existentes. As aptides de banco de dados so necessrias para assegurar o
compartilhamento simultneo e a continuidade das informaes nas aplicaes.
[KHO94]

1.1 OBJETIVOS
O objetivo deste trabalho abordar a rea de Bancos de Dados Orientados a
Objetos de uma forma unificada, atravs de uma viso conceitual tendo por base o
Modelo de Entidade e Relacionamento.
Sero apresentados os conceitos das tecnologias de Banco de Dados e suas
respectivas evolues seguidas pelos conceitos de Orientao a Objetos. Diante disso
estabelece-se uma base para o desenvolvimento da tecnologia de Bancos de Dados
Orientados a Objetos.
Com isso espera-se preencher todo tipo de lacuna e dvidas a respeito dessa
tecnologia de Banco de Dados que pouco utilizada pelo mercado, entretanto uma
tecnologia de alto desempenho.
2

2 CONCEITOS DE BANCOS DE DADOS


Bancos de Dados (BD) uma expresso que se imps na lngua portuguesa. A
expresso vem do ingls, onde se usou por pouco tempo a original Databanks, que foi
logo substituda por Database, isto , Base de Dados. Esse nome bem mais sugestivo,
pois um banco de dados no funciona como um banco, emprestando dados. Funciona
muito mais como um repositrio de dados, que so usados em diversas aplicaes, isto
, uma base sobre a qual atuam essas aplicaes, e que esta disponvel para o
desenvolvimento de outras que usam os mesmos dados [SET05].
Explorando a referencia citada acima, BD so gerenciadores de grandes grupos
de informaes. Esse gerenciamento consiste em definir a estrutura para o
armazenamento de informaes e o fornecimento de mecanismo para manipul-las.
Esse gerenciamento executado pelos Sistemas de Gerenciamento de Banco de Dados
(SGBD), softwares que possuem recursos para efetuar esse tipo de manipulao. Alm
disso, os BD precisam fornecer segurana para que informaes no sejam
disponibilizadas a usurios no autorizados e possuir integridade uma vez que as
informaes sero disponibilizadas para diversos usurios.

A Figura 2.1 ilustra os conceitos de bancos de dados.

Para compreender melhor o conceito de BD, necessrio compreender alguns


conceitos como:
Dados
Abstrao de Dados

2.1 DADOS
Dado a estrutura fundamental sobre a qual um sistema de informao
constitudo. Smbolo intencionalmente destacado para representar uma caracterstica ou
propriedade da realidade a ser tratada. [Pompilho, 1995].

2.2 ABSTAO DE DADOS


Uma das maiores proposta de BD fazer com que os usurios acessem e
recuperem os dados eficientemente de uma forma abstrata, ou seja, uma vez que os
usurios no so treinados em computao, a complexidade dessas operaes fica
escondida deles atravs de diversos nveis de abstrao que simplifiquem a interao do
usurio com os BD.
Nvel Fsico o nvel mais baixo de abstrao. Descreve como os dados esto
realmente armazenados. Num Nvel Fsico, complexas estruturas de dados de
baixo nvel so descritas em detalhes.
Nvel Conceitual de abstrao descreve quais so de fatos os dados que devem
pertencer aos BD e suas respectivas relaes. Esse nvel bastante usado pelos
administradores de BD. Nesse nvel o banco de dados inteiro descrito em
termos de um pequeno nmero de estruturas relativamente simples.

Nvel Visual o mais alto nvel de abstrao e descreve apenas parte do banco
de dados representado por uma viso. Este nvel definido para simplificar a
interao dos usurios com os BD.

A Figura 2.2 ilustra os nveis de abstrao

3 MODELO DE DADOS
Modelo de Dado uma coleo de ferramentas conceituais que ajudam a formar
e descrever a estrutura de dados de um SGBD. Os primeiros modelos de dados
utilizados foram o modelo hierrquico e o modelo de rede. Em meados anos 70 um
novo modelo se imps como padro nos SGDB da poca. Esse modelo foi o modelo
relacional, que possua uma estrutura extremamente simples, sendo essa uma das razes
pela sua rpida difuso entre os ambientes comercias. Acompanhado por essa rpida
difuso estavam suas limitaes que no demoraram a aparecer. Decorrente a essas
limitaes, no demorou a surgir novas extenses do modelo relacional a fim de efetuar
correes e melhorias.
Dentre todas as novas extenses, destaca-se o modelo relacional nonormalizado. Outro destaque desse perodo o surgimento de alguns modelos
conceituais, com o objetivo de facilitar a modelagem de dados, em um nvel mais
elevado que no modelo relacional. Nessa categoria ser abordado o modelo de entidade
e relacionamento.

3.1 MODELO HIERRQUICO


O modelo hierrquico provavelmente foi o primeiro modelo a ser
comercializado. Seu desenvolvimento s ocorreu devido consolidao dos discos de
armazenamento endereveis, pois esses discos possibilitaram o estudo da representao
hierrquica da informao nas estruturas de endereamento fsico. Este modelo consiste
em um conjunto ordenado de arvores, em que cada n da arvore representa um tipo de
registro do qual cada registro uma coleo de campo (atributos), cada um contendo
somente uma informao. Estes registros so conectados atravs de ligaes entre si.
6

Cada registro pode ter quantos registros-filho quiser, porm s poder ter apenas
um registro-pai. Diante disso as ligaes entre registro-pai para registro-filho de um
para zero ou muitos.
Devido restrio citada acima, o contedo de um registro-pai pode ser
repetidos diversas vezes. Este fato pode ocasionar tanto desperdcio de espao devido
quantidade de informaes repetidas, como tornar o banco inconsistente caso uma
possvel atualizao no seja efetuada em todos os registros repetidos.

A Figura 3.1 ilustra o Modelo Hierrquico.

3.2 MODELO DE REDE


O modelo de rede consiste em um conjunto de registros que so conectados um
ao outro por meio de ligaes. Cada registro, assim como no modelo hierrquico, uma
coleo de campos (atributos), cada um dos quais contendo apenas um valor de dado. J
as ligaes so as associaes entre dois registros.
O modelo de rede bastante semelhante ao modelo hierrquico apresentado
anteriormente, sendo que a principal diferena entre ambos consiste em que no modelo
7

hierrquico, cada registro-filho possui exatamente um registro-pai, enquanto no modelo


de rede cada registro-filho pode possuir qualquer nmero de registros-pai.
Esta diferena se deve ao fato da substituio da estrutura de armazenamento em
rvore por uma estrutura de armazenamento, citada anteriormente, na forma de uma
coleo de registros conectados atravs de ligaes.

A Figura 3.2 ilustra o Modelo de Rede.

3.3 MODELO RELACIONAL


O modelo relacional (MR) assim que apresentado foi logo aderido pelo
comercio, no qual se estabeleceu como modelo principal para aplicativos de
processamento de dados. Ainda hoje diversos SGBD utilizam seus conceitos bsicos.
Tendo como base a teoria dos conjuntos e a lgebra relacional, o MR foi
desenvolvido por Codd em meados anos 70.

De acordo com [NAU99], o MR consiste em dados armazenados em tabelas


denominadas relaes. Cada linha da tabela representa um elemento do conjunto de
dados e cada coluna da tabela contm valores de um conjunto definido, denominado
domnio. Uma linha da relao chamada de tupla.
Em sua primeira publicao, Codd definiu que os valores dos domnios
deveriam ser atmicos, sendo assim, no se podem armazenar atributos compostos,
conjuntos, vetores ou listas em uma clula da tabela. Esta restrio leva o nome de
Primeira Forma Normal (1FN). Isto torna o MR bem mais simples, porm deixa
engessada a modelagem de dados em algumas situaes que a 1FN no convencional.
Algumas das melhorias evidenciadas com o MR so:
Aumento da independncia dos dados nos SGBD.
Prover um conjunto de funes apoiadas em lgebra relacional para
armazenamento de recuperao de dados.

Nome

Matria

Mdia

Jos

Lgica

Carlos

Clculo

Figura 3.3 ilustra o Modelo Relacional.

3.4 MODELO RELACIONAL NO-NORMALIZADO


O modelo relacional no-normalizado (MRNN) bastante semelhante ao MR se
diferenciando somente no fato que a 1FN no uma restrio. Diante disso o MRNN

permite a representao de atributos multivalorados ou compostos ou, de uma forma


geral, valores que so relaes.
Segundo [NAU99], solues com o MRNN, alm de diminuir a redundncia das
chaves das relaes e o nmero destas, mais simples e eficiente. Com esse modelo
ainda possvel a representao de listas, textos e outras estruturas que so necessrias
para algumas aplicaes avanadas, tal como CAD/CAM.

Nome

Matria

Nota

Jos

Lgica

7
8

Carlos

Clculo

7
7

A Tabela 3.4 ilustra o Modelo Relacional No-Normalizado.

3.5 MODELO ENTIDADE-RELACIONAMENTO


O modelo entidade-relacionamento (MER) baseado na percepo do mundo
real que consiste em um conjunto de objetos bsicos chamados entidades e nos
relacionamentos entre esses objetos. Ele foi desenvolvido para facilitar o projeto de
banco de dados permitindo a especificao de um esquema de empresa. Tal esquema
representa a estrutura lgica geral do banco de dados. [KOR93]
O MER trata-se de um modelo conceitual, representado em forma de grfico,
que inicialmente foi introduzi por Peter Chen em 1976, porm desde ento j sofreu
algumas atualizaes em sua estrutura.
10

Como citado anteriormente, a estrutura do MER consiste em dois pilares, assim


como propem seu nome. So eles:
Entidades: so nada mais que uma representao abstrata de entes (objetos) do
mundo real. Um grupo de entidade que possui a mesma natureza no mundo real
pode ser denominado como conjunto de entidades. Essas entidades possuem
atributos que as distinguem uma das outras, atravs da representao das
informaes que cada entidade possui. Os atributos podem receber algumas
classificaes como compostos, onde o atributo pode ser composto por vrios
subatributos; multivalorados, onde o atributo leva um elemento do conjunto de
entidades a um conjunto de valores; determinante, onde o valor do atributo no
se repete em mais de um elemento do conjunto entidade.
Relacionamentos: so nada mais que representaes conceituais que os objetos
(representados pelo conjunto de entidade) do mundo real possuem entre si, ou
seja, dados dois conjuntos de entidades, elementos de um podem se relacionar
com elementos de outro.

A Figura 3.5 ilustra o Relacionamento do MER.

11

4 PARADIGMA DA ORIENTAO A OBJETOS


A orientao a objetos (OO) no um conceito novo. Seu roteiro pode ser
evidenciado pela Noruega, no inicio dos anos 60 do qual se encontrava conectada com
uma linguagem chamada Simula-67, desenvolvida por Kristen Nygaard e Ole-Johan
Dahl no Centro Noruegus de Computao. A Simula-67 apresentou pela primeira vez
os conceitos de classes, rotinas correlatas e subclasses muito parecidas com as atuais
linguagens orientadas a objetos.
Depois, em meados da dcada de 70, cientistas do Xerox Palo Alto Research
Center (Xerox PARC) criaram a primeira e robusta linguagem orientada a objeto
denominada Smalltalk.
Apesar da boa divulgao nos circuitos universitrios, tanto a Simula-67 quanto
a Smalltalk eram relativamente inacessveis para a comunidade de desenvolvimento.
Nos ano s 80, a linguagem C tornou-se muito popular entre os desenvolvedores e diante
disso proporcionou sua expanso para a linguagem C++, que suporta programao
orientada a objeto (POO) e sendo criada por Bjarne Stroustrup. As subseqentes verses
comerciais e os incrementos nas ferramentas da linguagem C++, assim como um maior
nmero de distribuidoras, ajudaram a chamar a ateno da comunidade de
desenvolvimento POO. Com isso os profissionais da comunidade de desenvolvedores
estavam aptos a aprender o paradigma da POO.
A OO, portanto no nova e como ser apresentado prope abstraes do
mundo real e traz vantagens como a reutilizao no apenas do cdigo, mas tambm de
requisitos, analise, projeto e especificao, permitindo maior produtividade, pois
permite capturar processos, procedimentos e regras das empresas.
12

Modelos orientados a objetos so mais flexveis, permitem manuteno mais


fcil e melhor administrao do domnio do problema. Tendo o objeto como ponto
central das analise e do desenvolvimento, possvel tratar as funes (operaes ou
mtodos) e os dados (atributos ou propriedades) em uma mesma unidade. Mecanismos
como herana e polimorfismo permitem acrescentar novas operaes e atributos a
classes j existentes, possibilitando a escrita de cdigo reutilizvel e extensvel.

4.1 O QUE UM OBJETO?


Segundo do dicionrio, objeto tudo que apreendido pelo conhecimento, que
no o sujeito do conhecimento; tudo que manipulvel e/ou manufaturvel; tudo que
perceptvel por qualquer um dos sentidos; coisa, pea, artigo de compra e venda;
matria, assunto; o que conhecido, pensado ou representado, em oposio ao ato de
conhecer, pensar ou representar.
Portanto objeto a representao de elementos fsicos do mundo real, que
descobrimos estudando suas caractersticas (atributos) e seus comportamentos (aes).
Para a OO, aps estudar e analisar os objetos do mundo real, separamos mentalmente
aqueles que interessam num exerccio de abstrao.
Recorrendo novamente ao dicionrio, abstrao o ato de separar mentalmente
um ou mais elementos de uma totalidade complexa (coisa, representao, fato), os quais
s mentalmente podem subsistir fora dessa totalidade; o resultado de abstraes (termo,
conceito, idia, elemento de classe etc.).
Assim, a OO trata-se de uma modelagem dos objetos do mundo real, estudandoos e criando classes a partir de suas caractersticas e comportamentos. Esse trabalho
13

executado pelo analista que usando um processo intelectual capaz de abstrair esse
estudo da realidade e representar os objetos dentro de um contexto.

4.2 CLASSE DE OBJETOS


Ao comparar diferentes objetos, notamos que eles possuem atributos e
comportamentos semelhantes, dependendo da finalidade para a qual so analisados.
Usando a abstrao podemos agrupar alguns objetos de acordo com seus atributos e
comportamentos em comum.
Uma classe, portanto, um modelo onde os objetos so originados
(instanciados). Ela possui a definio dos atributos e das aes de um tipo de objeto e
obtida pela classificao de objetos com a mesma estrutura de dados e o mesmo
comportamento. Assim por exemplo, em um dado modelo, Jos, Antonio, Joo etc.
podem ser instancias da classe Pessoa, uma vez que possuem atributos comuns (nome) e
comportamentos comuns (andar, deitar, etc.).
A declarao de uma classe dividida em geral em duas partes: as variveis de
instancias (atributos de um objeto a ser instanciado) e a sua interface, que so operaes
(mtodos) disponveis para a classe.

A Figura 4.1 ilustra a declarao de classes.

14

4.3 HERANA
Comparando e analisando objetos do mundo real, podemos evidenciar atributos
e comportamentos em comuns entre objetos, fazendo com que esses sejam agrupados
em um mesmo tipo de classes. Entretanto, aprofundando um pouco mais na analise e
observao, descobre-se que alguns desses objetos pertencentes a essa classe ainda
possuem caractersticas prprias alem daquelas em comum. Diante disso o mecanismo
de herana consegue suprir essa diferena entre as caractersticas dos objetos.
De um modo mais especifico podemos definir herana como a capacidade de
uma classe herdar os atributos e comportamentos de outra classe. Neste casso a classe
herdada denominada de superclasse e a classe herdeira denominada de subclasse.
Assim a subclasse herda atributos e comportamentos da classe imediatamente superior
a superclasse.

A Figura 4.2 ilustra a herana entre classes.

15

A herana na OO pode ser nica onde uma classe herda caractersticas de apenas
uma classe ou mltipla onde uma classe pode herdar caractersticas de uma ou mais
classes. No so todas as linguagens de POO que tem suporte para heranas mltiplas.
Um fator muito importante na herana o fato de que se deve tomar um enorme
cuidado na manuteno desse recurso, pois qualquer tipo de mudana de uma
superclasse acarreta imediatamente a propagao para as subclasses.

4.4 Polimorfismo
Pelo dicionrio temos a seguinte definio de polimorfismo: Particularidade de
certas substancias que tomam formas muito diversas; multiforme; que se apresenta sob
numerosas formas.
Para OO, polimorfismo o principio em que classes derivadas de uma mesma
superclasse

podem

invocar

operaes

que

tm

mesma

assinatura,

mas

comportamentos diferentes em cada subclasses e produzindo resultados diferentes


dependendo de como cada objeto implementa a operao.
Com outras palavras, a capacidade de objetos diferentes possurem operaes
com o mesmo nome e a mesma lista de argumentos, mas que executam tarefas de forma
diferentes.

4.5 ENCAPSULAMENTO
O encapsulamento ou tambm conhecido como ocultao de informaes, uma
tcnica que consiste em separar os aspectos internos dos aspectos externos de um
objeto, isto determinados detalhes ficam ocultos, assim como o nome sugere, aos
demais objetos tendo como referencia apenas ao prprio objeto. De outra forma pode-se
16

afirmar que encapsulamento a proteo da estrutura interna do objeto por traz dos
mtodos.
Essa caracterstica muito importante, pois possibilita uma maior independncia
de dados, uma vez que a implementao das estruturas de dados dos objetos no precisa
ser conhecida por quem utiliza os objetos.
Vale lembra que o encapsulamento estabelece uma dependncia com a relao
de herana, pois objetos da subclasse herdam todas as definies de atributos e
operaes da superclasse.

17

5 BANCOS DE DADOS ORIENTADOS A OBJETOS


O propsito dos sistemas de banco de dados o gerenciamento de grandes
corpos de informao. Os primeiros bancos de dados desenvolveram-se a partir do
sistema de gerenciamento de arquivos. Esses sistemas evoluram primeiro em bancos de
dados hierrquicos e de rede, depois em bancos de dados relacionais. [KOR93]
Inicialmente os primeiros bancos de dados originaram-se a partir dos sistemas de
gerenciamentos de arquivos. Com isso foi possvel separar pela primeira vez a aplicao
dos dados. Acompanhado dos novos bancos de dados, vieram s modelagens de dados
que no atual momento se tornaram muito eficiente para o desenvolvimento de
aplicaes, cujas estruturas se apresentavam de forma uniforme e simplificada e
tambm eram sempre orientadas ao registro. Estes modelos ficaram conhecidos como
modelo hierrquico e modelo de rede. Ambos os modelos no possuam forte
fundamentos tericos e tambm no suportavam noes de independncia de dados
fsicos e lgicos.
Os bancos de dados relacionais surgiram logo em seqncia aos modelos
mencionados acima. Este modelo trouxe muitas vantagens em relao aos modelos
hierrquicos e de rede. O formato relacional, tabelado simples e fcil de entender. A
lgebra relacional oferece fundamentos matemticos capazes de suportar metodologias
de anlises de dados e a possibilidade de agrupar dados dinamicamente em tabelas
virtuais em tempo de execuo, possibilitou, aos bancos de dados relacionais, o
desenvolvimento de aplicaes com um nvel mais elevado de independncia dos dados
do que seus predecessores. Diante disso o modelo relacional caiu nas graas dos
desenvolvedores e ainda hoje serve como base para inmeros SGBD.
18

Os sistemas gerenciadores de bancos de dados relacionais existem, na verdade,


para registros de dados. Mas a maior parte do mundo real no feita de registros.
[Whiting, 1989].
O avano computacional em diversas reas, a difuso das redes e de novas
tecnologias, evidenciou novas necessidades que os bancos de dados relacionais se
mostraram inadequados. Dentre os novos usos da capacidade computacional, podemos
destacar o CAD/CAM (projeto/manufatura auxiliado por computador), o CASE
(desenvolvimento de sistemas de computao auxiliado por computador), o GIS
(sistemas de informao geogrfica) e etc.. Todas essas aplicaes manipulam dados
com uma estrutura extremamente complexa.
Na dcada de 80, visando aumentar a produtividade do desenvolvimento,
facilitar a reutilizao e manuteno da analise, requisitos, projetos e especificaes, a
POO se tornou muito popular entre a comunidade de desenvolvimento, sendo
considerada por alguns como uma revoluo na forma de se fazer sistemas.
Visando acompanhar a tendncia da poca e tambm possibilitar resolver as
limitaes que os bancos de dados relacionais possuam, foi proposto um novo sistema
de banco de dados, o banco de dados orientados a objetos (BDOO).

5.1 O QUE SO?


De uma forma bem simples pode-se dizer que BDOO so nada mais que a
juno entre conceitos de OO com conceitos de SGBD, ou seja, ele todo baseado nos
paradigmas da OO unido aos objetivos bsicos dos SGBD.

19

Um BDOO basicamente um sistema em que a unidade de armazenamento o


objeto, com o mesmo conceito das linguagens de POO. A diferencia fundamental est
no fato que em BDOO, os dados no deixam de existir aps o encerramento do
programa, ou seja, os objetos continuam a existir mesmo se o sistema venha a ser
encerrado. Com isso os dados, isto , os valores dos atributos que fazem referncia a
seus respectivos objetos no deixam de existir. Este conceito conhecido como
persistncia.
Outra caracterstica essencial dos BDOO que eles oferecem suporte a verses,
ou seja, os objetos podem ser vistos de todas ou varias verses.

A Figura 5.1 ilustra a estrutura de BDOO.

20

5.3 CONCEITO DE ORIENTAO A OBJETOS PARA BDOO


Em BDOO, os objetos so tratados em um nvel lgico e tambm possuem
caractersticas que no so encontradas na POO. Essas caractersticas sero tratadas ao
decorrer do trabalho, porm podemos destacar a persistncia de dados, ou melhor,
dizendo a persistncia de objetos. Desta forma conceitos como classes e herana
sofrem adaptaes a fim de possibilitar a aplicao em BDOO.
Para [NAU99], os conceitos de OO bsicos e necessrios para a estrutura de um
BDOO so:
Persistncia de Objetos.
Objetos complexos.
Presena de identificadores de objetos.
Mecanismos de herana.
Mtodos.

5.3.1 PERSISTNCIA DE OBJETOS


Sem duvida nenhuma, a persistncia de objetos uma caracterstica primordial
para os BDOO, pois alem de ser uma caracterstica que possibilita diferenciar BDOO
das linguagens de POO, ela tambm fundamental para os BDOO.
Persistncia de objetos consiste em no deixar com que objetos deixem de
existir, ou seja, ao finalizar a execuo de um programa que tenha como base uma
linguagem de POO, todos os objetos instanciados deixam de existir. Com isso os
valores dos atributos do objeto tambm desaparecem. Se isso fosse aplicado aos BDOO,
o resultado seria uma catstrofe, pois os dados que sero inseridos em um BDOO na
21

forma de atributos de objetos devem existir mesmo aps o encerramento do programa


de gerenciamento, tendo seu estado armazenado em um meio fsico persistente, a menos
claro que os atributos sofram algum tipo de alterao ou excluso, sendo estas
solicitadas pelo usurio.
Para que os BDOO possam funcionar, preciso aplicar a persistncia de objetos
em sua estrutura, a fim de que os dados no desapaream.
Existem diversas maneira de torna o objeto persistente e todas elas variam
conforme o sistema utilizado. Dentre essas formas podem-se considerar as seguintes:

Por tipo de classe onde os objetos pertencentes s classes assim


declaradas sero persistentes.

Por chamada explcita onde o objeto pode se tornar persistente aps a sua
criao atravs de comandos reservados.

Por referncia onde objetos referenciados por objetos persistentes


(objetos razes) tambm se tornam persistentes.

5.3.2 OBEJOS PARA BANCO DE DADOS


O modelo de OO suporta a representao das abstraes e comportamento dos
objetos. Com isso os BDOO incorporam as caractersticas dos objetos da linguagem de
POO integrada com noes de estrutura de dados e de comportamento. O conjunto de
atributos descreve o estado interno dos objetos. Cada ocorrncia do objeto no banco
de dado denominada de instancia do objeto.
A estrutura de objetos em banco de dados muito similar ao conceito de
entidades, quando aplicado ao MER.
22

5.3.2.1 OBJETOS COMPLEXOS


Para uma representao direta de objetos complexos, dos quais nos modelos
relacionais no possuem representao, proposta a utilizao do modelo de dados das
linguagens orientadas a objetos. Nota-se que a primeira forma normal no respeitada
nos BDOO, pois podemos representar em um objeto valores no atmicos, como
conjuntos, listas, vetores etc..
Assim como nas linguagens orientadas a objetos, a representao se torna
extremamente fcil devido a esse fato (no normalizado).

5.3.2.2 IDENTIFICADOR DE OBJETOS


Nos BDOO, os identificadores de objetos (OID) tm uma identidade muito mais
forte que na linguagem de POO, pois nos BDOO, os objetos tm a necessidade de
continuarem a existir mesmo aps a execuo do programa. Isto ocorre devido ao fato
que os objetos podem voltar a serem usados futuramente.
O OID deve ser nico e imutvel durante toda a existncia dos objetos e tambm
deve ser valido para todo o banco de dados uma vez que ajudam na recuperao do
objeto e so utilizados para estabelecer relacionamentos entre os objetos.

5.3.3 HIERARQUIA DE CLASSES E HERANA PARA BDOO


Todo o conceito e caracterstica de classe e herana da OO devem estar
presentes em BDOO. Diante disso outra importante capacidade em BDOO o
gerenciamento do conceito de herana dentro de uma hierarquia de classes
armazenveis. Da mesma forma que em linguagem de POO, os BDOO podem criar
novas classes em funo de classes j existentes.
23

Uma hierarquia de classes oferece muito mais flexibilidade para efetuar


alteraes na estrutura de um BDOO (incluindo novos atributos ou mtodos nos
objetos) bem como possibilita a evoluo do esquema de banco de dados atravs da
adio de classes novatas na hierarquia.
As classes do sistema so um exemplo tpico da caracterstica de herana
dentro de um SGBD orientado a objeto. Isto porque a maioria dos SGBD orientado a
objetos possuem uma coleo de classes e objetos dentro de sua estrutura. Essa coleo
esta estruturada de forma hierrquica. Caso necessrio, uma determinada aplicao pode
herdar atributos e mtodos dessas classes de sistema a fim de implementar suas prprias
classes. Em ressumo essas classes do sistema de SGBD orientado a objetos possuem
mtodos que tm como propsito o armazenamento, manipulao, controle de
concorrncia entre outras funes.

5.3.4 ENCAPSULAMENTO
De acordo com [NAU99], o conceito de encapsulameno para BDOO continua
sendo o mesmo, porm, quando se faz uma consulta ao banco de dados, no possvel
prever todas as consultas e atualizaes que o usurio possa desejar. Assim, no se pode
agregar todos os mtodos nas classes de antemo.
Sendo assim pode-se considerar que o encapsulamento no adequado aos
BDOO em algumas situaes, entretanto o encapsulamento uma das caractersticas
fundamentais para POO e descartar o seu uso em BDOO pode descaracterizar
parcialmente o conceito de OO.

24

5.4 CONCEITOS DE BANCO DE DADOS PARA BDOO


Os BDOO sofrem adaptaes em sua forma de gerenciamento assim como
sofrem adaptaes na implantao dos conceitos de OO. Como mencionado
anteriormente, essas adaptaes possibilitam o uso desses recursos nos BDOO.
Transaes, concorrncia, consultas so alguns exemplos dos quais necessitam
de uma adaptao para que possam ser usados em BDOO. A seguir ser apresentado
todos esses recursos entre outros.

5.4.1 TRANSAES
Tradicionalmente, uma transao um programa que l ou grava objetos
persistentes. [KHO94]
Transao um conceito fundamental de todo sistema de banco de dados. O
conceito fundamental de transao englobar vrios passos em uma nica operao. Os
espaos intermedirios entre esses passos no so vistos pelas demais transaes
simultneas e caso alguma falha impea por ventura a finalizao da transao, ento
nenhum dos passos intermedirios ir afetar o banco de dados, esteja ela em estado de
executado, em execuo ou a executar.
Uma transao deve levar o banco de dados de um estado coerente para outro.
Para que essa coerncia ocorra, cada transao de um banco de dados deve passar pelo
teste de ACID (Atomicidade, Coerncia, Isolamento e Durabilidade).
Atomicidade emprega o conceito de que uma transao executada por
completo ou no executada.

25

Coerncia emprega o conceito de que as transaes mapeiam um banco


de dados persistente de um estado coerente para o outro.
Isolamento emprega o conceito de que transaes no lem resultados
intermedirios de outras transaes no efetivadas.
Durabilidade emprega o conceito de que uma vez que uma transao
efetivada, seus efeitos ficam permanentemente no banco de dados,
mesmo que ocorram falhas.
As transaes em BDOO podem ser definidas em trs vertentes que sero
apresentadas a seguir.

5.4.1.1 TRANSAES DEMORADAS


Algumas transaes em BDOO como CAD, CAM e CASE, exigem um modelo
diferenciado do modelo de banco de dados mais tradicionais.
Em SGBD mais tradicionais, as transaes interagem (atualizam ou referenciam)
somente alguns registro, diante isto, tornam-se mais curtas. Alem disso esses tipos de
SGBD do muita nfase em medidas de performance (em tempos de TPS transaes
por segundo) e robustez (capacidade de recuperao). J em SGBDOO, algumas
transaes tendem a levar um tempo relativamente longo, isto porque SGBDOO
interagem com muitos objetos complexos, tornando as transaes mais complexas e ao
mesmo tempo mais demoradas.

5.4.1.2 TRANSAES ANINHADAS


Transaes aninhadas so utilizadas para melhorar as transaes mais
demoradas. Esse modelo consiste em decompor a transao principal (transao de alto
26

nvel) em subtransaes, a fim de execut-las. Todas as subtransaes devem ser


executadas com xito para que se possa obter o resultado da transao principal.
Caso uma subtransaes venha por ventura falhar, fica a critrio da transao de
alto nvel tentar execut-la novamente ou ate mesmo cancel-la. Seguindo o conceito de
ACID, quando uma transao de alto nvel cancelada, por conseqncia todas as suas
subtransaes tambm sero canceladas, independente do fato dessas terem sido
executadas com sucesso.

5.4.1.3 TRANSAES EM COOPERAO


Este modelo de transao utilizado para resolver os problemas de transaes
que necessitam trabalhar em conjunto para serem concludas, sendo que essas
transaes podem ser executadas por diversos usurios. Em um contraste das transaes
mais tradicionais, as transaes em cooperao podem ver os resultados imediatos umas
das outras.

5.4.2 CONCORRNCIA
Concorrncia para SGBD permite o acesso simultneo aos dados para diferentes
usurios. O mais notvel algoritmo de controle de concorrncia existente para SGBD
so os bloqueios, que se baseiam em uma estratgia de no deixar transaes serem
executadas atravs de bloqueios, caso haja conflito no acesso e/ou atualizao de um
objeto. Em SGBDOO cada objeto persistente pode ser bloqueado. Isto normalmente
feito por meio de uma tabela de bloqueio que armazena os OID dos objetos bloqueados.
Existem vrios tipos (modos) de bloqueios, porm os dois modos mais simples
so:
27

Modo de Leitura
Modo de Gravao
O modo de leitura (modo compartilhado) permite que diversas transaes de
operaes de leituras sejam executadas no mesmo objeto concorrentemente. O modo de
gravao (modo exclusivo) reserva o acesso (operaes de leitura e gravao) de um
objeto transao que contem esse bloqueio no momento. Quando uma transao
mantm um bloqueio exclusivo, sobre um objeto, nenhum outro bloqueio pode ser
disponibilizado. Esse controle do uso de bloqueio feito por um recurso conhecido
como matriz de compatibilidade. Essa matriz gerencia se a solicitao de bloqueio
pode ser concedida ou no.
Segundo [KHO94] existem dois aspectos relevantes no que diz respeito ao
controle de concorrncia em SGBDOO.
Bloqueio de hierarquia de classe: as classes em BDOO so organizadas
em hierarquias de herana. Caso uma superclasse venha a ser bloqueada,
o mesmo ocorrer de forma implcita para todas as suas subclasses, que
so descendentes diretas da superclasse.
Bloqueio de objeto complexo: os BDOO podem conter objetos que
referenciam ou incorporam outros objetos, isto pode causar problemas,
pois algum objeto complexe pode possuir subobjetos bloqueados,
ocasionando problemas de atualizaes e/ou possveis problemas de
acesso. Tal problema pode ser resolvido pelo bloqueio de inteno. Neste
bloqueio as subclasses de uma classe no so bloqueadas implicitamente.

28

Somente as instancia dependentes do objeto-pai so bloqueadas. Diante


disso as outras instancias ficam livres para serem acessadas.

5.4.3 GERENCIAMENTO DE RECUPERAO


Como j visto anteriormente, as transaes em BDOO, assim como em banco de
dados tradicionais, utilizam o conceito de atomicidade, isto quer dizer, ou so
executadas por completo ou no executam nada.
A confiabilidade e a grata recuperao de falhas que possam ocorrer um fator
muito importante e que se encontra presente tanto em banco de dados tradicionais como
em BDOO.
Os BDOO possuem muitas formas de contornar algum possvel problema
relacionado falha em seu sistema. Mecanismo de duplicao ou espelhamentos de
dados so exemplos de recursos usados no gerenciamento de recuperao nos BDOO,
porm o recurso mais utilizado sem duvida nenhuma a estrutura de logs, que
consiste e armazenar imagens anteriores e posteriores dos objetos atualizados. A
imagem anterior o estado do objeto antes de sua atualizao e a imagem posterior o
estado do objeto aps sua atualizao.
Ambas as imagens so registradas no log durante a execuo normal das
transaes. Diante isto, assim que houver uma falha, o sistema gerenciador de
recuperao acionado com o intuito de efetuar a correo a fim de tornar o banco de
dados coerente novamente, atravs dos logs e dos dados da memria secundaria (disco
rgido).

29

5.4.4 VERSIONAMENTO
O controle de verso uma caracterstica importante e presente em alguns
sistemas como, por exemplo, CAD ou CASE. A necessidade de armazenar verses
anteriores devido a uma possvel situao que seja imprescindvel o uso desta verso
muito comum hoje em dia em determinadas aplicaes. Com isto, assim que um objeto
sofre uma alterao no banco de dados, essencial o armazenamento da verso recm
atualizada.
De acordo com [KHO94], o gerenciamento de verses de um BDOO consiste
em um conjunto de ferramentas e construes que automatizam ou simplificam a
construo e a organizao de verses ou configuraes. Sem estas ferramentas, caberia
ao usurio criar e manter suas prprias verses.
Assim que um objeto versionado, uma espcie de raiz que aponta para todas as
verses do objeto criada. Durante o versionamento, um objeto pode sofrer desde
alteraes em seu estado at modificaes estruturais. A OID a propriedade comum
entre todas as verses de um objeto.

5.4.5 CONSULTAS
O acesso a dados armazenados feito basicamente de duas formas. Uma pela
linguagem de programao, da qual utiliza os OID dos objetos e a outra por
linguagem de consulta, em geral derivadas as SQL.
O acesso aos dados por meio de linguagem de programao vem tentar resolver
umas das principais criticas que os SGBD relacionais sofrem o chamado no
casamento de impedncias. Quando se utiliza uma linguagem de programao
30

qualquer para o desenvolvimento de uma aplicao, necessrio reestrutur-la para que


se possa interagir com as linguagens de consultas de bancos de dados relacionais, j que
a nica estrutura do MR a relao. Isto tambm valido para o contrario, ou seja,
assim que se obtm o resultado de uma consulta atravs da linguagem de consulta,
necessria uma adaptao dos dados para a estrutura da linguagem de programao.
Quando se usa uma linguagem e um banco de dados de uma nica estrutura, este
trabalho poupado, implicando em diminuio de cdigo e de tempo de execuo, alm
de possibilitar o compartilhamento de estruturas entre aplicaes.

31

6 EXEMPLOS DE BDOO
Nos ltimos anos foram produzidas inmeras implementaes de BDOO, entre
prottipos de empresa, pesquisas de universidades e produtos comerciais. Pode-se citar
o O2,ObjectStore, Orion, Postgres entre outros.
A seguir sero apresentadas as principais caractersticas de alguns sistemas
existentes. Tambm sero abordadas as estruturas de linguagens de definio e de
manipulao de dados dos respectivos sistemas.

6.1 O2
O sistema O2 inicialmente foi criado na Frana em 1988 atravs de um projeto
experimental conveniado. Com o fim do convnio em 1991 o sistema passou de projeto
experimental para um produto sendo comercializado pela empresa recm criada O2
Technology.
O sistema O2 fornece um ambiente grfico para criao de telas (O2Look), um
browser para navegar entre os objetos do banco de dados. Para facilitar a migrao a
partir de SGBD relacionais, h uma ferramenta de converso e migrao
(O2DBAccess). O sistema O2 fornece integrao com as linguagens de programao C,
C++ e recentemente Java.
A declarao de dados ocorre atravs de uma linguagem (O2C) que se originou a
partir da linguagem C. Esta linguagem permite herana mltipla e no tem distino na
declarao de objetos persistentes dos no-persistentes.

32

Os tipos de dados do O2 so boolean, character, integer, real, string e bit.


Existem tambm construtores de tipos complexos de dados, que podem ser aplicados
recursivamente.

A Figura 6.1 ilustra a declarao de dados do O2 .

O sistema O2 garante automaticamente a integridade referencial em seus


relacionamentos, ou seja, se um dos objetos for excludo do banco de dados, o sistema
automaticamente torna as referncias a este objeto nulas.
A manipulao de dados no sistema O2 pode ser efetuada de duas formas: uma
pela prpria linguagem de programao nativa do sistema e a outra pela OQL que
uma linguagem de consulta do tipo SQL.
J a persistncia dos objetos concedida ou atravs do comando add name que
faz com que o OID de um objeto seja associado a um nome de uma varivel, para ser
recuperado posteriormente, ou quando um objeto referenciado por um outro objetos
que j persistente.

33

A Figura 6.2 ilustra a manipulao de dados do O2.

6.2 OBJECTSTORE
O sistema Objectstore um banco de dados produzido pela empresa Object
Design Inc. Este sistema foi criado com o intuito de tornar a linguagem C++ uma
linguagem para banco de dados.
A principal caracterstica do sistema Objectstore a uniformidade no tratamento
de objetos comuns e persistentes, sem grande perda de desempenho, graas a um
esquema de uso de memria virtual.
34

Os objetos persistentes fazem parte da memria virtual, portanto ficam gravados


no disco.
Quando se faz um acesso as objeto, gerada uma falha de pgina de memria no
sistema, que faz com que o objeto seja carregado na memria principal.
O sistema Objectstore usa tipos e a linguagem C++ como base. Diante disso as
declaraes so quase idnticas ao C++, permitindo que programas escritos em C++
sejam convertidos para Objectstore.

A Figura 6.3 ilustra a declarao de dados do Objectstore.

O armazenamento de objetos no banco de dados ocorre ao declarar uma varivel


do tipo database. J a manipulao de dados ocorre atravs do uso de mtodos.

35

A Figura 6.4 ilustra a manipulao de dados do Objectstore.

6.3 POSTGRES
O sistema Postgres um prottipo desenvolvido na universidade da California,
Berkeley. Foi construdo em linguagem C e teve como referncia o Ingress (banco de
dados relacional).
O Postgres baseado em um modelo relacional estendido, oferecendo objetos,
OID, objetos compostos, herana mltipla, verses, dados histricos (sendo esta uma
das principais caractersticas do banco de dados em questo) e uma linguagem de
consulta denominada Postquel.
A declarao de dados no Postgres tem como base o modelo relacional. O
sistema oferece um tipo abstrato de dados, para que se possa definir um novo tipo de
base de dados.
36

A Figura 6.5 ilustra a declarao de dados do Postgres.

Para a manipulao de dados, o sistema Postgres possui uma linguagem de


consulta derivada do Quel, linguagem de consulta do banco de dados relacional
antecessor (Ingres).

A Figura 6.6 ilustra a manipulao de dados do Postgres.

6.4 JASMINE
O sistema Jasmine foi criado no Japo pela empresa Fujitsu. Inicialmente o
gerenciador de objetos foi implementado como um tipo de casca de um banco de
dados relacional no-normalizado. Atualmente o Jasmine comercializado pela
Computer Associates, sendo um dos primeiros BDOO a ser comercializado por uma
empresa de software de grande porte.
Para definio e manipulao de dados o Jasmine utiliza a linguagem ODQL
(Object Database Query Language). A ODQL pode ser usada tanto como linguagem de
consulta, como pode ser embutida em aplicativos escritos em C e C++.
37

O Jasmine possui recursos de herana mltipla. Sempre que uma classe criada,
existe a necessidade de informar a qual famlia a mesma pertence. A unicidade do nome
da classe dentro de uma famlia um fator fundamental.

A Figura 6.7 ilustra a declarao de dados do Jasmine.

Consultas no sistema Jasmine retornam normalmente retornam valores que so


atribudos a uma varivel, o que lembra o cursor de varivel da linguagem SQL.

A Figura 6.8 ilustra a manipulao de dados do Jasmine.


38

7 CONCLUSO
Com o crescimento da utilizao dos conceitos OO para desenvolvimento de
aplicaes de alto nvel, torna-se cada vez mais necessrio que se utilize uma forma de
armazenamento em que os objetos possam ser modelados e armazenados sem que haja a
necessidade de transformao dos mesmos.
As necessidades de funcionalidade e desempenho da nova dimenso da
computao exigem bancos de dados que transcendam os limites do modelo relacional.
Com a utilizao dos conceitos de OO possvel uma representao realista do mundo
dos dados complexos.
Ao estudar BDOO percebe-se que sua conceituao traz novos recursos antes
no existentes em bancos de dados puramente relacionais. Estes recursos surgiram pelo
largo uso de linguagens de programao orientada a objetos. Um dos desafios, em face a
este contexto de evoluo da modelagem de dados sugerido pelos desenvolvedores de
bancos orientados a objetos, a grande quantidade de aplicaes estveis que usam
bancos relacionais. Por isso, grande o esforo em prol de padronizar as linguagens de
acesso aos BDOO de forma a difundir seu uso e aplicabilidade.
errado pensar puramente que o BDOO so os substitutos da tecnologia atual
de banco de dados relacionais. Eles esto disponveis para situaes distintas, que
devem ser bem medidas para evitar sub aproveitamento de seus detalhes de
funcionamento.
Talvez motivado por esta situao que grandes projetos de bancos de dados
relacionais j adotaram alguns conceitos da orientao a objetos como a herana, tipos
abstratos de dados e funes personalizadas. Estes bancos, conhecidamente, como
39

objeto-relacional so cada vez mais usados em aplicaes dirias como alternativas


mais estveis, uma vez que boa parte dos projetos de BDOO no esto largamente
difundidos.
Diante disso pode-se afirmar que o trabalho contribui muito para o entendimento
do funcionamento dos BDOO, esclarecendo dvidas e fixando novos conceitos sobre
esta tecnologia.

40

REFERNCIAS BIBLIOGRFICAS

[SET05]

Setzer, Valdemar W. - Banco de Dados: aprenda o que so, melhore seu

conhecimento, construa os seus / Valdemar W. Setzer e Flavio Soares Corra da Silva


1 edio So Paulo: Edgard Blucher, 2005.
[LIM09]

Lima, Adilson da Silva, 1959 UML 2.2: do requisito soluo /

Adilson da Silva Lima. 4. Ed ver. e atual So Paulo: rica, 2009.


[NAU99]

Nassu, Euginio A. - Banco de dados orientados a objetos / Eugnio A.

Nassu, Valdemar W. Setzer So Paulo: Blucher, 1999


[TON03]

Tonsig Srgio Luiz Engenharia de software / Srgio Luiz Tonsig So

Paulo: Futura 2003


[KOR93]

Korth, Henry F. Sistemas de bancos de dados / Henry F. Korth,

Abrahem Silberschatz; traduo Mauricio Heihachiro Galvan Abe: reviso tcnica


Slvio Carmo Palmieri, - 2 Ed. So Paulo: MAKRON Books, 1993.
[KHO94]

Khoshafian, Setrag Banco de Dados Orientado a Objeto / Setrag

Khoshafian; traduo de Tryte Informtica. Rio de Janeiro: Infobook, 1994

41

Você também pode gostar