Você está na página 1de 19

CENTRO UNIVERSITRIO DO MARANHO - UNICEUMA CURSO DE SISTEMAS DE INFORMAO BANCO DE DADOS AVANADO

BANCO DE DADOS ORIENTADO A OBJETOS

SO LUIS-MA 2011

BANCO DE DADOS ORIENTADO A OBJETOS


Trabalho apresentado ao Prof. Emanoel Claudino do curso de Sistemas de Informao como pr-requisito para obteno da nota.

SO LUIS-MA 2011

3 SUMRIO
p. 1 INTRODUO .................................................................................................... 2 COMO SURGIRAM OS BDOOS?...................................................................... 3. RECURSOS DE UM BDOO............................................................................ 3.1 Escopo....................................................................................................... 3.2 Consultas..................................................................................... 3.3 Verses dos objetos......................................................................................... 3.4 Concorrncia................................................................................................ 3.5 Recuperao..................................................................................................... 3.6 Persistncia..................................................................... 4 QUEM UTILIZA OS BDOOS............................................................................... 4.1 Objetos complexos................................................................................ 4.2 Exemplos de aplicaes complexas............................................................... 4.3 Caractersticas das aplicaes complexas................................................ 5. CARACTERSTICAS DOS SGBDOOS.......................................................... 6. EXEMPLO DE SISTEMA DE GERNCIA BANCO DE DADOS ORIENTADO A OBJETOS............................................................................................................ 6.1 O SGBD rion ................................................................................................ 7. EXEMPLO DE CDIGO (BDOO + JAVA)......................................................... 8. QUANDO USAR UM BDOO............................................................................. 8.1 DBMS (Database Management System) Embarcados................................. 8.2 Relacionamentos de Dados Complexos....................................................... 8.3 Diferentes Estruturas de Dados................................................................... 8.4 Acelerao do processo de consulta.......................................................... 9. VANTAGENS.................................................................................................... 10. DESVANTAGENS.......................................................................................... 11. CONCLUSO ................................................................................................ REFERNCIAS............................................................................................ 12 14 15 15 15 15 16 17 17 18 19 4 6 6 6 6 7 7 8 10 11 11 11 11 12 12

4 1. INTRODUO

Os bancos de dados baseados em objetos (OODB) surgiram no final dos anos 80, derivados da necessidade de suportar a programao baseada em objetos. Os programadores de Smalltalk e C++ precisavam de um depsito para o que eles chamavam de dados persistentes, ou seja, dados que permanecem aps a concluso de um processo. Os bancos de dados baseados em objetos tomaram-se importantes para certos tipos de aplicaes com dados complexos, como por exemplo, CAD e BLOBs (grandes objetos binrios, tais como imagens, som, vdeo e texto no-formatado) - tais aplicaes geraram a necessidade de suportar diversos tipos de dados, e no apenas tabelas simples, colunas e linhas, como os bancos de dados relacionais. O uso de banco de dados orientados a objetos sugere um processo de modelagem diferente. Enquanto na modelagem de bancos relacionais temos diferentes conceitos nos modelos conceituais, modelos de entidaderelacionamento e modelos fsicos, na modelagem orientada a objetos usamos uma nica gama de conceitos. Principalmente, pelo largo uso de linguagem de programao orientadas objetos, tal renovao nos processos de modelagem de dados, facilita as etapas de anlise e projeto do sistema em questo. Assim possvel diminuir o tempo total de anlise e o esforo tcnico para construo de modelos de dados intermedirios (conceitual entidade

relacionamento). Isto evita a perda da semntica entre a informao contida na aplicao e sua representao na camada de armazenamento (banco de dados). Esta perda entre os modelos usados para representar a informao na aplicao e no banco de dados tambm chamada de perda por resistncia . O uso de banco de dados orientados a objetos tambm facilita a converso entre os modelos de mais alto nvel e de mais baixo nvel por ferramentas automticas (CASE-OO), o que traz mais confiana ao processo, que nos bancos de dados relacionais envolvem vrias regras de transio. Os Sistema de Gerenciamento de Banco de Dados Orientados a Objetos (SGBDOO) adicionaram o conceito de persistncia da programao orientada a objetos. No nicio os produtos comerciais eram integrados com vrias linguagens

