Sei sulla pagina 1di 11

Universidade Estadual de Santa Cruz UESC Departamento de Cincias Exatas e Tecnolgicas DCET CET104 Banco de Dados Orientado A Objetos

tos Prof. Jos Craveiro

Descrio e avaliao do Sistema de Banco de Dados Orientado a Objetos Objectivity/DB

Alexandre Gonzaga dos Santos Pablo Rangel Lopes

Ilhus BA

1 Introduo
A orientao a objetos pressupe uma organizao dos dados em termo de uma coleo de objetos que possuem estados e comportamentos prprios. Esta abordagem tenta trazer mais proximidade entre o mundo real e o mundo virtual, e traz vrias vantagens ao desenvolvimento de softwares. Apesar de certo domnio do paradigma orientado a objetos no desenvolvimento de softwares, vrios projetos ainda utilizam sistemas de banco de dados relacional. Um dos problemas com banco de dados relacionais que os mesmos tornam-se complicados de utilizar quando o sistema modelado muito complexo. Outra situao complicadora quanto ao acesso a dados. No modelo relacional, as relao so tratadas fazendose junes de tabelas. Esta operao pode tornar-se bastante custosa ao sistema caso haja muitas tabelas ou em caso das tabelas serem bastante povoadas. Estes so alguns dos motivos para se considerar a utilizao de SGBD orientado a objetos, pois a modelagem torna-se mais natural e o acesso aos dados pode ser feito sem necessidade de junes. O Objectivity/DB um banco de dados comercial orientado a objetos desenvolvido pela empresa Objectivity Inc. Ele oferece suporte a desenvolvimento em diversas linguagens de programao, dentre elas esto C++, Java, Smalltalk. Alm disto, o sistema oferece tambm suporte a vrios sistemas operacionais como, por exemplo, o Windows, Linux e Solares. O banco de dados Objectivity possui uma arquitetura distribuda, permitindo um grande nmero de usurios e tambm de armazenamento de dados, podendo suportar Exabytes de dados atravs de sua estrutura. Um dos principais destaques do Objectivity a possibilidade de versionamento de classes no processo de evoluo do esquema. Desta forma, os objetos podem ser instncias de antigas ou novas verses. O Objectivity/DB trabalha com o conceito de banco de dados federado. Banco de dados federado so banco de dados centralizados que recebem uma camada de software adicional para cooperar de forma distribuda.

2 Instalao
O Objectivity um banco de dados orientado a objetos proprietrio. Ele pode ser obtido no site da empresa que o desenvolve. Antes, necessrio um cadastro grtis no site para obteno de uma verso demo que permite o uso do banco de dados por 60 dias. O cadastro e download podem ser realizados no endereo https://download.objectivity.com/default.aspx. A pgina de download oferece vrias opes de arquivos para diferentes sistemas operacionais. Neste trabalho abordaremos apenas a instalao nos ambientes Windows e Linux. Para o ambiente Windows oferecida apenas verses 32 bits do banco de dados. Os requisitos so o Framework .Net 2.0 e o TCP/IP instalados. A instalao segue os padres de instalao do Windows, bastando seguir as instrues do assistente de instalao. Para o ambiente Linux, as opes so tanto 32 quanto 64 bits. Para instalao no Linux os requisitos so C++ shared library (que utilizado pelo objectivity/DB Kernel e ferramentas), X Windows System (para ferramentas grficas).

Instalao: 1. Fazer download do arquivo no site https://download.objectivity.com/default.aspx 2. Fazer o login como root 3. Descompactar o arquivo e entrar na pasta criada pelo descompactador 4. Executar o arquivo install.sh 5. Na janela que surgir, selecionar uma das opes: a. Simple Installation b. Full Installation c. Custon Installation 6. Selecionar o diretrio de instalao

3 Manipulao dos Dados


