Ultimamente os usuários requerem informações mais precisas para tomada de decisões mais rápidas a medida em que as aplicações vão se tornando mais complexas, pois há a necessidade de melhores estruturas de armazenamento de dados que se adequem aos novos modelos e tecnologias de aplicações, inclusive aplicações web, móveis e etc.. Assim surgem os Banco de Dados Orientados a Objetos (BDOO) como uma melhoria para os Banco de Dados Relacionais (BDR). Bastante utilizados em pesquisas no meio acadêmico, mas não muito explorados no ambiente mercadológico por conta do conceito duvidoso de ser uma tecnologia de banco melhor que os Bancos Relacionais, apesar de existirem Corporações famosas que possuem iniciativas de BDOO ou Banco de Dados Objeto-Relacional (BDOR), que é uma mistura entre as duas tecnologias, como a Oracle.

Além disso, os Banco de Dados Relacionais ainda dão muito suporte nas empresas e dificilmente serão substituídos. Em geral o conhecimento e o uso de BDOO é mais comum em ambiente acadêmico, onde geralmente são apresentados os bancos db4objects, Cache e Objectivity.

Neste post não vamos nos ater a descrever o paradigma de BDOO, mas sucintamente descrever sobre o Banco de Dados Matisse e suas principais características para a plataforma Windows que utiliza esse tipo de banco.

Mas este Banco de Dados também é suportado para as plataformas Linux, Solaris, Mac OS em ambas versões 32bits e 64bits.

Saiba mais sobre esse e outros tipos de bancos de dados conferindo nossos cursos de banco de dados online na DevMedia.

Matisse

O Banco de Dados Matisse é uma tecnologia de BDOO que combina objetos, XML e suporta o uso de rotinas SQL. Segundo os criadores, trata-se do primeiro servidor de BDOO no mercado, podendo ser utilizado no processamento de dados distribuídos, escalonáveis e de tempo real, atendendo as empresas no desenvolvimento de aplicações de tempo real e serviços na área da saúde, serviços financeiros, de defesa e etc..

Este banco de dados pode ser adquirido no site principal do banco. A Figura 1 ilustra a página principal do site.

Figura 1. Visão da página principal do site.

No site é possível ter acesso a uma versão gratuita do banco para os desenvolvedores. Para isto, é necessário fazer um registro para ter acesso aos produtos e demais recursos como tutoriais, guias de desenvolvimento e etc.. A Figura 2 ilustra a página de login e o link para criar conta. Na Figura 3 é ilustrada a página para a criação de conta gratuita para ter acesso a área restrita.

Figura 2. Ilustração da página de login.

Figura 3. Ilustração da página de criação da conta para acesso a área restrita.

Matisse para a Plataforma Windows

Para instalação da versão 9.1.5 (versão mais atual no site) na plataforma Windows, é necessário que esteja instalado o .NET 3.0 ou superior e o Java Runtine Enviroment 1.7.0 ou superior e no mínimo Windows Vista.

As principais ferramentas para serem baixadas no site são o Banco de Dados e a ferramenta para modelagem do banco. Outras ferramentas opcionais são o suporte a aplicações .Net e driver ODBC.

Ferramenta de Modelagem

Para a plataforma Windows o banco de dados dispõe de uma ferramenta para modelagem chamada de Matisse Database Modeler, podendo fazer com ela uma modelagem totalmente orientada a objetos, com suas classes, atributos, métodos e relacionamento entre as classes, onde é possível salvar o modelo, imprimir e exportar como imagem. Caso o banco de dados esteja ativo, automaticamente as alterações feitas no modelo são realizadas nele.

A Figura 4 ilustra a interface gráfica da ferramenta de modelagem. Repare que a modelagem é semelhante ao Diagrama de Classes UML, utilizando associação entre classes, herança, interface e etc.. Em geral é uma ferramenta simples, mas de grande auxílio na hora de modelar o banco.

Figura 4. Ilustração da ferramenta de modelagem.

Ferramenta de Gerenciamento

