Buscar

TCC DEBORA ANGEL DE ALMEIDA

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Betim 
2017 
 
DÉBORA ANGEL DE ALMEIDA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
BANCO DE DADOS ORIENTADO A OBJETOS: 
TRATANDO A INCOMPATIBILIDADE DE DADOS 
 
 
 
 
Betim 
2017 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
BANCO DE DADOS ORIENTADO A OBJETOS: 
TRATANDO A INCOMPATIBILIDADE DE DADOS 
 
 
Trabalho de Conclusão de Curso apresentado 
à Faculdade Pitágoras - Sistema de Educação 
Superior Sociedade LTDA, como requisito 
parcial para a obtenção do título de graduado 
em Ciência da Computação. 
Orientador: Cynthia Da Silva Barbosa 
 
 
 
DÉBORA ANGEL DE ALMEIDA 
 
 
 
 
 
 
 
 
 
 
 
 
DÉBORA ANGEL DE ALMEIDA 
 
 
 
 
 
BANCO DE DADOS ORIENTADO A OBJETOS: 
TRATANDO A INCOMPATIBILIDADE DE DADOS 
 
 
Trabalho de Conclusão de Curso apresentado 
à Faculdade Pitágoras - Sistema de Educação 
Superior Sociedade LTDA, como requisito 
parcial para a obtenção do título de graduado 
em Ciência da Computação. 
 
 
BANCA EXAMINADORA 
 
 
Prof(ª). Titulação Nome do Professor(a) 
 
 
Prof(ª). Titulação Nome do Professor(a) 
 
 
Prof(ª). Titulação Nome do Professor(a) 
 
 
Betim, 04 de dezembro de 2017 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Dedico o presente trabalho à minha família, 
que foi meu alicerce desde sempre... 
 
 
 
DE ALMEIDA, Débora Angel. Banco de Dados Orientado a Objetos: Tratando a 
Incompatibilidade de Dados. 2017. 35 folhas. Trabalho de Conclusão de Curso 
(Graduação em Ciência da Computação) – Faculdade Pitágoras - Sistema de 
Educação Superior Sociedade LTDA, Betim, 2017. 
 
RESUMO 
 
Persistir dados refere-se à habilidade de armazenar dados em um local onde eles 
possam ser recuperados futuramente. A necessidade dessa persistência cresce a 
cada dia devido ao crescimento proporcional de informações que precisam ser 
armazenadas em vários tipos de aplicações. Por isso então, foram criados os 
Sistemas de Gerenciamento de Banco de Dados (SGBD) que são conjuntos de 
programas de softwares que permitem aos usuários criar, editar, atualizar, 
armazenar e recuperar dados em tabelas de banco de dados. Porém, com as 
constantes inovações em hardware, surgiram nos anos 80 novas aplicações que 
precisavam da utilização intensiva de dados, como dados multimídia. Sendo assim, 
o modelo relacional tornou-se inadequado por não atender a essas necessidades. 
Através da combinação de SGBD tradicionais e programação orientada a objetos 
teve origem O Sistema de Gerenciamento de Banco de Dados Orientado a Objetos 
(SGBDOO), que surgiu como uma opção para solucionar esse tipo de problema. 
Diante disso, o tema proposto será objeto de análise e conhecimento, para 
demonstrar a importância e benefícios consequentes da utilização de SGBDOO, 
esclarecendo dúvidas e consolidando conceitos sobre esta tecnologia. 
 
Palavras-chave: Banco de Dados; Orientação a Objeto; Sistema Gerenciador de 
Banco de Dados. 
 
 
 
 
DE ALMEIDA, Débora Angel. Object Oriented Database: Handling Data 
Incompatibility. 2017. 35 folhas. Trabalho de Conclusão de Curso (Graduação em 
Ciência da Computação) – Faculdade Pitágoras - Sistema de Educação Superior 
Sociedade LTDA, Betim, 2017. 
ABSTRACT 
Persisting data refers to the ability to store data in a location where it can be retrieved 
in the future. The need for this persistence grows every day due to the proportional 
growth of information that needs to be stored in various types of applications. For this 
reason, Database Management Systems (DBMS) were created, which are sets of 
software programs that allow users to create, edit, update, store and retrieve data in 
database tables. However, with the constant innovations in hardware, in the 1980s 
new applications appeared that needed the intensive use of data, such as multimedia 
data. Thus, the relational model became inadequate because it did not meet those 
needs. Through the combination of traditional DBMS and object-oriented 
programming, the Object Oriented Database Management System (OODBMS) 
originated as an option to solve this type of problem. Therefore, the proposed theme 
will be the subject of analysis and knowledge, to demonstrate the importance and 
consequent benefits of using SGBDOO, clarifying doubts and consolidating concepts 
about this technology. 
 
 
 
Key-words: Database; Object Orientation; Database Management System. 
 
 
 
LISTA DE ILUSTRAÇÕES 
 
 
Figura 1 – Exemplo de Modelo Relacional .............................................................. 9 
Figura 2 – Exemplo de Modelo Entidade-Relacionamento ...................................... 10 
Figura 3 – Exemplo de Declaração de Classe ......................................................... 11 
Figura 4 – Exemplo de Herança entre Classes ....................................................... 12 
Figura 5 – Exemplo de BDOO ................................................................................. 14 
Figura 6 – Estrutura de Armazenamento Multidimensional ..................................... 22 
 
 
 
 
LISTA DE TABELAS 
 
 
Tabela 1 – Componentes do Caché ........................................................................ 23 
Tabela 2 – Características dos SGBDOOs .............................................................. 23 
 
 
 
 
 
 
LISTA DE ABREVIATURAS E SIGLAS 
 
