数据库MongoDB入门笔记:NoSQL,非关系型数据库简介
Posted 码喵家的杂货铺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库MongoDB入门笔记:NoSQL,非关系型数据库简介相关的知识,希望对你有一定的参考价值。
随着信息技术的不断革新,传统的关系型数据库在处理大数据时已经略显疲惫,非关系型数据库(NoSQL)应运而生。MongoDB则是近年来以脱缰野马般速度发展的非关系型数据库。在大数据时代,MongoDB有着举足轻重的地位。
MongoDB系列笔记共有三个部分,本篇是第一部分,简单说一些NoSQL的故事。更多的信息大家可以自己多去百度或者知乎。
先说关系型数据库:关系型数据库是建立在关系模型基础上的数据库,一般遵循ACID原则。
ACID原则:
A(Atomicity)原子性:事务里的所有操作要么全部完成,要么都不做;事务成功代表着事务里的所有操作都成功,只要有一个操作失败,整个事务就失败;
C(Consistency)一致性:数据库要一直处于一致的状态,事务的运行不改变数据库原本的一致性约束(完整性约束a+b=10,如果一个事务改变了a,那么必须改变b,否则事务失败);
I (Isolation)独立性:并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响;
D(Durability)持久性:持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。
非关系型数据库:NoSQL,在2009年被正式提出来,其含义有“Non-Relational”,“Not Only SQL”,用于指那些非关系型的、分布式的、且一般不保证遵循ACID原则的数据存储系统。
想要具体了解关系型数据库和非关系型数据库,可以看一下这篇文章,讲得很详细:http://blog.csdn.net/robinjwong/article/details/18502195
二、Why?为什么选择非关系型数据库
传统的数据库(一般就指关系型数据库),具有许多优点,比如支持事务(transaction)、高稳定性、使用简单、功能强大,而且上世纪90年代一个网站的访问量都不大且大多都是静态网页,动态交互型的不多,因此关系型数据库处理它们绰绰有余。
然而进入21世纪以后,网络快速发展,论坛、博客、SNS、微博逐渐引领web领域的潮流。这时,随着访问量的上升,几乎大部分使用mysql架构的网站在数据库上都开始出现性能问题。
总之,由于数据量的激增,传统的关系型数据库在数据存储和读取方面开始变得不堪重负——这也就是NoSQL出现的背景。
与关系型数据库相比,NoSQL有一些明显的优势:
易扩展:数据之间无关系,非常容易扩展;
大数据量&高性能:非常高的读写性能;
灵活的数据模型:无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式——在关系数据库中,增删字段非常麻烦,同时如果数据量大的表,增加字段更可怕;
高可用:NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。
想要更多了解NoSQL的发展历史,读一下这篇文章:http://www.infoq.com/cn/news/2011/01/nosql-why
一句话,网络的发展导致数据量的增长,使得关系型数据库出现性能问题,非关系型数据库应运而生。
MongoDB是一个C++编写的、基于分布式文件存储的开源数据库系统:
面向文档存储,操作简单容易;
可以设置任何属性的索引来实现更快地排序;
支持丰富的查询表达式。
MongoDB的官网:https://www.mongodb.com/
↓ 放假不想动 ↓
以上是关于数据库MongoDB入门笔记:NoSQL,非关系型数据库简介的主要内容,如果未能解决你的问题,请参考以下文章