前言

当前已经进入大数据时代,关系数据库一统天下的局面已不可能重现。随着近几年数据管理领域的迅猛发展,传统数据库课程面临一系列挑战,并亟待改革。一方面,在空气中无处不渗透着大数据气息的今天,数据库课程不能没有大数据管理,这是技术发展的呼唤,也是提高学生学习兴趣、提高教学质量、加强人才技术素质的迫切要求。另一方面,传统数据库关键技术和方法仍然是数据库课程必不可少的核心内容,这些技术和方法如今依然广泛应用于各行各业信息资源管理系统,对改进部门管理、提高企业效益、提升人民生活水平均具有实实在在的意义,而且也是大数据管理的基础,大数据管理则是数据库技术的进一步延伸和发展。融合传统数据库关键技术以及大数据最新进展,是传统数据库课程改革的必然趋势。斯坦福、普渡等国际一流大学中数据库课程改革成果破茧而出,融合大数据与数据库的“数据密集系统”课程成为旗帜。MOOC“数据库密集系统”(原“数据库系统原理”)课程建设过程中,始终把“纳入数据管理技术的最新发展,深度梳理课程知识点体系”放在首位,特别是融入大数据管理。当时已经感觉到课程名字再叫“数据库”似有不足,但一时尚无满意的名称,便按照惯例称“数据库系统原理”。而今,斯坦福大学原《CS245: 数据库系统原理》更名为《CS245: 数据密集系统原理》(Principles of DataIntensive Systems);普渡大学等其他几所大学则更名为《数据密集系统》(DataIntensive Systems);英国剑桥大学则称为《数据密集型应用系统》。比较这几所大学新的课程目录,与北京师范大学的课程大纲,改革思路别无二致。为及时适应技术发展和国际上数据库课程改革的大趋势,并使课程内容与名称更匹配,MOOC“数据库系统原理”已经更名为“数据密集系统”。
本书可以分为5大部分。第一部分是基本概念和基础知识,包括第1章绪论和第2章关系模型,涉及数据库系统、大数据、数据模型等,为后面内容打下基础。第二部分主要包括第3~5章,介绍声明性语言(SQL)及其在应用环境中与面向过程/对象高级语言的协同,重点包括数据保护。第三部分是第6章和第7章,介绍数据库设计并融入大数据思维。第6章主要是ER设计以及转换为关系的方法,所以也涉及关系设计或者说目标也是关系设计,但方法主要是从实体及联系的角度。第7章主要是从数据依赖角度讲关系设计,而数据依赖实质上是属性及其联系。这两章的目标是一致的,都是讲关系设计,只是方法不同;进而,大数据技术中的大时间跨度数据积累分析及其以读为主操作处理都改变了旧有数据库设计思想。第四部分是第8~10章,主要介绍大数据管理的数据密集系统共性实现技术。第五部分即第11章是大数据新技术简介。
“数据密集系统”(原“数据库系统原理”)脱胎于传统大学本科“数据库”课程,是革新传统“数据库”课程、深度梳理课程内容的产物。该领域在最近几年的迅猛发展,对传统“数据库”课程提出一系列严峻挑战,本课程直面最新技术发展,主要特色如下。
(1) 纳入数据管理技术的最新发展,深度梳理课程知识点体系,研磨了与信息安全、操作系统、数据结构、组成原理等相关课程的关系,实现无缝平滑衔接。
(2) 特别是梳理了数据保护知识点体系,提出了数据管理的目标: 安全、简单、高效地共享数据,并以此为线索贯穿全书内容,把知识碎片变得系统化,使得全书知识点有机融为一体。
(3) 以MySQL为平台,以自然灾害应急系统/网络考试系统为案例,实施案例驱动的教学模式,技术先进,概念清晰。
(4) 在课程内容安排上,先讲语言,让学生通过上机使用,有直观了解,进而再讲设计,最后讲实现,由浅入深,由外及里,便于理解。
(5) 通过案例分析,解析传统数据库和大数据中数据管理技术的基本思想和特点,融合理论与实践,贯通技术思想与职业理念。
(6) 站在大数据管理的角度,讲述数据库设计和实现的新思想,在数据库设计和实现的讲述中融入大数据思维;针对各种数据密集系统的共性,讲述数据管理技术发展趋势,并对大数据管理进行简介。
(7) 以尽可能简单的例子凸显技术思想的本质。
本教材可按36~54学时使用。为了教师教学的方便,本书配有电子教案、课后题(客观题和主观题)及答案,以及程序代码,所有程序在Java EE和MySQL 8上实际运行通过。针对实践教学,书末附有实验指导书,配有实验教学PPT、实验指导及实验报告评分标准、实验报告和代码样本。
在本书编写过程中,尽可能引入新技术,力求反映技术发展趋势,但由于作者水平有限,书中有许多不足之处,还望同行和专家批评指正。

编者2021年1月