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).

Chris Thompson
fonte
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.

Timothy Baldridge
fonte
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,
2

O site mongoDB fornece um ótimo tutorial de 10 etapas em uma forma de simulação de shell mongoDB online. leva 10 minutos para ser concluído e é uma ótima maneira de começar a usar o noSQL!

http://www.mongodb.org/ (clique em "experimente")

Zavidovych
fonte
1
apenas para adicionar a isso, eles têm uma página sql para mongo que ajuda a obter o conceito por meio do código docs.mongodb.org/manual/reference/sql-comparison
Choco Smith
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).

code43
fonte