Você está na página 1de 35

Banco de dados

orientados a objetos
VINICIUS HASTENREITER RODRIGUES
EMERSOM JOSÉ FERNANDES
MAURÍCIO GALDINO DOS SANTOS
ROMÁRIO JOSÉ HUEBRA
Sumário

 Introdução
 O que é?
 Histórico
 Funcionamento Básico
 Onde pode ser Aplicado
 O que é objectivity
 Características do Objectivity
Sumário

 Funcionamento do Objectivity
 Exemplo de uso do Objectivity
 Exemplo de uso prático do Objectivity
 Diferenças entre os bancos de dados orientados a objetos e os relacionais
 Vantagens
 Desvantagens
 Empresas que utilizam
 Conclusão
 Referencias
Introdução

 Um banco de dados orientado a objeto é um banco em que cada informação é


armazenada na forma de objetos, e só pode ser manipulada através de métodos
definidos pela classe que esteja o objeto.
 Objeto é uma forma com que a informação pode ser representada normalmente
dentro de uma linguagem de programação moderna, com esse formato de banco
de dados se torna possível armazenar objetos dentro do banco de dados.
 Os banco de dados orientados a objetos mais populares são: Obejectivity,
ObjectDB, ZODB, JODB, Perst.
O que é?

 É um formato de banco de dados que surgiu com o intuito de fornecer uma


melhor integração com as linguagens de programação modernas orientadas a
objeto como por exemplo Java, C#, Python e Delphi. Nesse caso os objetos são
armazenados diretamente no banco de dados.
 Isso se tornou necessário pela dificuldade de manipular dados complexos em
bancos de dados relacionais.
Histórico

 Banco de dados OO surgiu na metade dos anos 80.


 Com o objetivo de tornar os objetos persistentes.
 Graças a grandes trabalhos como Encore-Ob/Server (Brown University), IRIS
(Hewlett-Packard), ORION (Microelectronics and Computer Technology
Corporation or MCC) e Zeitgeist (Texas Instruments).
 Na metade dos anos 90 surgiram os produtos comerciais como o GemStone
(Servio Logic, alterado para GemStone Systems), Gbase (Graphael) e Vbase
(Ontologic).
Funcionamento básico

 Os bancos de dados orientados a objetos guardam os dados diretamente em forma


de objetos.
 Esses objetos possuem as mesmas propriedades e características de uma
linguagem orientada a objetos
 Classe
 Superclasses
 Atributos
 Herança
 Visibilidade
Funcionamento básico

 Grande maioria oferece recursos para realização de consultas


 A ODMG (Object Data Management Group) e a OQL (Object Query Language)
se juntaram para criar um padrão para integração entre as consultas e a navegação
 Com esse modelo o acesso a dados é mais rápido, já que o banco de dados segue
ponteiros indo diretamente ao objeto requisitado
 Para a criação do modelo do banco de dados, é possível usar os mesmos tipos de
dados usados nas classes
O que é Objectivity

 Objectivity é um banco de dados orientado a objetos


 Compatível em múltiplos plataformas de hardware, sistemas operacionais
 Não utiliza uma camada de mapeamento objeto-relacional para armazenar objetos
em um banco de dados relacional, reduzindo significativamente os custos de
desenvolvimento e manutenção.
 Objectivity suporta muitos modelos de dados. As organizações podem distribuir
os aplicativos e deixar os dados em um servidor centralizado, ou distribuir os
dados através de centenas ou milhares de computadores e suporta aplicações
centralizadas, ou distribuir os aplicativos e os dados.
Características do Objectivity

 Arquitetura distribuída
 Simplicidade
 Poder
 Velocidade
 Desempenho
Federated database system

 É um arquivo onde vários bancos de dados serão mapeados um banco de dados


 Schema - esquema do banco de dados contendo as classes
 Catálogo Global - informações sobre o federated database
 Dados - contém bancos de dados e os containers
Federated database system
Objectivity - Níveis

 1º nível é o Dados
 Contém um database para cada aplicação
 2º nível é o Database
 Cada database representa uma aplicação, contendo os containers das aplicações
 3º nível são os containers
 Contém unidades chamadas objetos amarzenados
 4º nível são os objetos armazenados
 São os objetos armazenados pela aplicação
Objectivity - Níveis
Objectivity - Níveis
Funcionamento do Objectivity

 Ele trabalha com as linguagens C++, C#, Java e Python.


 Ele grava objetos de forma persistente no banco de dados.
 Objectivity usa uma hierarquia de armazenamento distribuído.
Funcionamento do Objectivity

 Funcionando desta forma é possível trabalhar com milhões de terabytes de dados.


 Os objetos podem ser ligados uns aos outros de forma unidirecional ou
bidirecional, como acontece com as chaves estrangeiras em modelos relacionais.
 Para ligar os objetos com cardinalidade de 1:1, 1:n, n:1 e n:m, fazendo isso com
ID dos objetos, sendo um link direto para o objeto tornando o sistema mais
rápido.
 O uso de ID dos objetos também pode auxiliar no armazenamento de árvores,