5 GemStone (Smalltalk), Gbase (Lisp), e Vbase (COP). O COP era o C Object Processor, uma linguagem proprietria baseada no C ( COP diferente de C++. Apesar de ambas terem C como base C++ tambm foi influenciada Pela Simula). Durante praticamente todos os anos 90, o C++ dominou o mercado comercial de Gerenciadores de Banco de Dados Orientados a Objetos. Os vendedores acrescentaram o Java no final dos anos 90 e mais recentemente o C#. Vrias idias do banco de dados orientado a objetos foram absorvidas pela SQL:1999 e tem sido implementadas em vrios graus nos produtos de banco de dados objeto-relacional, a exemplo do PostgreSQL, que implementa herana e tipos abstratos de dados. Em fevereiro de 2006, o OMG (Object Management Group) anunciou que havia concedido o direito de desenvolver novas especificaes baseadas na especificao ODMG 3.0 e a formao do ODBT WG (Object Database Technology Working Group). O ODBT WG planeja criar um conjunto de especificaes que incorporar avanos da tecnologia de banco de dados orientados a objetos (ex. replicao), gerenciamento de dados (ex. indexao espacial) e formato de dados (ex. XML) e incluir novas caractersticas dentro deste padro que dar suporte ao dominios onde as bancos de dados orientadas a objeto esto sendo adotadas (ex. sistemas de tempo real).

6 2. COMO SURGIRAM OS BDOOS?

O desenvolvimento dos Sistemas de Gerenciamento de Banco de Dados Orientado a Objetos (SGBDOO) teve origem na combinao de idias dos modelos de dados tradicionais e de linguagens de programao orientada a objetos. No SGBDOO, a noo de objeto usada no nvel lgico e possui caractersticas no encontradas nas linguagens de programao tradicionais, como operadores de manipulao de estruturas, gerenciamento de armazenamento, tratamento de integridade e persistncia dos dados. Os modelos de dados orientados a objetos tem um papel importante nos SGBDs porque so mais adequados para o tratamento de objetos complexos (textos, grficos, imagens) e dinmicos (programas, simulaes), por possurem maior naturalidade conceitual e, finalmente, por estarem em harmonia com fortes tendncias em linguagens de programao e engenharia de software. A juno entre as linguagens de programao e banco de dados um dos problemas que esto sendo tratados de forma mais adequada no contexto de orientao a objetos.

3 RECURSOS DE UM BDOO

3.1 Escopo

Num banco de dados orientado a objetos puro, os dados so armazenados como objetos onde s podem ser manipulados pelos mtodos definidos pela classe que estes objetos pertencem. Os objetos so organizados numa hierarquia de tipos, e subtipos que recebem as caractersticas de seus supertipos. Os objetos podem conter referncias para outros objetos, e as aplicaes podem conseqentemente acessar os dados requeridos usando um estilo de navegao de programao. 3.2 Consultas

7 A maioria dos banco de dados tambm oferecem algum tipo de linguagem de consulta, permitindo que os objetos sejam localizados por uma programao declarativa mais prxima. Isso na rea das linguagens de consulta orientada a objetos, e a integrao da consulta com a interface de navegao, faz a grande diferena entre os produtos que so encontrados. Uma tentativa de padronizao foi feita pela ODMG (Object Data Management Group) com a OQL (Object Query Language). O acesso aos dados pode ser rpido porque as junes so geralmente no necessrias (como numa implementao tabular de uma base de dados relacional), isto porque um objeto pode ser obtido diretamente sem busca, seguindo os ponteiros. 3.3 Verses dos objetos