BDOO Banco de Dados Orientado a Objetos 
DLL Dynamic-link library (Biblioteca de Vínculo Dinâmico) 
ODL Object Definition Language (Linguagem de definição de objeto) 
ODMG Object Data Base Management Group (Grupo de gerenciamento de 
banco de dados de objetos) 
ODQL Object Database Query Language (Linguagem de consulta de banco 
de dados de objeto). 
OID Identificador de Objetos 
OO Orientação a Objetos 
OQL Object Query Language (Linguagem de consulta de objeto) 
POO Programação Orientada a Objetos 
SGBD Sistema Gerenciador de Banco de Dados 
SGBDOO Sistema Gerenciador de Banco de Dados Orientado a Objetos 
SGBDR Sistema Gerenciador de Banco de Dados Relacional 
SQL Structured Query Language (Linguagem de consulta estruturada) 
 
 
 
SUMÁRIO 
INTRODUÇÃO ............................................................................................................ 6 
1 CONCEITOS E COMPARATIVO ENTRE BANCO DE DADOS RELACIONAL E 
BANCO DE DADOS ORIENTADO A OBJETOS ....................................................... 8 
1.1 BANCO DE DADOS .............................................................................................. 8 
1.2 BANCO DE DADOS RELACIONAL ...................................................................... 8 
1.2.1 Modelo Entidade Relacionamento (ER) ............................................................. 9 
1.3 ORIENTAÇÃO A OBJETOS (OO) ...................................................................... 10 
1.3.1 Classe de Objetos ............................................................................................ 11 
1.3.2 Herança ............................................................................................................ 11 
1.3.3 Polimorfismo ..................................................................................................... 12 
1.3.4 Encapsulamento ............................................................................................... 13 
1.4 BANCO DE DADOS ORIENTADO A OBJETOS ................................................. 13
1.4.1 ODMG (Object Database Management Group) - Grupo de Gerenciamento de 
Banco de Dados de Objetos ...................................................................................... 14 
1.5 CARACTERÍSTICAS DE ORIENTAÇÃO A OBJETOS EM BDOO ..................... 16 
1.5.1 Persistência de Objetos .................................................................................... 16 
1.5.2 OBJECT IDENTIFIER (OID) – IDENTIFICADOR DE OBJETOS ..................... 16 
1.5.3 Hierarquia de Classes d Herança para BDOO ................................................ 16 
1.5.4 Encapsulamento .............................................................................................. 16 
1.6 CARACTERÍSTICAS DE BANCO DE DADOS PARA BDOO ............................ 17 
1.6.1 Transações ...................................................................................................... 17 
1.6.2 Concorrência ................................................................................................... 18 
1.6.3 RECUPERAÇÃO ............................................................................................. 18 
1.6.4 Consultas ......................................................................................................... 19 
1.6.5 Versionamento ................................................................................................ 19 
2 EXEMPLOS DE SGBDOO EXISTENTES NO MERCADO ................................... 20 
2.1 JASMINE ............................................................................................................ 20 
2.2 DB4O .................................................................................................................. 20 
2.3 OBJECTSTORE .................................................................................................. 21 
2.4 CACHÉ ............................................................................................................... 22 
3 PRINCIPAIS DESAFIOS E TENDÊNCIAS DO SGBDOO ..................................... 24 
CONSIDERAÇÕES FINAIS ...................................................................................... 27
 
 
 
REFERENCIAS ......................................................................................................... 28
6 
 
INTRODUÇÃO 
 
A expressão persistir dados refere-se à capacidade de armazenar dados em 
algum local onde eles possam ser recuperados posteriormente. A necessidade de 
persistência cresce aceleradamente no decorrer do tempo, devido ao crescimento 
proporcional de informações que devem ser armazenadas em vários tipos de 
aplicações. Para isso foram criados os Sistemas de Gerenciamento de Banco de 
Dados (SGBD), que são conjuntos de programas de softwares que permitem aos 
usuários criar, editar, atualizar, armazenar e recuperar dados em tabelas de banco 
de dados. O modelo de SGBD mais utilizado é o Modelo Relacional. Através deste 
modelo, os dados são armazenados, manipulados e recuperados na forma de 
coleções de tabelas, estruturadas por linhas e colunas. Cada registro possui uma 
chave que o torna um elemento único na tabela. Porém, com as inovações em 
hardware, surgiram nos anos 80, novas aplicações que precisavam da utilização 
intensiva de dados, como dados multimídia. Sendo assim, o modelo relacional 
tornou-se inadequado por não atender a essas necessidades, surgindo então o 
Sistema de Gerenciamento de Banco de Dados Orientado a Objetos (SGBDOO). 
Esse sistema foi criado através da combinação de SGBD tradicionais e programação 
orientada a objetos, sendo adequado para tratar objetos mais complexos e 
dinâmicos (gráficos, imagens, simulações), baseando-se no paradigma de 
programação orientada a objetos que propõe trabalhar com os dados utilizando dos 
mesmos conceitos de objetos: classes, polimorfismo, herança e encapsulamento. 
Entretanto, apesar do desenvolvimento das tecnologias para o gerenciamento 
de dados, muitas organizações ainda enfrentam problemas quando precisam 
armazenar suas informações. Isso porque alguns de seus dados não são 
compatíveis com sua plataforma de armazenamento. O SGBDOO surgiu como uma 
opção para solucionar esse tipo de problema. Porém, este modelo é pouco 
conhecido e não muito utilizado quando comparado ao modelo relacional. Para 
Elmasri (2005), a complexidade do modelo e a falta de um padrão inicial, 
contribuíram para o uso limitado do Banco de Dados Orientado a Objetos. Diante 
disso, o tema proposto será objeto de análise e conhecimento, para demonstrar a 
importância e benefícios consequentes da utilização de SGBDOOs, esclarecendo 
dúvidas e consolidando conceitos sobre esta tecnologia. 
7 
 
Assim como toda grande mudança, o avanço tecnológico acarretou alguns 
problemas para o modelo de Sistema Gerenciador de Banco de Dados Relacional, 
tendo como principal a incompatibilidade entre os dados a serem armazenados e os 
bancos de dados adotados pelas organizações. Sendo assim, qual seria então a 
melhor solução para este conflito? 
Portanto, este trabalho tem como objetivo geral analisar e compreender a 
importância da utilização de SGBDOOs para solucionar a incompatibilidade de 
dados, e traz como objetivos específicos: 
 
 apresentar os conceitos e um comparativo entre Banco de Dados 
