20世纪70年代初,Codd发表了著名的论文 A Relational Mode of Data for Large Shared Data Banks ,开启了关系数据库时代,关系模型用二维表的方式来存储数据和数据之间的关系,完善了关系代数理论,产生了一批关系数据库管理系统产品,使关系数据库应用于各行各业的数据处理过程中,为 OLTP 提供了数据处理平台。关系数据库以事务为调度单位,并提供了并发控制和灾难恢复的技术。
其特点是,数据结构化、数据的共享性高、冗余度低、易扩充、数据独立性高,数据由数据库管理系统统一管理和控制等。其优点是,容易理解,二维表结构是非常贴近逻辑世界的一个概念,使用方便,易于维护,支持复杂查询。
其缺点是,不擅长大量数据的写入处理、表结构变更、字段不固定时的应用和对简单查询需要快速返回结果的处理的应用。
网络计算、云计算提供了网络环境下数据的透明存储和处理,存储价格下降和容量的巨大提升,互联网应用的发展,数据之间的关系越来越复杂,关系的表达越来越丰富,太空探索、生物工程、基因工程等科学研究的数据处理等,都使收集到的数据越来越庞大,数据类型越来越多样,生成速度越来越快,需要更快的处理能力。关系数据库面临如下挑战。
(1)数据库高并发读/写需求
在关系数据库上进行大规模的事务处理,要解决读、写操作的性能问题,网络环境下数据的分布存储和分布处理的快速响应问题,高速有效保证数据的持久性和可靠性等。要通过大量结点的并行操作实现大规模数据的高效处理,面临着海量数据的处理方法、存储模式、交互通信、智能分析等问题。
(2)海量数据的高效存储和处理
在互联网环境下,各种应用层出不穷,任何一个互联网的用户都是信息的提供者和使用者,他们根据兴趣或为满足需求在网上提供相关的生活、学习、交友等多种多样的且非常庞大的信息,每天产生千万级的图、文、声、像、关系等各种类型的数据,用关系表不能表达,数据的查询耗时巨大。如果通过分库、分表等方法切分数据,就会加重程序开发和数据备份、数据库扩容的复杂度等。
(3)数据库高扩展性和高可用性需求
云计算是通过互联网访问、可定制的IT资源共享池,按需付费的模式使用网络、服务器、存储、应用、服务等的计算环境。核心理念是按需服务,存储交由云端。云计算供应商需面对存储海量数据的挑战。在高性能、高可靠性的机器上用传统的关系数据库管理系统,要保证存储的海量性和高可用性,会涉及硬件和软件的大量投资。
(4)数据库在大数据处理方面的要求
大数据就是海量数据+复杂计算,面对规模巨大、高速产生、形式多样的数据,我们只有通过复杂计算才能获取其中有价值的信息。大数据的5V特征:超量(Volume),表示规模巨大;高速(Velocity),表示数据产生的速度快并且有时效性,如各种物联网每天产生的数据、每天交通流量的数据等;异构(Variety),表明数据形式多样,包括图、文、声、像、非结构或半结构化的数据;真实(Veracity),说明这些数据都来自实际的生产和生活环境;价值(Value),代表这些数据中隐藏了巨大的信息价值。