43
SILVAN RODRIGUES DA SILVA SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E PRODUÇÃO TEXTUAL INTERDISCIPLINAR INDIVIDUAL

Conceitos de Banco de Dados - PTI Individual 4S

Embed Size (px)

Citation preview

Sistema de Ensino Presencial ConectadoCurso superior de tecnologia em anlise e desenvolvimento de sistemas

Silvan rodrigues da silva

Produo textual interdisciplinar individual

Guarulhos2013

SILVAN RODRIGUES DA SILVAProduo textual interdisciplinar individual

Trabalho de Produo Textual Interdisciplinar - Individual baseado nos assuntos abordados envolvendo todas as disciplinas do semestre. Ser apresentado Universidade Norte do Paran - UNOPAR, como requisito parcial para a obteno de mdia bimestral nas disciplinas de Anlise de Sistemas III, Redes de Computadores, Desenvolvimento Orientado a Objetos II.Orientador: Profs.: Mrcio Roberto Chiaveli, Paulo Kiyoshi Nishitani, Polyanna P. Gomes Fabris.

]

Guarulhos2012

SUMRIOLISTA DE FIGURAS...42 INTRODUO53 OBEJTIVOS64 DESENVOLVIMENTO74.1 BANCO DE DADOS ORIENTADO A OBJETO74.1.1 SUA APLICAO E SEU MECANISMO DE FUNCIONAMENTO124.1.2 DIFERENA BD OO E BD RELACIONAL184.2 SOBRE ORM MAPEAMENTO OBJETO RELACIONAL214.2.1 COMO DESENVOLVER USANDO MR OO E BD RELACIONAL224.2.2 O QUE ORM E PARA QUE UTILIZADO?234.2.3 FERRAMENTAS DISPONVEIS HOJE NO MERCADO......244.2.4 VANTAGENS E DESVANTAGENS DE USAR UMA F. ORM.........285 CONCLUSO..30

LISTA DE FIGURASFigura 1 ilustra a declarao de classes.Figura 2 ilustra herana entre classes.INTRODUO

Este trabalho permitir conhecer a manuteno de dados consistentes que podero ser compartilhados por diversas aplicaes atravs da tecnologia de Banco de Dados Orientado a Objetos, onde o paradigma Orientado a Objeto (OO) auxiliar o gerenciamento de dados mais complexos. Sero apresentados aspectos bsicos, ou seja, um breve estudo ou pesquisa sobre a evoluo dos Bancos, anlise dos paradigmas OO e conceitos de B. Dados.Ainda, com relao a esta pesquisa, ser apontado um conjunto de problemas conhecidos em que, o Banco de Dados Relacional no foi projetado pra interagir diretamente com o paradigma Orientado a Objetos (OO) com suas particularidades. Entretanto, este o mecanismo de armazenamento e recuperao de dados, frequentemente mais utilizado. Dentro do desenvolvimento de aplicaes comerciais, com regras de negcios especficas e detalhadas visando um aproveitamento futuro, tornou-se rduo o trabalho na busca de pesquisas pra solues que reduzam as diferenas entre estes dois modelos.

Obejtivos

Naturalmente, o objetivo deste trabalho intensificar o conhecimento na rea de Bancos de Dados Orientados a Objetos, clara e objetivamente, atravs dos conceitos oferecidos e existentes no ORM (Object Relacional Mapper) Mapeamento Objeto Relacional.Sero apresentadas as evolues da Tecnologia de Bancos de Dados Orientados a Objetos, com o intuito de mitigar ou satisfazer, com os assuntos apresentados, algumas dvidas. Para tanto, sero citadas algumas das ferramentas mais populares existentes no mercado que possibilitaro desempenho e flexibilidade, vantagens e desvantagens e caractersticas.

4. desenvolvimento

4.1 BANCO DE DADOS ORIENTADO A OBJETO

ObjetoConsoante 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. Sendo assim, objeto a representao de elementos fsicos do mundo real que descobrimos estudando suas caractersticas (atributos) e seus comportamentos (aes). Na OO (Orientao a Objetos), aps estudar e analisar os objetos do mundo real, sistemtica e mentalmente separamos aqueles que interessam num exerccio de abstrao. Conforme dicionrio, abstrao o ato de separar mentalmente um ou mais elementos de uma totalidade complexa (coisa, representao, fato), os quais s mentalmente podem substituir fora dessa totalidade; o resultado de abstraes (termo, conceito, ideia, elemento de classe, etc.). Desta forma, a Orientao a Objetos, tratar-se- duma modelagem dos objetos do mundo real, estudando-os e criando classes a partir de suas caractersticas e comportamentos. Esse trabalho executado pelo analista que usando um processo intelectual capaz de abstrair esse estudo da realidade e representar os objetos dentro de um contexto.Classes de ObjetosNa diferenciao de objetos, percebemos que possuem atributos e comportamentos semelhantes, dependendo da finalidade em que so analisados. Fazendo o uso da abstrao, poderemos agrupar vrios objetos de acordo com seus atributos e comportamentos em comum. Uma classe um modelo em que os objetos so originados, ou seja, instanciados. Neste caso, ela possui a definio dos atributos e das aes de um tipo de objeto oriunda da classificao de objetos com a mesma estrutura de dados e o mesmo comportamento. Exemplo: Manoel, Pedro, Mrio, Jonas, etc. podem ser instncias da classe Pessoa, visto que podem possuir atributos comuns como o nome e comportamentos do tipo falar, comer, andar, etc.A declarao duma classe feita ou dividida em duas partes: as variveis de instncias (atributos de um objeto a ser instanciado) e a sua interface que so operaes (mtodos) disponveis classe.Pessoa

Nome:texto

Definir Nome(texto)Obter Nome(): texto

Nome da Classe Atributos Operaes

A Figura 1, ilustra a declarao de classes.

HeranaEspecificamente, a capacidade da classe herdar os atributos e comportamentos de outra classe. Sendo que a classe herdada denomina-se de superclasse e a classe herdeira de subclasse, ou seja, a subclasse herda atributos e comportamentos da classe imediatamente superior a superclasse.Em anlise e comparaes dos objetos do mundo real, podemos enfatizar os atributos e comportamentos em comum entre os objetos, fazendo com que sejam agrupados num mesmo tipo de classe. Dentro desta observao, descobre-se que alguns objetos pertencentes desta classe possuem caractersticas prprias alm daquelas em comum. E, mediante este fato, o mecanismo de herana alimenta a diferena entre as particularidades dos objetos.

