Pergunta

Da Wikipedia:

Notável produção implementações [de bancos de dados NoSQL] incluem Google BigTable, da Amazon Dynamo e Cassandra.

Mas o Google BigTable não tem alguma variante do SQL, o chamado GQL.

O que eu estou ausente?

Foi útil?

Solução

NoSQL é um termo guarda-chuva para todos os bancos de dados que são diferentes do 'padrão' de bases de dados SQL, tais como MySQL, Microsoft SQL Server e PostgreSQL.

Estes 'padrão' de bancos de dados SQL são todos os bancos de dados relacionais, recurso a linguagem de consulta SQL e aderir ao Propriedades ACID.Essas propriedades são, basicamente, se resumem a consistência.

Um banco de dados NoSQL é diferente porque ele não oferece suporte a uma ou mais destas características-chave dos chamados "bancos de dados SQL':

  • Consistência
  • De dados relacionais
  • Linguagem SQL

A maioria desses recursos vão de mão em mão.

Consistência

A consistência é onde a maioria dos bancos de dados NoSQL diferentes de bancos de dados SQL.Você pode puxar o plugue de um banco de dados SQL e certifique-se de que seus dados ainda é consistente e não corrompida.Bancos de dados NoSQL tendem a sacrificar essa consistência para uma melhor escalabilidade.Google Bigtable também faz isso.

De dados relacionais

Bancos de dados SQL giram em torno normalizado, de dados relacional.O banco de dados garante que essas relações continuam a ser válidos e consistentes, não importa o que você jogue com ele.Bancos de dados NoSQL, em geral, não relações de apoio, porque eles não suportam a consistência para impor essas relações.Além disso, dados relacional é ruim para o desempenho quando os dados são distribuídos por vários servidores.

Uma exceção são bases de dados de gráficos.Estes são considerados bancos de dados NoSQL, mas não apresentam dados relacionais.Na verdade, é o que eles são todos!

Linguagem SQL

A linguagem SQL foi especialmente concebida para bases de dados relacionais, os chamados "bancos de dados SQL'.Desde que a maioria dos bancos de dados NoSQL são muito diferentes dos bancos de dados relacionais, eles não têm a necessidade de SQL.Além disso, alguns bancos de dados NoSQL tem recursos que simplesmente não podem ser expressas em SQL, exigindo, portanto, uma diferente linguagem de consulta.

Por último, mas não menos importante, NoSQL é simplesmente um buzzword.Isso significa, basicamente, "nada, mas a velha e fiel servidor MySQL no sótão", que inclui um monte de alternativas de mecanismos de armazenamento.Até mesmo um simples arquivo de texto pode ser considerado uma solução NoSQL :)

Outras dicas

Quando as pessoas dizem "NoSQL" o que geralmente quer dizer é "não-relacional".Para o melhor de meu conhecimento BigTable não é uma característica primária / chaves estrangeiras, Associações, ou relacional, cálculo de qualquer tipo.

O fato de que o BigTable apresenta uma sintaxe de consulta que inclui as palavras "SELECT" e "ONDE", não significa que ele adere aos princípios de bancos de dados relacionais.Ele é mais do que uma conveniência, ou um "gancho", para fazer a única entidade-tipo corresponde a mais familiar para programadores provenientes de bancos de dados relacionais.

Google BigTable tem alguma variante do SQL, chamado GQL

Bem, esse é o ponto inteiro.Eles têm uma língua que Não é(t) SQL.Só isso já é motivo o suficiente para ser classificado para além.

A única coisa que você deve olhar em comum entre al bancos de dados NoSQL (gráfico, o documento, a grande mesa...) é que eles não respondem às consultas SQL.

Apoio SQL tem uma enorme restrição sobre a forma como os dados são organizados internamente e os algoritmos que você pode usar.NoSQL recusar-se a essas restrições para a implementação de alternativas de algoritmos para melhorar características importantes que são vítimas de um total de SQL conformidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top