刚开始写博,一些文字还有自己的理解不是很好,希望各位看官多多包涵
当前我们各种高并发的时代下,NoSql正以大规模侵袭的状态下入侵SQL界,我们现在很普及的关系数据库如mysql、oracle、DB2、Microsoft的SQL Server等
而我们的Nosql 有MongoDB(文档)、Redis(内容缓存)、Neo4J(图形)等数据库。
首先来说我们的关系型数据库,既然称为关系型数据库,肯定围绕关系二字,即建立在关系型模型基础上的数据库,借助集合代数数学概念方法处理的数据,那什么事关系模型呢?关系模型是指代一个二维表格模型(就是一张二维表Table,简称他为表,由行和列组成),表的每一行视为一个元组(即记录),每一列视为一个属性(字段),就是我们的普通数据库了,如mysql,如图
一个元组中有一个标识此组的属性字段,成为关键字,就是我们的主键,还有一个最重要的名为关系,每个关系都有一个类似的关系名,就是我们俗称的表名,知道了这些,那么关系模式就好懂了,关系名(属性1,属性2.....)就是我们的关系模式,也称为表结构了
说了这么多,那么关系型数据库有什么优点呢
1)易理解:二维的数据表很贴近我们的逻辑,层次等很容易使我们理解,比如我们看表结构很轻松的就看懂了
2)通用SQL:关系数据库的sql语言都大同小异,我们使用起来很方便
3)成熟性:关系型数据库发展多年,bug、事务等方面做的很完善
NoSql:
在互联网2.0时代的来临,我们的传统数据库显出了不足,尤其是对大规模和高并发的方案,而此时,非关系型数据库出现,并且得到了迅速发展,非关系型数据库很好理解,而且分为四大类:
1 Key-Value型,如我们的Redis,主要用来处理大数据和缓存等
2 列存储型,有Cassandra, HBase,用来做分布式的文件系统居多
3 文档型,时下很出名的MongoDB就是文档型,其实文档型与key-value型类似,只不过他的value变成了结构化而已
4 图形数据库,Neo4J,常用于及时通信等
Nosql之所以推广如此迅速,离不开他的简单部署(只需简单压缩,配置路径就可以),开源免费,结构简单以及试用的场景(适用于高并发),nosql数据常存储在缓存中,当然持久化也可以,相对于关系型数据库从硬盘读取文件来说,速度会更快
当然,nosql也有不足,因为nosql发展迅速,不成熟,相应的文档和参考资料要少。nosql没有sql语法,也没有事务化的处理。
关系型数据库和非关系型数据库都是为了适应更好的场景而生,没有谁比谁更好,只要满足满足于我们的生产环境,它就是更好的。