Relacional e Banco de Dados Orientado a Objetos. 
 
 demonstrar os principais Bancos de Dados Orientados a Objetos 
existentes no mercado. 
 
 evidenciar os principais desafios para a implantação de um Sistema de 
Gerenciamento de Banco de Dados Orientado a Objetos. 
 
A pesquisa deste trabalho baseou-se em método qualitativo tendo como 
finalidade analisar os benefícios ao utilizar um SGBDOO. Para esta analise foram 
retratados os conceitos de banco de dados tradicionais e paradigmas de orientação 
a objetos, foi feita uma comparação das funcionalidades do Banco de Dados 
Orientado a Objetos (BDOO) com o Modelo Relacional e foram evidenciadas novas 
tendências que estão surgindo para a tecnologia de Orientação a Objetos (OO) em 
banco de dados. A metodologia utilizada para a elaboração deste trabalho foi 
realizada através de pesquisas bibliográficas. As referências foram selecionadas em 
livros, artigos e sites onde informações relevantes foram coletadas, analisadas e 
discutidas para fazer com que este trabalho se torne utilizável em outras fontes de 
pesquisas. Livros de autores renomados como Elmasri (2005) e Silberschatz (1998) 
foram evidenciados, falando sobre conceitos de Banco de Dados, Orientação a 
Objetos e Banco de Dados Orientados a Objetos. 
8 
 
1 CONCEITOS E COMPARATIVO ENTRE BANCO DE DADOS RELACIONAL E 
BANCO DE DADOS ORIENTADO A OBJETOS 
 
Serão abordados neste primeiro capítulo os conceitos de Banco de Dados e 
Orientação a Objetos, dando ênfase aos Sistemas Gerenciadores de Banco de 
Dados Orientados a Objetos e qual sua importância para tratar a incompatibilidade 
de dados. 
 
 
1.1 Banco de Dados 
 
A expressão Banco de Dados teve origem do inglês Databanks ou Database 
que significa Base de Dados. Essa expressão se refere a uma coleção de dados 
organizados onde um computador consegue armazená-los e recuperá-los de forma 
eficiente. 
Este gerenciamento é realizado pelos Sistemas Gerenciadores de Banco de 
Dados (SGBD), programas que tem como objetivo o armazenar informações e 
fornecer mecanismos para manipulação das mesmas. 
Nos próximos tópicos serão definidos dois modelos de SGBD que são foco de 
analise deste trabalho: O Modelo Relacional (líder em utilização) e o Modelo 
Orientado a Objetos. 
 
 
1.2 Banco de Dados Relacional 
 
Foi proposto por Ted Codd, em 1970. Através deste modelo é possível 
armazenar,
manipular e recuperar os dados estruturados através de uma junção de 
tabelas. Nas tabelas, as colunas possuem um nome único que representam os 
nomes dos atributos e cada linha (tupla) representa os valores de dados 
relacionados. 
Este relacionamento dos dados em tabela cria a existência de um paralelismo 
entre o conceito de tabela e o conceito matemático de relação. 
9 
 
O modelo relacional foi o primeiro a se estabelecer em aplicações comerciais e 
ainda é líder em utilização, tanto em computadores de uso pessoal quando em 
grandes servidores. 
 
Na figura 1 está exemplificado o Modelo Relacional. 
 
Figura 1 – Exemplo de Modelo Relacional 
 
Fonte: Elaborada pelo autor 
 
 
1.2.1 Modelo Entidade-Relacionamento (ER) 
Este modelo foi um dos primeiros a ser implantado em organizações e ainda é 
o mais popular no meio comercial. 
“Esse modelo e suas variações são normalmente empregados para o projeto 
conceitual de aplicações de um banco de dados, e muitas ferramentas de projeto de 
um banco de dados aplicam seus conceitos. ER.”. (ELMASRI, 2005, p. 35). 
 
O modelo ER e é estruturado por dois elementos: 
 Entidades: São a representação teórica de objetos existentes no mundo real. 
São formadas por atributos (informações) que distingue uma entidade de 
outra. 
 Relacionamentos: São a representação do relacionamento entre um objeto e 
outro. 
 
Na figura 2 está exemplificado um exemplo do Modelo Entidade-
Relacionamento. 
 
10 
 
Figura 2 – Exemplo de Modelo Entidade-Relacionamento 
 
Fonte: Elaborada pelo autor 
 
 
1.3 Orientação a Objeto (OO) 
 
A definição de OO existe desde os anos 60 e era associado à linguagem 
Simula-67. 
“O Simula 67 é visto como a primeira linguagem orientada a objetos. Ele é 
definido por Ole-Johan Dahl e Kristen Nygard para apoiar a simulação de 
modelagem de processos baseada em eventos.” (PROPÉDIA, 2017). 
Esta linguagem apresentou as primeiras definições de classes, subclasses e 
rotinas correlatas semelhantes às linguagens de Orientação a Objetos atuais. 
 
Superficialmente, um objeto corresponde a uma entidade no modelo 
E-R. O paradigma orientado a objeto está baseado no 
encapsulamento de dados e em um código relacionado a um objeto 
dentro de uma única unidade. Conceitualmente, todas as interações 
entre um objeto e o resto do sistema são via mensagem. Então a 
interface entre um objeto e o resto do sistema é definida por um 
conjunto de mensagens permitidas. (SILBERSCHATZ, 1998, p. 251). 
 
Nos anos 70, foi criada a primeira linguagem orientada a objeto chamada 
Smalltalk, criado por cientistas do Xerox Alto Research Center (Xerox PARC). 
Porém, essas duas linguagens não eram acessíveis para a comunidade de 
desenvolvimento. 
Então, a partir da década de 80, por meio da linguagem C e logo em seguida 
pela C++, o paradigma Programação Orientada a Objeto (POO) ganhou destaque. 
11 
 
