Please use this identifier to cite or link to this item:
http://hdl.handle.net/11422/7789
Full metadata record
DC Field | Value | Language |
---|---|---|
dc.contributor.advisor | Villas-Boas, Sergio Barbosa | - |
dc.contributor.author | Lima, Rodolfo Schulz de | - |
dc.date.accessioned | 2019-05-07T16:08:06Z | - |
dc.date.available | 2023-12-21T03:05:50Z | - |
dc.date.issued | 2008-11 | - |
dc.identifier.uri | http://hdl.handle.net/11422/7789 | - |
dc.language | por | pt_BR |
dc.publisher | Universidade Federal do Rio de Janeiro | pt_BR |
dc.rights | Acesso Aberto | pt_BR |
dc.subject | C++ | pt_BR |
dc.subject | base de dados | pt_BR |
dc.title | CPPObjects: Biblioteca de mapeamento objeto-relacional em C++ | pt_BR |
dc.type | Trabalho de conclusão de graduação | pt_BR |
dc.description.resumo | 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. | pt_BR |
dc.publisher.country | Brasil | pt_BR |
dc.publisher.department | Escola Politécnica | pt_BR |
dc.publisher.initials | UFRJ | pt_BR |
dc.subject.cnpq | CNPQ::ENGENHARIAS | pt_BR |
dc.embargo.terms | aberto | pt_BR |
Appears in Collections: | Engenharia Eletrônica e de Computação |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
monopoli10003014.pdf | 354.78 kB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.