哈尔滨工业大学

数据库系统(上):模型与语言

图片
课程概述


本系列课程旨在使学生充分掌握数据库系统的基本概念和基本原理,熟练掌握数据库系统语言、数据库抽象与建模方法和数据库应用程序设计方法,培养学生在信息管理和信息系统方面的抽象、设计、开发、应用和管理能力。同时,数据存储、数据库查询实现、查询优化、事务处理等技术,这些内容也是计算学科学生在专业方面必须掌握的操纵数据库的能力,本课程也将为你详细讲授。

本课程将分为四个部分进行介绍:

一、基本知识与关系模型;

二、数据库语言及其应用;

三、数据建模与数据库设计;

四、数据库管理系统实现技术。

这四部分内容之间的关系如下图示意。

这四部分内容将分为三门系列课程来开放。本课程《数据库系统(上)-模型与语言》将包括第一部分和第二部分内容。学习完本课程后,你可选择继续学习《数据库系统》系列课程的第二门《数据库系统(中)-建模与设计》或者选择继续学习《数据库系统》系列课程的第三门《数据库系统(下)-管理与技术》,这两门课为高阶课程,可以结合你的需求选择学习。

本系列课程的特色(1)本课程是一门理论性为基础、应用性为目标,理论应用相结合的计算机类主干课程;(2)抽象内容的实例化讲解是本课程的特色,通过大量具体示例,来阐释数据库相关的抽象概念和原理;(3)知识学习与案例点评相结合是本课程的特色,本课程包含数据建模和数据库设计相关的内容,重要的是知识的运用,案例点评则成为知识运用能力训练的重要手段; (4)问题导引的知识学习是本课程的特色,深入浅出,图文并茂,案例配合,面向问题地阐释数据库系统的核心内容。本课程将为学生从事大型信息系统软件的设计、开发和应用打下基础,也将为学生今后从事大规模数据的存储、操纵和分析奠定很好的基础。

证书要求

课程总计100分。每讲一次测验,每次测验7题,每题1分,有2次参与测验机会,两次测验取最高分(虽2次机会但2次的试卷并不相同);共十讲十次测验总计70分。最后组织期末考试20题20分。课堂交流讨论分10分,参与讨论达到20次以上即可获得(需要在“课堂交流区”中跟帖的数量平均每讲1次,总次数超20次,则获得讨论分10分)所有测验题和考试题均为客观题。

设置“合格”(达到60分)、"优秀"(达到80分)两档课程标准,由任课教师签发课程结业证书,其中成绩“优秀”者将颁发优秀证书。


预备知识


应学习过相关的先修课程《离散数学》《数据结构》《操作系统》等。与先修课程的关系如下图示意。

授课大纲


《数据库系统》课程完整教学内容将由三门MOOC课程来提供,分别是《数据库系统(上)-模型与语言》《数据库系统(中)-建模与设计》《数据库系统(下)-管理与技术》。

《数据库系统(上)-模型与语言》主要面向数据库一般应用人员、数据库应用程序员,讲解(一)基本知识与关系模型和(二)数据库语言 SQL,主要以数据库应用和数据库语言训练为主。包括10讲教学内容,如下所示:

    第1 初步认识数据库系统

    第2 数据库系统的结构抽象与演变

    第3 关系模型之基本概念

    第4 关系模型之关系代数

    第5 关系模型之关系演算

    第6 概览SQL语言

    第7 SQL语言之复杂查询与视图

    第8 SQL语言与数据库完整性与安全性

    第9 嵌入式SQL语言之基本技巧

    第10 嵌入式SQL语言之动态SQL