A OO traz várias vantagens como reutilização de código, requisitos, análises, 
especificações e projetos. Através da abstração do mundo real é possível capturar 
regras e procedimentos da empresa, gerando assim maior produtividade. 
O modelo de OO é mais flexível permitindo fácil manutenção e administração 
mais eficaz, pois é possível analisar os métodos e operações juntamente com os 
atributos em um mesmo objeto. 
Além disso, mecanismos de polimorfismo e herança possibilitam adicionar 
novos atributos e operações a classes que já existem, tornando a escrita do código 
reutilizável. 
 
 
1.3.1 Classe de Objetos 
Surge através da classificação de objetos que possuem a mesma 
composição. É dividida em: variáveis (atributos) e métodos (operações que a classe 
pode realizar). 
A Figura 3 mostra um exemplo de classe de objeto. 
 
Figura 3 – Exemplo de declaração de Classe
 
Fonte: Elaborada pelo autor 
 
 
1.3.2 Herança 
É a habilidade de uma classe obter os métodos e atributos de outra, onde é 
denominada superclasse a classe já existente e de subclasse a que é criada a partir 
da superclasse. 
É importante ter cuidado em sua manutenção, pois qualquer mudança em 
uma superclasse é refletida em sua subclasse. 
A Figura 4 exemplifica um modelo de herança entre classes. 
12 
 
Figura 4 – Exemplo de herança entre classes 
 
Fonte: Elaborada pelo autor 
 
 
1.3.3 Polimorfismo 
A palavra polimorfismo é derivada do latim e traz em sua essência o 
significado de “várias formas”. Ou seja, é “a capacidade de um operador 
desempenhar uma tarefa de acordo com o tipo do operando”. (INFORMATICA EM 
FOCO, 2017). 
É quando classes provenientes de uma superclasse podem realizar 
operações que possuem assinaturas iguais, porém diferentes comportamentos em 
cada subclasse, gerando resultados diferentes. 
Os tipos existentes são: 
 
 Polimorfismo Universal Paramétrico: Neste tipo, um objeto pode ser 
usado como parâmetro em diferentes cenários, sem necessidade de 
alterações. 
 
 Polimorfismo Universal Inclusão: Um objeto pode pertencer a classes 
diferentes simultaneamente, gerando uma hierarquia de herança. Além 
disso, o seu comportamento pode ser alterado em uma subclasse com 
relação à classe original. 
 
13 
 
 Polimorfismo Ad-hoc Sobrecarga: É a utilização de métodos com 
mesmo nome, porém com assinaturas diferentes. Possibilita que um 
mesmo nome represente várias funções, dependendo do contexto. 
 
 Polimorfismo Ad-Hoc Coerção: Ocorre por meio da sobrecarga de 
operadores, onde existe a conversão de um elemento de um tipo, para o 
tipo apropriado para o método. 
 
 
1.3.4 Encapsulamento 
É a combinação de atributos e operações integradas em uma classe, 
deixando visível apenas o necessário para a comunicação entre dois objetos, como 
alguns detalhes da implementação ou, ainda, a lógica de um método. Pode-se 
definir o encapsulamento como uma visão geral e a base do conceito da 
Programação Orientada a Objetos (POO). Além disso, o encapsulamento permite 
ocultar a complexidade do código. 
“Em muitos casos é possível simplesmente chamar um método e passar um 
valor a ele e somente receber o resultado deste método sem a preocupação de 
como é a implementação dele.”. (OBJECTIVE-C BRASIL, 2017). 
 
 
1.4 Banco de Dados Orientado a Objetos 
 
Devido ao avanço computacional novas necessidades foram surgindo, 
tornando os bancos de dados relacionais inadequados. A partir então da década de 
80, com a finalidade de aumentar a produtividade no desenvolvimento, a POO 
tornou-se popular, passando a ser considerada a revolução na forma de criação de 
sistemas. 
Com a pretensão de acompanhar essa tendência e, além disso, solucionar as 
limitações dos bancos de dados relacionais foi proposto o BDOO. Então, os BDOOs 
podem ser definidos como a união entre os conceitos de paradigmas de OO e 
objetivos dos SGDB. 
14 
 
Uma característica fundamental de BDOO é a visibilidade dos objetos em 
todas ou várias versões. 
Na Figura 4 é possível entender a estrutura do modelo de BDOO. 
 
Figura 5 – Exemplo de BDOO 
 
Fonte: Elaborada pelo autor 
 
É feito o agrupamento dos objetos em classes e podem ser definidos como 
um tipo, quando possuem os mesmos atributos e métodos. Através dessa definição 
é possível observar a semelhança a uma linguagem de programação orientada a 
objetos. 
 
 
1.4.1 Object Database Management Group - Grupo de Gerenciamento de 
Banco de Dados de Objetos (ODMG) 
O ODMG é um consórcio de vendedores e usuários de SGBDOOs que vem 
criando padrões para os sistemas, propondo um modelo de dados padrão para 
BDOO. Esse modelo fornece uma
nomenclatura padrão para os conceitos de 
bancos de dados de objetos (BDO). 
Através desse modelo é constituída a Object Definition Language (ODL) e a 
Object Query Language (OQL). 
 
 
15 
 
 Object Definition Language (ODL) – Linguagem de Definição de 
Dados: 
A ODL não depende de nenhuma linguagem de programação, tendo como 
objetivo criar especificações de objetos (classes e interfaces). Através dela, é 
possível para o usuário especificar um banco de dados independente de 
linguagem de programação, usando o bindings (ligações) de linguagens de 
programação específicas, como C++, Smalltalk e Java, para especificar como os 
componentes da ODL podem ser mapeados para componentes dessas 
linguagens. 
 
 Object Query Language (OQL) – Linguagem de Consulta de Objetos: 
