Tutorial / curso intensivo do NoSql [fechado]


100

Eu vi o NoSQL aparecer um pouco no SO e tenho um sólido entendimento de por que você o usaria (a partir daqui, Wikipedia, etc). Isso pode ser devido à falta de uma definição concreta e uniforme do que é (mais um paradigma do que uma implementação concreta), mas estou lutando para entender como faria para projetar um sistema que o usaria ou como Eu iria implementá-lo em meu sistema. Estou realmente preso a uma mentalidade de banco de dados relacional pensando nas coisas em termos de tabelas e junções ...

De qualquer forma, alguém sabe de um curso intensivo / tutorial sobre um sistema que o usaria (uma espécie de "hello world" para um sistema baseado em NoSQL) ou um tutorial que leva um aplicativo "Hello World" existente baseado em SQL? e o converte em NoSQL (não necessariamente em código, mas apenas uma explicação de alto nível).


Eu realmente gostei desse vídeo . É um webinar da 10Gen. Ele explica como publicar conteúdo básico e adicionar interações sociais (tags, comentários, agregação de dados) usando MongoDB.
Onema de

Respostas:



53

Em sua forma mais básica, o NoSQL nada mais é do que uma maneira de armazenar objetos usando algum tipo de sistema de emparelhamento de chave / valor. Você já usa isso o tempo todo, eu suponho. Por exemplo. em javascript você pode criar um objeto chamado foo e então fazer foo['myobj'] = myobj;para armazenar coisas no objeto.

Tudo o que os servidores NoSQL realmente fazem é fornecer uma maneira de adicionar / excluir / consultar matrizes massivas e ainda permitir persistência e tolerância a falhas. Você pode criar um servidor NoSQL em memória em cerca de 100 linhas de código.

Então vamos fazer assim ... no CouchDB você usa mapear / reduzir ... então vamos criar uma função de mapa que faça o mesmo que um pedaço de código SQL:

SELECT * FROM users WHERE age > 10

No CouchDB, você fornece ao servidor uma função JavaScript que é executada em cada item do banco de dados ...

function (doc)
{
    if (doc.objType == "users") {
       if (doc.age > 10) {
           emit(doc._id, null)
       }
    }
}

Isso é tudo o que realmente importa ... fica muito mais complexo a partir daí na extremidade do servidor, já que o servidor tem que lidar com travamentos e várias revisões do mesmo objeto, mas este é apenas um exemplo.


10
Seu exemplo parece que seria ineficiente em um grande banco de dados. O servidor pode indexar no tipo de documento ou ser inteligente sobre as chaves que usa e indexar nas chaves? Como as chaves podem ser user1, user2, etc.
Jess,



1

y_serial é escrito como um único módulo Python que é lido como um tutorial de trabalho e inclui muitas dicas e referências: http://yserial.sourceforge.net/

Isso leva a perspectiva de como persistir um objeto Python arbitrário (por exemplo, uma estrutura de dados de dicionário) de uma maneira "NoSQL" (não apenas SQL).





Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.