Além da ferramenta de modelagem, existe também a ferramenta para gerenciamento do banco chamada Matisse Enterprise Manager. Com esta ferramenta é possível monitorar os diversos esquemas de Banco de Dados criados. Os principais recursos são:

  • Ativar ou desativar esquemas;
  • Monitorar desempenho dos esquemas;
  • Gerenciar o tamanho dos esquemas;
  • Gerenciar as classes, meta-classes e dados dos esquemas;
  • Gerenciar segurança, usuários dos esquemas de banco;
  • Fazer backups e registros dos esquemas e etc.

Figura 5. Visão geral das informações de um esquema de Banco de Dados.

Além disso, em cada esquema é possível importar e exportar ODL’s, que são linguagens de descrição de objetos utilizadas na modelagem do banco, e DDL’s, que são as linguagens de definição de dados como SQL e no caso de BDOO’s a linguagem OQL. Assim, é possível que o usuário mude completamente ou parcialmente as classes e demais estruturas contidas em um esquema de banco.

O diferencial do Matisse é que você pode utilizar rotinas SQL puras para manipular objetos no banco ou utilizar rotinas SQL com elementos da linguagem OQL. A Figura 6 ilustra uma tela onde você pode criar rotinas SQL automáticas para visualizar dados em esquemas, salvar estas rotinas, analisar se sua estrutura está correta e etc. Já na Figura 7 é possível visualizar a tela onde se pode criar rotinas SQL manuais, tendo a possibilidade de carregar rotinas já pré-existentes, salvar e analisar se estão corretas e etc. Estas rotinas SQL podem ser utilizadas normalmente para manipular métodos e atributos de classes.

Figura 6. Ilustração da tela de manipulação de rotinas SQL automáticas.

Figura 7. Ilustração da tela de manipulação de rotinas SQL manuais.

Instalação no Windows, Recursos adicionais e configuração em IDE’s

A instalação é bem simples: com dois cliques você completa o procedimento. No exemplo desse artigo instalamos no Windows 8 de 64bits, mas não há diferença para a versão 32 bits. O único pré-requisito é a instalação do JRE 1.7.0, pois caso este já esteja instalado na máquina o Matisse não instala o seu próprio JRE. O procedimento de instalação deve ser realizado sempre como usuário administrador, caso contrário a instalação não dará certo.

Vamos ilustrar a instalação do banco Matisse, Matisse DBMS, a ferramenta de modelagem, Matisse Database Modeler e o recurso para interação com aplicações .Net, Matisse .Net Binding. A primeira etapa consiste em aceitar os termos de contrato e em seguida é necessário escolher o nome do usuário e da organização, conforme mostra a Figura 8. As informações desta etapa ficam por conta do usuário.

Figura 8. Ilustração do procedimento de instalação do banco Matisse na plataforma Windows 8 64 bits.

O próximo passo é escolher o tipo de instalação: tipo de instalação típica ou completa com todos os recursos, como modo cliente, modo servidor e ferramenta para gerenciamento do banco. Escolha a opção instalação típica ou completa, como mostra a Figura 9.

Figura 9. Ilustração do procedimento de instalação do banco Matisse na plataforma Windows 8 64 bits.

A próxima e última etapa é para escolha do diretório de armazenamento, que por padrão o Matisse define o caminho “C:\Products\Matisse” para evitar conflitos de virtualização no Windows Vista. Nas demais versões do Windows pode-se utilizar o caminho “C:\Program Files\Matisse” ou outro diretório que achar conveniente, assim como vemos na Figura 10. Mas atenção, pois neste caso você deverá criar o diretório de nome “Matisse” manualmente.

Porém, o procedimento de instalação na plataforma Windows 8 64bits só obteve êxito pelo diretório padrão “C:\Products\Matisse”.

Uma observação importante é que o procedimento de desinstalação do banco deve ser realizado pelo próprio instalador e como usuário administrador, caso contrário a desinstalação não acontece com êxito.

Figura 10. Ilustração do procedimento de instalação do banco Matisse na plataforma Windows 8 64 bits.

O próximo passo é a instalação da ferramenta Matisse.Net Binding para a execução do banco em aplicações .NET. O procedimento de instalação é semelhante ao citado acima.

