relational. Systems are often schema less, avoid joins & are easy to scale. The term NoSQL was coined in 1998 by Carlo Strozzi and then again in early 2009 with the no:sql(east) conference A better term would have been “NoREL” but NoSQL caught on. Think of it more as meaning “Not Only SQL”
the up & up. Facebook is rumoured to hold over 50TB of data in their NoSQL system for their inbox search The data we store is more complex than 15 years ago. Easy Distribution With all this data is needs to be easy to be able to add/remove servers without any disruption of service.
to handle lots of data and heavy load Based on a Amazon’s Dynamo Paper Example: Voldermort ( http://project-voldemort.com /) - Developed by the guys at LinkedIn Key Value Name Joe Bloggs Age 42 Occupation Stunt Double Height 175cm Weight 77kg
Google Data is grouped by columns, not rows. Example: Cassandra ( http://cassandra.apache.org /) – Originally developed by Facebook, now and Apache project. ColumnFamily Row Key Column Name Key Key Key Value Value Value Column Name Key Key Key Value Value Value
are popular formats Maps well to an Object Orientated programming model Example: CouchDB ( http://couchdb.apache.org /) or … { “id”: “123”, “name”: “Oliver Clothesoff”, “dob”: { “year”: 1985, “month”: 5, “day”: 12 } }
number of databases. These contain a number of collections & you can have collections nested under other collections. Compare it to MySQL which has databases and tables.
pairs, performs some calculations and returns 0 or more key/value pairs map = function() { if (!this.query) { return; } emit (this.query, {count: 1}); }
tutorial at:http ://www.mongodb.org/display/DOCS/Tutorial Some handy MongoDB sites: MongoDB Cookbook: http://cookbook.mongodb.org/ Kyle Banker’s blog: http://kylebanker.com/blog/ There’s also a load of handy reference cards, stickers and other MongoDB freebies up front!