关系型数据库统治了20多年,其中也有数据库如对象数据库对关系型数据库发起挑战,但都失败了。但随着NoSQL的发展和壮大,关系型数据库已经不是唯一的选择了。


1.为什么关系型数据库统治了这么多年?
需求和场景决定使用什么数据库。原先关系型数据库有着强大的理论靠山,SQL语句有着广泛的使用基础,ACID适用于各种业务场景。并且,多个系统整合在以前是靠数据库做集成的,多个应用访问同一个数据库。开发应用的多个团队不可能完全协同控制并发访问的问题,只能交给数据库处理,所以这更对数据库控制并发访问的要求很高。综上,关系型数据库无疑是最合适的。

2.为什么NoSQL热门了?
随着互联网的发展,互联网应用对高并发、低延时的需求已经放在了首位,如果使用数据库纵向扩展的方式,则需要很大的服务器,采购和维护成本很高,并且单台服务器配置总有极限,这就要求数据库能适用于集群环境,能横向扩展。并且,从业务角度看,数据一致性可以不像原先那样放在首位,可以容忍数据在短时间内不一致。针对这些需求,传统的关系型数据库不那么适用了,NoSQL数据库孕育而生。现在应用的整合多是依靠web services等技术使其松耦合,无需直接访问数据库,使一个团队能在应用级别控制并发访问、数据一致性,这都为使用NoSQL创造了条件。