O Objectivity prev suporte a vrias linguagens, entre elas C++, Java e Smalltalk. As interfaces C++, Java e Smalltalk atendem ao padro ODMG 3.0 No caso especfico do C++, o padro implementado atravs de uma biblioteca que oferece classes e funes que implementa os conceitos definidos no ODMG Object Model. Alm tambm de oferecer mecanismos para invocar OQL. Para acessar os objetos, O objectivity oferece objetos do tipo interators para acessar dados ligados atravs de associao. O objectivity tambm oferece suporte ao padro SQL-92, desta forma, tambm possvel aproveitar o conhecimento em querys SQL para obter os dados. A imagem abaixo mostra o mapeamento que realizado pelo banco de dados para tratamento dos objetos como tabelas

Imagem 1 Mapeamento de objetos em tabelas

4 Gerncia de usurios e controle de acesso


A permisso de acesso feita ajustando as permisses de acesso aos arquivos de dados, journal files e boot files quando eles so criados. Tanto o Windows quanto o Linux oferecem recursos que permitem a criao de conta de usurios no usurios. Para cada usurio pode ser atribudos permisses para realizar determinadas tarefas, sendo estas a leitura, gravao ou execuo de determinado arquivo. Estes usurios usualmente esto ligados a um determinado grupo, sendo que cada grupo tambm possui ou no permisso para ler, executar ou escrever determinados arquivos. No Objetctivity/DB, o controle de acesso ao banco de dados atribudo ao sistema operacional. Ficando a cargo do administrador determinar quais usurios ou grupos devero ter acesso a determinado arquivo ou pasta e qual tipo de acesso ser.

5 Armazenamento, bufferizao e paginao dos dados


Um sistema objectivity/dB consiste de muitos processos e arquivos que podem ser distribudos atravs de vrias mquinas na rede. O sistema do banco de dados federado o nvel mais alto na hierarquia de armazenamento do objectivity/dB. Cada database existe como um arquivo contendo um arquivo com um nico sistema de banco de dados, que armazena: O schema do banco de dados federado O catlogo global da aplicao sobre o sistema Qualquer estrutura criada pela aplicao (indexes, escopo de nomes)

Todo sistema objectivity tem um arquivo boot, que usado pela aplicao e ferramentas para referenciar o banco de dados. Cada banco de dados tem um nico identificador, podendo ser o nome do arquivo ou um identificador inteiro. Cada sistema de banco de dados coordena um particular conjunto de recursos que coletivamente gerencia o acesso aos dados em seu banco de dados. Entre esses recursos esto o sistema de arquivos do banco, o boot file, um journal directory e um lock server. Um schema um modelo de dados independente de linguagem que descreve todos os tipos e classes usadas em uma particular base de dados. A descrio de classe em um schema permite o Objectivity/dB armazenar e gerenciar os objetos persistentes do banco de dados. O schema armazenado no sistema de banco de dados. A criao do schema depende da interface de programao. Para schemas em Objectivity/c++, um eschema criado definindo as classes usando Objectivity/C++ Data Definition Language (DDL) e processando elas com o processador DDL. Em Java e Smalltalk o schema criado automaticamente quando os objetos persistentes so criados. Se for utilizado SQL++, o schema criado automaticamente quando as tabelas so criadas. No segundo nvel de armazenamento no Objectivity/dB. Cada banco de dados armazena um dado consistente da aplicao em estruturas chamadas containers, que constitui o terceiro nvel hierrquico de armazenamento. Dentro de um continer, os dados persistentes so armazenados em sua unidade fundamentao chamado objetos bsicos.

Os containers oferecem um mecanismo para organizao bsica dos objetos para suprir as necessidades da aplicao, por exemplo, subdividir grande conjunto de dados para formar querys mais eficientes. Containers oferece tambm como um mecanismo de otimizao para acessar objetos que so utilizados na mesma transao e otimizar a concorrncia de acesso aos objetos que so utilizados independentemente. Cada database tem um sistema chamado default container para organizar qualquer objeto no explicitamente atribudo aplicao para um container. As Autonomous partitions so mecanismos para organizar um os bancos de dados em grupos gerenciados independentemente. Embora os dados residam fisicamente em arquivos de banco de dados, cada partio autnoma controla o acesso ao que pertence a ele. Quando a rede ou mquina falha ao acessar os dados em uma partio, o usurio pode continuar a acessar os dados controlados por outra partio. A imagem abaixo mostra como funciona as parties

