独家一文读懂非关系型数据库NoSQ

本文共字,阅读全文约需0分钟。本文为大家解析非关系型数据库(NoSQL)。[在数据派THU后台(非留言区)回复"综述"即可获取资源。]

前言

NoSQL(NoSQL=NotOnlySQL),意即"不仅仅是SQL"。

现代计算系统每天在网络上都会产生庞大的数据量。这些数据有很大一部分是由关系型数据库管理系统(RDBMSs)来处理,其严谨成熟的数学理论基础使得数据建模和应用程序编程更加简单。

但随着信息化的浪潮和互联网的兴起,传统的RDBMS在一些业务上开始出现问题。首先,对数据库存储的容量要求越来越高,单机无法满足需求,很多时候需要用集群来解决问题,而RDBMS由于要支持join,union等操作,一般不支持分布式集群。其次,在大数据大行其道的今天,很多的数据都“频繁读和增加,不频繁修改”,而RDBMS对所有操作一视同仁,这就带来了优化的空间。另外,互联网时代业务的不确定性导致数据库的存储模式也需要频繁变更,不自由的存储模式增大了运维的复杂性和扩展的难度。

NoSQL是一项全新的数据库革命性运动,早期就有人提出,发展至年趋势越发高涨。这类数据库主要有这些特点:非关系型的、分布式的、开源的、水平可扩展的。最初的目的是为了大规模web应用。NoSQL的拥护者们提倡运用非关系型的数据存储,通常的应用如下特点:模式自由、支持简易复制、简单的API、最终的一致性(非ACID)、大容量数据等。

笔者是MongoDB用户,也使用过Redis。关系型数据库使用过MySQL与Oracle,对两者的区别有一定的体会。Mongo和Redis的操作都非常简单,速度很快,很多用SQL需要很多条语句的操作在NoSQL数据库中都是句以内完成。另外NoSQL配置cluster也很容易,且可以随时更改partition和replication的数量,Mongo的新版本还内置了MapReduce操作,使其有了做大数据分析的能力。

NoSQL理论基础1.关系型数据库理论-ACID

ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。

A–Atomicity–原子性

一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有被执行过一样。

C–Consistency–一致性

在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

I–Isolation–隔离性

数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Readun







































治白癜风最有效的方法
北京治疗白癜风最好的专科医院



转载请注明:http://www.xcqg58.com/xxzl/xxzl/7059.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了