Banco de Dados - Caché

Caché - Um SGBDOO com toda tecnologia em banco de dados Orientados a Objetos

Este artigo visa falar sobre banco de dados orientados a objetos e demonstrar os recursos do SGBDOO Caché. Para isso é demonstrando os três softwares que compõe o Caché, além da sua documentação. Para isso foi feito um exemplo demonstrando a utilização de todos esses softwares. Também é explanado a documentação e o guia de introdução. Não é feito nenhum comparativo dele com outros bancos ou sobre desempenho.

por Divino Gomes Miranda



Divino Gomes Miranda¹, Eder José Gonçalves²
Pós em Banco de Dados - Centro Universitário do Triângulo - Unitri
38.402-233 - Uberlândia - MG - Brasil¹
38.402-010 - Uberlândia - MG - Brasil²
divinomiranda@oi.com.br¹, ceceussj5@hotmail.com²

Introdução

A programação orientada a objeto (POO) é um paradigma de interação entre várias unidades de software denominadas objetos. Este tipo de programação tem como característica definir a estrutura de programas baseando-se nos conceitos do mundo real, encapsulamento, herança e polimorfismo.


O funcionamento deste método se realiza através do relacionamento e troca de mensagens entre os objetos do software. Partindo deste novo contexto orientado a objeto é que surgiram os bancos de dados orientados a objetos (BDOO).


Os BDOOs também são baseados nos mesmos conceitos de análise, design da programação orientada a objeto.

A idéia de banco de dados orientado a objetos começou durante pesquisas em meados dos anos 80, podendo destacar alguns projetos, como: o Encore-Ob/Server da Universidade de Brow, o Objectivity/DB criado pela Objectivity Inc., o ODE da empresa Bell Labs e o projeto ORION da Microelectronics and Computer Technology Corporation.

Possui características de armazenar as estruturas de dados complexas, as quais seriam dificilmente armazenadas nos bancos convencionais, e de prover melhor persistência quando em conjunto a linguagem orientada a objetos, como Java, C# ou C++ por exemplo. Além de conter servidores que suportam tanto a distribuição de dados e a distribuição de trabalho, facilitando assim o trabalho do programador.

É importante mencionar outros fatores de destaque deste modelo de banco, que são a distribuição “sem costuras” de múltiplas bases de dados, onde o cliente pode interagir com um ou mais bancos de forma transparente. E a outra é a evolução dinâmica do modelo de dados, onde o objeto obtido da base é convertido para o formato descrito da classe, caso a definição da mesma seja alterada. [Versant 2007]

Das empresas que já se beneficiam deste novo modelo de banco de dados, destacam-se a "Northwest Natural Gas", empresa no Pacífico Norte, que utiliza banco de dados orientado a objetos, em seu sistema CRM, de relacionamento com clientes, onde armazena informações de serviços prestados aos seus mais de 400.000 clientes, e a "Ameritech Advanced Data Services", que utiliza este novo modelo de banco para o gerenciamento de informações de cobrança, ordens de serviço, cotação e suporte a pré-venda, onde são acessados por mais de 200 pessoas distribuídas em cinco estados dos Estados Unidos. [BDOO, 2006]

Para melhor entendimento deste modelo de banco de dados, detalharemos neste artigo, características do banco Caché.

Banco de dados Orientado a Objeto – Caché

Caché é um banco de dados pós-relacional orientado a objetos, que vem conquistando espaço no mercado devido ao seu desempenho com as aplicações. Além de seu desempenho ele permite a integração entre a linguagem padrão de banco de dados, que é a SQL (Structured Query Language – Linguagem de Consultas Estruturada), e Objetos, assim trabalhando com SQL e OQL (Object Query Language – Linguagem de Consutlas a Objetos). Devido a essa gama de possibilidades do Caché, as aplicações relacionais podem fazer uso dos componentes de negócios construídos em OO (Orientado a Objeto).

Por se tratar de um banco orientado a objeto e os programadores trabalharem com desenvolvimento orientado a objeto, a camada de persistência não existe, deixando as aplicações mais rápidas. O banco de dados é uma peça importante e fundamental nas aplicações.

“Os sistemas de banco de dados relacionais são predominantes no mercado, mas apresentam dissonância na integração com aplicações orientadas a objeto (OO): o paradigma da orientação a objeto é baseado na construção de objetos que agregam atributos e comportamento, enquanto o paradigma relacional é baseado no armazenamento de dados. Os bancos de dados OO não precisam decompor os objetos em linhas de tabelas para armazená-los, mesmo que eles representem complexas estruturas de dados. Por isso apresentam uma melhor performance.” [LDC]

Figura 1 – Opções do Caché

