HSQLDB - SGBD em Java

Introdução

Hypersonic SQL DataBase, ou seu acrônimo HSQLDB, é um Sistema para Gerenciamento de Banco de Dados (SGBD) desenvolvido exclusivamente em linguagem Java

HSQLDB implementa a semântica ACID (Atomicidade, Consistência, Isolamento, e Durabilidade), além de ser um SGBD tansacional.

Modo de de operação do HSQLDB A engine HSQLDB pode ser executada em diferentes modos dependendo do senário da aplicação, e são eles:

In-memory mode Permite todas as instruções ANSI SQL, e todos as base de dados, tabelas índices e os demais componentes do banco de dados, são voláteis, mantidos em memória e não são persistidos em disco.

Stand-alone mode A aplicação cria uma base de dados conectando atraves do JDBC, e a engine HSQLDB executa acessando arquivos diretamente no filesystem. Este modo não permite usuários concorrentes, não há theads adicionais, nem sobrecarga de TCP, é o modo mais indicado para plicações embarcadas.

Server mode Este modo é o cliente/servidor padrão, similar a qualquer outro SGBD relacional de mercado, permite conexões concorrentes sobre sockets TCP, e conectividade através de clientes JDBC e consultas enquanto estiver em execução.

Web server mode Neste modo o HSQLDB pode agir como um WebServer, aceitando consultas através do HTTP, ou como servlet em um container Web. Neste modo não há transações.

Sintaxe

java -cp hsqldb.jar org.hsqldb.server.Server --database.0 file:nomeArquivoDoSeuBanco --dbname.0 nomeDoSeuBanco


java -cp /opt/hsqldb/hsqldb.jar org.hsqldb.Server -database /tmp/bd -port 9001 -system_exit=true

HSQLDB estrutura do arquivo de banco de dados

HSQLDB mantém todas as tabelas e índices em memória, salvando as instruções SQL em um arquivo chamado database.script, que também atua como o log de transações. Quando a engine é inicializada, este arquivo é lido e todas as instruções SQL são processados, e assim recriar o banco de dados inteiro. Durante o encerramento, a engine HSQLDB irá gerar um novo arquivo database.script com o conjunto mínimo de instruções para a inicialização do banco de dados rápido.

Além das tabelas de memória padrão, HSQLDB também suporta tabelas de "cache" e "texto". Dados para todas as tabelas em cache é mantido em um arquivo chamado database.data, enquanto os dados da tabela texto é mantido em qualquer arquivo de texto delimitado com padronização CSV, nomeado pela tabela de origem declaração constante não-padrão SQL.

Enquanto tabelas cached fornecer suporte para conjuntos de dados maiores do que a RAM disponível, tabelas de texto são uma forma conveniente para importar e exportar dados.

Além do database.script e arquivos database.data, qualquer banco de dados HSQLDB pode incluir um arquivo database.properties, em que o administrador pode definir vários parâmetros que afetam a compatibilidade ANSI SQL.

Todos os arquivos de banco de dados (exceto dados de texto arquivos de mesa) devem ser mantidos no mesmo diretório.

Não há nenhuma maneira explícita para criar bancos de dados HSQLDB. Se você perguntar a engine para abrir um arquivo de banco de dados não-existente (usando o servidor de opção de modo de banco de dados ou um modo stand-alone URL JDBC), o arquivo e o diretório contendo será criado. Então, se você tem certeza que havia dados desse banco de dados vazio, verificar se houve erros de digitação.

Referências

http://fortium.edu.br/blog/vanderlei_alles/files/2011/05/passo-a-passo.pdf
http://www.thiagovespa.com.br/blog/2010/10/02/utilizando-hsqldb-em-suas-aplicacoes/
http://www.fontes.pro.br/educacional/materialpaginas/java/arquivos/HSQLDB/hsqldb.php
http://www.ibm.com/developerworks/opensource/library/os-echsql/index.html
http://hsqldb.org/doc/guide/ch01.html

Comentários