Primeiramente é necessário aceitar os termos de contrato. Em seguida, deve-se escolher o usuário e a organização, que devem ser os mesmos utilizados na instalação anterior (fica a critério do usuário a instalação ser somente para o usuário administrador ou para demais usuário do computador, mas no exemplo mencionado foi selecionado o somente para o usuário administrador - Figura 11). A seguir é necessário escolher o diretório que também deve ser a mesma utilizada na instalação anterior, como mostra a Figura 12.

Para a desinstalação é necessário utilizar o próprio instalador como usuário administrador para que se obtenha êxito.

Figura 11. Ilustração do procedimento de instalação do “.Net Binding” do banco Matisse na plataforma Windows 8 64 bits.

Figura 12. Ilustração do procedimento de instalação do “.Net Binding” do banco Matisse na plataforma Windows 8 64 bits.

A última ferramenta a ser instalada é a da modelagem do banco, Matisse Database Modeler, que também deve ser realizada como usuário administrador. As etapas de instalação são iguais ao da ferramenta anterior, inclusive as telas de navegação para instalação que foram mostradas nas Figuras 11 e 12.

Além destes recursos essenciais para manipulação do banco Matisse existem recursos adicionais que viabilizam a integração com IDE’s como dll’s para integração em aplicações .Net, executáveis Java para uso como biblioteca de classes, drivers e etc.

Agora vamos configurar a conexão com o Matisse na IDE Netbeans e no Visual Studio 2013, ambas versões de 64bits. Primeiramente é necessário iniciar manualmente algum esquema de banco que você tenha armazenado. Neste exemplo vamos utilizar o esquema de banco “example”, como mostra a Figura 13. Para inicializar um esquema de banco clique com o botão direito do mouse sobre o esquema e escolha a opção “start”.

Figura 13. Ilustração de inicialização de um esquema de banco no Matisse.

O próximo passo é configurar a conexão com o esquema de banco em sua aplicação Java na IDE Netbeans. Neste post será mostrado somente a conexão manual utilizando o JDBC, feita por linha de código e não aquela configuração de serviços de banco oferecida pela IDE através de drivers.

Crie uma aplicação padrão Java Application. Feito isto, importe para a sua aplicação o executável matisse.jar que fica localizado dentro do diretório lib, dentro do diretório Matisse para dentro pasta Libraries presente na sua aplicação, como mostra a Figura 14.

Figura 14. Ilustração da biblioteca matisse.jar no diretório de bibliotecas em uma aplicação Java.

A próxima etapa consiste em importar as bibliotecas dos recursos utilizados pelo driver JDBC do Java e do Matisse, como ilustra o código da Listagem 1. Importe as bibliotecas java.sql.* e com.matisse.* em sua aplicação (linhas 2 e 3). Feito isto, crie Strings para representar o host e o nome do esquema de banco que se deseja utilizar (linha 7). Crie um objeto que representa o Banco de Dados Matisse e passe como parâmetros o host e o nome do esquema de banco utilizado e abra a conexão com o banco, como mostra as linhas 9 e 10. Depois crie um conector JDBC, atribuindo um conector JDBC do banco Matisse pela função dada (linha 12). Após isto, é só utilizar os procedimentos comuns como criação de parâmetro, rotina SQL, execução de rotina SQL e impressão dos dados, como vemos nas linhas de 15 a 22. Lembre-se de criar tratamento de exceções para a conexão com o banco e para execução das rotinas SQL.

Por fim, feche a conexão com Banco de Dados, assim como na linha 23.

