Seven databases in seven weeks
A guide to Modern Databases and the NoSQL movement
人们不用RDBMS由于以下原因:
- schemaless or alternative data structures
- simple replication
- high availability
- horizontal scaling
- new query methods
会比较一下几点:
- durability vs speed
- absolute vs eventual consistency
几种类型的数据库:
- Key-Value: Riak , Reids
- Columnar
基于column的数据库如此命名因为数据对于给定的列是存储在一起的。对比来说,面向行的数据库让行数据存储在一起。差异性看上去是无关重要的,但是这个设计的影响很深。在基于列的数据库中,增加列代价不大,完成在row-by-row基础上。每行有不同的列的集合,或者没有。允许表格是稀疏的,对null值代价也不大。从结构角度来说,columnar是关系数据库和key-value的中间产品。
- HBase:以google的bigtable作为蓝图。HBase建立在Hadoop之上,设计用来水平缩放在commodity hardware簇上。
- Document
- Graph:graph数据库表现性能更好在处理高度交叉的数据中。a graph databases 有节点和节点之间关系组成。节点和关系能有属性——key-value对——存储数据。
A graph database, also called a graph-oriented database, is a type of NoSQL database that uses graph theory to store, map and query relationships. A graph database is essentially a collection of nodes and edges. Each node represents an entity (such as a person or business) and each edge represents a connection or relationship between two nodes. Every node in a graph database is defined by a unique identifier, a set of outgoing edges and/or incoming edges and a set of properties expressed as key/value pairs. Each edge is defined by a unique identifier, a starting-place and/or ending-place node and a set of properties. The mantra of graph database enthusiasts is "If you can whiteboard it, you can graph it." Graph databases are well-suited for analyzing interconnections, which is why there has been a lot of interest in using graph databases to mine data from social media. Graph databases are also useful for working with data in business disciplines that involve complex relationships and dynamic schema, such as supply chain management, identifying the source of an IP telephony issue and creating "customers who bought this also looked at..." recommendations.