A OQL é uma linguagem de consulta declarativa definida, que oferece suporte 
ao tratamento de objetos complexos, invocação de métodos, herança e 
polimorfismo. Essa linguagem foi criada para trabalhar agregada às linguagens 
de programação como C++, SMALLTALK e JAVA, com as quais o modelo 
ODMG define um binding, Através disso, uma consulta OQL pode retornar 
objetos compatíveis com os sistemas de tipos dessa linguagem. 
 
 
 
16 
 
1.5 Características de Orientação a Objetos em BDOO 
 
Segundo Setzer (1999), algumas características de OO são essenciais para 
compor o conceito de BDOO, dentre as quais estão: 
 
 
1.5.1 Persistência de Objetos 
É uma característica fundamental em BDOO, pois ela diferencia o BDOO das 
linguagens de POO. Persistir objetos representa a ideia de que um objeto não deixe 
de existir ao final de uma execução. Na POO os objetos são excluídos quando um 
programa termina sua execução. Se isso acontecer em um BDOO, resultaria em 
uma catástrofe. Portanto, se o usuário não solicitar a exclusão ou alteração de um 
atributo, os dados devem permanecer estáveis quando o programa for encerrado. 
 
 
1.5.2 Object Identifier – Identificador de Objetos (OID) 
Para um uso futuro, os objetos precisam continuar existindo quando a 
execução de um programa é finalizada. O OID precisa ser um dado único e 
permanente durante a durabilidade dos objetos além de serem validos para todo 
banco de dados, já que auxiliam na recuperação do objeto e estabelecem 
relacionamento entre eles. 
 
 
1.5.3 Hierarquia e Herança para BDOO 
Novas classes podem ser criadas a partir de outras classes que já existem, 
como em linguagens de POO. A hierarquia de casses torna as alterações nas 
estruturas de um BDOO muito mais flexíveis e possibilita que a estrutura do banco 
de dados evolua por meio da inclusão de novas classes na hierarquia. 
 
 
1.5.4 Encapsulamento 
Em BDOO a definição de encapsulamento continua a mesma, entretanto 
quando uma consulta é feita ao banco de dados, não se pode incluir todos os 
17 
 
métodos nas classes antecipadamente. Portanto, o encapsulamento é inapropriado 
em BDOO dependendo da situação, mas esse aspecto é substancial para POO e se 
ele for descartado de BDOO, corrompe parcialmente a ideia de OO. 
 
 
1.6 Características de Banco de Dados em BDOO 
 
Algumas adaptações devem ser feitas na forma de gerenciamento dos BDOO 
para possibilitar o uso de alguns recursos, como: Transações, concorrência e 
consultas. A seguir estão apresentados esses recursos dentre outros. 
 
 
1.6.1 Transações 
Através da transação é possível reunir várias etapas em somente uma 
operação, como por exemplo, acessar e atualizar vários itens de uma tabela. 
Segundo Silberschatz (1998), a transação geralmente é o resultado obtido através 
da execução de um programa de usuário, que foi escrito em uma linguagem de auto 
nível como a Structured Query Language ou Linguagem de consulta estruturada 
(SQL), COBOL, C ou Pascal, sendo delimitada por chamadas de função da forma 
begin transaction e end transaction. Resumindo, a transação consiste em todas as 
operações executadas entre o começo e o fim da transação. 
 
Cada transação precisa percorrer o teste de ACID: 
 
 Atomicidade: uma transação deve ser inteiramente executada. 
 
 Coerência: é necessária a consistência do banco de dados antes e depois e 
uma transação. 
 
 Isolamento: é ideal que ações de uma transação não interfira em outra, antes 
dessa ser completada. 
 
18 
 
 Durabilidade: garantir que a informação gravada no banco de dados dure de 
maneira constante até que alguma outra transação de atualização ou 
exclusão afete-a. 
 
 
1.6.2 Concorrência 
Através da concorrência, usuários diferentes conseguem acessar os dados de 
maneira simultânea. 
Segundo Silberschatz (1998), os sistemas de processamento de transações 
possibilita a execução de numerosas transações de maneira concorrente. Porém, 
esse processamento múltiplo de transações resulta em algumas complicações em 
relação à consistência de dados. 
Então, para controlar essa concorrência, é usado um algoritmo de controle 
que bloqueia a execução de uma transação se existir algum conflito. Nos SGBDOOs 
o OID de um objeto que foi bloqueado é armazenado em uma tabela. 
Duas características são relevantes para bloqueios em SGBDOOs: 
 
 Bloqueio de Hierarquia de Classe: Todas as subclasses podem ser 
bloqueadas por uma superclasse no mesmo modo de bloqueio. 
 
 Bloqueio de Objeto Complexo: Aprimorar a concorrência quando existir 
modelos que envolvem objetos complexos. 
 
 
1.6.3 Recuperação 
No gerenciamento de recuperação em BDOO o mecanismo de logs é o mais 
utilizado. Ele armazena imagens (estados) anteriores e posteriores dos objetos. 
“Uma parte integrante de um sistema de banco de dados é o esquema de 
recuperação que é responsável pela restauração do banco de dados para um estado 
consistente que havia antes da ocorrência da falha”. (SILBERSCHATZ, 1998, p.511). 
As imagens são guardadas no log no percorrer da execução das transações. 
Então quando uma falha for encontrada, o sistema gerenciador de recuperação é 
19 
 
ligado com a intenção de efetuar correção tonando o banco de dados novamente 
coerente. 
 
 
1.6.4 Consultas 
É possível acessar dados armazenados por meio da linguagem de 
programação e por linguagem de consulta. O processamento de consulta consiste 
em extrair dados em um banco de dados. 
Quando a linguagem e um banco de dados são utilizados, o trabalho de 
reestruturação para garantir a interação de linguagem de programação e linguagens 
de consultas é poupado. Isso implica na diminuição do código e no tempo de 
execução e permite o compartilhamento de estruturas entre as aplicações. 
 
 
1.6.5 Versionamento 
Após a alteração de um objeto no banco de dados, é primordial que a versão 
atualizada seja armazenada. O gerenciamento de versões equivale a um conjunto 
de construções e ferramentas que facilitam construir e organizar versões e 
configurações. Se não houvesse estas ferramentas, seria responsabilidade do 
usuário criar e guardar suas próprias versões. No momento que um objeto passa 
pelo versionamento, uma base que indica para todas as versões do objeto é criada. 
 
 
 
