Вы находитесь на странице: 1из 16

Apostila 2 Banco de Dados Orientados a Objetos

Data: 02/05/2007 Professor: Rogrio Morais Rocha

1 de 16

INTEGRAO ENTRE AS TECNOLOGIAS DE BANCO DE DADOS E ORIENTAO A OBJETOS Viso geral do modelo ODMG. O modelo JDO. ODL a linguagem de definio de objetos. VISO GERAL DO MODELO ODMG

PADRES PARA SGBDOOS

O sucesso dos sistemas de banco de dados relacionais no resulta apenas de um nvel mais alto de independncia de dados e um modelo de dados mais simples do que os sistemas anteriores. Seu sucesso se deve tambm padronizao que sofreram. A aceitao do padro SQL permite o alto grau de portabilidade e interoperabilidade entre sistemas, simplifica o aprendizado de novos SGBDs relacionais e representa um amplo endosso da abordagem relacional. Portabilidade a capacidade de executar um programa de aplicao particular em diferentes sistemas com modificaes mnimas no programa. Interoperabilidade se refere habilidade de uma aplicao em acessar mltiplos sistemas distintos. Em termos de banco de dados, isso significa que um mesmo programa de aplicao pode acessar alguns dados armazenados segundo um certo SGBD e outros dados armazenados por um outro SGBD. Esses fatores so importantes tambm para SGBDs orientados a objetos. Na indstria de software h vrios grupos trabalhando sobre padres que afetam os SGBDOOs: o ODMG - Object Database Management Group (padres gerais para SGBDOOs), o OMG - Object Management Group (padro CORBA Commom Object Request Broker Architecture, que permite que uma ampla variedade de objetos interaja em um ambiente distribudo), ANSI X3H2 (SQL padro), ANSI X3J16 (C++ padro), ANSI X3J20 (Smalltalk padro). Esses padres visam a portabilidade de cdigo em alguma maneira. Com relao a SGBD orientados a objetos, h trs padres: SQL-92, ODMG-93 e SQL3. Os dois principais grupos que trabalham sobre padres para SGBD so o ODMG e o ANSI X3H2.

SQL3

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

2 de 16

ANSI X3H2 um comit tcnico do American National Standards Institute (ANSI), formado em 1978, para a definio de uma linguagem para bancos de dados CODASYL ou redes. Em 1982, o modelo relacional estava adquirindo importncia, o que levou o comit X3H2 a ser solicitado para desenvolver o padro SQL. A verso corrente da SQL a SQL-92, que a culminao de trabalhos sobre vrias verses anteriores. Ela baseada na SQL-89, que por sua vez foi baseada na SQL-86. SQL-92 o padro para SGBDs Relacionais. SQL-92 no introduz conceitos de objetos. O comit reconheceu a importncia de adio de objetos sua especificao e tem trabalhado visando definio da SQL3, que estende a SQL-92 para suportar objetos. SQL3 mantm a compatibilidade com a SQL-92 (e verses anteriores do padro), o que interfere na forma de seu suporte a objetos. Estes, no modelo de objetos da SQL3, so armazenados em tipos especiais de colunas em relaes particulares. Assim, objetos no so considerados primeira classe porque eles no podem existir separadamente das relaes, o que afeta operaes tais como consultas. No possvel acessar um objeto diretamente em SQL3; necessrio faz-lo atravs da relao. Esse passo extra, de acesso a relao para poder recuperar o objeto, pode afetar o desempenho da aplicao, conforme avaliado em (Barry 1996). SQL3 difere do resto dos padres industriais de objeto. um sistema fechado, definido somente em funo de suas antecessoras. Ela no usa nenhum dos padres do OMG ou da comunidade de programao de objeto.

ODMG-93

ODMG (Object Database Management Group) um consrcio de vendedores e grupos de interesse que trabalham na criao de padres para SGBDOOs. Ele foi concebido em 1991 e a verso 1.0 da especificao do padro ODMG-93 (tambm chamado ODMG 1.0) foi publicada em agosto de1993. Em 1995 o grupo terminou a verso 1.2 do padro ODMG-93 e posteriormente foi revisado e chamado ODMG 2.0. A linguagem de consulta a Objeto (OQL) do ODMG-93 baseada na poro de consulta da SQL-92, porm com algumas variaes, pois a SQL-92 assume um modelo relacional e a OQL assume um modelo de objeto.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

