Nosql非关系型数据库简介

NoSQL是为解决性能问题而产生的

一、NoSQL概述

1、特点

灵活的可扩展性;

灵活的数据模型;

和云计算的紧密结合。

2、传统的关系型数据库性能上的缺陷?

(1)无法满足海量数据的管理需求;

(2)无法满足高并发的需求;

(3)无法满足高扩展性和高可用性的需求。

MySQL集群方式的缺陷:

复杂性,整个集群部署管理配置都非常复杂;

延迟性:当主库压力比较大时,就会带来较大的延迟;

扩容问题:整个集群压力过大时,需求增加新机器对整个数据集进行重新分区,非常复杂。

3、NoSQL兴起的原因?

(1)关系型数据库无法满足web2.0的需求;

(2)数据模型的局限性;

(3)web2.0关系型数据库很多特性没有发挥,比如事务机制和高效的查询机制。

4、NoSQL与关系型数据库的比较?

(1)数据库原理方面:关系型数据库具备完备的关系代数理论作为基础;NoSQL缺乏理论基础。

(2)数据规模方面:关系型数据库很难实现横向扩展,纵向扩展非常有限;NoSQL具有非常好的水平扩展能力。

(3) 数据库模式方面:关系型数据库要定义严格的数据库模式,并且严格遵守;NoSQL数据模型非常灵活。

(4)查询效率方面:关系型数据库对于适当数据量级的查询效率高,数据量级大查询效率下降;NoSQL未构建面向复杂查询的索引,查询性能差。

(5)事务一致性方面:关系型数据库遵循ACID事务模型可以保证事务强一致性;NoSQL采用base模型,只能保证最终一致性。

(6)数据完整性方面:关系型数据库具有保证完整性的完备机制;NoSQL不具备完整性约束。

(7)可用性方面:关系型数据库随着规模增大,为了保证严格的一致性,可用性就被削弱;NoSQL具备很好的可用性,能够在短时间内迅速返回所需的结果。

(8)标准化方面:关系型数据库遵循SQL标准,比较完善;NoSQL未形成统一的行业标准。

(9)技术支持方面:关系型数据库很多都是商业数据库;NoSQL很多属于开源产品。

(10)可维护方面:关系型数据库管理员维护;NoSQL维护较为复杂。

(11)两种数据库的应用场景:

关系型数据库:电信银行的关键业务系统;NoSQL:互联网企业以及一些传统企业的非关键业务。

5、NoSQL的类型

(1)键值数据库:Redis、Memcached、SimpleDB

数据模型:键是一个字符串对象;值可以是任意类型的数据,比如整型、字符型、数组、列表、集合等。

典型应用:涉及频繁读写、拥有简单数据模型的应用内存缓存,比如购物车、配置文件、会话、参数等,存储配置和用户数据信息等移动应用。

不适用情形:没有通过值查询的途径;在键值数据库中,不能通过 两个或以上的键来关联数据,产生故障时不可以回滚。

(2)列族数据库:BigTable、HBase、Cassandra

数据模型:列族。

典型应用:分布式数据存储和管理,数据在地理上分布于多个数据中心的应用程序,可以容忍副本中存在短期不一致情况的应用程序,拥有动态字段的应用程序。

优点:查找速度快,可扩展性强,容易进行分布式扩展,复杂性低。

缺点:功能较少,大都不支持强事务一致性。

(3)图数据库:Neo4J

数据模型:图结构。

典型应用:专门用于处理具有高度相互关联关系的数据,比较适合于社交网络、模式识别、依赖分析、推荐系统以及路径寻址等问题。

优点:灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱。

(4)文档数据库:MongoDB、CouchDB

数据模型:键值。

典型应用:存储、索引并管理面向文档的数据或类似的半结构化数据。

优点:json数据格式。支持更好的并发性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值