Para usarem as ferramentas oferecidas pelo banco de dados Caché, dê um duplo clique no ícone  que está localizado na barra de tarefa, ao lado do relógio, mostrando as seguintes opções, veja figura 1:

1 – Guia completo do Caché.

2 – Iniciar e parar o banco de dados Caché.

3 – A ferramenta Studio.

4 – Um terminal tipo Konsole do linux e Dos do windows.

5 – Abre o portal administrativo do Caché.

6 – A documentação das possibilidades oferecidas pelo Caché.

Portal de Administração do Sistema

A ferramenta web – Portal de Administração do Sistema, veja figura 2 – vem contribuir e muito para a administração do SGBDOO (Sistema de Gerenciamento de Banco de Dados Orientado a Objetos) por ser uma ferramenta completa onde se cria usuários, bancos de dados, permissões, instâncias, criptografia, classes, rotinas, códigos SQL, e monitora várias opções do banco de dados como fluxo de tráfego, backup’s, espelhamento e etc.

Figura 2 – Portal de Administração do Sistema - Caché

Na opção Administração de Segurança estão às definições de segurança, tais como: criar usuários, funções, recursos, serviços, domínio de segurança, configurações ssl/tls, configurações de segurança do sistema, auditoria, consultor de segurança.

Para criar um usuário clique em Administração de Segurança e depois clique em Usuário e em seguida clica em Criar Novo Usuário. A tela da figura 3 mostra como se cria um novo usuário.

Nesta tela, também são determinas as funções, os privilégios SQL, as tabelas SQL, as visões SQL(view) e os procedimentos SQL(stored procedures) que o usuário tem acesso.

A opção Copiar de: copia algumas opções do usuário selecionado para o usuário criado e a opção Iniciar no Namespace determina qual o dicionário deste usuário.

Figura 3 – Criar novo usuário

A melhor maneira de criar um projeto novo é através da opção Configuração, e em seguida clique na opção Namespaces. A figura 4 mostra a tela de criar um novo namespace, a qual possui um botão de criar banco. Primeiramente, clique no botão Criar Nova Base de Dados e cria o banco. Depois em Nome do namespace, digite o nome desejado e clique em Salvar. No projeto do exemplo criou um banco de dados e um namespace com nome de danca.

Figura 4 – Criar novo namespace

Ferramenta: Studio

A ferramenta Studio, veja figura 5, é um grande facilitador na criação e manipulação das classes que constituem a base de dados, das rotinas, e das páginas csp.

Figura 5 – Ferramenta Studio - Caché

Primeiramente, foi feito o login do namespace e usuário desejado, clicando em Arquivo -> Mudar Namespace ou aperte a tecla F4. Clica no ícone conectar para escolher qual o servidor que deseja usar e digite o seu usuário e a sua senha. Logo após, escolhe o namespace criado por você, que no exemplo é danca. Após todo esse processo, na barra Espaço de Trabalho está descrito o servidor e o namespace escolhido.

Ao expandir o item classe apareceu o nome do pacote e as classes pertencentes a ele. Expandindo o pacote aparecem as classes e efetuando um duplo clique em uma das classes, ela é aberta na área ao lado para edição.

Clique com o botão direito em Classes e depois clique em Criar Nova Classe, veja figura 6.

Figura 6 – Espaço de Trabalho

Uma tela de Assistente de Criação de Classe é exibida, e possui os campos:  Nome do pacote, que no exemplo é danca, e o campo: Digite o nome da classe, que no exemplo é curso, e clique em Avançar, veja figura 7.

Figura 7 – Assistente de criação de classe

Na próxima tela, marque a opção Persistente – objetos podem ser armazenados na base de dados e clique em Avançar. Na última tela, tem a opção de selecionar um Dono para essa classe e o Nome da Tabela SQL que é usado nas consultas SQL, lembrando que esses campos são apenas opcionais, não necessitam serem preenchidos e marque os campos XML Habilitado e População Automática de Dados, veja figura 8.

            Figura 8 – Especificar dono e nome da tabela SQL

Ao clicar em Concluir a classe é criada e aberta para inserir as propriedades e as regras de negócios daquela classe, veja figura 9.

Figura 9 – Adicionar propriedade na classe