Listagem 1. Código em Java descrevendo uma conexão com o banco Matisse utilizando driver JDBC e biblioteca matisse.jar.


  01 
  02 import com.mantisse.*;
  03 import java.sql.*;
  04
  05 public class Teste{
  06   public static void main (String[] arg) {
  07     String host="localhost,  dbname="example"; //informações sobre o host e o nome do banco de dados
  08     try {
  09       MtDatabase db = new MtDatabase (host, dbname); //criação de uma instância do banco de dados
  10       db.open(); //abrir a conexão com o banco
  11       System.out.println("Recupere nomes de classes por uma conexão JDBC obtida através de uma conexão MtDatabase");
  12       Connection jcon = db.getJDBCConnection(); //abrir conexão JDBC
  13        try {
  14         Statement stmt = jcon.createSatement(); //criação de procedimento
  15         String query = "SELECT * FROM MtClass"; //rotina SQL
  16         ResultSet rs = stmt.executeQuery(query); //execução da rotina SQL
  17         System.out.println("resultado de: " + query); 
  18         //impressão de metaclasses presentes no esquema de banco selecionado
  19         while (rs.next()) {
  20           System.out.println(rs.getString("MtName"));
  21         }
  22         jcon.close();
  23         System.out.println("\nRealizado com sucesso.");
  24       } catch (SQLException e) {
  25       System.out.println("SQLException thrown: " + e.getMessage());
  26     }
  27     } catch (MtException mte) {
  28       System.out.println("MtException : " + mte.getMessage());
  29     }
  30   }
  31 }

A outra forma de conexão é somente utilizando o Driver de conexão JDBC, mas mesmo assim, se faz necessário importar a biblioteca matisse.jar para dentro do seu projeto, conforme ilustrado na Figura 14.

A Listagem 2 ilustra a conexão utilizando somente JDBC. Repare que na linha 2 é importada a biblioteca java.sql.*. Feito isto, crie Strings para representar o host e o nome do esquema de banco que se deseja utilizar (linha 7). Após, vamos setar uma classe com o nome com.matisse.sql.MtDriver, pois esta classe representa o driver para conexão com o banco Matisse (linha 10). Em seguida, crie uma URL de conexão (linha 11) e crie um conector JDBC passando como parâmetro a URL de conexão criada (linha 13). Os demais procedimentos são padrões do JDBC como criação de parâmetro (linha 16), script SQL (linha 17) e execução do script (linha 18). O laço while é utilizado para impressão do nome das classes presentes no esquema de banco conectado. Lembre-se de colocar estes comandos dentro de blocos para tratamento de exceções.

Listagem 2. Código em Java descrevendo uma conexão com o banco Matisse utilizando driver JDBC.


  01 package testejdbc;
  02 import java.sql.*;
  03
  04 public class testeJDBC {
  05
  06  public static void main (String[] args) {
  07    String host="localhost", dbname="example"; //informações sobre o hot e o nome do banco de dados
  08     System.out.println("=========== Conexão com DBC puro ===========\n");
  09    try {
  10     Class.forname("com.mantisse.sql.MtDriver"); //Setar a classe Driver do banco Matisse
  11      String url = "jdbc:mt://" + host + "/ +dbname; //Criar URL de banco
  12      System.out.println("Recuperação de nome de classes por conexão JDBC: " + url);
  13      Connection jcon - DriverManager.getConnection(url);
  14
  15      // Acesso regular JDBC
  16      Statement stmt = jcon.createStatement(); //criação de parâmetro
  17      String query = "SELECT MtName FROM MtClass"; //Script SQL
  18      ResultSet rs = stmt.executeQuery(query); //Execuçao do Script
  19      System.out.println("Result from: " + query);
  20      while (rs.next()) {
  21        system.out.println(rs.getString("MtName"));
  22      }
  23      System.out.println("\nSucedido.");
  24      } catch (ClassNotFoundException e) {
  25        System.out.println("Classe Driver JDBC Matisse não encontrada");
  26      } catch (SQLException e) {
  27        System.out.println("SQLException thrown: " + e.getMessage());
  28      }
  29    }
  30 }

Agora vamos criar uma conexão simples em aplicações .Net pelo Visual Studio 2013, especificamente uma aplicação para Console em linguagem VB. É necessário que você tenha instalado a ferramenta Matisse.Net Binding, caso contrário não será possível se conectar ao banco Matisse, pois esta ferramenta habilita a dll responsável pelo driver de conexão Matisse no Visual Studio. O nome desta dll é Matisse 1.1 Type Library, como mostra a Figura 15. A versão desta dll pode mudar dependendo da versão da ferramenta Matisse.Net Binding que se esteja utilizando.