20 
 
2 EXEMPLOS DE SGBDOOS EXISTENTES NO MERCADO 
 
A seguir serão apresentados exemplos dos principais SGBDOOs existentes, 
conceituando suas características. 
 
2.1 Jasmine 
O SGDBOO Jarmine surgiu no Japão através da empresa Fujitsu e foi 
desenvolvido pela Computer Associates. Segundo Miranda (2015), O Jasmine é o 
primeiro SGBDOO puro desenvolvido por uma das empresas de softwares 
dominantes no mercado internacional de banco de dados. Ao contrário da maioria 
das empresas como Oracle, IBM e
Informix que optaram por expandir seus SGBDs 
relacionais com funcionalidades do modelo de OO gerando os SGBDs universais, a 
Computer Associates decidiu concorrer no mercado com dois produtos 
complementares, mas distintos: o Ingres como SGBD relacional e o Jasmine como 
SGBD orientado a objetos. 
“O Jasmine implementa os conceitos básicos de orientação a objeto tais como 
encapsulamento, polimorfismo, herança, reuso e agregação.” (MIRANDA, 2015). 
A manipulação e armazenamento de classes são feitas através da linguagem 
de consulta a objetos denominada Object Database Query Language (ODQL). 
No Jasmine, quando uma classe é gerada, é necessária a identificação de 
qual família ela pertence. Além disso, através de consultas, valores embutidos em 
uma variável são retornados. O Jasmine possui elevada conectividade com a Web e 
suporte a linguagem Java, sendo considerado um banco de dados comercial. 
 
2.2 Db4o 
Através do banco de dados db4objects (db4o) é possível criar aplicações 
Windowns.forms, Web e Compact Framework. 
Segundo o site Linha de Código (2017), para usar o Db4o é dispensável 
instalar ou configurar um servidor de banco de dados. É necessário apenas enviar 
juntamente com a aplicação uma pequena Dynamic-link library, ou "Biblioteca de 
Vínculo Dinâmico" (DLL). 
Este SGBDOO trabalha com as linguagens: Java e .Net, e realiza a 
manipulação dos dados por meio da linguagem de programação nativa ou por uma 
21 
 
linguagem do tipo SQL, a OQL. É um banco de dados que possui uma licença 
chamada GPL (Licença Pública Geral) e uma licença comercial. 
Além disso, o db4o possui mecanismos de replicação para atender 
necessidades como manter o banco de dados off-line durante um período de tempo. 
Por fim, a persistência dos objetos ocorre pelo comando "add nome". Este comando 
associa o OID a uma variável, para recuperação posterior. 
 “As vantagens são a velocidade, a simplicidade e a pequena pegada da 
memória. db4o pode persistir “Objetos comuns”.” (GREHAN, 2015). 
 
2.3 ObjectStore 
Foi criado pela empresa Object Design Inc, com a intenção de transformar a 
linguagem C++ em uma linguagem para banco de Dados. O ObjectStore trabalha 
com a arquitetura Cliente-Servidor e fornece todas as características de SGBD 
tradicional como: gerenciamento de transações, persistência, consultas associativa. 
Este sistema usa a linguagem C++ como base, portanto as declarações são 
praticamente iguais ao C++, possibilitando a conversão de programas escritos em 
C++ para Objectstore. 
O site da empresa Ignite Technologies (2017), que fornece o ObjectStore 
Standard Edition, cita como principais características desse SGBDOO: 
 
 Armazenamento de modelos centrados no relacionamento que alimentam 
transações de dados de alto desempenho, análise e transações ACID. 
 
 Redução da latência das consultas para milhares de usuários. 
 
 Permite que os desenvolvedores criem estruturas de dados personalizadas, 
altamente sintonizadas, que tornam as lojas de dados grandes mais utilizáveis 
e valiosas. 
 
 API de monitoramento corporativo que permite coletar, armazenar e analisar 
contadores internos da ObjectStore. 
 
 O instalador embutido torna mais fácil para usuários finais e distribuidores 
instalar aplicativos cliente. 
22 
 
 Rastreamento de pilha totalmente legível na ocorrência de um erro fatal. 
 
 O gerenciamento automático de índices garante que os índices em coleções 
Java estão sempre sincronizados. 
 
2.4 Caché 
Este sistema um modelo completo de objeto, com a inclusão de polimorfismo, 
encapsulamento, coleções, relações e heranças múltiplas. Ele pode ser criado em 
C++, Java, EJB, XML, COM, sendo considerado um banco de dados comercial. 
Segundo o site InterSystems (2017), o Caché pertence a uma nova geração 
de tecnologia de banco de dados que oferece modos variados de acesso a dados. 
Segundo o site, os dados são escritos em um único dicionário de dados integrados e 
logo em seguida estão disponíveis usando acesso a objetos, SQL de elevado 
desempenho e poderoso acesso multidimensional, podendo acessar 
simultaneamente os mesmos dados. Além disso, o Caché contém um mecanismo 
único de dados multidimensionais que possibilita a modelagem de ricas informações 
do mundo real, é escalonável podendo atender milhares de usuários sem afetar de 
maneira negativa a resposta SQL e suporte análise de dados estruturados e não 
estruturados em tempo real. 
Abaixo na Figura 6, é possível verificar como é a organização da arquitetura 
unificada dos dados no Caché. 
 
Figura 6 – Estrutura de Armazenamento Multidimensional
 
Fonte: Quadros (2012, p. 3) 
23 
 