3 de 16

A meta do ODMG tornar disponvel um conjunto de padres permitindo que um cliente de SGBDOO escreva aplicaes portveis, isto , aplicaes que possam ser executadas por diferentes SGBDOOs. Assim, os esquemas de dados, ligaes com linguagens de programao; manipulao de dados e linguagens de consulta devem ser portveis. Segundo Cattell, em (Cattell 1996), as companhias que so membro do ODMG (Cattell um dos membros do grupo), representando quase toda a indstria de SGBDOO, esto suportando esse padro. A meta no a produo de SGBDOOs idnticos, e sim, portabilidade de cdigo fonte. Haver diferenas entre produtos relativas a desempenho, linguagens suportadas, funcionalidade nica para segmentos particulares do mercado, ferramentas de construo de aplicaes, construtores de interfaces de usurio grficas (GUI), entre outros. O trabalho de padronizao, apresentado pelo grupo, derivado, principalmente, pela combinao das caractersticas mais fortes dos SGBDOOs correntemente disponveis. O grupo define um SGBDOO como sendo um SGBD que integra capacidades de banco de dados com capacidades de linguagem de programao orientada a objetos. Um SGBDOO faz com que objetos do banco de dados apresentem-se como objetos de linguagem de programao, em uma ou mais linguagens existentes. Os SGBDOOs tm sido integrados com C++, C, Smalltalk, LISP e Java. Os principais componentes do ODMG-93 so: - um Modelo de Objetos - uma Linguagem de Definio de Objetos (ODL), Object Definition languagem que equivale a DDL dos SGBD convencionais. - uma Linguagem de Consulta a Objetos (OQL) declarativa (no procedural) para consultar e atualizar objetos do banco de dados. Foi usado o padro SQL como base, porm OQL suporta capacidades mais poderosas. O grupo espera que SQL3 ir convergir com a OQL futuramente. - Ligao com a linguagem C++. Isso inclui uma verso da ODL que usa a sintaxe de C++, um mecanismo para invocar OQL e procedimentos para operaes sobre banco de dados e transaes. - Ligao com a linguagem Smalltalk e Java, com mesmos suportes acima para C++.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

4 de 16

Vrias das idias embutidas no modelo de objetos ODMG so baseadas em duas dcadas de pesquisa em modelagem conceitual e bancos de dados orientados a objetos realizados por muitos pesquisadores.

Arquitetura de um sistema gerenciador de base de objetos no padro ODMG.

Vrias companhias passaram a suportar esse padro em seus produtos a partir final de 1995. MODELO DE OBJETOS ODMG

O modelo de objetos do ODMG o modelo de referncia para um banco de dados orientado a objetos. Esse modelo especifica construes que so suportadas por um SGBDOO, tais como: caractersticas dos objetos, relacionamentos entre os objetos, e como os objetos podem ser nomeados e identificados. As principais caractersticas do modelo de objetos ODMG so: As primitivas do modelo, objeto, que possui um identificador nico (pode ser referenciado), e literal, que no possui identificador (no pode ser referenciado); O estado de um objeto definido pelos valores de suas propriedades (atributos e relacionamentos);

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

5 de 16

O comportamento de um objeto determinado pelo conjunto de operaes (apenas as assinaturas das operaes); Tanto objetos quanto literais podem ser de um tipo. Todos os elementos de um determinado tipo possuem um mesmo conjunto de propriedades e comportamento; Um modelo especfico construdo usando a ODL (independente de linguagem ou no).

TIPOS O conceito de tipo no ODMG possui dois aspectos importantes em sua definio, os quais se referem aos nveis de abstrao: Uma especificao externa (nvel de especificao) - uma definio abstrata de operaes que podem ser chamadas, de propriedades (atributos e relacionamentos) que cada objeto possui e de excees que podem ser sinalizadas; Uma ou mais implementaes (nvel de implementao) - a implementao das operaes e outros detalhes internos em uma ou mais linguagens especficas de programao. Existem trs formas para especificaes externas: Definio de interface - define apenas o comportamento de um tipo objeto e no pode ser instanciada; Definio de classe - define o estado e o comportamento de um tipo objeto e pode ser instanciada; Definio de literal - define apenas o estado de um tipo literal.

