一、NoSQL
1.NoSQL泛指非关系型的数据库。随着互联网Web2.0的兴起,传统的关系Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的,数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战。
2.NoSQL的共同特征
(1)不需要预定义模式
(2)无共享架构
(3)弹性可扩展
(4)分区
(5)异步复制
二、键值数据库
传统的关系型数据库处理对多的问题时,需要把外健放在多的一 嘴, 因为RDBMNS理论中没有集合这个概念。而键值数据库可以在任何一端来管理- 一对多的关系。
键值数据库是一种非关系数据库, 它使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为数据唯一标识符。 键和值都可以是从简单对象到复杂复合对象的任何内容。
Redis是典型的键值数据库,键类型是字符串,值类型是字符串、字符串集合(Set) 、
Sorted Set、字符串列表(List)、 哈希(Hash) 等。其中,Hash类型是一种字符串为键、字符串为值的键值对集合,类似键值类型都为字符串的Map.
适用场景:数据可全部放入内存、频繁访问数据。
三、图数据库
1.图形结构的数据库同其他NoSQL和SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。
2.主要产品有
Neo4jInfoGrid、 Infinite Graph。
3.社交网络只是代表了图形数据库应用的冰山-一角,但它可以让人很容易理解图数据库
四、文档数据库
1.文档数据库不同于关系数据库,关系数据库是高度结构化的,而文档数据库允许创建许多不同类型的非结构化的或任意格式的字段,与关系数据库的主要不同在于, 它不提供对参数完整性和分布事务的支持,但和关系数据库也不是相互排斥的,它们之间可以相互交换数据,从而相互补充、扩展。
2.文档数据库是非关系数据库中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似JSON的BJSON格式,因此可以存储比较复杂的数据类型。3.MongoDB 是典型的文档数据库,最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
4.文档型数据库可以看作是键值数据库的升级版。国内文档数据库SquoiB已经开源。
(MongoDB的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
*面向集合存储,易存储对象类型的数据。
*模式自由。
*支持动态查询。
*支持完全索引,包含内部对象。)
五、列式数据库
谈数据本通常总用来应财分布式在储的街量牧物“便仍然存在限:吧向多个列。这些列是由列家族来安排的,主要产品有HBase细节货在2但是
六、 云数据库
云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的-种新兴的共享架构, 它极大地增强了数据库的存储能力, 消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。 云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。
七、 HBase
1.HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase 的目标是处理非常庞大的表,可以通过水平扩展的方式,利用计算机集群处理由超过10亿行数据和数百万列元素组成的数表。
(HBase的系统结构:
1.客户端2.一个master主服务器,多个region服务器)
(HBase的三层结构 :
1)元数据表,又名.META.表,存储了Region和Region服务器的映射关系。
2)当HBase表很大时,.META.表也会被分裂成多个Region。
3)根数据表,又名-ROOT表,记录所有元数据的具体位置,且只有唯一个 Rere
是在程序中被写死的。
4)Zookeeper文件记录了-ROOT-表的位置。)