Agora, é hora de inserir as propriedades e as regras de negócios, e para isso clique com o botão direito dentro da classe, veja figura 9, vá a Adicionar e depois clique em Nova Propriedade, ou vá até Menu Classe, selecione Adicionar e depois clique em Nova Propriedade, como demonstrado na figura 9. A primeira tela do Assistente de Criação de Propriedade, possui o campo: Nome desta nova propriedade. Neste campo escreva curso e clique em avançar, e depois no campo: Um valor único do tipo, selecione o tipo da propriedade, que no exemplo é %String. Ao clicar no botão Procurar, aparece uma lista de tipos possíveis para a propriedade. Bom, selecionado o tipo da propriedade, clique em Avançar e depois o assistente exibe a tela Características da Propriedade. Marque as opções de acordo com a Propriedade inserida. No exemplo, as três primeiras opções são marcadas porque, o curso é obrigatório não aceitando valores nulos, funciona como chave única, pois deve ter apenas um curso com o mesmo nome e indexado para agilizar as pesquisas. Ao clicar em Avançar, pode configurar o tamanho do campo em maxlen e minlen, no exemplo os valores não são alterados e clique em Avançar. Essa é a última tela do Assistente de Criação de Propriedade, onde se cria os métodos Set e Get para a Propriedade se marcados, mas no exemplo os dois métodos não serão marcados e clique em Concluir. Pronto à propriedade foi criada igual ao demonstrado pela figura 10. Adicione as outras propriedades que deseja.

Figura 10 – Propriedades adicionadas através do Studio

Agora é só compilar a classe. Para isso vá em Menu Compilar e clique em Compilar ou aperte as teclas Ctrl+F7, ou clique com botão direito em cima da classe curso no Espaço de Trabalho e selecione compilar ‘curso’. Crie uma outra classe com o nome cliente.

Bom, as classes foram criadas, as propriedades inseridas e as classes compiladas. Depois das classes compiladas, é necessário relacionar as classes umas com as outras. A regra de negócio diz que um cliente pode ter muitos cursos, e um curso pode ter muitos clientes. Então vamos criar uma nova prorpriedade de nome codcurso. Para isso abra a classe cliente e inicie o processo de inserir uma nova propriedade como descrito anteriormente até chegar à tela Tipo de Propriedade. Nesta tela, marque a última opção chamada Relacionamento e clique em Avançar. Na próxima tela marque a opção: Vários: muitos outros objetos e clique em Procurar, selecione a classe curso. No campo: O nome da propriedade ... referenciada é: selecione codcurso e clique em Avançar, veja figura 11.

Figura 11 – Criar nova propriedade de relacionamento

Na próxima tela desmarque a última opção: Definir um índice para este relacionamento. Pronto, o relacionamento foi feito, no entanto como se trata de um relacionamento muito para muitos, faça o mesmo com a classe campo inserido a propriedade codcliente, completando o relacionamento entre as duas classes.

A ferramenta Studio oferece a opção de criar páginas csp, com interações às classes criadas. São páginas feitas rapidamente com poucos cliques. Para isso clique em Arquivo, depois em Novo e clique na guia CSP e selecione a opção Caché Server Page, conforme demonstrado na figura 12 e clique no botão OK.

Figura 12 – Criar página csp

Criada a página csp, clique no Menu Inserir, e clique em Assistente de Criação de Formulário. Depois clique no botão Avançar e selecione a classe que deseja criar a página csp e clique em Avançar, veja figura 13.

Figura 13 – Escolher classe para pagina csp

Na próxima tela adicione as propriedades que deseja serem exibidas na página, e clique em Avançar ou Terminar, veja figura 14. Se clicar em Avançar, aparece uma tela para atribuir nome as propriedades.

Figura 14 – Selecionar itens para a pagina csp

Pronto, a página já esta criada. Veja na figura 15 como ficou a página csp. Clique em Salvar Como e selecione a pasta csp/danca e coloque o nome da classe, no exemplo é cliente.

Figura 15 – Código fonte da página csp

Agora é só clicar no ícone visualizar pág. web ou ir em Menu Exibir e clicar em Página Web, e aproveitar a página.

Ferramenta: Terminal

Acesse a ferramenta Terminal, como demonstrado no início do artigo, para popular a base de dados. Veja a ferramenta Terminal na figura 16.

Figura 16 – Ferramenta Terminal

Abra o terminal e digite o comando: do ^%CD para mudar o namespace de user para danca. Abaixo aparece Namespace: e é só digitar o namespace desejado, no exemplo DANCA e apertar Enter, como demonstrado na figura 17. Veja que mudou o namespace de USER> para DANCA>.

Figura 17 – Modificando o namespace

Agora digite o comando: Do ##class(danca.curso).Populate(1000) para popular a classe curso da base de dados danca. O comando Set curso=##class(danca.curso).%OpenId(1), cria a variável curso, quer recebe os dados da classe curso, do registro 1, populado através de %OpenId(1). O Comando Write curso.curso, escreve na tela o valor da propriedade curso e o Write curso.valor, escreve na tela o valor da propriedade. Já o comando Set curso.curso=“Valsa” envia o valor Valsa para a propriedade curso e Set curso.valor=“210.15” envia o valor 210.15 para a propriedade valor. No fim, digite o comando Do curso.%Save() para salvar no objeto de ID 1, os dados enviados pelo comando Set, na base de dados. Veja figura 18.