A implementao define uma representao da especificao em uma determinada linguagem de programao da seguinte forma: Associa a cada propriedade abstrata uma varivel de instncia, de acordo com a LPOO escolhida; Define para cada operao abstrata um mtodo (corpo de um procedimento que implementa a operao). A forma de mapear conceitos abstratos para uma LPOO varia de linguagem para linguagem. Por exemplo, um literal struct mapeado no C++ diretamente para o equivalente, porm em Java ou Smalltalk, ele mapeado para uma classe sem mtodos. No caso de um literal

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

6 de 16

float em C++ e Java tem-se o equivalente, porm em Smalltalk transformado para a classe Float.

HERANA A herana pode ser definida de duas formas: ISA ou is-a - representa herana de comportamento. Neste caso, apenas interfaces podem ser herdadas, mas tanto classes quanto interfaces podem herd-las. Pode-se ter herana mltipla, ou seja, possvel herdar de vrias interfaces. A forma de represent-la atravs de dois pontos (:). Por exemplo:

Extends - representa herana de estado e comportamento. Neste caso, a herana dada apenas entre classes, no podendo haver herana mltipla. A forma de represent-la atravs da palavra extends. Por exemplo:

A mesma classe pode tambm apresentar os dois tipos de herana, por exemplo:

Logo, uma interface, ou uma classe, pode apresentar herana do tipo is-a de vrias outras interfaces, e uma classe pode ter herana do tipo extends de, no mximo, uma outra classe.

EXTENT A extenso de um tipo (extent) formada por todas as instncias deste tipo que existem no banco de dados. Se o projetista desejar, esta extenso mantida automaticamente pelo SGBDOO. A manuteno do extent envolve a incluso e remoo de instncias, bem como a criao e manuteno de ndices para estas. Por exemplo, na classe Pessoa, pode-se declarar o seu extent conforme descrito a seguir:

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

7 de 16

CHAVES O conceito de chaves no modelo de objetos ODMG apenas uma restrio de unicidade de valor e no tem o papel de OID, nem de referncia entre objetos. Portanto, chave em ODMG corresponde a um ou a mais atributos cujos valores identificam uma instncia dentro de uma extenso. Essa chave deve ser definida pelo usurio, enquanto o OID definido pelo sistema.

OBJETOS Existem alguns aspectos que devem ser considerados em relao aos objetos: O OID de um objeto o diferencia dos demais objetos dentro do BD, sendo gerado pelo SGBD. O OID se mantm imutvel durante toda a vida do objeto. A estrutura do identificador no definida pelo modelo e sim na implementao; Dois objetos so considerados iguais quando possuem os mesmos valores para os seus atributos; Dois objetos so considerados idnticos (isto , o mesmo objeto) quando se referenciam ao mesmo OID; O mtodo same_as() testa se dois objetos possuem o mesmo OID; O mtodo copy() faz uma cpia de determinado objeto, o que resulta em dois objetos iguais; O mtodo delete() remove o objeto da memria e do banco de dados; Os mtodos same_as(), copy(), delete(), entre outros, esto definidos na interface Object, que herdada por qualquer objeto definido pelo usurio; Acesso, criao, alterao ou remoo de objetos persistentes devem ser feitos dentro do escopo de uma transao; permitido associar um ou mais nomes a um objeto. Este nome no armazenado no objeto e sim mantido pelo SGBD, que fornece uma funo que mapeia um nome de objeto para o objeto em si. importante enfatizar que nomes de objetos no devem ser confundidos com chaves ou OIDs;
Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

8 de 16

Um objeto pode ser persistente (sobrevive execuo de um programa), ou transiente (ao terminar a execuo do programa deixa de existir). Os dois podem ser manipulados pelas mesmas operaes. Esses dois conceitos so independentes de tipo, pois um mesmo tipo pode possuir algumas instncias persistentes e outras transientes;

Um objeto pode ser do tipo atmico (definido pelo usurio), coleo ou estruturado; Os elementos de um objeto coleo devem ser todos de um mesmo tipo, podendo ser de um dos tipos de literais ou de um dos tipos de objetos. Os tipos de colees so: o o o o Set<t> (conjunto) - sem ordenao e sem duplicatas; Bag<t> (conjunto) - sem ordenao, mas aceita duplicatas; List<t> (lista) - com ordenao e aceita duplicatas; Array<t>(arranjo) - com ordenao, aceita duplicatas e permite a localizao de elementos por posio; o Dictionary<t,v> (lista indexada) - com ordenao, aceita duplicatas e permite a localizao de elementos por chave associada a cada elemento.