listas e tabelas hash.
 Isso elimina o uso do JOIN usado no modelo relacional.
Funcionamento do Objectivity

 Para que objetos de uma classe possam ser salvos no banco de dados e classe
desse objeto precisa extender a classe ooObj que pertence ao Objectivity
 A classe ooObj é uma classe que dá a outras classes a capacidade de gravar no
banco de dados. Ela pode gravar objetos e containers no federated database.
 Ela possui métodos de persistir dados, modificar, copiar, testar, buscar
informações e várias outras operações.
Session
Inserção

Dentro de setHelloMsg o método markModified é chamado para que o


objeto seja gravado
Update

 O update é automático
 Se você salvar o objeto da forma correta, quando ao realizar os métodos set o
objeto será automaticamente atualizado.
Busca

 Não se esqueça existe a busca usando métodos da classe ooObj e usando o Parallel
Query
 Buscas usando Parallel Query
 Pagina 485 sobre java
 This example starts a parallel query to search a federated database for Rectangle
objects with an area greater than 10. … // Start a read transaction with the MROW
concurrency policy session.begin(); session.setOpenMode(oo.openReadOnly);
session.setMrowMode(oo.MROW); ooFDObj fd = session.getFD(); // Obtain an
initialized iterator for a parallel query Iterator itr = fd.parallelScan("Rectangle",
"area>10"); // Advance the iterator and process each object while (itr.hasNext()) { …
} session->commit();
 página 47 também possui informações sobre busca
Delete

 Para deletar um objeto é preciso instanciar um objeto


 Buscar suas informações no banco de dados
 E chamar o método delete()
Exemplo de uso do Objectivity

 Aplicações de uso intensivo de dados ou em tempo real, que manipulam dados


inter-relacionadas de alta complexidade.
 Redes inteligentes e sistemas de gerenciamento de elementos. Implantações
consideráveis foram o wireless SprintPCS e redes do satélite Iridium.
 Sistemas de computadores em grid, que fazem uso de computadores em múltiplos
locais gerando um supercomputador virtual.
 Usado em aplicações de astrofísica, física de altas energias, fusão, ciências da
terra, hidrografia e aplicações de bioinformática que possuem bases de dados
enormes.
Exemplo de uso prático do Objectivity

 No exemplo a seguir criamos um programa que grava um objeto da classe


HelloObject contendo uma string "HelloWorld" no banco de dados e lemos ela
depois
 Para isso precisamos criar uma arquivo chamado hello.boot e hello.fdb, esses
arquivos são os nossos bancos de dados onde será guardados os dados, esse
arquivo também é importado para o Objectivity
 No linha 35 fazemos referência ao nosso arquivo hello.boot
 O programa insere informações durante a execução durante todo o processo
 Nesse processo ele gera um esquema de banco de dados automático para a classe
HelloObject
Diferenças entre os bancos de dados orientados a
objetos e os relacionais

 O banco de dados Orientado a objetos tem como o objetivo o encapsulamento.


Onde os dados só podem ser utilizados pelos métodos dessa classe
 o banco de dados relacional usa a independência dos dados. São separados do
processamento e normalizados, os dados ficam livres para serem usados por
diversas aplicações
Vantagens

 Tecnologia avançada
 Suporte de dados versátil
 Escalabilidade
 Análises poderosas
 Rápido em sistemas complexos
Desvantagens

 Em consultas mais simples ela poderá ser mais lento que o modelo relacional
 Perda de interoperabilidade com ferramentas do modelo relacional, como
ferramentas de relatório, OLAP e padrões de recuperação
 Perdem operações matemáticas nas consultas, mas alguns modelos suportam
consultas SQL
Empresas e Produtos que Utilizam
Onde pode ser aplicado

 O objectivity pode ser usado em aplicações intencivas ou de tempo real de dados


que manipulam dados altamente complexos e in-terrelacionados. Pode ser
incorporado em um produto de software, hardware ou como parte do governo,
empresa, internet e empresas móveis e etc.
Conclusão

Muitos dizem que os bancos de dados orientados a objetos


fracassaram, eles ainda possuem seu espaço no mercado. E
ainda continuamos tentando integrar bancos de dados e
linguagens de programação orientadas a objeto, o principal
exemplo é o ORM.
Referências

 OBJECTIVITY. Apresentando Objectivity. Disponível em:


<http://www.objectivity.com/about-us/>. Acesso em: 20/05/2015.
 GSNMAGAZINE. Universidade de Georgetown torneiras Objetividade para
a investigação Big Data. Disponível em:
<http://www.gsnmagazine.com/node/29210?c=cyber_security>. Acesso em:
20/05/2015.
 OBJECTIVITY. Clientes. Disponível em:<http://www.objectivity.com/about-
us/customers/> . Acesso em: 20/05/2015.
 OBJECTIVITY. Benefícios. Disponível em:
<http://www.objectivity.com/products/objectivitydb/>. Acesso em:
20/05/2015.

Você também pode gostar