NoSQL

NoSQL can be understand as Not only SQL.

Traditional Databases are relational which means they store Data in tables, rows and columns and there are pretty basic mechanisms to make connections (Primary keys, Foreign keys). To store data in a Relational Database one has to define a Schema. Because of the data schema one can use SQL as standard query language which relies on a strong mathematical basis, the relational algebra which is very powerful but terrible for highly interconnected data. Joins that but different table together can take sometimes forever.

  • Rigid data schemas (schema migration is troublesome)
  • Relational algebra and SQL
  • terrible for highly interconnected data
  • JOIN's can take very long

There are a lot of different types of alternative database technologies:

  • Document (MongoDB, CouchDB, etc.)
  • Key-value stores (Redix, Riak, Voldermort, Dynamo, etc.) like Python dictionaries
  • Big tables (Cassandra, Hbase, etc.)
  • Analytic (Hadoop)
  • Graph (Neo4j, OrientDB, HypergraphDB, Titan, etc.)
  • Others (Objectivity/DB, ZODB, etc.)
NoSQL.jpg/
Edit tutorial

Comment on This Data Unit