Vrios mtodos podem ser aplicados a colees, tais como - new(), is_empty(), contains_element(), etc.; Os objetos estruturados so: Date, Time, Timestamp e Interval.

LITERAIS Como visto anteriormente, os literais no possuem identificadores. Trs tipos de literais so suportados pelo Modelo de Objetos: atmico - representado por nmeros e caracteres, tais como: long, short, unsigned long, unsigned short, float, double, boolean, octet, char, string, enum (enumerao); Coleo - semelhante a um objeto coleo, porm no possui identificador de objeto. Os literais coleo existentes so: set<t>, bag<t>, list<t>, array<t>, dictionary<t>. Seus elementos podem ser de tipos literais ou tipos objetos. Estruturado - representado por: date, interval, time, timestamp e definidos pelo usurio (structure<>).

MODELANDO ESTADO E COMPORTAMENTO

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

9 de 16

Enquanto os atributos e os relacionamentos modelam o estado, as operaes definem o comportamento. O valor de um atributo sempre um literal ou um identificador de objeto. No exemplo a seguir, os atributos nome e idade so literais, e depto um identificador de objeto de uma instncia de Departamento.

Os relacionamentos so propriedades definidas entre, no mximo, dois tipos, em que cada tipo participante do relacionamento tem que possuir um OID. O ODMG permite apenas relacionamentos binrios, podendo ter cardinalidade um-para-um, um-para-muitos ou muitospara-muitos. Um relacionamento definido explicitamente pela declarao de caminhos que permitem aplicao usar as conexes lgicas entre os objetos envolvidos no relacionamento. Esses caminhos so declarados em pares, um para cada direo. A seguir, mostrado um exemplo em que um professor ensina um conjunto de disciplinas, e uma disciplina ensinada por um professor. O relacionamento declarado nas duas direes apresentado nas duas classes Professor e Disciplina:

O SGBDOO responsvel por manter a integridade referencial dos relacionamentos. Se um objeto que participa de um relacionamento for removido, ento qualquer caminho para aquele objeto deve ser removido tambm.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

10 de 16

As operaes so representadas apenas pelas suas assinaturas, que contm o nome da operao, nome e tipo de cada argumento, tipo de valor retornado e excees que podem ser sinalizadas pela operao. O nome de uma operao deve ser nico apenas dentro de uma definio de tipo. Assim, tipos diferentes podem ter operaes definidas com o mesmo nome. Nestes casos, quando uma operao chamada, uma operao especfica deve ser selecionada para execuo. Esta seleo feita pegando-se o tipo mais especfico do objeto fornecido como primeiro argumento da chamada. Operaes podem criar excees, e estas podem passar os resultados das excees. Quando uma exceo criada, as informaes sobre a sua causa so passadas para o manipulador de excees como propriedades de uma exceo.

ODL A LINGUAGEM DE DEFINIO DE OBJETOS

A ODL a linguagem de definio para a especificao de tipos de objeto de acordo com o Modelo de Objetos ODMG. A ODL apresenta as seguintes caractersticas: Suporta todas as construes semnticas do modelo de objetos ODMG; No uma linguagem de programao completa, mas sim uma linguagem de definio para especificao de objetos; independente de LPOO, o que permite que os usurios a usem para definir semnticas de esquema de uma forma independente de linguagem; extensvel, permitindo a especificao de tipos, incluindo propriedades e operaes (somente assinaturas); Define as propriedades e operaes dos tipos objeto, sendo que para as operaes descrita apenas a assinatura.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

10

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

11 de 16

Grfico de representao de esquema

Este padro no especifica uma OML - Object Manipulation Language.

Definio utilizando ODL

OQL - LINGUAGEM DE CONSULTA A OBJETOS A OQL uma linguagem declarativa para consultar os objetos do BD proposta pelo modelo de objetos ODMG. As principais caractersticas da OQL so: Suporta as clusulas SELECT, FROM, WHERE, GROUP BY, HAVING e ORDER BY; Pode ser usada por usurios ou embutida de uma linguagem de programao; Fornece primitivas de alto nvel para lidar com set, structure, list e array, tratando estas construes com a mesma eficincia; Possui uma sintaxe baseada no SQL, mas a composio mais livre; Pode chamar mtodos dos tipos envolvidos na consulta; No fornece operadores para atualizao, mas pode chamar operaes definidas nos objetos para realizar esta tarefa. Assim, no viola a semntica do modelo de objetos, o qual, por definio, gerenciado pelos mtodos especificados no objeto;
Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

