O paradigma de desenvolvimento orientado a objetos está se tornando uma prática comum entre os desenvolvedores de software. No entanto, os mecanismos de persistência de objetos têm se apresentado como uma dificuldade quando se pretende armazenar estes objetos em um banco de dados relacional.

Uma solução seria construir uma camada de mapeamento objeto-relacional entre a aplicação e o banco de dados, entretanto, devido à sua complexidade e custo, essa solução deve ser cuidadosamente avaliada. Outra maneira é armazenar estes objetos em um banco de dados puramente orientado a objetos, mas este tipo de banco ainda não tem sua utilização muito difundida. Uma terceira solução, abordada neste artigo, seria adotar um banco de dados objeto-relacional, como, o Caché da InterSystems.

Intersystems Caché

O Caché utiliza conceitos de orientação a objetos, tais como herança, polimorfismo, encapsulamento e associação entre as classes. Além disso, trabalha com a abordagem relacional e possui uma estrutura de armazenamento chamada de “Globais” que propicia o armazenamento de todos os tipos de dados, incluindo streams binárias e imagens gráficas. O nome Global indica que todos os usuários podem acessar estes dados. Este conceito não é muito comum entre os bancos de dados objeto-relacionais.

O Caché possui linguagens próprias como o COS (Caché Object Script) e o Basic (semelhante ao Visual Basic) que são usadas nas aplicações, por exemplo, para construir métodos e criar classes. Outra linguagem é o CSP (Caché Server Pages) para desenvolver aplicações Web. O Caché permite também a utilização da linguagem SQL ANSI para acessar e manipular dados.

Neste artigo, utilizaremos um exemplo para demonstrar a utilização deste SGBD. Para isto será considerado um modelo de classes, expressado na notação UML (Unified Modeling Language), representando uma pequena parte de um sistema acadêmico. A partir deste modelo é mostrada a interação com as ferramentas e conceitos da orientação a objetos dentro do banco de dados Caché.

Modelo de classes

O diagrama da Figura 1 apresenta um fragmento de um sistema escolar, representando suas classes com atributos, serviços e relacionamentos, não tendo o objetivo de ser um exemplo completo. As classes Aluno, Professor e Curso representam os cadastros básicos. A classe Pessoa evidencia os atributos comuns de Alunos e Professores, incluindo seu Endereço. A classe Titulação representa o grau de escolaridade de um professor (Graduação, Especialização, Mestrado, Doutorado). A classe Avaliacao registra as notas de Alunos em Cursos. Por fim, Alunos e Professores estão associados a Cursos.

Diagrama de classes
Figura 1. Diagrama de classes

Criando classes

Para se criar uma classe dentro do Caché é importante entender alguns conceitos que o sistema utiliza para o gerenciamento de classes. O Caché trabalha com a definição de Namespace, que é o ambiente de trabalho, ou estruturas lógicas, onde são criados os projetos. Os projetos contêm as páginas Web, as rotinas e os pacotes onde são armazenadas as classes. Quando se cria uma classe, esta deve ser associada a um pacote (novo ou já existente), onde fica armazenada. Assim, sempre que uma classe é referenciada, tem-se que mencionar o seu pacote.

...
Quer ler esse conteúdo completo? Tenha acesso completo