sexta-feira, 6 de julho de 2012

Oracle NoSQL


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 banco de dados NoSQL Oracle é um banco de dados baseado em “valores-chave” distribuídos. Foi projetado para fornecer armazenamento de dados altamente confiável, escalável e disponível através de um conjunto configurável de sistemas que funcionam como nós de armazenamento.


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