11

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

12 de 16

possvel definir um nome para uma determinada consulta, que armazenada no BD. Para uso posterior, a consulta referenciada atravs do nome definido; Apresenta construtores de objetos, structure, set, list, bag e array.

A sintaxe bsica da OQL uma estrutura select... from... where, igual a da SQL. possvel fazer consultas sobre extenses de classes, como tambm nomes de objetos. Para ilustrar a primeira situao, mostrado um exemplo em que se tem um tipo Pessoa com o extent Pessoas, com atributos nome, data de nascimento e sexo e com a operao idade. A consulta apresentada a seguir recupera o conjunto de Pessoas chamadas "Carlos", juntamente com suas diferentes idades. SELECT DISTINCT p.idade FROM p in pessoas WHERE p.nome = Carlos
Exemplo de Consulta

Existem trs opes sintticas para especificar variveis de iterao. p in pessoas pessoas p pessoas as p A possibilidade de utilizar o mtodo na consulta uma caracterstica importante desta linguagem. Na consulta apresentada anteriormente, por exemplo, utilizado o mtodo idade. Utilizando DISTINCT retornado um set<integer>; caso contrrio, seria retornado um bag<integer>. Se alm do DISTINCT fosse utilizado o termo ORDER BY, o retorno seria um list<integer>.

EXPRESSES DE CAMINHO As expresses de caminho servem para navegar atravs de relacionamentos (um-para-um) e objetos complexos, sendo representadas por "."ou !. Podem existir chamadas a mtodos no meio destas expresses. A seguir, mostrado um exemplo em que a partir de uma Pessoa p, deseja-se saber o nome da cidade onde o cnjuge desta pessoa mora. p.conjuge.endereco.cidade.nome

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

12

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

13 de 16

Esta consulta comea por uma pessoa p, pega seu cnjuge que outra pessoa, vai dentro do atributo complexo do tipo endereo para pegar o objeto cidade e, ento, acessa o nome da cidade. Porm, deve-se ter cuidado quando o resultado esperado um conjunto. Por exemplo, a consulta a seguir retorna o nome dos filhos de uma pessoa. SELECT f.nome FROM p.filhos f Se for utilizado apenas p.filhos.nome, o resultado ser o nome da lista dos filhos e no o nome dos filhos. Como filhos uma lista de referncias, o resultado da consulta seria um valor indefinido.

VALORES INDEFINIDOS

Uma propriedade no definida referencia o objeto nil, que, se for acessado, devolve como resultado o valor undefined. O undefined um valor literal especial que, dentro da OQL, tido como valor vlido para qualquer tipo literal ou objeto. Algumas das regras que envolvem este valor so: is_defined(predicado) e is_undefined(predicado) testam se um predicado definido ou no; Se o predicado definido em uma clusula WHERE retorna undefined, isto tratado como se fosse retornado false; O valor undefined vlido para a operao count, ou seja, considerado da mesma forma que qualquer outro valor; O undefined um valor vlido para expresses de construo (construo de objetos, estruturas, sets, lists, bags e arrays); Qualquer outra operao com operandos undefined resultam em undefined.

A seguir so mostrados alguns exemplos de consultas com seus respectivos resultados, considerando que o BD contm trs pessoas: uma morando em Porto Alegre, outra em Caxias e a ltima com endereo nil.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

13

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

14 de 16

Exemplos de consulta

JDO JAVA DATA OBJECTS

