进几年常常听到一个高大上的名字Nosql,再加上鼓吹者说Nosql将会消灭关系数据库,今天怀着好奇心里,简单了解了以下Nosql的概念,发现其实没有那么神秘,被鼓吹者夸大其词了,导致我等门外汉一下子给打懵了。
我认为,一个新技术要想让大家使用,首先得有一个好的来龙去脉,知道这个技术出现的原因,从而学习时候也就能抓住重点。
Nosql的出现原因是,关系数据库是一个重量级的工具,可是如果要管理一个比较简单的数据库,比如要管理一个电话本,只有名字和电话号两个信息,采用关系数据库必然造成系统消耗资源且不易使用,因此可以就这类情况有针对性的开发一些只针对该需求的数据库,Nosql就是这类数据库的统称。
下面就今天的简单理解,做一个记录。
本文并不涉及任何Nosql的技术细节,只是一个概念普及,期望能起到一个破除神秘感的效果。
引言
Nosql是NOT ONLY SQL的意思,Nosql之前,比较流行的数据库就是关系数据库。
SQL(Structured Query Language:结构化查询语言)是关系数据库最常见的工具语言。
Nosql实质是一些非关系数据库的统称,为了和关系性数据库区别所以起了一个比较拉风的名字,好让大家尽快认识。和SQL语言没什么关系,其实更合理的名字应该是 NOT ONLY Relation。
Nosql和关系数据库
其两者的关系,可以借用一句话说明:“随便拿一把刀,都可以用来切菜,切肉,打架,砍树,削水果;但是这把刀肯定不是最适合这些所有工作的,因此需要菜刀,水果刀,斧子等”。关系数据库就是一把通用的刀,可以做很多工作,Nosql就是一把为具体业务使用的刀。
并不是所有的数据都比较适合关系数据库的,比如数据结构就是简单的N组(key,value)对,那么使用关系数据库就是大材小用,且会导致效率低下,此时采用hash等方式不失为一个比较简单快速的方法。
关系数据库是一个很好的通用型数据库,这里面你可以放任何东西,而且它的一切都是可以预期的。随着行业的发展,大家开始对业务上的一些问题了解越来越深入,而且这些业务的量也大到了你愿意单独为它搭一套系统。此时,不同的nosql作为不同特定问题的工具出现就自然而然了。
Nosql
常见的Nosql数据库有以下几种:
- 键值(Key-Value)存储数据库
- 列存储数据库
- 文档型数据库
- 图形(Graph)数据库
总结
Nosql没有那么神秘,其泛指非关系型数据库;也并不会向有些人说的那样,Nosql比关系数据库强大,两者各有优势,用途不同。