An Introduction to NoSQL Databases

Based on what I found at the official NoSQL site, here is a brief introduction combined with material from around the web.

Key-value databases

  • The more widely used ones

  • Characteristics:

      Processes data in memory, so it is relatively the fastest; the data storage structure is the simplest, with only the key-value form; support for querying and aggregating values is very weak; because data is processed in memory, data durability is relatively weak. But redis does have big-data management capabilities; transaction support is weak.
    

    Document databases

  • The more widely used ones

  • Characteristics:

      mongodb processes data on disk and is more than ten times faster than SQL databases; couchbase processes data in memory; both have very strong horizontal scaling capabilities; the values in document databases can handle data with complex document structures, and query and aggregation performance is relatively stronger than that of key-value databases. They have big-data processing capabilities; there is no transaction support.
    

Column-family databases

  • The more widely used ones

  • Characteristics:

      Processes data on disk, mainly used for big-data processing; write speed is noticeably faster than read speed, while overall read/write speed is slower than that of key-value and document databases; it has powerful data query and aggregation features; there is no transaction support.
    

Graph databases

  • The more widely used ones

  • Characteristics:

          Disk-based data processing, focused on graph (here 'graph' means graph theory in mathematics, that is, a combined system containing a number of nodes with edge relationships between them, where nodes and edges can carry associated attributes) data querying and computation. ACID transactions
    

Multi-model databases

Object databases

  • The more widely used ones

Grid and cloud databases

  • The more widely used ones

XML databases

Multidimensional databases

Multivalue databases

  • The more widely used ones

Event-driven databases

Time series / streaming databases

  • The more widely used ones
    • Axibase (open source)
    • kdb+ (personal edition open source)

Scientific and specialized databases

  • The more widely used ones