A Figura 2, ilustra herana entre classes.A herana na Orientao a Objeto pode ser a nica onde uma classe herda caractersticas de apenas uma classe ou mltipla, onde uma classe pode herdar propriedades de uma ou mais classes. propsito, no so todas as linguagens de Programao Orientado a Objetos que tem suporte pra heranas mltiplas. Um dado importante na herana, e que no devemos negligenciar, e sim mantermos atento s manutenes deste recurso, pois qualquer tipo de mudana de uma superclasse acarretar a propagao pra subclasses.PolimorfismoDicionrio: Particularidade de certas substncias que tomam formas muito diversas; multiforme; que se apresenta sob numerosas formas. Em outras palavras, capacidade de objetos diferentes possurem operaes com o mesmo nome e a mesma lista de argumentos, mas que executam tarefas de forma diferentes.A herana e o polimorfismo so tecnologias fundamentais no desenvolvimento de software complexo. O polimorfismo no permite escrever programas que tratam uma ampla verdade de classes relacionadas de uma maneira genrica e facilita a adio de novas classes e recursos em um sistema. Com o polimorfismo, possvel projetar e implementar sistemas que so facilmente extensveis. Os programas podem processar objetos de todas as classes genericamente em uma hierarquia de classes, como objetos de uma classe base comum. Alm disso, novas classes podem ser adicionadas com pouca ou nenhuma modificao nas partes genricas do programa, desde que essas classes faam parte da hierarquia de herana que o programa processa genericamente. As nicas partes de um programa que devem ser alteradas pra acomodar novas classes so aqueles componentes que exigem reconhecimento direto das novas classes que o programador adiciona na hierarquia.EncapsulamentoNotoriamente conhecido como ocultao de informaes, uma tcnica que consiste em separar os aspectos internos dos externos de um objeto, isto , determinados detalhes ficam ocultos, assim como o nome sugere, aos demais objetos tendo como referncia apenas o prprio objeto. Por outro lado, pode-se afirmar que encapsular proteger a estrutura interna do objeto por traz dos mtodos, possibilitando uma maior independncia de dados, onde as implementaes das estruturas no precisam ser conhecida por quem utiliza os objetos. Devemos salientar de que o encapsulamento estabelece uma dependncia com relao a herana, pois os objetos da subclasse herdam todas definies de atributos e operaes da superclasse.