O acesso a estados anteriores ou a estados alterados de objetos parte inerente de muitas aplicaes. Ele obtido por meio de vrias verses do mesmo objeto, que normalmente est associado ao conceito de escopo das variveis nas linguagens de programao. O gerenciamento de verso em um banco de dados orientados a objeto consiste em ferramentas e construes que automatizam ou simplificam a construo e a organizao de verses ou configuraes. Sem essas ferramentas, caberia ao usurio organizar e manter as verses. Podemos considerar a configurao como um grupo de objetos tratados como uma unidade para bloqueio e versionamento. Os objetos individuais dentro da configurao podem sofrer modificaes, de modo que cada objeto pode Ter um histrico das verses. Vrios objetos dentro da configurao so atualizados em momentos diferentes e no necessariamente na mesma freqncia. 3.4 Concorrncia

Nos bancos de dados orientados a objeto, h dois aspectos de bloqueio que so relevantes para o compartilhamento concorrente de objetos: Bloqueio de Hierarquia de classe: As classes nos bancos de dados orientados a objeto so organizadas em hierarquias de herana, de modo que

8 cada classe da hierarquia tenha uma extenso ou instncia preexistente. Por isso importante fornecer bloqueio de granularidade a essas estruturas. Por exemplo, uma superclasse poderia bloquear implicitamente todas as subclasses no mesmo modo de bloqueio. As subclasses incluem os descendentes diretos da superclasse e os descendentes de suas subclasses. Bloqueio de Objeto complexo: Os bancos de dados orientados a objetos contm objetos que podem referenciar ou incorporar outros objetos. Alm disso, alguns objetos so "valores", enquanto outros possuem identidade. Para otimizar a concorrncia na presena de modelos que envolvam objetos complexos, so analisados vrios esquemas de bloqueio de "objetos compostos" ou de "objetos dependentes" para objetos complexos.

3.5 Recuperao

A confiabilidade e a grata recuperao de falhas so importantes recursos de um SGBD. O gerenciador de recuperao o modulo que administra as tcnicas de recuperao dessas falhas. Os trs importantes tipos de falhas que so responsabilidade do gerenciador de recuperao so: as falhas de transao, as falhas no sistema, as falhas no meio. Uma das estruturas mais utilizadas para o gerenciamento de recuperao o log. O log utilizado para registrar e armazenar as imagens anteriores e posteriores dos objetos atualizados. A imagem anterior o estado do objeto antes da atualizao da transao, e a imagem posterior o estado do objeto aps a atualizao da transao. Quase todos os bancos de dados orientados a objeto suportam a recuperao. A maioria dos SGBDOO utiliza o logging para a recuperao do banco de dados a um estado coerente. Alguns utilizam a duplicao ou espelhamento de dados.

3.6 Persistncia

O termo persistncia usado banco de dados, conota o espao de objeto resiliente, concorrentemente compartilhado. A funo de um sistema de SGBD

