RDBMS(关系型数据库管理系统)是市场常用数据库管理系统的主流,其中使用最多的 DBMS 分别是 Oracle、MySQL 和 SQL Server。
关系型数据库:
实质:关系型数据库模型把复杂的数据结构归结为简单的二元关系(即二维表格)。
关系型数据库以 行(row) 和 列(column) 的形式存储数据。
非关系型数据库:
概念:可看成传统关系型数据库的功能 阉割版本 ,基于键值对存储数据,不需要经过SQL层的解析, 性能非常高 。同时,通过减少不常用的功能,进一步提高性能。目前,基本上大部分主流的了非关系型数据库都是免费的。
常见的非关系型数据库:
常见的非关系型数据库包括了键值型数据库、文档型数据库、搜索引擎和列存储等。
例如:键值型数据库
键值型数据库通过 Key-Value 键值的方式来存储数据,其中 Key 和 Value 可以是简单的对象,也可以是复杂的对象。Key 作为唯一的标识符,优点是查找速度快,在这方面明显优于关系型数据库,缺点是无法像关系型数据库一样使用条件过滤(比如 WHERE),如果你不知道去哪里找数据,就要遍历所有的键,这就会消耗大量的计算。
键值型数据库典型的使用场景是作为 内存缓存 。 Redis 是最流行的键值型数据库。
非关系型数据库的演变:
由于 SQL 一直称霸 DBMS,因此许多人在思考是否有一种数据库技术能远离 SQL,于是 NoSQL 诞生了,但是随着发展却发现越来越离不开 SQL。到目前为止 NoSQL 阵营中的 DBMS 都会有实现类似 SQL 的功能。下面是“NoSQL”这个名词在不同时期的诠释,从这些释义的变化中可以看出 NoSQL 功能的演变 :
1970:NoSQL = We have no SQL
1980:NoSQL = Know SQL
2000:NoSQL = No SQL!
2005:NoSQL = Not only SQL
2013:NoSQL = No, SQL!
NoSQL 对 SQL 做出了很好的补充,比如实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用 性能更高 、 成本更低 的非关系型数据库当然是更明智的选择。比如:日志收集、排行榜、定时器等。