views:

891

answers:

6

What exactly is NoSQL? Is it database systems that only work with {key:value} pairs?

As far as I know MemCache is one of such database systems, am I right?

What other popular NoSQL databases are there and where exactly are they useful?

Thanks, Boda Cydo.

+11  A: 

From wikipedia:

NoSQL is an umbrella term for a loosely defined class of non-relational data stores that break with a long history of relational databases and ACID guarantees. Data stores that fall under this term may not require fixed table schemas, and usually avoid join operations. The term was first popularised in early 2009.

The motivation for such an architecture was high scalability, to support sites such as Facebook, advertising.com, etc...

Justin Ethier
i have a better understanding now. thank you!
bodacydo
The original impetus for these new approaches is horizontal scalability, but other benefits are now significantly, mainly ease of development. Document-oriented databases for example eliminate a lot of the object-relational 'impedance mismatch' work of the past. Also the flexible schemas here fit well with the newer dynamically typed programming languages (Python, Ruby, PHP, ...)
dm
+1  A: 

Take a look at these:

http://en.wikipedia.org/wiki/Nosql#List_of_NoSQL_open_source_projects

and this:

http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB

davek
thanks for the answer!
bodacydo
+1  A: 

I used something called the Raima Data Manager more than a dozen years ago, that qualifies as NoSQL. It calls itself a "Set Oriented Database" Its not based on tables, and there is no query "language", just an C API for asking for subsets.

It's fast and easier to work with in C/C++ and SQL, there's no building up strings to pass to a query interpreter and the data comes back as an enumerable object rather than as an array. variable sized records are normal and don't waste space. I never saw the source code, but there were some hints at the interface that internally, the code used pointers a lot.

I'm not sure that the product I used is even sold anymore, but the company is still around.

John Knoeller
interesting. thanks for contributing your answer.
bodacydo
A: 

Jon Meredith recently gave a presentation to the Front Range PHP Users Group about NoSQL databases which you might find useful: link

Cal Jacobson
Thanks! (15 char limit)
bodacydo
+1  A: 

To quickly get a handle on NoSQL systems, see my Visual Guide to NoSQL Systems. Essentially, NoSQL systems sacrifice either consistency or availability in favor of tolerance to network partitions.

Nathan Hurst
A: 

MongoDB looks interesting, SourceForge is now using it.

I listened to a podcast with a team member. The idea with NoSQL isn't so much to replace SQL as it is to provide a solution for problems that aren't solved well with traditional RDBMS. As mentioned elsewhere, they are faster and scale better at the cost of reliability and atomicity (different solutions to different degrees). You wouldn't want to use one for a financial system, but a document based system would work great.

ongle