Um banco de dados orientado a objeto um banco em que cada informao armazenada na forma de objetos, e s pode ser manipuladas atravs de mtodos definidos pela classe que esteja o objeto. O conceito de Banco de Dados OO o mesmo da LOO (Linguagem Orientada a Objetos), havendo uma pequena diferena - a persistncia dos dados. Existem pelo menos dois fatores que levam a adoo desse modelo: Primeira - que banco de dados relacional se torna difcil trabalhar com dados complexos. Segunda - que aplicaes so construdas em linguagens orientadas a objetos (Java, C++, C#) e o cdigo deve ser traduzido para uma linguagem em que o modelo de banco de dados relacional entenda. Essa tarefa conhecida como perda por resistncia. (ELMASRI, 2005). O modelo OO ganhou espao nas reas como banco de dados espaciais, telecomunicaes, e nas reas cientficas como fsica de alta energia e biologia molecular. Isso porque essa tecnologia oferece aumento de produtividade, segurana e facilidade de manuteno.Como objetos so modulares, mudanas podem ser feitas internamente, sem afetar outras partes do programa. O modelo OO no teve grandes impactos nas reas comerciais embora tenha sido aplicado em algumas. Em 2004 os bancos de dados orientados a objeto tiveram um crescimento devido ao surgimento de banco de dados OO livres. A Object Data Management Group (ODMG) com a Object Query Language (OQL) padronizou uma linguagem de consulta para objetos. Uma caracterstica que vale a pena ser ressaltada, que o acesso a dados pode ser bem mais rpido, porque no necessrio junes. J que o acesso feito diretamente ao objeto seguindo os ponteiros. Outra caracterstica importante que o BDOO oferece suporte a verses, isto , um objeto pode ser visto de vrias verses. Os bancos de dados OO e relacionais apresentam uma srie de caractersticas, e cada um tem a sua vantagem e desvantagem. Como por exemplo, os modelos OO utilizam interfaces navegacionais ao invs das relacionais, e o acesso navegacional bem eficiente implementada por ponteiros. Um problema seria a inconsistncia desse modelo em trabalhar com outras ferramentas como OLAP, backup e padres de recuperao. E os crticos afirmam que o modelo relacional fortemente baseado em fundamentos matemticos o que facilita a consulta, j os modelos OO no, o que prejudicaria e muito as consultas. A dificuldade de implementar encapsulamento seria um outro problema porque como sero feitas as consultas se no possvel ver os atributos. Persistncia em Banco de Dados Orientado a Objeto.O termo persistncia raramente utilizado no contexto de banco de dados. Preferencialmente, o termo usado banco de dados, que conota o espao de objeto resiliente, concorrentemente compartilhado. A funo de um sistema de gerenciamento de banco de dados permitir o acesso e a atualizao simultneos de bancos de dados persistentes. A fim de garantir a persistncia dos dados a longo prazo, os sistemas de gerenciamento de banco de dados 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.

Nveis de PersistnciaOs dados manipulados por um banco de dados orientado a objeto podem ser transientes ou persistentes. 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 vrias invocaes de programas.Dados persistentes normalmente consistem nos bancos de dados compartilhado, acessados e atualizados atravs de transaes. Por exemplo, banco de dados pessoais, banco de dados de inventrio e banco de dados de vendedores, contas ou itens, todos contm dados persistentes. 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 uma 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. Entretanto, 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, estabilizaes de sistema e at de meio. Tecnicamente, esses so os objetos recuperveis do banco de dados.

4.1.1 SUA APLICAO E SEU MECANISMO DE FUNCIONAMENTO

Bancos de Dados e Sistemas de Banco de Dados tornou-se um componente essencial na vida cotidiana. Aplicaes de banco de dados tradicionais dizem respeito a sistemas bancrios, sistemas de reservas areas, sistemas de controle de estoque. Com o avano da tecnologia, novos tipos de bancos de dados foram desenvolvidos, com aplicaes e uso especficos. Bancos de Dados Multimdia podem, por exemplo, armazenar figuras, vdeoclips e mensagens de sons. Bancos de Dados Geogrficos podem armazenar e analisar mapas, dados climticos e imagens de satlite. DataWarehouses e Processamentos Analtico On-line (OLAP) so sistemas usados em muitas empresas para extrair e analisar informaes teis de sistemas de banco de dados grandes auxiliando tomada de decises. Tecnologias de Tempo Real e de Banco de Dados Ativos so usados no controle industrial e em processo de manufatura. Tcnicas de busca em bancos de dados, com aplicaes na Web, tm melhorado a eficincia dos mesmos. No entanto, temos que entender o bsico das aplicaes de banco de dados tradicionais. Um banco de dados pode ser considerado como uma coleo de dados relacionados. Por dado entendem-se fatos conhecidos que podem ser armazenados e que possuem um significado implcito. Um banco de dados possui as seguintes propriedades implcitas: Representa alguns aspectos do mundo real, muitas vezes chamado de mini-mundo ou universo do discurso; uma coleo de dados logicamente coerente com alguns significados inerentes aos mesmos; projetado, construdo e povoado com dados para um propsito especfico. Um banco de dados pode ser de qualquer tamanho e de complexidade variada. Pode ser gerado e mantido manualmente ou pode ser computadorizado. Um Sistema de Gerenciamento de Banco de Dados uma coleo de programas que permitem que usurios criem e mantenham um banco de dados. Tambm um sistema de software, de propsito geral, que facilita o processo de definio, construo e manipulao de banco de dados pra vrias aplicaes. A definio de um banco de dados envolve especificao de tipos de dados, estruturas e restries para que os dados possam ser armazenados no banco de dados. A construo do banco de dados o processo de armazenamento de dados em algum armazenamento mdio que controlado pelo SGBD. A manipulao do banco de dados inclui tais funes como consulta a banco de dados para recuperar dados especficos e a atualizao destes dados.

Modelos de Dados Orientados a ObjetosSuperficialmente, pode-se dizer que orientao a objetos corresponde organizao de sistemas como uma coleo de objetos que integram estruturas de dados e comportamento. Alm desta noo bsica, a abordagem inclui um certo nmero de conceitos, princpios e mecanismos que a diferenciam das demais. Seus principais conceitos so apresentados em seguida.Abstrao a considerao apenas das propriedades comuns de um conjunto de objetos, omitindo os detalhes, utilizada com frequncia na definio de valores similares e na formao de um tipo a partir de outro, em diferentes nveis de abstrao. O uso de abstraes permite a gerao de tipos baseada em hierarquias de tipos e de relacionamentos.Os principais conceitos de abstrao utilizados em banco de dados so generalizao e agregao. A generalizao corresponde associao " um" onde, a partir de propriedades comuns de diferentes entidades, criada uma outra entidade. O processo inverso a especializao. A agregao corresponde a associao "parte de".ObjetoOs objetos so abstraes de dados do mundo real, com uma interface de nomes de operaes e um estado local que permanece oculto. As abstraes da representao e das operaes so ambas suportadas no modelo de dados orientado a objetos, ou seja, so incorporadas as noes de estruturas de dados e de comportamento. Um objeto tem um estado interno descrito por atributos que podem apenas ser acessados ou modificados atravs de operaes definidas pelo criador do objeto. Um objeto individual chamado de instncia ou ocorrncia de objeto. A parte estrutural de um objeto (em banco de dados) similar noo de entidade no modelo Entidade-Relacionamento.Identidade de ObjetoNum modelo com identidade de objetos, estes tm existncia independente de seus valores correntes e dos endereos de armazenamento fsico. A identidade do objeto geralmente gerada pelo sistema. A impossibilidade de garantir a identificao de objetos exclusivamente atravs de suas propriedades estruturais e comportamentais motivou a definio de identificadores nicos de objetos, que persistem no tempo de forma independente ao estado interno do objeto.A identidade de objetos elimina as anomalias de atualizao e de integridade referencial, uma vez que a atualizao de um objeto ser automaticamente refletida nos objetos que o referenciam e que o identificador de um objeto no tem seu valor alterado.Objetos ComplexosOs 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. No modelo relacional este no o caso, visto que s possvel aplicar o construtor de conjuntos s tuplas e o construtor de registro a valores atmicos.A manuteno de objetos complexos, independente de sua composio, requer a definio de operadores apropriados para sua manipulao como um todo, e transitivos para seus componentes. Exemplos destas operaes so: a atualizao ou remoo de um objeto e cpia profunda ou rasa.EncapsulamentoO encapsulamento possibilita a distino entre a especificao e a implementao das operaes de um objeto, alm de prover a modularidade que permite uma melhor estruturao das aplicaes ditas complexas, bem como a segurana dentro do sistema. Em banco de dados se diz que um objeto est encapsulado quando o estado oculto ao usurio e o objeto pode ser consultado e modificado exclusivamente por meio das operaes a ele associadas.Existe uma certa discusso sobre as consultas em banco de dados quando est incorporada a noo de encapsulamento: Deve-se tornar visvel apenas as operaes e deixar ocultos os dados e as implementaes? interessante relaxar o encapsulamento apenas para as consultas? Como deve ser realizada a otimizao de consultas em SGBDOO com encapsulamentos?

Tipo de ObjetosO tipo de objeto pode ser visto como a descrio ou especificao de objetos. Um tipo possui duas partes, interface (visvel para o usurio do tipo) e implementao (visvel s para o usurio construtor do tipo).Existem vrias vantagens em se ter um sistema de tipos em um modelo de dados. Alm de modularidade e segurana, do ponto de vista da evoluo do sistema os tipos so especificaes do comportamento que podem ser compostos e modificados incrementalmente, para formar novas especificaes.ClassesUm conjunto de objetos que possui o mesmo tipo (atributos, relacionamentos, operaes) pode ser agrupado para formar uma classe. A noo de classe associada ao tempo de execuo, podendo ser vista como uma representao por extenso, enquanto que o tipo uma representao intencional. Cada classe tem um tipo associado, o qual especifica a estrutura e o comportamento de seus objetos. Assim, a extenso da classe denota o conjunto dos objetos atualmente existentes na classe e o tipo prov a estrutura destes objetos.HeranaHerana um mecanismo que permite ao usurio definir tipos de forma incremental, por refinamento de outros j existentes, permitindo composio de tipos em que as propriedades de um ou mais tipos so reutilizadas na definio de um novo tipo. De fato, ela corresponde a transferncia de propriedades estruturais e de comportamento de uma classe para suas subclasses.As principais vantagens de herana so prover uma maior expressividade na modelagem dos dados, facilitar a reusabilidade de objetos e definir classes por refinamento, podendo fatorar especificaes e implementaes como na adaptao de mtodos gerais para casos particulares, redefinindo-os para estes, e simplificando a evoluo e a reusabilidade de esquemas de banco de dados.Tipos de HeranaOs dois tipos de herana, simples e mltipla, so descritos a seguir:Herana Simples: Na herana simples um certo tipo pode ter apenas um supertipo, da mesma forma uma subclasse s herda diretamente de uma nica classe. Podemos classificar esta herana em quatro subtipos: de substituio, de incluso, de restrio e de especializao.Herana Mltipla: Nesta herana um tipo pode ter supertipos e os mesmos refinamentos de herana simples. H basicamente dois tipos de conflitos referentes herana mltipla: entre o tipo e o supertipo e entre mltiplos supertipos. O primeiro pode ser resolvido dando-se prioridade definio presente no tipo, e no a no supertipo. Com os conflitos entre mltiplos supertipos, como uma resoluo por default pode causar heranas no desejadas, a abordagem mais segura baseada na requisio explcita da interveno do usurio.Mtodos e MensagensUm mtodo, em relao a um objeto, corresponde ao comportamento dos objetos, implementando uma operao associada a uma ou mais classes, de forma similar aos cdigos dos procedimentos usados em linguagens de programao tradicionais, que manipula o objeto ou parte deste. Cada objeto tem um certo nmero de operaes para ele definida. Para cada operao pode-se ter um ou mais mtodos de implementao associados.As mensagens so a forma mais usada para se ativar os mtodos. Num SGBDOO os objetos se comunicam e so ativados atravs de mensagens enviadas entre eles.PolimorfismoEm sistemas polimrficos uma mesma operao pode se comportar de diferentes formas em classes distintas. Como exemplo temos o operao print que ser implementada de forma diferente se o objeto correspondente for um texto ou uma imagem: dependendo do objeto teremos um tipo de impresso. Tem-se tambm polimorfismo quando ocorre a passagem de diferentes tios de objetos como parmetros enviados a outros objetosUm mesmo nome pode ser usado por mais de uma operao definida sobre diferentes objetos, o que caracteriza uma sobrecarga (overloading). A redefinio do operador para cada um dos tipos de objetos definidos caracteriza uma sobreposio (overriding). As operaes so ligadas aos programas em tempo de execuo caracterizando o acoplamento tardio ou late binding.

4.1.2 DIFERENA BD OO E BD RELACIONAL

Banco de Dados Orientado a Objetos Os Banco de Dados Orientado a Objetos sugiram da necessidade de armazenar dados complexos e de acabar com a disparidade que havia na modelagem da aplicao e do Banco de Dados (BD). Com o advento das linguagens de programao orientadas a objetos, os programadores passaram a utilizar este paradigma e a modelagem ento naturalmente passou tambm a seguir este modelo. O outro ponto que objetos complexos precisam ser quebrados em diversas tabelas, ou relaes, para serem armazenados e com isto para recuperar tal informao preciso realizar um JOIN entre diversas tabelas. Com a orientao a objetos, possvel modelar objetos de forma mais prxima ao mundo real, como por exemplo, em um sistema de geoprocessamento, engenharia, pesquisa cientfica e tantos outros sistemas no triviais. Um Bando de Dados Orientado a Objetos BDOO permite ainda que a aplicao manipule objetos, independente se eles so persistentes ou no, pois possvel armazenar todo o objeto e no apenas seus atributos. Diferentemente do modelo Relacional, o BDOO no utiliza o conceito de chave primria ou secundria. As chaves foram substitudas pelo identificador de objeto (OID Objetct Identifier), que controlado pelo prprio SGBD Sistema Gerenciador de Banco de Dados e no visvel ao usurio do Banco de Dados. O OID pode ser visto como uma referncia ao objeto em memria, assemelhando-se a um ponteiro, porm um OID nunca alterado e nem reaproveitado, diferentemente do que acontece quando o objeto est em memria, onde utilizado o endereo fsico da memria RAM (Random Access Memory). Apesar da caracterstica mencionada, possvel criar campos como chave para facilitar a identificao dos objetos armazenados por parte do usurio. Orientao a Objetos A orientao a objetos fornece recursos como encapsulamento, herana, polimorfismo e sobrecarga que sero rapidamente explicados. Segundo Elmasri e Navathe, o conceito de encapsulamento uma das principais caractersticas das linguagens e dos sistemas OO. Ele est relacionado tambm com os conceitos de tipos abstratos de dados e ocultar a informao nas linguagens de programao. Encapsular dados significa que as variveis sero acessadas por mtodos definidos em sua estrutura. Uma vantagem poder ocultar a complexidade na manipulao do objeto por meio das operaes disponibilizadas de tal forma que aumenta a segurana e produtividade. Herana o mecanismo pelo qual a linguagem de programao orientada a objetos (LPOO) fornece a possibilidade do reaproveitamento de cdigo. possvel uma classe herdar os mtodos e atributos de outra classe chamada superclasse ou classe me e assim estender a classe me. O polimorfismo a capacidade que um objeto tem de ora se comportar de uma maneira, ora de outra. Considere as classes as classes Pessoa, Funcionrio e Aluno. Com uma varivel do tipo Pessoa, possvel utiliz-la para representar um objeto do tipo Pessoa, mas tambm objetos do tipo Funcionrio e Aluno. O polimorfismo d a possibilidade da sobrecarga de operadores, no qual subclasses podem modificar a implementao de um mtodo definido na superclasse. Considerando o exemplo anterior e que cada classe tenha um mtodo chamado Remover, para remover uma pessoa basta apenas excluir o seu registro, j para um aluno preciso verificar se o mesmo no possui nenhuma pendncia na organizao, excluir o aluno das disciplinas que est matriculado e por fim alterar o seu estado. J para um funcionrio preciso remover o acesso s informaes da instituio, calcular e pagar a indenizao caso se aplique e alterar o estado do funcionrio. Percebe-se que cada classe tem a sua prpria implementao, apesar de compartilharem o mesmo nome do mtodo. Padro ODMG 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... Portabilidade a capacidade de executar um programa de aplicao particular em diferentes sistemas com modificaes mnimas no programa. (Vieira, 2001) Interoperabilidade se refere habilidade de uma aplicao acessar mltiplos SGDBs distintos. O padro ODGM (Object Database Management Group) se baseia em: Modelo de Objetos Linguagem de Definio de Objetos (ODL) Linguagem de Consulta a Objetos (OQL) Acoplamento (binding) Elmasri e Navathe, 2005, dizem que o modelo de objetos fornece os tipos de dados, os construtores de tipos e outros conceitos que podem ser utilizados na ODL para especificar esquemas de BDs. O modelo define objetos e literais no qual os objetos possuem um OID e um estado, ou valor atual, j as literais possuem apenas um valor sendo basicamente uma constante. Tanto os objetos como as literais podem ser do tipo atmico, coleo ou estruturado. A linguagem ODL usada para criar a definio dos tipos de objetos, por isso deve suportar todos os construtores semnticos do Modelo de Objetos. apenas uma linguagem de definio e independente de qualquer linguagem de programao, sendo utilizado o binding para a LPOO especfica. A OQL uma linguagem declarativa no procedural que pode ser utilizada dentro linguagens de programao. A OQL baseada na SQL, adicionando conceitos do padro ODMG como OID, objetos complexos, herana, polimorfismo, relacionamento e operaes. O binding, ou acoplamento, especifica como as estruturas em ODL so mapeadas para estruturas na LPOO escolhida, como C# por exemplo. o binding que converte o objeto do BD para a aplicao. Banco de Dados Objeto Relacional Com a evoluo dos paradigmas de programao e a gradativa manipulao de dados complexos, houve a necessidade da evoluo dos SGDBs de forma a acompanhar e atender as exigncias requisitadas. Dessa evoluo nascem os SGBDOO, os SGBDOR e evolues nos SGBDR. Analisando de forma sucinta o SGBDOO, temos respectivamente um banco que facilita a aproximao do mundo real, devido a trabalhar com orientao a objetos e suas caractersticas (herana, encapsulamento, abstrao, polimorfismo), um banco que permite a manipulao de dados complexos, mesmo com desempenho inferior ao relacional e que possui um pobre nvel nas consultas dos dados. Continuando a analise s que de um SGBDR, temos um banco que atua a um bom tempo no mercado pelo fato de se ter anos de desenvolvimento, investimentos e aperfeioamentos, um banco com desempenho superior aos SGBDOO, um SGBD que apresenta ricas consultas e que possui dificuldade em manipular dados complexos. Como podemos notar no pargrafo acima temos em cada tipo de SGBD citado, vantagens e desvantagens nos mesmos. Ento se notou a carncia de um SGBD que tivesse a capacidade de manipular dados complexos, que se adequasse ao paradigma de programao atual (orientao a objetos), que tivesse bom desempenho e que demonstrasse ricas consultas de dados. a partir dessas vantagens de cada SGBD que se fundamenta o SGBDOR. O SGBDOR emprega um modelo que coloca a orientao a objetos em tabelas, unindo os dois paradigmas em um s. Utiliza os conceitos de supertabelas, supertipos, herana, reutilizao de cdigo, encapsulamento, controle de identidade de objetos (OID), referncia a objetos, consultas avanadas e alta proteo dos dados. Com esse novo conceito surgiu necessidade de uma linguagem padro para o uso com o SGBDOR. a partir da que nasce o SQL-3, que na verdade uma extenso do SQL-2 complementado com caractersticas do modelo objeto-relacional. Alguns exemplos de aplicaes que utilizam SGBDOR so os seguintes: armazenamento de imagens (obtidas por satlite ou de alguma outra forma digital); projetos de arquitetura; dados sobre o espao (regies geogrficas, criao de mapas), sistemas de informaes geoespaciais, entre outros. Apesar de ser um conceito relativamente novo no mundo da tecnologia de banco de dados, o SGBDOR tem sido uma das promessas capaz de substituir o SGBDR e o SGBDOO. O fato de obter o melhor do SGBDOO e do SGBDR faz tender que seja o modelo de banco de dados ideal para atender as necessidades atuais.

4.2. SOBRE ORM MAPEAMENTO OBJETO RELACIONAL

Mapeamento Mapear, no contexto desse trabalho, consiste em preencher o objeto de negcio a partir de um banco de dados relacional. As propriedades do objeto so relacionadas com as colunas das tabelas no banco de dados. O objeto Aluno tem sua propriedade Nome relacionado com a coluna NOME da tabela ALUNO, por exemplo. A relao entre propriedade do modelo OO e coluna do Modelo Relacional no precisa ser 1:1, podendo ser N:M. Uma propriedade pode ser a juno de duas ou mais colunas e vice-versa. Porm, o mais comum a relao 1:1. (Um para um. Uma entidade em A est associada no mximo a uma entidade em B, e uma entidade em B est associada no mximo a uma entidade em A. Um para muitos. Uma entidade em A est associada a vrias entidades em B. Uma entidade em B deve estar associada a uma nica entidade em A). Muitos para um. Uma entidade em A est associada a no mximo uma entidade em B. Uma entidade em B, entretanto, pode estar associada a um nmero qualquer de entidades em A. Muitos para muitos. Uma entidade em A est associada a qualquer nmero de entidades em B e uma entidade em B est associada a um nmero qualquer de entidades em A.

4.2.1 COMO DESENVOLVER USANDO MR OO E BD RELACIONAL

Os sistemas comerciais de gerncia de banco de dados, baseados principalmente no modelo relacional de dados, obtiveram ampla aceitao e divulgao, em diversos nveis de escala de aplicao. Entretanto, tais sistemas mostraram-se inadequados para uma ampla gama de aplicaes que surgiu com a ampliao do poder de processamento dos computadores modernos. Essas aplicaes incluem, entre outras, atividades em projetos de engenharia (sistemas CASE para engenharia de software, CAD para desenvolvimento de hardware e apoio engenharia mecnica, engenharia civil e arquitetura), autoria e manipulao de documentos eletrnicos, manufatura e controle. O paradigma de orientao a objetos surgiu como uma alternativa para a modelagem de bancos de dados que permitiria incorporar muitos dos conceitos propostos pelas outras abordagens alternativas ao modelo relacional de dados. Embora inicialmente tenha tambm sofrido pelo excesso de abordagens no-compatveis, sua ampla aceitao motivou esforos de padronizao que vm unificando o chamado modelo de objetos. Deste modo, o desenvolvimento de sistemas gerenciadores de bases de objetos (SGBOs) surgiu como uma alternativa com o potencial adequado para atender demanda de tais aplicaes, sendo por este motivo objeto de intenso interesse de pesquisa e desenvolvimento. Antevia-se que tais sistemas ofereceriam o ferramental necessrio para as novas categorias de aplicaes que no estavam sendo adequadamente suportadas por bases de dados relacionais.

4.2.2 O QUE ORM E PARA QUE UTILIZADO?

Visando aproveitar ao mximo o conceito de Orientao a Objetos, o Mapeamento Objeto-Relacional (ORM) consiste em um framework que tem por objetivo suprir as disparidades entre o paradigma orientado a objetos e o modelo entidade-relacional, criando uma ponte (mapeamento) entre o modelo relacional e o modelo orientado a objetos. Ou seja, ao trabalhar com essa abordagem, possvel a construo de sistemas utilizando o paradigma orientado a objetos, cujo os objetos so persistidos em um banco de dados relacional.Um ORM possui diversos mtodos bsicos que iro realizar a interao entre a aplicao e o banco de dados, se responsabilizando por algumas tarefas bsicas, como o CRUD (Create, Read, Update e Delete), por exemplo. Alm disso, o ORM ir gerenciar os detalhes de mapeamento de um conjunto de objetos para um banco de dados.O ORM reduz ao mnimo a necessidade de escrever cdigos de conexo e queries SQL. Dessa forma, possvel obter uma reduo significativa nos cdigos da aplicao, gerando um cdigo mais elegante e consequentemente ampliando a facilidade de posteriores manutenes na aplicao. importante deixar claro que a utilizao de um framework ORM no substitui totalmente a necessidade da utilizao de SQL na sua aplicao. Embora o ORM satisfaa a maior parte das necessidades de interao com o banco de dados, em alguns casos, haver a necessidade, por exemplo, de consultas mais customizadas, que tero que ser realizadas por meio de SQL.A forma como o ORM ir realizar o mapeamento depender especificamente do framework utilizado. Neste artigo, iremos abordar algumas solues e vantagens agregadas com o uso do NHibernate e Entity Framework dois dos mais conhecidos frameworks voltados especificamente para ambientes .NET e algumas ferramentas que auxiliam sua utilizao.

4.2.3 FERRAMENTAS DISPONVEIS HOJE NO MERCADO

Existem mais de 40 ferramentas ORM, 5 disponveis para a maioria das linguagens de programao. As principais Ferramentas ORM so o HIBERNATE, LINQCONNECT, LLBLGEN, SUBSONIC, PERSISTORO, NHIBERNATE a ferramenta preferida dos desenvolvedores.Object Relational Mapping (ORM) so ferramentas ou frameworks complexos que realizam o mapeamento do objeto no modelo relacional de forma automatizada e transparente (Bauer, King, 2005). Algumas ferramentas reduzem significantemente o trabalho braal dos desenvolvedores para persistir os objetos. Em Bauer et King (2005 p. 31-39) os autores fazem uma anlise sobre a importncia das ferramentas ORM. Eles afirmam que as ferramentas trazem um ganho considervel em termos de produtividade para o projeto. Afirmam ainda que, embora ocorra certa penalidade no desempenho da aplicao, isso se torna vlido visto o ganho em produtividade. Alegam tambm que, desenvolver uma aplicao com bom desempenho para diversos tipos de banco de dados uma tarefa rdua e nem sempre se escolhem os comandos mais performticos, o que no ocorre em uma ferramenta ORM com anos no mercado. Esta possui conhecimento suficiente para decidir qual o melhor comando para cada banco e, assim, compensar a questo de desempenho perdido. Embora as ferramentas ORM facilitem o trabalho do desenvolvedor em relao persistncia de dados relacionais, importante o conhecimento do mesmo sobre a relao de suas tabelas no banco e sobre a linguagem SQL. Assim, possvel ter um cdigo de maior qualidade no acesso ao banco, pois o desenvolvedor ainda precisa especificar como ser realizado o acesso base de dados. Hibernate Hibernate uma das ferramentas ORM mais utilizadas no ambiente corporativo. Atende a todos aos requisitos de uma ORM. Implementada no ambiente Java com cdigo aberto ( OpenSource ), o Hibernate prov uma arquitetura flexvel e configurvel (Bauer; King, 2005). Essa ferramenta disponibiliza algumas maneiras de obter dados do banco, atravs de uma linguagem de consulta prpria (Hibernate Query Language ou HQL), parecida com SQL e uma API de consulta por critrios (QBE), um modo seguro para expressar consultas. Assim, o desenvolvedor no precisa se preocupar com uma linguagem diferente para cada tipo de banco. A ferramenta, no entanto, aceita linguagem SQL, ideal para solues complexas ou que necessitem de um melhor desempenho. Segundo Bauer et King (2005), um dos objetivos do Hibernate automatizar 95% do trabalho de persistncia realizado pelo desenvolvimento sem uma ORM, resultando em um ganho de produtividade, um requisito importante em grandes projetos. A forma como deve ser feito o mapeamento das tabelas no modelo relacional para os objetos da aplicao OO definida atravs de arquivos de configurao escritos em XML. Em alguns casos mais simples, o prprio Hibernate configura o mapeamento, porm Bauer afirma que essa deciso sensvel, e pode no ter sucesso em casos com maior complexidade. Existe tambm um projeto de cdigo aberto similar ao Hibernate para o ambiente .NET chamado NHibernate. NHibernateO NHibernate um ORM Open-Source, que surgiu atravs do Hibernate, voltado exclusivamente para desenvolvedores Java, sendo a princpio era um port do Hibernate, mas passou a ser um projeto independente. Sendo assim, apresenta uma certa maturidade, principalmente por ser um framework com uma equipe colaborando ativamente.Simplificadamente, o NHibernate funciona da seguinte maneira: na aplicao realizada a persistncia dos objetos normalmente por mapeamento object/relational em um arquivo XML, relacionando tabelas com classes e atributos. Alm disso, necessria a criao de alguns arquivos de configurao que permita que o NHibernate se conecte ao banco e realize as interaes. Esses arquivos contm informaes referentes onde o NHibernate dever ir buscar e persistir os dados. Normalmente, essas informaes so inseridas em uma seo dentro do arquivo de configurao da aplicao (Web.Config ou App.Config).VantagensA utilizao do NHibernate trs diversas vantagens durante o desenvolvimento de um projeto. Por ser um port do Hibernate, o framework apresenta uma certa maturidade, proporcionando um projeto com um maior nvel de confiabilidade. Alm disso, o NHibernate consiste em um framework Open-Source, resultando em uma economia de custos no desenvolvimento do projeto. Uma outra vantagem do NHibernate possuir um suporte ativo, uma boa documentao e diversos fruns sobre o tema. O NHibernate oferece algumas facilidades em relao a mudanas, tanto no mapeamento quanto no banco de dados, sendo possvel fazer com que o NHibernate crie ou atualize o banco de dados para coincidir com o modelo na aplicao.DesvantagensUm dos pontos do NHibernate que podem ser considerados negativos a alta curva de aprendizado devido a complexidade que o framework apresenta. De fato, o que acontece que existem muitas configuraes e otimizaes que so desconhecidas para a maioria dos profissionais que o utilizam, requerendo mais estudo e dedicao de quem ir utiliz-la. Uma outra desvantagem o trabalho em que se tem para gerar todos os arquivos XML necessrios para a realizao da persistncia.ConfORMO ConfORM uma ferramenta que surgiu da necessidade de automatizar o processo de mapeamento do NHibernate atravs de convenes, ou seja, regras que determinam um padro a ser seguido. A principal vantagem do ConfORM essa possibilidade de definir regras para o mapeamento, o que torna possvel determinar que toda propriedade chamada Nome, por exemplo, dever ter um tamanho de 100 caracteres e no permitir valores nulos. Sendo assim, se no seu projeto contiver 10 propriedades Nome, todas sero mapeadas utilizando essa regra. Diferentemente do NHibernate, o arquivo HbmMapping ser gerado automaticamente atravs das convenes estabelecidas no projeto, sendo posteriormente adicionados diretamente configurao do NHibernate. Atravs do ConfORM, possvel pular o mapeamento em XML, aumentando a produtividade, alm de proporcionar uma facilidade de manuteno, pois qualquer alterao ser realizada nos arquivos de conveno e no nos arquivos de mapeamento do projeto. Porm, por ser uma tecnologia relativamente nova, a documentao escassa, gerando certa dificuldade em sua utilizao.Entity FrameworkO Entity Framework consiste em um framework ORM criado pela Microsoft visando ocultar a complexidade das classes ADO .NET e permitir o mapeamento de tabelas como objetos, abstraindo a camada de acesso aos dados. Assim como o NHibernate, o Entity Framework tambm Open-Source, podendo ser encontrado aqui.Alm do SQL Server, o Entity Framework oferece suporte a outros bancos de dados como Oracle, DB2, MySQL, entre outros.Ibatis Ibatis uma ferramenta utilizada em Java, Ruby e .NET. Oferece ao usurio uma camada simples de separao entre a aplicao OO e o modelo relacional. O mapeamento dos objetos realizado atravs de documentos XML. A escrita dos documentos de configurao simples, no exige declaraes complexas para unir tabelas, por exemplo, (IBATIS, on-line ). Essa ferramenta suporta diversos tipos de bancos de dados e tipos diversos de projeto OO na aplicao so bastante tolerantes ao projeto do modelo das tabelas. Alguns frameworks tm dificuldade em se integrar com projetos mal-elaborados, porm o Ibatis possui certa tolerncia a esse tipo de projeto. Podendo assim ser uma interessante soluo para o caso em que se tem uma aplicao OO tentando se comunicar com um banco de dados relacional (IBATIS, on-line ). Para o auxlio da gerao dos arquivos de configurao em XML e outros artefatos, existe um produto chamado Ibator. Esse produto possui algumas formas de distribuies, uma delas como plugin para o Eclipse (IDE famosa para desenvolvimento em Java), onde, alm dos arquivos de configurao podem ser geradas classes de persistncia em Java, e executveis .JAR caso o usurio utilize outra ferramenta alm do Eclipse (Ibatis, on-line ). CocoBase O CocoBase um framework ORM para ambiente Java que oferece aumentos de at 25% de produtividade. O fabricante afirma ser o nico framework ORM comercial com certificao JPA (API de Persistncia do Java) e que, em muitos casos, mais eficiente que um framework livre de cdigo aberto. O fabricante afirma ainda ter cerca de 200% a 400% mais desempenho que o Hibernate e outras ferramentas (CocoBase c, on-line ). No documento (CocoBase b, on-line) entende-se que o mapeamento realizado pelo CocoBase realizado de forma transparente e dinmica. Transparente, pois seu mecanismo de persistncia no precisa herdar ou implementar classes diferentes e seus objetos e fontes ficam intactos. A arquitetura dinmica do CocoBase permite que o mesmo mapeamento seja compartilhado por: modelos de Objetos, Servlet, JSP, Applets, EJB e objetos Java. Isso implica em diversos componentes distintos utilizando o mesmo mapeamento no banco de dados. (CocoBase a, on-line ). A respeito dos artefatos, seus arquivos de configurao podem ser salvos em qualquer formato, XML, binrio, bancos de dados, etc. O CocoBase possui uma ferramenta chamada de Magic Mapper que auxilia na criao dos mapeamentos automaticamente, no necessitando o desenvolvedor criar um mapeamento manualmente para cada relao tabela / classe. Possui aceitao com diversas ferramentas para ambiente Java, como Eclipse, no qual, atravs de um plug-in , facilita-se a gerao dos artefatos (CocoBase c, on-line ).

4.2.4 VANTAGENS E DESVANTAGENS DE USAR UMA F. ORM

Vantagens do Mapeamento Objeto Relacional De acordo com Esjug (2007, p.14) implementar um mapeamento objeto relacional pode ser considerada uma tarefa complexa, porm esta tecnologia possui algumas vantagens: Produtividade com a eliminao dos cdigos SQL no cdigo fonte, as classes passam a ser mais simples e com isso o sistema desenvolvido em menor tempo. Manutenibilidade por reduzir o nmero de linhas do cdigo fonte do sistema, menor ser o trabalho de manuteno do sistema. Desempenho o tempo economizado no desenvolvimento, pode ser dedicado a programar otimizaes do sistema. Independncia de Fornecedor por mais que um banco de dados utilize a mesma linguagem SQL, alguns comandos, tipos de dados, podem ser diferentes de um banco para outro. O objetivo construir um cdigo mais uniforme e que utilize de fato as caractersticas da linguagem orientada a objetos. Sistemas que programem a maior parte da lgica da aplicao no banco de dados, no iro se beneficiar de mapeamentos objeto relacional, pois no h necessidade de um modelo de objetos para trabalhar a lgica no sistema (LINHARES, p. 01).

5. concluso

O trabalho realizado reforou, de maneira aproveitvel, com os elementos do Banco de Dados O. Objeto, em suma, h atualmente produtos que utilizam uma tecnologia que est, acredito, amadurecida, atendendo a muitas aplicaes. Entretanto, uma necessidade de se estender as funcionalidades desses servios de bancos de dados para qualquer aplicao desenvolvidas em frameworks de objetos distribudos. Para atingir este objetivo, as pesquisas seguem diretrizes fundamentais - generalidade e adaptabilidade. possvel implementar um sistema complexo usando um SGBD Orientado a Objetos. A manipulao de objetos, aumenta a performance e os ganhos de desempenho de linguagens orientadas a objeto como o Java e as linguagens da plataforma .NET. Permite maior desempenho e reduo no tempo de desenvolvimento do software, j que no necessrio traduzir o modelo orientado a objeto para um modelo relacional, eliminando a complexidade extra e a perda de performance com a converso para outros formatos como SQL. ma outra vantagem desse banco de no precisar de um DBA, pois sua administrao de responsabilidade do prprio analista de sistemas. Por ser uma tecnologia nova, muitas empresas preferem no arriscar, pois o modelo relacional ainda muito empregado nos dias atuais. Migrar de uma tecnologia bem difundida no mercado para uma que est apenas comeando seria muito arriscado. Essa uma das desvantagens do BD OO. O que ocasiona poucas aplicaes nessa nova tecnologia. Muitos ainda no confiam na sua integridade. medida que a complexidade for aumentando, as empresas vo cada vez mais buscar por alternativas que consigam adequar s suas necessidades. 6.REFERNCIASBENEGA, Thiago Vicente; Padres de Projeto em Modelagem Orientada a Objetos Persistida em Banco de Dados Relacional. Disponvel em Acesso em 09/10/2013.

BOSCARIOLI, Clodis; BEZERRA, Anderson; BENEDICTO, Marcos de; DELMIRO, Gilliard. Uma Reflexo sobre Banco de Dados Orientados a Objetos. Disponvel em < http://conged.deinfo.uepg.br/artigo4.pdf> Acesso em 09/10/2013

CAMPOS, Maria Luiza M.; KLEIN, Lawrence Z.; TANAKA, Astrio K. A Tecnologia Objeto-Relacional em Ambientes de Data Warehouse: Uso de Sries Temporais como Tipo de Dado No Convencional. Disponvel em . Acesso em 09/10/2013.

DEITEL, H. M. C# - Como Programar / H. M. Deitel; P. J. [outros autores: P.J. Deitel; J. Listfield; T. R. Nieto; C. Yaeger; M. Zlatkina]; trad. Joo Eduardo N. Tortello; reviso tcnica lvaro Antunes. So Paulo: Pearsom Makron Books, 2003.

DEITEL, P. J. Java, Como Programar / Paul Deitel e Harvey Deitel; trad. Edson Furmankiewcz; ver. Tcnica Fbio Lus Picelli Lucchini. - 8.ed So Paulo: Pearson Prentice Hall, 2010

ELMASRI, Ramez. Sistemas de Banco de Dados. Ramez Elmasri e Shamkant B. Navathe; revisor tcnico Luis Ricardo de Figueiredo. So Paulo: Addison Wesley, 2005.

KHOSHAFIAN, Setrag Banco de Dados Orientado a Objeto / Setrag Khoshafian; trad. Tryte Informtica. Rio de Janeiro: Infobook, 1994.

NASSU, Eugnio A. Banco de Dados Orientado a Objetos / Eugnio A. Nassu, Valdemar W. Setzer So Paulo: Blucher, 1999.

RANIERI, Brbara; Veja o que ORM e os Frameworks Disponveis para .NET. Disponvel em Acesso em 09/10/2013.

GUERRA, Rafael Laurino; ZAINA, Dra. Luciana Aparecida Martinez; Mapeamento Objeto Relacional: Um Estudo de Caso Utilizando o Hibernate - Faculdade de Tecnologia de Indaiatuba FATEC-ID. Disponvel em < https://www.google.com.br/search?q=MAPEAMENTO+OBJETO+RELACIONAL%3A+UM+ESTUDO+DE+CASO+UTILIZANDO+O+HIBERNATE+Rafael+Laurino+GUERRA%2C+Dra.+Luciana+Aparecida+Martinez+ZAINA+Faculdade+de+Tecnologia+de+Indaiatuba+%E2%80%93+FATEC-ID&oq=MAPEAMENTO+OBJETO+RELACIONAL%3A+UM+ESTUDO+DE+CASO+UTILIZANDO+O+HIBERNATE+Rafael+Laurino+GUERRA%2C+Dra.+Luciana+Aparecida+Martinez+ZAINA+Faculdade+de+Tecnologia+de+Indaiatuba+%E2%80%93+FATEC-ID&aqs=chrome..69i57.1159j0&sourceid=chrome&espv=210&es_sm=122&ie=UTF-8> Acesso em 09/10/2013.