O Java Data Objetcs (JDO) teve sua primeira verso disponibilizada em 2002 e mais tarde em 2003 sofreu uma manuteno. Esta primeira verso disponibilizada criou uma abstrao do banco de dados que permitiu o acesso aos dados armazenados sem a necessidade do conhecimento intrnseco da API dos bancos de dados. O objetivo separar a manipulao dos dados realizada pela linguagem de programao da manipulao dos dados realizada pelo SGBD. Esta separao de interesses permite um alto grau de independncia da viso de dados do Java em relao viso dos dados do banco de dados. As interfaces definidas para o usurio so: - PersistenceManager o componente responsvel pelo ciclo de vida das instncias persistentes, fbrica de consultas (Query), e acesso a transaes (Transactions); - Query componente responsvel por consultar os dados armazenados e retornar as instncias persistentes ou os valores; - Transaction o componente responsvel por iniciar e completar as transaes. O JDO foi desenvolvido pela empresa Sun Microsystems que decidiu do-lo para a comunidade de cdigo livre. Desde ento as especificaes ficaram submetidas ao projeto denominado Apache JDO que tem o foco principal na construo de uma interface e testes de compatibilidade das implementaes no JDO. Implementaes comerciais e de cdigo livre esto disponveis para banco de dados relacionais e orientados a objetos alm dos sistemas de arquivos.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

14

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

15 de 16

A estas implementaes algumas caractersticas tm sido includas. Dentre elas se destacam: - Mapeamento do banco de dados relacional, vendedores diferentes do padro JDO tm implementado mapeamentos diferentes para os diversos bancos de dados existentes no mercado e o mapeamento deixa de ser portvel entre os vendedores. A comunidade JCP, Java Community Process atravs do pedido de especificao Java (JSR Java Specification Request) mapeou um formato comum que permitir uma grande portabilidade das aplicaes e; - Extenses para a consulta JDO, JDOQL fornece uma maneira padronizada para acessar instncias baseada em valores e relacionamentos, mas isto limitado no que pode ser retornado como valor. Os valores de retorno sero estendidos para incluir campos projetados, colees de instncias identificadas em expresses navegacionais e dados agregados como MIN, MAX, SUM, AVG e COUNT. Mtodos adicionais sero definidos para permitir a manipulao de cadeia de caracteres (string) em filtros. As especificaes vm criando uma camada de acesso a dados com diversas vantagens que proporcionam benefcios nas implementaes das aplicaes, benefcios como: - serem fceis de utilizar, pois os programadores focam no modelo de negcio deixando os detalhes sobre o armazenamento ser tratado pelo JDO; - so portveis, as aplicaes podem ser executadas em mltiplos sistemas sem a necessidade de alterao no cdigo fonte; - so independentes de banco de dados, as aplicaes podem comunicar com os diferentes bancos de dados existentes no mercado e; - tm alta performance, uma vez que os detalhes da comunicao com os dados esto na camada JDO ocorre uma otimizao do acesso aos mesmos. Novas especificaes, freqentemente, so submetidas comunidade JSP para aprovao e conseqente alterao na camada JDO, desta maneira, muito importante ao iniciar um trabalho que utilizar a camada JDO verificar as especificaes aprovadas e as que esto em aprovao para usufruir ao mximo dos recursos disponibilizados por esta tecnologia de acesso a banco de dados.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

15

Apostila 2 Banco de Dados Orientados a Objetos


Data: 02/05/2007 Professor: Rogrio Morais Rocha

16 de 16

BIBLIOGRAFIA ELMASRI, R. & NAVATHE, S. B. Sistemas de Bancos de Dados Fundamentos e Aplicaes. 4a Edio. So Paulo: Pearson, 2005.

Barry, D.K. The Object Database Handbook. John Wiley & Sons, Inc. 1996.

Bertino,

E.;

Martino,

L. (1993). Object-Oriented Database Systems: Concepts and

Architectures. Addison-Wesley, 1993.

Blaha, M.; Premerli, W. Object-Oriented Modeling and Design for Database Applications. Prentice-Hall, 1998.

Cattel, R.G.G. Object-Oriented and Extended Relational Database Systems. AddisonWesley, 1994.

Cattell, R.G.G.; Barry, D.K. The Object Database Standard: ODMG-3.0. Morgan Kaufmann Publishers, inc., 2000.

Hughes, J.G. Object-Oriented Databases. Prentice-Hall, 1991.

Khoshafian, S. Banco de Dados Orientado a Objeto. Livraria e Editora Infobook S.A., 1994.

Vieira, M.T.P. (1991) Um modelo de Objetos para um Sistema de Gerncia de Objetos em Ambiente de Desenvolvimento de Sistemas Interativos. Tese de Doutorado, Departamento de Informtica, PUC-RJ, 1991.

Zand, M.; Collins, V.; Caviness, D. A Survey of Current Object-Oriented Databases. In: DATA BASE Advances in Information Systems, Vol.26, No. 1, February, 1995.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

16

Вам также может понравиться