9 permitir o acesso e a atualizao simultneos de bancos de dados persistentes. A fim de garantir a persistncia dos dados a longo prazo, os SGBDs utilizam vrias estratgias de recuperao em caso de falhas na transao, no sistema ou no meio. H uma relao fundamental entre o compartilhamento e a persistncia simultneos em banco de dados. As atualizaes de transao devem persistir, mas, como o banco de dados persistentes ao mesmo tempo acessado e atualizado, o sistema de gerenciamento de banco de dados deve preocupar-se com a coerncia dos objetos de dados persistentes. Isso normalmente obtido por meio de estratgias de controle e recuperao concorrentes. Os dados manipulados por um banco de dados orientado a objeto podem ser transientes ou persistente. Os dados transientes s so validos dentro de um programa ou transao, eles se perdem quando o programa ou a transao termina. Os dados persistentes, por outro lado, so armazenados fora do contexto de um programa e assim sobrevivem a varias invocaes de programas. No entanto, h vrios nveis de persistncia. Os objetos menos persistentes so aqueles criados e destrudos em procedures. Depois, h os objetos que persistem dentro do espao de trabalho de uma transao, mas que so invalidados quando a transao termina. As transaes so normalmente executadas dentro de uma sesso. O usurio estabelece seu login e define diferentes parmetros ambientais dentro de um sesso, como caminhos, opes de exibio, janelas, etc. Se o sistema suportar o multiprocessamento, vrias transaes podero estar ativas dentro da mesma sesso de usurio ao mesmo tempo. Todas estas transaes compartilharo os objetos da sesso. No entanto, quando o usurio terminar a sesso, os objetos da sesso sero invalidados. O nico tipo de objeto que persiste atravs das transaes so objetos permanentes normalmente compartilhados por vrios usurios. Esses objetos persistem atravs de transaes, instabilizaes de sistema e at de meio. Tecnicamente, esses so os objetos recuperveis do banco de dados.

10 4 QUEM UTILIZA OS BDOOS

4.1 Objetos complexos

Os objetos complexos so formados por construtores (conjuntos, listas, tuplas, registros, colees, arrays) aplicados a objetos simples (inteiros, booleanos, strings). Nos modelos orientados a objetos, os construtores so em geral ortogonais, isto , qualquer construtor pode ser aplicado a qualquer objeto. Em SGBDOO, tambm podemos utilizar estes tipos de dados estruturados, assim sendo, a consulta ao banco de dados precisa ser mais complexa, pois ao invs de acesso a tabelas e registros, necessrio o acesso a listas, tuplas, arrays, entre outros. 4.2 Exemplos de aplicaes complexas

Projetos de engenharia e arquitetura. Experincias cientificas. Telecomunicaes. Sistemas de informaes geogrficas. Multimdia.. 4.3 Caractersticas das aplicaes complexas

Transaes de durao mais longa;

Novos tipos de dados para armazenar imagens ou grandes itens de texto; Necessidade de definir operaes especficas de aplicaes

nopadronizadas;

11 5. CARACTERSTICAS DOS SGBDOOS

Cada objeto possui um identificador de objeto ou OID (object identifier), que o torna nico, no usa a linguagem sql, por isso no h querys, na verdade voc busca por seus objetos atravs de metodologias predefinidas. Chamamos estas metodologias de Native Querys. Na diferenciao do modelo relacional e do orientado a objeto, ficaria da seguinte maneira.

Modelo Relacional Tabelas (entidades) Linhas (registros) Querys(consultas,etc) Sql Ansci

Modelo OO Objetos Tuplas Native Querys Mtodos, construtores

Esta figura mostra como o dado representado tanto no modelo relacional como no orientado a objetos A forma de acesso aos dados no banco remodelada porque os SGBDS orientados a objetos sugerem novos tipos de dados como seqncias de bits, ponteiros, linhas, nmeros complexos e elementos de dados do tipo array. Para acessar uma array, um modo especial de consulta teria que ser construdo, por exemplo: 6. EXEMPLO DE SISTEMA DE GERNCIA BANCO DE DADOS ORIENTADO A OBJETOS

Considerando-se que, na prtica, todas as condies necessrias ao bom andamento da pesquisa foram pensadas, esta, depois de iniciada, somente ser interrompida por motivo de os sujeitos convidados se negarem a participar, ou seja, no se atingindo a amostra prevista, ou por motivo de fora maior. 6.1 O SGBD rion

12

