什么是NoSQL数据库?它与传统数据库有什么异同以及NoSQL的三大基石和四大类型

1、NoSQL数据库的特点

①灵活的可拓展性:NoSQL数据库在设计之初就是为了满足“横向扩展”的需求。

②灵活的数据模型:NoSQL数据库采用键/值、列族等非关系模型,允许在一个数据元素里存储不同类型的数据。

③与云计算紧密融合:NoSQL数据库凭借自身良好的横向扩展能力,充分自由利用云计算基础设施,很好融入到云计算环境中,构建基于NoSQL的云数据库服务。

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

比较标准关系数据库NoSQL备注
数据库原理完全支持部分支持关系型数据库有关系代数理论作为基础;NoSQL没有统一的理论基础。
数据规模超大关系数据库很难实现横向扩展,纵向扩展的空间也比较有限,性能会随着数据规模的增大而降低。NoSQL可以很容易通过添加更多设备来支持更大规模的数据。
数据库模式固定灵活关系型数据库需要定义数据库模式,严格遵守数据定义和相关约束条件;NoSQL不存在数据库模式,可以自由灵活的定义并存储不同类型的数据。
查询效率可以实现高效的简单查询,复杂查询的性能不尽人意关系型数据库可以借助索引机制实现快速查询(包括记录查询和范围查询);很多NoSQL没有面向复杂查询的索引,虽然可以用MapReduce来加速查询,但是在复杂查询方面的性能仍然不如关系型数据库。
一致性强一致性弱一致性关系型数据库严格遵守事务ACID模型,可以保证事务强一致性;很多NoSQL数据库放松了对事务ACID四性的要求,而是遵守base模型,只能保证最终一致性。
数据完整性容易实现很难实现热和一个关系型数据库都可以很容易实现数据完整性,比如铜鼓主键或者非空约束来实现实体完整性,通过主键、外键来实现参照完整性,通过约束或者触发器来实现用户自定义完整性;NoSQL数据库无法实现。
扩展性一般关系型数据库很难实现横向扩展,纵向扩展的空间也比较有限;NoSQL在设计之初就充分考虑了横向扩展的需求,可以很容易通过添加廉价设备实现扩展。
可用性很好关系数据库在任何时候都可以保证数据一致性为优先目标,其次才是优化系统性能,随着数据规模的增大,关系数据库为了保证严格的一致性,只能提供相对较弱的可用性;大多数NoSQL都能提供较高的可用性。
标准化关系型数据库已经标准化;NoSQL还没有行业标准,不同的NoSQL数据库都有自己的查询语言,很难规范应用程序接口。
技术支持关系型数据库经过几十年的发展,已经非常成熟,Oracle等大型厂商都可以提供很好的技术支持;NoSQL在技术方面仍处于起步阶段。
可维护性复杂复杂关系数据库需要专门的数据库管理员(DBA)维护;NoSQL数据库虽然没有关系型数据库复杂,也难以维护。

3、NoSQL的四大类型

    1、键值数据库

                 

项目描述
相关产品Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached
数据模型键/值对
典型应用内容缓存,比如会话、配置文件、参数、购物车
优点扩展性好、灵活性好、大量写操作时性能高
缺点无法存储结构化信息、条件查询效率较低
使用者百度云数据库(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter(Redis和Memcached)、Youtube(Memcached)

    2、列族数据库

项目描述
相关产品BigTable、HBase、HadoopDB、Cassandra、GreenPlum、PNUTS
数据模型列族
典型应用分布式存储与管理
优点查找速度快、可扩展性强、容易进行分布式扩展、复杂性低
缺点功能较少、大豆不支持强事务一致性
使用者Facebook(HBASE)、Instagram(Cassandra)、Twitter(Cassandra和HBase)、Yahoo!(HBase)

    3、文档数据库

项目描述
相关产品MongoDB、CouchDB、CloudKit、RaptorDB、SISODB、ThruDB、Jackrabbit
数据模型版本化的文档
典型应用存储索引并管理面向文档的数据或者类似的半结构化数据
优点性能好、灵活性高、复杂性低、数据结构灵活
缺点缺乏统一的查询语句
使用者百度云数据库(MongoDB)、SAP(MongoDB)、Codecademy(MongoDB)、Foursquare(MongoDB)

    4、图形数据库

项目描述
相关产品Neo4J、OrientDB、InfoGrid、GraphDB、Infinite Graph
数据模型图结构
典型应用应用于大量复杂、互连接、低结构化的图结构场合,比如社交网络、推荐系统
优点灵活性高、支持复杂的图形计算、可用于构建复杂的关系图谱
缺点复杂性高、只能支持一定的数据规模
使用者Adobe(Neo4J)、Cisco(Neo4J)、T-Mobile(Neo4J)

4、NoSQL的三大基石

   1、CAP

  • C(Consistency):一致性。它是指任何一个读操作总是能够读到之前完成的写操作的结果,也就是在分布式环境中,多点的数据是一致的。
  • A(Availability):可用性。它是指快速获取数据,可以在确定的时间内返回操作结果。       
  • P(Tolerance of Network Partition)分区容忍性。它是指当出现网络分区的情况时(即系统中的一部分节点无法和其他节点进行通信),分离的系统也能正常运行。   

                         

      CAP理论告诉我们:一个分布式系统不可能同时满足一致性、可用性和分区容忍性这3个需求,最多只能同时满足其中两个。

   2、BASE

       说到BASE   就不得不提ACID。关系型数据库中设计了复杂的事务管理机制来保证事务在执行过程中严格满足ACID。BASE的基本思想完全不同于ACID模型,BASE的英文含义是酸,而ACID的英文含义是碱

BASE的基本含义 是基本可用(Basically Availble)、软状态(Soft-state)和最终一致性(Eventual consistency)。

   3、最终一致性

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值