O boot file contem informaes utilizadas pela aplicao ou ferramentas para localizar e abrir um banco de dados. Um boot file criado automaticamente quando se cria um novo banco de dados e contm entrada especificando as propriedades do banco de dados. O objectivity/dB armazena objetos persistentes em storage pages. Um storage Page a unindade mnima de crescimento do arquivo e de transferncia de arquivo atravs da rede.

Quando o objetcivity l um objeto persistente do disco, ele coloca o storage Page que contem o objeto dentro de um cach. A cach alocado na memria e manipulada pelo objetcivity para oferecer rpido acesso aos objetos. O cach consiste de buffer pages, que so calculadas para combinar com as pginas que esto sendo acessadas. Se a aplicao for multithread, cada thread ter seu prprio cach.

6 Transaes e Controle de Concorrncia


Sempre que uma transao inicia, ela grava informaes em um ou mais journal files, que so utilizados para retornar o banco de dados para seu estado referente ao seu ltimo comitt se a transao for abortada ou terminar de forma anormal. Journal permite ao Objectivity fazer roll back em mudanas feitas por transaes incompletas. Cada thread que atualiza o banco de dados cria um arquivo journal. Este arquivo automaticamente reinicializado no fim de cada transao comittada. O Objectivity deleta arquivos journal automaticamente quando o processo completa ou quando automaticamente se recupera depois de uma falha no processo ou no sistema. O Objectivity suporta acesso a dados simultaneamente por vrios usurios. Para assegurar a consistncia, o acesso ao banco de dados controlado atravs de locks administrados por um lock server. Na sua configurao padro, o lock Server roda como um processo separado da aplicao, porm tambm possvel rodar internamente no banco de dados. O lock Server pode rodar em qualquer mquina da rede. Uma aplicao objectivity/dB uma aplicao que armazenam dados persistentes no banco de dados. Quando uma aplicao inicia uma transao, o kernel do objectivity aloca e abre as propriedades do arquivo. Requisita um lock do lock Server, carrega o objeto requisitado do disco para memria, escreve no disco se requisitado e grava qualquer atualizao no journal file. O objetcivity oferece recuperao automtica para maioria das falhas. Especificamente, possvel ajustar o objectivity para fazer roll back automaticamente caso ocorra alguma na transao.

7 Concluso
O banco de dados Objectivity /DB oferece uma srie de recursos que o torna uma excelente opo para projetos de banco de dados orientado a objetos. Suas interfaces em C++, Java, Smalltalk entre outras, tornam a modelagem mais natural aos desenvolvedores. Alm das interfaces em linguagens orientadas a objetos, o Objectivity tambm oferece suporte ao padro SQL, fazendo com que seja possvel a utilizao no s orientada a objetos, mas tambm relacional. Outro grande ponto sua estrutura de banco de dados federado, permitindo ao sistema uma grande capacidade de armazenamento alm de melhorar o desempenho e a confiabilidade, j que os dados estaro distribudos pela rede. Com base nas caractersticas apresentadas neste documento, podemos concluir que o Objectivity uma tima escolha quando se deseja modelar um banco de dados orientado a objetos onde h um grande volume de dados a ser armazenado e, alm disto, o sistema complexo.

8 Referncia
http://web.unifil.br/docs/revista_eletronica/terra_cultura/n44/terra_44-3.pdf; Acessado em 01/07/2010. http://www.das.ufsc.br/~rabelo/Ensino/DAS5316/MaterialDAS5316/PARTE1/Banco_de _Dados/bd_intro.pdf; Acessado em 01/07/2010 http://www.objectivity.com Documentao do Objectivity

Potrebbero piacerti anche