Na Tabela 1, podem ser analisados todos os componentes do Caché, 
incluindo o ambiente de desenvolvimento e administração. 
 
Tabela 1 – Componentes do Caché 
Fonte: Quadros (2012, p. 2) 
 
Após entender e conhecer os exemplos de SGBDOOs, a tabela a seguir 
apresenta mais algumas características e suas comparações: 
 
Tabela 2 – Características dos SGBDOOs 
Nome 
Open 
Source 
Sistema 
Operacional 
Fabricante Site Oficial 
Jasmine Não 
Windows, Linux e 
UNIX 
Computer 
Assoxiates 
http://www3.ca.com/ 
Db4o Sim 
Windows, Linux e 
UNIX 
Versant 
Coporation 
http://www.db4o.com/ 
Caché Não 
Windows, Linux e 
UNIX 
Intersystems 
Software 
http://www.intersystems.com
.br/ 
Objectstore Não 
Windows, Linux e 
UNIX 
Progress 
Software 
http://www.objectstore.com 
 
Fonte: Elaborada pelo autor 
 
24 
 
3 PRINCIPAIS DESAFIOS E TENDÊNCIAS DO SGBDOO 
 
 O Sistema Gerenciador de Banco de Dados Relacional (SGBDR) possui 
algumas limitações para o tratamento de uma quantidade maior de dados e de 
dados mais complexos. Então, os SGBDOOs foram sugeridos para atender a essas 
necessidades. 
Porém, este modelo ainda enfrenta alguns desafios para sua expansão, 
sendo o principal a falta de padronização, pois, ao contrário do modelo relacional 
que possui sucesso neste quesito, os SGBDOOs possuem apenas dois padrões: 
SQL3 e ODMG-93. 
O SQL3 surgiu em 1999 com o objetivo de adicionar as características de OO 
à versão SQL2. Este modelo se encaixa no novo contexto e necessidade de 
manipular e recuperar dados mais complexos ou não convencionais, que vão além 
de textos e números. 
A ODMG tem como objetivo padronizar a manipulação do banco de dados 
através da linguagem OQL e ODL. Porém, este padrão não é compatível com todas 
as ferramentas ou é parcialmente compatível. 
Outro grande desafio surgiu ainda nos primeiros BDOOs, a representação de 
relacionamento entre objetos. Para Elsmari (2005), a insistência no encapsulamento 
completo nos primeiros modelos de dados orientado a objeto provocou o 
questionamento de que os relacionamentos não deveriam ser explicitamente 
representados, mas deveriam ser descritos pela definição de métodos apropriados 
que localizariam os objetos relacionados. 
Também como uma adversidade para os SGBDOOs, pode-se citar que, a 
maioria das organizações já possui o modelo relacional instalado e adaptado à sua 
base de aplicações além de seu pessoal já estar treinado para este modelo. Então, a 
migração para o modelo OO envolve um alto investimento para o treinamento de 
pessoal e para a transição da base de dados. 
Entretanto, algumas tendências vêm sendo discutidas nos últimos tempos, 
referentes à orientação a objetos em banco de dados. Entre as tendências em 
ascensão está o armazenamento em memória. 
Como grande exemplo pode-se citar o Prevayler, que é uma biblioteca de 
persistência de objetos de código aberto para Java. 
25 
 
“É uma
implementação do padrão de design do Sistema Prevalente, no qual 
os objetos de negócios são mantidos vivos na memória e as transações são 
registradas no diário para a recuperação do sistema.” (PREVAYLER, 2017). 
Esta ferramenta é uma maneira ágil de fornecer persistência ACID para seus 
“objetos Java antigos simples”. Foi produzida por um grupo de brasileiros, tendo 
como objetivo armazenar objetos e melhorar o acesso aos bancos de dados 
tradicionais, principalmente por preservar os objetos em memoria no servidor de 
aplicação. 
Outra tendência que vêm crescendo e sendo bem aceita no mercado, é a de 
sistemas de banco de dados Objeto-Relacionais. Estes sistemas buscam 
acrescentar funcionalidades de banco de dados orientados a objetos aos bancos de 
dados relacionais. Para Takai (2005), os sistemas Objeto-Relacionais tentam 
diminuir a dificuldade dos sistemas relacionais convencionais em representar e 
manipular dados complexos, tendo em vista serem mais representativos em 
semântica e construções de modelagens. Para isso, a solução é adicionar 
facilidades para manusear tais dados utilizando-se das facilidades SQL existentes, 
sendo elas: representações para objetos complexos no contexto SQL; herança no 
contexto SQL e sistema para produção de regras; extensões dos tipos básicos no 
contexto SQL. 
Elmasri (2005) conclui que, a tendência de combinar as melhores 
características do modelo de dados e das linguagens de objetos com o modelo 
relacional foi criado, pois as primeiras versões da linguagem SQL e o modelo 
relacional básico se tornaram inadequados para atender aos novos desafios das 
aplicações atuais. 
As interfaces objeto-relacionais também podem ser citadas quando se fala de 
tendências em BDOO. Elas fornecem uma interface de BDOO para aplicação, sendo 
uma abstração do modelo relacional, ou seja, para a aplicação é como se existisse 
um BDOO. “Essa tecnologia permite que as aplicações persistam os dados de 
forma transparente em quaisquer tipos de bancos, inclusive arquivos texto, cuidando 
de toda a complexidade inerente à tarefa.” BOSCARIOLI (2006). Para a aplicação é 
como se existisse um banco de dados orientado a objeto servindo de repositório. 
Portanto, apesar dos desafios enfrentados pelo BDOO, existem também 
algumas sugestões para expandir a utilização desse modelo. Ainda são pouco 
26 
 
utilizadas e pouco conhecidas no mercado devido à consolidação do modelo 
relacional. Porém, a possibilidade do surgimento de novas tecnologias ligadas ao 
paradigma da orientação a objeto tende a crescer ainda mais nos próximos anos. 
27 
 
CONSIDERAÇÕES FINAIS 
 
