NoSql Crash Course/Tutorial

Nosql

Nosql Problem Overview


I've seen NoSQL pop up quite a bit on SO and I have a solid understanding of why you would use it (from here, Wikipedia, etc). This could be due to the lack of concrete and uniform definition of what it is (more of a paradigm than concrete implementation), but I'm struggling to wrap my head around how I would go about designing a system that would use it or how I would implement it in my system. I'm really stuck in a relational-db mindset thinking of things in terms of tables and joins...

At any rate, does anybody know of a crash course/tutorial on a system that would use it (kind of a "hello world" for a NoSQL-based system) or a tutorial that takes an existing "Hello World" app based on SQL and converts it to NoSQL (not necessarily in code, but just a high-level explanation).

Nosql Solutions


Solution 1 - Nosql

At its most basic form NoSQL is really no more than a way of storing objects using some sort of key/value pairing system. You use this all the time already I assume. For instance. in javascript you can create an object named foo and then do foo['myobj'] = myobj; to store stuff in the object.

All NoSQL servers really do is give you a way to add/delete/query massive arrays and still allow for persistence and fault tolerance. You can create a NoSQL in memory server in about 100 lines of code.

So let's do it this way...in CouchDB you use map/reduce...so let's create a map function do to the same as a bit of SQL code:

SELECT * FROM users WHERE age > 10

In CouchDB you provide the server with a JavaScript function that gets run against every item in the database...

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

That's all there really is to it.....it gets way more complex from there on the server end, as the server has to handle crashes, and multiple revisions of the same object, but this is just an example.

Solution 2 - Nosql

Here is a decent slide show introducing MongoDB. I think some of the big differences is that most of the systems rely on Active Record or some similar database abstraction.

Also I found a wonderful free orlys book on Couch DB here, which is pretty awesome.

Solution 3 - Nosql

Take a look at this video from DNR TV, doing some hands on with MongoDB. Might be nice for a first introduction.

Solution 4 - Nosql

mongoDB website provides a great 10-step tutorial in a form of online mongoDB shell simulation. it takes 10 minutes to complete and is a really great way to get started with noSQL!

http://www.mongodb.org/ (click "try it out")

Solution 5 - Nosql

y_serial is written as a single Python module which reads like a working tutorial and includes many tips and references: http://yserial.sourceforge.net/

This takes the perspective of how to persist an arbitrary Python object (e.g. a dictionary data structure) in a "NoSQL" (Not only SQL) manner.

Solution 6 - Nosql

There is one on Infoq Graph Databases, NOSQL and Neo4j

Solution 7 - Nosql

If you like Neo4j see this cool presentation

Solution 8 - Nosql

Solution 9 - Nosql

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionChris ThompsonView Question on Stackoverflow
Solution 1 - NosqlTimothy BaldridgeView Answer on Stackoverflow
Solution 2 - NosqlJP SilvashyView Answer on Stackoverflow
Solution 3 - NosqlnosView Answer on Stackoverflow
Solution 4 - NosqlzavidovychView Answer on Stackoverflow
Solution 5 - Nosqlcode43View Answer on Stackoverflow
Solution 6 - NosqlSantosh GokakView Answer on Stackoverflow
Solution 7 - NosqldotoreeView Answer on Stackoverflow
Solution 8 - NosqlDanView Answer on Stackoverflow
Solution 9 - Nosqlaacharya_vaddeyView Answer on Stackoverflow