其中第1-2讲是理解后续内容的基础。包括:数据库系统相关的基本概念、课程内容及作用、数据库管理系统的结构抽象与演变、数据库技术的发展史与发展趋势等。第3-5讲是理解数据库语言以及数据库查询实现技术的基础,正确实现数据库操作,尤其是检索操作需要理解关系模型,这几讲主要强调抽象能力训练、集合思维与逻辑思维能力训练。包括:关系模型;关系运算:关系代数运算、关系元组演算、关系域演算,应用各种运算表达现实中的各种查询需求。第6-8讲主要强调标准数据库语言SQL的学习及其交互式应用训练,包括:SQL的各种操作语句,如SQL的各种查询表达方法、各种统计查询表达方法,(子模式)视图的应用等,数据库安全性与完整性的实现等。第9-10讲,强调嵌入式数据库语言的学习及其应用训练,数据库应用程序开发。包括:嵌入式SQL语句,及其与高级语言语句的结合,变量传递、结果处理、错误陷阱处理等;介绍数据库程序编程方法,在其中如何应用SQL语句,ODBC与JDBC等。

《数据库系统(中)-建模与设计》主要面向应用程序员和系统分析员,讲解(三)数据建模与数据库设计,主要以数据建模、数据库设计为主,强调案例分析和理论指导。它是软件工程软件设计的基础,强调非数学化建模的训练、表达与分析,是你理解与控制复杂系统的基础。包括6讲教学内容,如下所示:

    第11 数据建模:思想与方法(Crow's Foot方法及案例分析)

    第12 数据建模:工程化方法IDEF1X及案例分析

    第13 数据库设计过程

    第14 函数依赖及其公理/定理

    第15 关系模式设计之规范形式

    第16 模式分解存在什么问题

其中第11-16讲主要是理解如何对应用系统进行需求分析和抽象,设计出正确的数据库模式。包括:数据库设计的基本概念;E-R/IDEF1X图的基本思想及其设计结果的表达方法;数据库设计训练,即对典型应用系统进行分析并进行数据库设计,绘制出E-R图/IDEF1X图,并进行正确性分析。数据库设计过程。第14-16讲主要是理解数据库设计的基本理论,掌握数据库设计正确性分析方法。包括:数据库设计理论,数据依赖、关系范式与模式分解等。数据库设计正确性分析训练,即对典型应用系统的数据库设计进行正确性分析。

《数据库系统(下)-管理与技术》主要面向高级应用程序员、系统程序员和数据库管理员,讲解(四)数据库管理系统实现技术,强调算法理解和效率分析。它是存储和处理大数据的前提,是学习大数据计算和分析的基础。包括7讲教学内容,如下所示:

    第17 数据库物理存储

    第18 数据库索引技术

    第19 数据库查询实现算法之一趟扫描算法

    第20 数据库查询实现算法之两趟扫描算法

    第21 数据库查询优化技术

    第22 数据库事务处理技术之并发控制

    第23 数据库事务处理技术之故障恢复

    课程最终总结

第17-18讲主要讲解数据库的基本存储与索引技术。包括:如磁盘空间的管理与分配、不同的数据组织方法、各种常见的数据索引方法,如B+Tree、可扩展散列索引与线性散列索引等。第19-20讲主要讲解数据库的基本实现算法。包括:数据库基本操作的实现算法,如迭代器算法、多路归并排序算法、并////选择/投影/连接等的实现算法;一趟算法、二趟算法、基于排序的算法、基于散列的算法等。第21讲主要讲解数据库查询优化算法。包括:数据库查询语句处理,数据库查询的语法优化,数据库查询的执行优化等。第22-23讲主要讲解事务与并发控制、故障恢复等。包括:数据库事务的概念,可串行性,并发控制及其主要方法;数据库备份、运行日志与故障恢复,故障恢复的主要方法等。

本门课程为《数据库系统(上)-模型与语言》将包括第1至第10讲教学内容。

参考资料

参考教材: 

1. Database System Concepts(数据库系统概念,有中译本), 6th Edition, 机械工业出版社,2012. 

2. Database System Implementation(数据库系统实现,有中译本), 2nd Edition, 机械工业出版社,2010.

3. Database:  Principles,Programming,and Performance(数据库:原理、编程与性能,有中译本), 2nd Edition,Patrick O’Neil, Elizabeth O’Neil,高等教育出版社,2001。

注:数据库系统的经典教材有很多,同学可任选一本作为主教材,其他可作为辅助教材。建议必备前面的第1和2两本教材,这两本教材并不重复。第1本教材是较为全面的数据库系统的教材,而第2本教材则是数据库管理系统实现技术的教材。