Figura 18 – Populando a classe curso

Com a base de dados populada, agora faça a consulta no Portal de Administração de Sistema, clicando em SQL e depois em Danca, digite o comando sql desejado e clica em Executar Consulta. No exemplo o sql criado foi: select * from DANCA.curso. Veja figura 19.

Figura 19 – Fazendo consulta SQL no Portal de Administração do Sistema

Documentação

O Caché traz consigo uma documentação completa do sistema e suas possibilidades, além de fazer automaticamente a documentação das classes criadas. Na figura 20 traz uma lista de tecnologias com as quais o Caché tem compatibilidade, tais como Java, Python, SOAP, XML, Ensemble e outras, além de trazer a documentação de seus programas.

Figura 20 – Página Inicial da Documentação do Caché

Para ver a documentação das classes criada, abra o Portal de Administração do Sistema, como demonstrado anteriormente, e faça o login digitando o usuário criado anteriormente. Após aberto, clique em Classes e selecione a opção Namespaces. Abaixo procure por DANCA, que exibe as classes criada no exemplo e na frente existe um link escrito Documentação. Clique no link Documentação da classe cliente, como demonstrado na figura 21.

Figura 21 – Todas as classes criadas com o link para as Documentações

Ao clicar no link é aberto a documentação da classe cliente, que traz quantas propriedades e índices a classe possui e todos os métodos possíveis de utilização por ela, além de trazer todas as propriedades existentes na classe, como demonstrado na figura 22. Qualquer alteração realizadas nas classes e após compiladas aparece nessa documentação.

Figura 22 – Documentação da classe cliente

Além dessas documentações, o Caché traz o Guia de Introdução para usuário iniciantes, avançados e informações adicionais, para facilitar e instruir as pessoas que desejam usar o banco, como demonstrado na figura 23.

Figura 23 – Guia de Introdução do Caché

Conclusão

Os bancos orientados a objetos ainda estão iniciando no mercado e a cada dia que passa empresas e governos tem investido suas aplicações nos SGBDOO. Essa parcela ainda é pequena devido à desconfiança das empresas em termos de suporte, capacidade, usabilidade e desempenho. O governo do Brasil e estados tem aplicações rodando com o banco Caché, o qual tem respondido a altura do esperado, dando mais credibilidades aos SGBDOO.

O Caché surpreendeu com toda a facilidade e a vasta documentação que ele trás além de fazer a documentação dos projetos e classes inseridos nele. Com essa facilidade e com as melhoras que devem inserir, só falta mesmo uma grande empresa de nível nacional ou internacional usar para dar aquele empurram na credibilidade, pois ele não deve em nada aos SGBD, alias tem mais recursos, vindo apenas contribuir para o seu uso e desenvolvimento de aplicações.

Acesse o site www.intersystems.com.br e conheça mais do Caché. Faça o download do Caché e venha conhecer esse novo SGBDOO, clicando no link http://www.intersystems.com.br/isc/cache/index.csp.

Referências

[INT] http://www.intersystems.com.br/isc/index.csp

[GUI] Guia de Introdução - http://localhost:57772/csp/docbook/DocBook.UI.Page.cls?KEY=GettingStarted

[DOC] Documentação - http://localhost:57772/csp/docbook/DocBook.UI.HomePageZen.cls

[ESC] Estudo de Casos - http://www.intersystems.com.br/isc/casossucesso/produtocache2.csp?pProdId=1&pLocalidade=B

[UCO] Usando Caché Objects e Java - http://www.linhadecodigo.com.br/Artigo.aspx?id=66

[JDB] Caché e JDBC - http://www.linhadecodigo.com.br/Artigo.aspx?id=67

[UTD] Uma Nova Era na Tecnologia dos Bancos de Dados - http://www.linhadecodigo.com.br/Artigo.aspx?id=68

[LDC] InterSystems Caché: Um Banco de Dados de Terceira Geração - http://www.linhadecodigo.com.br/Artigo.aspx?id=69

[RID] Como Resolver a Impedância em Banco de Dados - http://www.linhadecodigo.com.br/Artigo.aspx?id=70

[TEC] Tecnologia Caché - http://www.linhadecodigo.com.br/Artigo.aspx?id=71

[POA] Powerful advantages: Versant object database. - www.versant.com

[BDO] Banco de dados orientado a objetos http://www.shammas.eng.br/acad/sitesalunos0606/bdoo/index.html

Divino Gomes Miranda

Divino Gomes Miranda