Neste
artigo introdutório, estarei abordando sobre o Oracle NoSQL.
Oracle NOSQL, o que é?
O termo “NoSQL” surgiu em 1998, a partir de uma solução de banco de dados
que não oferecia uma interface SQL, mas esse sistema ainda era baseado na
arquitetura relacional.
O termo passou a representar soluções que promoviam uma alternativa ao
Modelo Relacional, tornando-se uma abreviação de Not Only SQL (não apenas SQL).
O propósito das soluções NoSQL não é substituir o Modelo Relacional como um todo, mas apenas
em casos nos quais seja necessária
uma maior flexibilidade
da estruturação do banco.
Em português já existe o acrônimo MRNN para Modelo Relacional
Não-Normalizado.
Os gerenciadores de banco
de dados de larga escala têm sido caracterizados pelas propriedades ACID
transacionais de Atomicidade, Consistência, Isolamento e Durabilidade. Em
contraste, NoSQL, por vezes, é caracterizada pela sigla BASE, que aceita os conflitos acontecerão durante as transações.
Características:
§ Disponibilidade básica: Utiliza a replicação para reduzir a
probabilidade de indisponibilidade de dados e utiliza a fragmentação (denominada
“sharding”) para particionar os dados entre vários servidores diferentes, permitindo
que no caso de qualquer falha entre os servidores a informação possa ser
disponibilizada parcialmente. Esta característica apresenta um sistema sempre
disponível, mesmo que os subconjuntos de dados se tornem indisponíveis por
curtos períodos de tempo.
§ Estado SOFT: Enquanto bancos de dados relacionais assumem que a consistência dos
dados que é um requisito difícil. Nos bancos NoSQL é possível ter dados
inconsistentes e relegar a concepção em torno das inconsistências.
§ Consistência eventual: Embora aplicativos trabalhem com consistência
instantânea, sistemas NoSQL certificam-se que, em algum momento futuro os dados
serão consistidos. Em contraste com bancos de dados relacionais a consistência deve
ser confirmação da transação, o banco NoSQL garante consistência apenas em
algum momento futuro indefinido.
O “driver” de acesso
ao banco de dados NoSQL inclui os algoritmos de “hash” para garantir a
distribuição adequada de dados, bem como informações de desempenho e de estado
sobre cada nó de armazenamento que lhe permitam fornecer balanceamento de carga
ideal e processamento da consulta. O banco de dados NoSQL fornece fácil administração
por meio de uma interface de linha de comando ou console web.
O Oracle NoSQL, possui
uma arquitetura " No Single Point of
Failure " que é uma solução que permite acessar os dados de modo direto e
rápido sem exigir latência de soluções de gerenciamento de dados tradicional.
Por exemplo, dados
de sites da “web” com alto volume, processamento de eventos de alta
produtividade e redes de comunicações sociais representam domínios de
aplicativos que produzem volumes extraordinários de dados com chaves simples.
Os dados são
armazenados como pares de “valores-chave”, que são escritos para nós de armaze-namento
específico, com base no valor de “hash” da chave primária. Nós de armazenamento
são replicados para garantir alta disponibilidade, para executar um “failover”
rápido no caso de uma falha de nó e o balanceamento cargas nas consultas.
ARQUITETURA
Principais características:
§ Simplicidade no modelo
de dados
§ Escalabilidade
§ Comportamento previsível
§ Alta disponibilidade
§ Fácil administração
O banco de dados Oracle NoSQL possui um
serviço de administração, acessível a partir de uma interface de linha de
comando ou por uma “console web”. Através do serviço de administração os DBAs
podem configurar uma instância de banco de dados, iniciá-lo, pará-lo e
monitorar o desempenho, sem necessitar editar arquivos de configuração
manualmente, escrever “shell scripts” ou executar consultas no banco de dados.
Além de fornecer um
ponto único de registro operações, o Oracle NoSQL tem a capacidade de reunir
uma coleção de operações usando o método “execute”, fornecendo uma semântica
transacional entre várias atualizações em registros com o mesmo “Major Key
Path”.
O Oracle NoSQL usa
a replicação de dados para garantir a disponibilidade dos dados em caso de
falha. A arquitetura propaga a partir de um nó mestre. Para o caso de falhas do
nó mestre, os nós do grupo de replicação automaticamente escolhem novo nó para
tornar-se o replicador (usando o protocolo de Paxos).
Rubens Oliveira
DBA Oracle Consultor
olivert.dba@consultant.com