七周七数据库-读书笔记1

来源:互联网 发布:创建网络连接快捷方式 编辑:程序博客网 时间:2024/06/11 04:17

数据库按类型可分为关系型,键-值型,多列型,面向文档型和图型。

关系数据库管理系统(RDBMS)是以集合理论为基础的系统,实现为具和列的二维表。与它打交道使用结构化查询语言(SQL)。数据值具有类型,可以是数字、字符串、日期、未解释的二进制大对象,或其它类型。这种表结构可以联接并转化为新的、更复杂的表,因为它们的数学基础士关系(集合)理论。常用的开源数据库有MySQL,PostgreSQL,H2,HSQLDB,SQLite等。

键-值(Key-Value,KV)数据库是最简单的模型。KV数据库将键与值配对,类似于编程语言里的映射(或哈希表)。某些KV实现允许复杂的值类型,如哈希或者列表。。一些 KV 实现提供了一种迭代遍历键的方式,但这也是额外的好处。如果你将文件的路径视为键而将文件内容作为值,文件系统也可以看成是键-值存储库。KV存储库对资源的要求就非常少,有时候有极高的性能,但是当涉及到复杂的查询和聚合需求时,一般不会有帮助。常用的数据库有memcached(及相关的memcachedb和membase),Voldemort,Redis和Riak。 

列型(面向列的)数据库的命名源自于其设计的一个重要方面,即来自一个给定的(在二维表的意义上)的数据存放在一起。在面向列的数据库中,添加列是相当简易的,而且是逐行完成的。每一行可以有一组不同的列,或完全没有,允许表保持稀疏(sparse),而不会产生空值的存储成本。在结构方面,列型数据库大约介于关系数据库和键-值存储库之间。在列型数据库市场中,竞争相比关系数据库或键-值存储较少。三种最流行的产品是HBase,Cassandra和Hypertable。 

面向文档的数据库存储的就是文档。简而言之,文档就像是哈希,具有一个独一无二的标示符(ID)字段和值,值可能是任何类型,包括更多的哈希。文档可以包含嵌套的结构,因此,它们表现出了高度的灵活性,允许有可变域。该系统对输入的数据很少有限制,只要它满足基本要求,可以表示为一个文档。在建索引、自由定义的查询,复制、一致性及其他设计决策等方面,不同的文档数据库采取了不同的方法。需要了解这些差异,及其对特定使用场景的影响,才能在它们之间做出明智地选择。文档数据库市场中的两大开源产品是MongoDB和CouchDB。

图数据库是一种不太常用的数据库类型,图数据库善于处理高度互联的数据。图数据库包含节点及节点之间的关系。节点和关系可以有一些属性(一些键-值对),用来存储数据。图数据库的真正实力是按照关系遍历节点。现在最流行的图数据库Neo4j。

0 0