Após instalação desta ferramenta automaticamente, o Visual Studio (estando instalado) reconhece esta dll, pois ela é incorporada a lista de dll’s do framework .Net. Logo, não existe a necessidade de se adicionar referências ao seu projeto ou solução.

Figura 15. Ilustração da dll Matisse 1.1 Type Library.

Feito este procedimento, vamos criar uma solução VB Console Application, como mostra a Figura 16.

Após isto, importe para o seu código as bibliotecas System e Matisse, como mostra as linhas 1 e 2 da Listagem 3.

Depois crie uma classe que represente o driver de conexão para o banco Matisse e passe como parâmetros o host e o nome do esquema que deseja trabalhar: neste exemplo é o host localhost e o esquema de banco example (linha 9). Feito isto, os próximos procedimentos são padrões como qualquer outro tipo de conexão para Banco de Dados. Abra a conexão (linha 11), execute as transações (linha 12), confirme ou cancele as transações (linha 18) e feche a conexão (linha 19).

Figura 16. Ilustração do tipo de aplicação exemplo criada.

Listagem 3. Exemplo de código em VB para conexão.


  01 Imports System
  02 Imports Matisse
  03
  04 Module Module1
  05  sub Main()
  06    Try
  07      'Criação da classe que representa a conexão ao banco Matisse
  08      'Os parâmetros passados são o host e nome do esquema utilizado
  09      Dim db As MtDatabase = new MtDatabase("localhost", "example")
  10
  11      db.Open() 'Abertura de conexão
  12      db.StartTransaction() 'Execução de transações
  13
  14      'Acesso ao banco de dados para leitura/escrita
  15      Console.WriteLine("Conexão de leitura e escrita para acesso em " & _
  16        db.ToString())
  17
  18      db.Commit() 'Confirmação de execução de transações
  19      db.Close() 'Fechar conexão
  20
  21    Catch mte as MtException
  22      Console.WriteLine("MtException : " & mte.Message)
  23    End Try
  24  End Sub
  25 End Module 

O exemplo demonstrado acima não se limita somente a aplicações VB Console Application, mas pode ser utilizado em qualquer outro tipo de solução VB. O driver do Matisse também é compatível com aplicações C# e conexões TCP/IP. O exemplo demonstrado também pode ser aplicado igualmente em aplicações C#, com exceção da importação de bibliotecas que em C# é utilizada a palavra reservada using ao invés de imports. A instalação do Matisse vem com alguns exemplos de aplicações em .Net que podem ser acessadas no diretório NET dentro do diretório Matisse. Para demais exemplos de conexão com o banco com outras linguagens, basta acessar o site para obter os exemplos e tutoriais para utilizar o banco em outras linguagens. No próprio site existem tutoriais para desenvolvedores fazerem uso do Banco de Dados em aplicações PHP, Python, C#, C++, JavaScript, Objective-C, C, XML e etc.

Este post permitiu explorar, de maneira sucinta, o Banco de Dados Matisse. Não foi objetivo descrevê-lo como melhor que os outros BDOO’s ou BDR, mas somente mostrá-lo como uma alternativa. Trata-se de Banco de Dados interessante devido os diversos recursos que ele possui, com relação a outros tipos de bancos na mesma linha.É possível verificar que os procedimentos de instalação na plataforma Windows são fáceis e inclusive as configurações para conexão tanto em aplicações Java quanto em aplicações .Net. Alguns estudiosos na área não consideram o Matisse um BDOO, mas sim um BDOR devido ao uso de rotinas SQL e a visualização dos dados sem em forma de tabela, apesar do site descrevê-lo como um BDOO. Por fim, o Matisse trata-se de mais uma alternativa de Banco de Dados que tanto pode ser utilizada em ambiente acadêmico quanto para uso comercial. Pelas informações aqui apresentadas, pode-se afirmar que o Banco de Dados Matisse é um banco de dados poderoso e que não deixa a desejar, sendo uma ótima alternativa para desenvolvedores que sentem a necessidade de utilizaram BDOO em suas aplicações.