大数据时代的数据库原理课程革新
2019-08-07雷小锋
雷小锋
(中国矿业大学 计算机科学与技术学院,江苏 徐州 221116)
0 引 言
数据库原理是高等院校计算机相关专业的核心基础课程,开设历史悠久,主要围绕关系数据模型讲授数据库的基本概念、基础理论以及数据库设计、操作和管理的方法,使学生在掌握数据库系统理论基础上具有设计和使用关系数据库的能力。然而,随着互联网和大数据时代的来临,数据库理论和技术发生了巨大变化,具有更为丰富的内涵和外延,数据库原理课程教学内容的革新刻不容缓。
1 现状和问题
大数据时代以数据为中心的理念深入人心,数据成为最重要的价值资源。数据的海量乃至全量化促使数据管理和处理技术发生一系列革新,突破了以关系模型为基础的传统关系数据库理论藩篱,发展出一系列面向半结构化以及非结构化数据、以高可扩展和高可用性为特征的分布式数据库技术和产品(如表1),极大地拓展了数据组织存储和管理的理论、方法和技术。数据库技术进入按用户需求自由定制的互联网时代,话语权不再被关系模型和少数软件厂商所统治,相应的理论和技术需要在新的逻辑框架下重建秩序。
1.1 数据库原理课程教学现状
互联网和大数据时代用户主体意识全面回归,期待根据自身数据管理需求自由裁量定制数据管理系统,导致数据库技术发生了巨大变化,大规模数据的分布式存储组织和分析在信息系统设计与开发中是常见的场景,NoSQL和NewSQL等数据库产品在互联网、电子商务系统中已有广泛应用,工业界和学术界都迫切需要具有大数据处理思维和能力、全面了解掌握各类数据库技术的人才。
在开源社区项目“程序员技能图谱”中给出数据库工程师应该掌握关系、KV型、文档、列存储以及内存等多种类型数据库的原理及技术(索引结构、事务机制、封锁技术、备份与恢复技术、高可用技术、优化技术等),此外还要求具备网络、开发语言、硬件、运维工具等方面的技能。
表1 数据库技术发展演化阶段
然而,当前的数据库原理课程教学却没有跟上数据库技术发展的步伐,依然坚持着以关系数据模型和关系数据库为主的有限教学范畴[4],已经不能反映数据库工业界的发展,人才培养与工业界严重脱节。首先,围绕着关系数据模型,局限于严格的结构化表单型数据,忽视了现实实践中大量的半结构化和非结构化数据的管理和处理需求。其次,面向严格的ACID事务模型,忽视了数据库工程实践中大量可以放松事务要求的应用场景,如大量密集的数据写入、OLAP分析等;忽视数据库部署运维过程中数据体量巨大情况下的工程实践问题,如读写性能退化问题、单点故障问题、系统可扩展性和可用性问题;数据库新技术介绍泛泛而谈,缺乏一个能够统一容纳各类数据库理论和技术的整体框架体系。
1.2 数据库原理课程革新目标
综上所述,数据库原理课程的教学内容亟待革新,以反映数据库技术的发展和软件工业实践的需求。
(1)以数据结构课程理论为基础,从数据结构、数据管理操作、数据管理约束3个维度出发建立大一统的数据管理观念,在统一数据管理观的框架下系统性梳理人类不断发展的数据管理需求、典型的数据管理应用场景和数据库技术,使学生能够在统一的思维框架下分析理解各种数据库技术。
(2)根据统一数据管理观,从数据结构、数据管理操作、数据管理约束3个维度对数据库技术进行分类整理,面向典型的数据管理应用场景建立数据库理论和技术的知识分类体系。
(3)在数据库理论和技术的知识分类体系下,自顶向下、由浅入深建立数据库原理课程的教学内容的拓扑结构和过程框架。关系数据库只是统一分类体系下的一个技术分支。
(4)紧密结合软件开发实践,以具体软件系统的需求实例为主线引导统一数据管理观念、统一数据结构观念的建立,引导特定数据库技术的讲解和应用。
2 统一数据管理观的建立
数据库原理课程教学的主要问题是把“数据”局限为严格的结构化表单数据,忽视了现实实践中数据类型的多样性和数据管理需求的多样性,因此数据库原理课程内容革新的首要任务是回归到“数据库”的数据结构本质上,系统性地梳理数据的存储组织方式和管理需求,建立统一的数据管理观。
2.1 数据库是数据结构理论的自然推广和应用
数据结构是相互之间存在一种或多种特定关系的数据元素的集合,是计算机存储、组织数据的方式。数据库无论如何复杂多变都脱离不了其数据结构的本质,因此从数据结构的理论和概念出发,定义和理解数据库,可以推断出任意的数据库都应该具备3个层面上的要素。
(1)数据结构:数据库是按某种方式对数据进行组织和持久存储的数据结构。
(2)数据管理操作:数据库提供了对数据结构及数据的存取访问操作,主要是数据的增删改查操作。
(3)数据管理约束:数据库的存取访问操作必须满足一系列约束,如保证数据不丢失、不被篡改等。
2.2 数据的组织存储方式通过数据模型表达
数据库是一种数据结构,在数据结构中数据元素如何组织存储,取决于人类如何观察、理解数据。从物理层面上看,数据就是比特流;进一步,数据是记录事物信息的符号序列。在计算机科学领域,数据是所有能被输入计算机且能被计算机处理的符号序列,是计算机操作的对象的总称[5]。
定义1:数据的键和值。单纯的比特流或符号序列丢失了数据的物理含义,如符号序列“2010-10-01”本身没有意义,需要给数据附加一个说明物理含义的注解(“生日”),称为数据的键(Key)。比特流或符号序列称为数据的值(Value)。一个数据必须同时具有一对键和值才有意义。可以看出,键值对(Key-Value)是最基础的数据组织方式,任意数据都可以表示为键值对的集合。
定义2:键值数据模型。把数据组织成键值对集合的数据模型,称为键值数据模型,简称K-V数据模型。
定义3:行列二维表、关系数据模型、列式存储数据模型。以数据的值为行,数据的键为列,把键值对集合组织成行列二维表的形式并按行进行数据组织存储的数据模型称为关系数据模型。如果以列为单位进行数据组织存储,这种数据模型称为列式存储数据模型。
定义4:文档和文档数据模型。以嵌套的键值对的形式将数据组织成文档(Document),每个文档对应一条数据记录。这种通过文档集合来组织存储数据的数据模型,称为文档数据模型。
定义5:图和图数据模型。将数据元素表示为顶点,数据元素之间的关系表示为边,就构成了数据结构中的图,称为图数据模型。
2.3 数据管理是在一定约束下对数据库的存取访问操作
数据管理是指对数据的组织、编目、定位、存储、检索和维护等工作。计算机数据管理,是指利用计算机软硬件技术对数据进行有效收集、存储、处理和应用的过程。
具体到数据库的上下文,数据管理是指在满足一定约束的前提下把数据写入数据库(增加数据、删除数据、修改数据)以及从数据库中查询出所需数据的过程,因此数据管理蕴含如下含义。
(1)数据管理操作:包括数据结构的建立和维护,数据写入维护(数据的增加、删除、修改,统称为数据更新),数据的读出(数据查询)。
(2)数据管理约束:数据管理操作必须满足约束,如高效、方便且不会导致数据丢失、不一致、窃取和篡改,数据访问服务不会中断等要求。
定义6:数据库管理系统(DBMS),用于在数据管理约束下对数据库执行数据管理操作的软件系统。根据数据模型的不同,可以把数据库管理系统划分为键值、关系、列式存储、文档、图数据库管理系统等。
2.4 数据管理约束是数据管理操作应该满足的要求
数据库管理系统,在执行数据管理操作时必须保证数据库满足一定的约束条件。根据常识不难推断,首要约束是保证数据一致性且不会丢失,无论系统处于正常状态或是故障状态;其次,是保证数据不会被非法访问且符合语义约束;然后,是保证数据管理操作的高效性;最后是操作的易用性。
(1)事务的ACID特性。事务是封装起来的一组数据管理操作,对应于逻辑独立的数据处理功能。事务的ACID特性是事务需要满足原子性、一致性、隔离性和持久性。
(2)安全性和完整性。安全性是防止非法用户和非法操作对数据库造成恶意的破坏和非法的存取;完整性是防止数据库中出现不符合语义约束的数据。
(3)高性能的数据管理操作。保证数据管理操作在可接受的时间和空间代价内完成。
(4)方便易用性。提供方便易用的数据管理操作工具或接口,如SQL语言接口。
在单机单用户、数据规模较小时以上数据管理约束比较容易满足,但是对于数据体量很大且多用户共享的情况上述数据管理约束要完全满足就比较困难,甚至不可能,因此在工业界往往会根据实际业务系统的应用场景,有针对性选择特定数据库技术以满足特定的数据管理约束。
3 数据库原理课程内容框架革新
3.1 数据库理论和技术知识体系
根据统一数据管理观,数据库是根据数据模型组织存储数据的数据结构,数据管理是在数据管理约束下对数据库进行存取访问操作。各类典型的数据管理应用场景中提及的众多数据库技术,是对数据库的数据结构、数据管理操作以及数据管理约束的具体化实现。因此,数据库的理论和技术,可以从数据结构、数据管理操作、数据管理约束3个维度建立数据库理论和技术的知识体系,如图1所示。
3.2 数据库原理课程教学内容体系结构
具体到数据库原理课程教学,需要对数据库理论和技术知识体系进行重组、取舍和排序,自顶向下、由浅入深地建立数据库原理课程教学内容及其拓扑组织结构,如图2所示。
图1 数据库理论和技术知识体系
图2 数据库原理课程教学内容体系结构
(1)从数据结构、数据管理操作和数据管理约束3个维度出发,抽取出各种类型的数据库都需要考虑基本问题和基本概念,论述解决问题的主要技术方法,形成“数据库基础理论”教学模块。
(2)关系数据库模块:从关系数据模型和关系数据库的视角,论述数据结构、数据管理操作和数据管理约束的具体实现。
(3)NoSQL数据库模块:从NoSQL数据库的视角,论述数据结构、数据管理操作和数据管理约束的具体实现。
(4)NewSQL数据库模块:从NewSQL数据库的视角,论述数据结构、数据管理操作和数据管理约束的具体实现。
因此,从宏观上数据库原理课程教学内容体系清晰地划分为4个教学模块:数据库基础理论、关系数据库、NoSQL数据库和NewSQL数据库,每个教学模块再继续细分。
4 结 语
大数据时代数据库技术空前发展,数据管理的需求和理念、数据库的技术和平台具有更为丰富的内涵和外延,数据库原理课程教学不能固守关系数据库的范畴,需要吸纳数据库技术发展的成果,在统一的逻辑框架下重建新的课程内容体系和教学过程框架。在长期的数据库技术研究、软件开发实践和数据库原理教学过程中,笔者总结建立了一种称为“统一数据管理观”的思维框架,基于该思维框架可以对各类数据库技术进行系统性的分类整理,形成数据库理论和技术的知识分类体系,进而自顶向下、由浅入深建立数据库原理课程的教学内容的拓扑结构和过程框架,是数据库原理课程内容革新的基础。
自2010年互联网和大数据技术蓬勃发展以来,笔者就在数据库原理课程教学中尝试引入工业界最新的数据库理论和技术,尝试建立一种能够容纳各类数据库理论和技术的统一思维逻辑框架,“统一数据管理观”是这一思维逻辑框架的成熟和完善,在多年的数据库原理教学实践中均有不错的反响。