Este trabalho teve como objetivo apresentar conceitos sobre Banco de Dados 
Orientados a Objetos. Através de pesquisas e análises feitas para a elaboração do 
mesmo, foi possível identificar vantagens e desvantagens do modelo de BDOO, 
ainda pouco popular quando comparado ao modelo relacional, e suas características 
provenientes da orientação a objetos e dos bancos de dados tradicionais. 
Para a utilização e manipulação do BDOO, surgiram os Sistemas 
Gerenciadores de Banco de Dados Orientados a Objetos, sendo os principais 
utilizados no mercado: Jasmine, que possui elevada conectividade com a Web e 
suporte a linguagem Java, sendo considerado um banco de dados comercial; o 
Db4o, que trabalha com as linguagens: Java e .Net, e realiza a manipulação dos 
dados por meio da linguagem de programação nativa ou por uma linguagem do tipo 
SQL, a OQL; O ObjectStore, que foi criado com a intenção de transformar a 
linguagem C++ em uma linguagem para banco de dados; E por fim o Caché, que 
pode ser criado em C++, Java, EJB, XML, COM, sendo também considerado um 
banco de dados comercial. 
O BDOO possui como principal desvantagem a falta de padronização, o que é 
o grande desafio para a sua disseminação, sendo este ainda uma segunda opção 
quando comparado ao modelo relacional. Além disso, por não ser um modelo ainda 
consolidado no mercado atual, o treinamento de pessoal é algo que exige um 
investimento alto por parte das organizações. Porém, mesmo com estes desafios, 
não se pode deixar de enfatizar que os BDOOs surgiram como uma revolução para 
os bancos de dados relacionais, sendo suas principais tendências o armazenamento 
em memória, o banco de dados Objeto-Relacionais e as interfaces objeto-
relacionais. 
 Conclui-se então que o modelo de BDOO apresenta várias vantagens, mas a 
principal é a capacidade de armazenar dados complexos e métodos de um objeto, o 
que não é possível em um banco tradicional. 
Sendo assim, o presente trabalho colaborou para o entendimento do 
funcionamento e das características dos BDOOs, destacando sua importância para o 
tratamento da incompatibilidade de dados. 
 
28 
 
REFERÊNCIAS 
 
BOSCARIOLI, Clodis; BEZERRA, Anderson; DE BENEDICTO, Marcos; DELMIRO, 
Gilliard. Uma reflexão sobre Banco de Dados Orientados a Objetos. IV Conged - 
Congresso de Tecnologias para Gestão de dados e Metadados do Cone Sul. 
Paraná, jun./ 2006. Disponível em: < http://conged.deinfo.uepg.br >. Acesso em: 10 
out. 2017. 
ELMASRI, Rames; NAVATHE, Shamkant B. Sistemas de Banco de Dados. 4.ed 
São Paulo: Pearson Education, 2005. 
GREHAN, Rick. Complex Object Structures, Persistence, and db4o. Db4o. 
Disponível em: <http://docs.huihoo.com/db4o/db4o-Whitepaper-Complex-Object-
Structures.pdf>. Acesso em: 02 out.2017. 
IGNITE TECHNOLOGIES. ObjectStore® Standard Edition - O banco de dados 
por trás dos aplicativos mais escaláveis do mundo. Disponível em: 
<http://ignitetech.com/solutions/information-technology/objectstore/>. Acesso em: 04 
out. 2017. 
INFORMATICA EM FOCO. Polimorfismo – Seus tipos. Disponível em: 
<https://informaticaemfoco.wordpress.com/2010/10/13/polimorfismo-seus-tipos/>. 
Acesso em: 22 mai.2017. 
INTERSYSTEMS. O Banco de Dados de Aplicativos que Importa. Disponível em: 
<http://www.intersystems.com/our-products/cache/cache-overview/>. Acesso em: 20 
abr.2017. 
LINHA DE CODIGO. Db4o - Banco de Dados Orientado a Objetos. Disponível em: 
<http://www.linhadecodigo.com.br/artigo/875/db4o-banco-de-dados-orientado-a-
objetos.aspx>. Acesso em: 21 abr.2017. 
MIRANDA, Rinaldo. Jasmine Mais Completo. Scribd, 2015. Disponível em: 
<https://pt.scribd.com/document/74460837/rmi>. Acesso em 01 out. 2017. 
29 
 
OBJECTIVE-C BRASIL. Paradigmas de Programação – Programação Orientada 
a Objetos. Disponível em: <https://objectivecbrasil.wordpress.com/2014/01/12/4-
encapsulamento-p-o-o/>. Acesso em: 22 mai.2017. 
PREVAYLER. O que é Prevayler? Disponível em: <http://prevayler.org/>. Acesso 
em 25 abr.2017. 
PROPÉDIA. Simula 67. Disponível em <http://progopedia.com/language/simula-
67/>. Acesso em 20 de abril de 2017. 
QUADROS, Bruno C. Aplicação de Banco de Dados Orientado a Objeto em 
Sistemas de Informação. Ciências Exatas e da Terra PUC, Rio Grande do Sul, 
ago./ 2012. Disponível em: <http://www.pucrs.br/research/salao/2006-
VIISalaoIC/Arquivos2006/CienciasExatasedaTerra/>. Acesso em: 04 out. 2017. 
SETZER, Valdemar W; NASSU, Eugenio A. Banco de Dados Orientados a 
Objetos. São Paulo: Blucher, 1999. 
SILBERSCHATZ, Abraham; KORTH, Henry F; SUDARSHAN, S. Sistema de Banco 
de Dados. 3.ed São Paulo: Pearson Education, 1998. 
TAKAI, Osvaldo K; ITALIANO, Isabel C; FERREIRA, João E. Introdução a Banco de 
Dados, Instituto de Matemática e Estatística - Universidade de São Paulo, São 
Paulo, fev./ 2005. Disponível em: <https://www.ime.usp.br/ > Acesso em: 10 out. 
2017.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes