Please use this identifier to cite or link to this item: http://hdl.handle.net/11422/7789
Type: Trabalho de conclusão de graduação
Title: CPPObjects: Biblioteca de mapeamento objeto-relacional em C++
Author(s)/Inventor(s): Lima, Rodolfo Schulz de
Advisor: Villas-Boas, Sergio Barbosa
Abstract: Este projeto descreve a implementação de uma biblioteca na linguagem de programação C++ chamada CPPObjects que visa facilitar o desenvolvimento de aplicações que lidam com informações armazenadas em bancos de dados relacionais. Isto é feito através de procedimentos que mapeiam o modelo relacional em um modelo orientado a objetos com ênfase na possibilidade de navegação entre os objetos relacionados através de referências, tal como em um modelo em rede.Partindo de uma descrição lógica das entidades a serem armazenadas e seus relacionamentos entre si (diagrama ER), a biblioteca oferece ferramentas que possibilitam o mapeamento desta descrição para código-fonte em C++ de uma forma direta e eficiente utilizando o paradigma de modelagem orientada a objetos. Nestes modelo, cada objeto representa uma entidade do domínio e pode estar ligado a zero ou mais objetos relacionados, e outros objetos por sua vez podem estar ligados a ele, formando assim uma rede de objetos onde a partir de um objetos e chega a qualquer outro que esteja direta ou indiretamente relacionado a ele. De posse da descrição do sistema em C++, a biblioteca utiliza as informações passadas sobre este sistema (metainformações) para poder criar o esquema de banco de dados respeitando as relações entre os objetos, suas cardinalidades e os tipos e propriedades dos atributos de cada entidade.Uma vez criado o banco de dados, o desenvolvedor o popula instanciando objetos e preenchendo seus atributos e os de seus objetos relacionados. Partindo então de um objeto da rede,o desenvolvedor por meio da biblioteca inclui o objeto no banco de dados. Todos os objetos relacionados direta ou indiretamente ao objeto inserido serão também inseridos no banco. Com o banco de dados populado, o desenvolvedor pode realizar então consultas fazendo ouso ou não de filtros que restringem o conjunto de objetos retornados. Estes filtros são criados utilizando-se uma sintaxe própria da linguagem C++ que se assemelha à sintaxe das cláusulas WHERE da linguagem SQL. Cada objeto retornado pela consulta está ligado aos seus objetos relacionados e estes podem ser acessados diretamente. Alterações em objetos que já armazenados podem ser realizadas. Ao atualizar o banco de dados, a biblioteca somente irá atualizar os objetos que foram modificados, inserindo, atualizando ou removendo objetos de forma que a rede de objetos alterada pelo usuário seja refletida no banco, de forma eficiente.Diversas técnicas de desenvolvimento foram utilizadas para tornar a linguagem C++ própria para a representação e manipulação das entidades e seus relacionamentos. Aproveitando-se que ela aceita vários paradigmas de desenvolvimento, técnicas como programação genérica, programação orientada a objetos, meta-programação entre outras, foram empregadas visando ganho sem otimização tanto temporal quanto espacial, checagem de erros já em tempo de compilação,diminuição de tempo de compilação de aplicações e a minimização das situações onde uma alteração na biblioteca, seja por mudança de funcionalidade ou correção de defeitos, não acarrete a necessidade de recompilação de aplicações que dependam dela.
Keywords: C++
base de dados
Subject CNPq: CNPQ::ENGENHARIAS
Production unit: Escola Politécnica
Publisher: Universidade Federal do Rio de Janeiro
Issue Date: Nov-2008
Publisher country: Brasil
Language: por
Right access: Acesso Aberto
Appears in Collections:Engenharia Eletrônica e de Computação

Files in This Item:
File Description SizeFormat 
monopoli10003014.pdf354.78 kBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.