Existem vrios tipos de SGBDOO, vrios deles de suma importncia para determinadas funes. Dentre eles existe o rion que muito utilizado em percias. O rion conta com 1103 veculos de carga e 4121 veculos de passeio e comerciais leves cadastrados em seu banco de dados, alem de ser o mais barato do mercado. Presente em mais de 640 oficinas, o rion possibilitou a realizao de mais de130 mil percias, no ano de 2006, e mais de 58 mil, at maio deste ano, pelo processo de imagem. Com o objetivo de atuar cada vez mais na melhoria do software, foi oferecida uma nova verso do rion. As oficinas e seguradoras contam com as seguintes novas funcionalidades: Comparativo de revises: Possibilita a oficina a total gesto do processo de peritagem; Laudo em extenso XML: Possibilita a integrao com o sistema de gesto interna da oficina; Novo layout da agenda de visitas: Possui todas as informaes necessrias para o trmite de realizao de oramento e comunicao direta com o perito da seguradora; Novo layout de fotos: Possibilita a insero de mais de 30 fotos por processo; Consulta eletrnica de peas: Permite a consulta eletrnica de peas, tanto por descrio como por partnumber;

6.2 O Cach

um SGBDOO com toda a tecnologia em banco de dados orientado a objetos .O Cach um banco de dados psrelacional orientado a objetos, que vem conquistando espao no mercado devido ao seu desempenho com as aplicaes. Alm de seu desempenho ele permite a integrao entre a linguagem padro de banco de dados, que a SQL (Structured Query Language Linguagem de Consultas Estruturada), e Objetos, assim trabalhando com SQL e OQL (Object Query Language Linguagem de Consultas a Objetos). Devido a essa gama de

13 possibilidades do Cach, as aplicaes relacionais podem fazer uso dos componentes de negcios construdos em OO (Orientado a Objeto). A ferramenta Studio,nativa do Cach, um grande facilitador na criao e manipulao das classes que constituem a base de dados.

Figura2: Interface grfica da ferramenta Studio do Cach

14 7. EXEMPLO DE CDIGO (BDOO + JAVA)

O trecho de cdigo abaixo exemplifica etapas comuns na utilizao de bancos orientados a objeto, onde notvel a simplicidade na execuo da consulta e atualizao sobre os dados de forma mais direta:

