重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
基本含义NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。NoSQLNoSQL数据库的四大分类键值(Key-Value)存储数据库这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。[3] 举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.列存储数据库。这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak.文档型数据库文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。图形(Graph)数据库图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。[2] 如:Neo4J, InfoGrid, Infinite Graph.因此,我们总结NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。
专注于为中小企业提供做网站、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业察哈尔右翼中旗免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
一般将NoSQL数据库分为四大类:键值(Key-Value)存储数据库、列存储数据库、文档型数据库和图形(Graph)数据库。它们的数据模型、优缺点、典型应用场景。
键值(Key-Value)存储数据库Key指向Value的键值对,通常用hash表来实现查找速度快数据无结构化(通常只被当作字符串或者二进制数据)内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等。
列存储数据库,以列簇式存储,将同一列数据存在一起查找速度快,可扩展性强,更容易进行分布式扩展功能相对局限分布式的文件系统。
文档型数据库,Key-Value对应的键值对,Value为结构化数据,数据结构要求不严格,表结构可变(不需要像关系型数据库一样需预先定义表结构),查询性能不高,而且缺乏统一的查询语法,Web应用。
图形(Graph)数据库,图结构,利用图结构相关算法(如最短路径寻址,N度关系查找等),很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案,社交网络,推荐系统等。
NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。[3] 举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
列存储数据库。
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak.
文档型数据库
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。
图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。[2] 如:Neo4J, InfoGrid, Infinite Graph.
因此,我们总结NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。
NoSQL,指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的
SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
NoSQL(NoSQL
= Not Only SQL
),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数
据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
从这一新兴技术中选择一款正确的NoSQL数据库是非常具有挑战性的。比一下网建议在选择时考虑以下因素:
并发控制
并
发控制指的是当多个用户同时更新运行时,用于保护数据库完整性的各种技术。并发机制不正确可能导致脏读、幻读和不可重复读等此类问题。并发控制的目的是保
证一个用户的工作不会对另一个用户的工作产生不合理的影响。在某些情况下,这些措施保证了当用户和其他用户一起操作时,所得的结果和她单独操作时的结果是
一样的。在另一些情况下,这表示用户的工作按预定的方式受其他用户的影响。
封锁
就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。
封锁是一次只允许一个用户读取或修改的一种机制,是实现并发控制的一个非常重要的技术。
MVCC
Multi-Version Concurrency Control多版本并发控制,维持一个数据的多个版本使读写操作没有冲突。MVCC优化了数据库并发系统,使系统在有大量并发用户时得到最高的性能,并且可以不用关闭服务器就直接进行热备份。
ACID
指
数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久
性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction
processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。
None
一些系统不提供原子性。
镜像
数据库镜像是DBMS根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上,每当主数据库更新时,DBMS会自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据的一致性。
镜像分为同步和异步。
数据存储
指的是数据的物理特性怎样被存储在数据库中。
磁盘 数据被存储在硬盘驱动器里;
GFS或谷歌文件系统是一个由谷歌开发的专有的分布式文件系统;
Hadoop是Apache软件框架,免费许可下支持数据密集型分布式应用程序;
RAM随机存储器;
插件 可以添加外部插件;
Amazon S3通过Web服务接口提供存储;
BDB:BDB
全称是 “Berkeley DB”,它是MySQL具有事务能力的表类型,由Sleepycat
Software开发。BDB表类型提供了MySQL用户长久期盼的功能,即事务控制能力。在任何RDBMS中,事务控制能力都是一种极其重要和宝贵的功
能。事务控制能力使得我们能够确保一组命令确实已经全部执行成功,或者确保当任何一个命令出现错误时所有命令的执行结果均被退回。
实现语言
实现语言会影响数据库的发展速度。典型的NoSQL数据库是用低级语言如C / C + +编写的。另一方面,那些更高层次的语言如Java,使自定义更容易。
实现语言有:C, C++, Erlang, Java, Python
特性
考虑下列哪一个特点对你的数据库是最重要的:
持久性
可用性
一致性
分区容忍性
证书类型
下面这些许可证是一个不同的开放源码许可的形式:
GPL:通用公共许可证
BSD:伯克利软件分发
MPL:Mozilla公共许可证
EPL:Eclipse公共许可证
IDPL:最初的开发者的公共许可证
LGPL:较宽松通用公共许可证
存储类型
存储类型是NoSQL数据库最大的不同,是决定使用哪款数据库的一个首要指标。
关键字:支持get、put和删除操作
按列存储:相对于传统的按行存储,数据集成容易多了
面向文件系统:存储像是JSON或XML这样的结构化文件,很容易就能从面向对象软件中获取数据。