随着互联网和Web 2.0网站的兴起,越来越多的数据处理问题不是关系数据库和SQL所擅长的,因为关系数据库的数据是格式化和结构化的,而Web的数据大量的是非格式化的,这引发了对非关系型数据的处理问题,称为NoSQL(Not Only SQL)数据库。
NoSQL数据库主要有四类。
(1)键值(Key-Value)存储数据库:这类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。
(2)列存储数据库:这种数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。
(3)文档型数据库:该类型的数据模型是半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看成是键值数据库的升级版,允许相互之间嵌套键值。文档型数据库比键值数据库的查询效率更高。如Couch DB、MongoDb。国内也有文档型数据库SequoiaDB(巨杉数据库),已经开源。
(4)图形(Graph)数据库:图形结构的数据库主要是灵活地处理图形模型。(www.xing528.com)
虽然如此,SQL关系型数据库仍然是基础,可以在此基础上,增加NoSQL数据库,解决各类数据的处理问题——即把NoSQL数据库与结构化的关系数据库并行使用,构造出更合理的软件系统,如图6-6所示。
图6-6 增加NoSQL数据库进行大数据分析的系统
NoSQL数据库没有标准的查询语言(如SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST 式的数据接口或者查询API。REST 是指对请求的约定,REST 规范了调用程序如何用HTTP协议和API与数据存储端进行数据交互。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。