import org.odmg.*; import java.util.Collection; Implementation impl = new com.vendor.odmg.Implementation(); Database db = impl.newDatabase(); Transaction txn = impl.newTransaction(); try { // conectando ao BANCO Orientado a Objetos db.open("addressDB", Database.OPEN_READ_WRITE); txn.begin(); // realizando uma CONSULTA OQLQuery query = new OQLQuery( "select x from Person x where x.name = \"Amadeu Barbosa\""); // coletando o resultado da CONSULTA Collection result = (Collection) query.execute(); // atribuindo um iterador a esses resultados Iterator iter = result.iterator(); // operando sobre cada resultado while ( iter.hasNext() ) { Person person = (Person) iter.next(); // agora atualizando o valor de um campo do objeto consultado person.address.street = "Av. Jose Silveira, 34, 450"; } // efetivando tais operaes no banco txn.commit(); // fechando a conexo ao BANCO Orientado a Objetos db.close(); }

15

8. QUANDO USAR UM BDOO

Existem situaes que um sistema de gerenciamento de banco de dados relacional se adequa melhor aplicao. Para isso importante saber definir quais tipos de aplicaes podem usar as vantagens disponibilizadas pelos banco de dados orientados a objetos em contraposio aos bancos relacionais. 8.1 DBMS (Database Management System) Embarcados

Normalmente aplicaes que rodam em dispositivos mveis ou embarcados requisitam sistemas de bancos de dados imbutidos nas linguagens e programao, com acesso a dados persistentes e de fcil deposio para o lado do cliente ou do middleware (em ambientes distribudos). J com os recursos atuais disponveis em linguagens como Java possvel disponibilizar objetos de um grande banco de dados persistentes nas memrias destes dispositivos, que venham a ser sincronizados a posteriore pela aplicao ou middleware. Enquanto que usando um banco relacional seria necessrio um overhead para a atualizao desses dados, com conexes dedicadas.

8.2 Relacionamentos de Dados Complexos

O uso de inter-relacionamentos complexos em uma base relacional pode dificultar e tornar o sistema propenso a erros, que so forosamente contornados por restries de atualizao como as foreign keys e outras classes de constraints. Os conceitos de persistncia de dados em BDOO garantem que se um objeto A, que se relaciona ao objeto B, persiste ento o objeto B tambm sofrer persistncia para que em momento de atualizao a referncia possa ser atualizada. Isto tambm garante consistncia das referncias em cache.

8.3 Diferentes Estruturas de Dados

16 Alguns dados que precisam necessitam de um armazenamento diferente da arrumao tabular por linhas e colunas (como nos bancos relacionais). Certas estruturas de dados como grafos e rvores de busca, por exemplo, so difceis de armazenar segundo os conceitos de tabelas. Assim a forma de armazenamento em bancos relacionais pode ser confusa e difcil de manter, alm de pode causar uma corrupo de dados, em momento de manipulao indevida. Nos BDOOs mais simples, pois o programador-usurio pode dizer com clareza quais tipos abstratos de dados quer armazenar, evitando preocupar-se tanto com as convenes para a camada de armazenamento de dados, tornando o processo transparente e mais seguro. 8.4 Acelerao do processo de consulta

Em bancos relacionais a SQL fornece diretivas como o SELECT para viabilizar a navegao de dados, mas nos bancos orientados a objetos natural pensar que uma vez coleta certa poro de dados, pores vizinhas possam ser acessadas por estruturas semelhantes a ponteiros de memria ou referncia a outras instncias dos objetos. Desta forma, em casos de acessos a grande volumes facilita-se a coletagem de dados. Exatamente, seguindo esta filosofia que os mecanismos de persistncia so desenvolvidos para manter em cache na sesso os dados mais propensos a serem utilizados.

17 9. VANTAGENS

Entre as Vantagens dos SGBDs OO, podemos destacar:

Capacidade de Armazenamento de Objetos

Podes de Processamento de Requisies No possuem Chaves Primarias nem Estrangeiras, aumentando o

desempenho das consultas e processos Os Objetos se comunicam entre si atravs de mensagens.

10. DESVANTAGENS

Entre as Desvantagens dos SGBDs OO, podemos destacar:

Falta de Padronizao das linguagens de manipulao dos dados;

Alto custo de aquisio das novas tecnologias;

Curva de aprendizagem e adaptao ao novo ambiente demorada

18 11. CONCLUSO Ao estudar BDOO percebe-se que sua conceituao traz novos recursos antes no existentes nos bancos de dados puramente relacionais. Estes recursos surgiram pelo largo uso de linguagens de programao orientadas objetos. Um dos desafios, em face a este contexto de evoluo da modelagem de dados sugerido pelos desenvolvedores de bancos orientados 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 bancos orientados objetos de forma a difundir seu uso e aplicabilidade. errado pensar puramente que o bancos orientados objetos so os substitutos da tecnologia atual de bancos 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 relacionais j adotaram alguns conceitos da orientao objetos como a herana, tipos abstratos de dados e funes personalizadas. Estes bancos, conhecidamente, como objeto-relacionais so cada vez mais usados nas aplicaes dirias como altenativa mais estvel, uma vez que boa parte dos projetos de bancos puramente orientados objetos no esto largamente difundidos.

19 REFERNCIAS

RAMOS, Ricardo. Banco de Dados Orientado Objeto. Braslia(DF): 2002.

DIVINO, Gomes Miranda.. Cach 2009. Disponvel em: http://www.Linhade Cdigo.com.br/cach . Acesso em:18/05/2009. Nursing, 2006.

Luiz dos Santos Sousa 2009 Universidade Catlica de Pelotas(UFPEL). Disponvel em: http://souza_l.sites.uol.com.br/OO_Oracle.PDF Acesso em: 05/04/2011

Você também pode gostar