您的位置:首页 > 数据库

NoSQL学习-笔记

2017-09-29 16:52 78 查看
NoSQL :非关系型数据库,主要有四大类:
1、键值(key-value)存储数据库:如:Redis、Oracle BDB
2、列存储数据库:如:Hbase
3、文档型数据库:如:MongoDB
4、图形(graph)数据库:如:Neo4j

NoSQL 数据库在一下几种情况比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定Key,比较容易映射复杂值的环境;

1、键值存储数据库:主要用于处理大量数据的高访问负载,也用于一些日志系统等;数据模型为:key指向value的键值对,通常用 hash table 来实现; 优点是:查找速度快; 缺点是:数据无结构化,通常只被当作字符串或者二进制数据。

2、列存储数据库:主要用于分布式的文件系统;数据模型为:以列簇式存储,将同一列数据存在一起; 优点是:查找速度快,可扩展性强,更容易进行分布式扩展;缺点是:功能相对局限。

3、文档型数据库:主要应用场景为:web应用(与key-value类似,value是结构化的,不同的是数据库能够了解value的内容);数据模型为:key-value对应的键值对,value为结构化数据; 优点是:数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构;缺点是:查询性能不高,而且缺乏统一的查询语法。

4、图形数据库: 主要应用场景为:社交网络,推荐系统等,专注于构建关系图谱;数据模型为:图结构;优点是:利用图结构相关算法。比如最短路径寻址,N度关系查找等; 缺点是:很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:
1、不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。
2、无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。
3、弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。
4、分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。
5、异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。
6、BASE:相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终一致性和软事务。

4000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 NoSQL