Appearance
DB(4.0 学分)
- 教师 : 陈岭
- 教材 : Database System Concepts 7th

一周理论三节课、实验两节课
48课时(对应4天,实际没那么慢)学完理论课程,32课时完成实验课程。
速通理论(最多2天,今天 1 天速通足矣)、写完16周作业(估测 1 天)、完成 lab2 - 6共5次实验+report(估测 2 天)。
本课程所讲授的数据库系统是现代信息社会的基石,在计算机学科体系中占据重要地位,是重要的应用支撑软件,具有广泛的应用;它的理论和方法是从事数据分析与处理应用与研究的基础。建议本课程在专业基础课之后,并在“操作系统”课程之后修读,也可以和“操作系统”课程并行修读。
本课程旨在使学生全面理解数据库系统的基本概念和技术,具备操作数据库管理系统和开发数据库应用系统的能力。
(三)可测量结果
1)能安装和使用一种数据库管理系统软件,如SQLServer 、MySQL 、OpenGauss、PolarDB。
2)熟练使用SQL语言进行数据库表定义和数据查询与管理。
3)能针对具体应用,进行ER模型设计和关系模式设计。
4)能用一种程序设计语言(如C或Java)开发数据库应用程序。
5)掌握数据库管理系统以B+树、LSM-tree为代表的索引结构。
6熟悉以2PL为代表的基于锁的并发控制协议。
7掌握数据库管理系统故障恢复的基本原理和ARIES算法。
注:以上结果可以通过课程作业、综合性课程设计、以及笔试等环节测量。
授课方式:a.线下教师讲授(讲授核心内容、讨论、答疑、总结);b.课后作业(每周作业在教学日历中列出);c.线上课堂测验(就已经学过的内容不定时进行课堂测验);d. 案例研讨(就某个典型的数据库应用案例进行课前调研和课堂研讨)e.实验(布置一组实验,以巩固课程内容,每个实验都要求完成实验报告。)f. project(用高级程序设计语言实现一个精简型单用户数据库管理系统MiniSQL)。g. 期末考试(允许带一张手写A4纸笔记进考场)。
课程要求:熟悉数据库基本概念、掌握数据库SQL定义和管理数据的技能,提高数据库管理系统使用和数据库应用系统设计能力,掌握数据库管理系统软件的实现技术。
说明:本课程注重实践能力的培养。课后需要有足够的时间掌握使用一种数据库管理系统、进行案例调研以及project的设计的实现。
(二)考试评分与建议
课程作业占10%,课堂测验占10%, 实验和project占30%,期末考试占50%。
四、教学安排
第一次:数据库系统引论
主要内容:
数据库是现代信息社会的基石,绝大多数计算机应用都依赖于数据库系统的支持。数据库广泛应用于企业生产制造、金融、医疗、教育、社会服务、互联网等各个领域。
介绍数据库基本概念、数据库主要特征、数据库与文件系统的区别、数据模型、数据库系统三级模式结构、数据库用户和系统管理员、数据库系统结构等基本概念和专业术语。
介绍关系数据库的基本概念;讲述SQL语言基础。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第1章。
课程思政融入点与实施方法:家国情怀 - 中国国产数据系统的发展历程(案例)
教学方式:线上线下混合
课外学习:数据库系统有什么特征?它和文件系统比较有什么优势?
作业1:书后习题1.7、1.8、1.9、1.15
第二次:关系数据模型
主要内容:
数据模型是数据库系统的一个根本特性。关系数据模型因为其简单有效而在数据库领域占据主导地位。讲授关系模型的数学模型,包括关系模型的数据结构、数据完整性、数据操作;重点讲授关系代数及基本关系操作及附加关系操作,学习用关系代数表达式表达数据查询要求。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第2章。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:关系代数有哪些基本操作?关系代数的查询表达能力如何?
作业2:书后习题2.7、2.12、2.13、2.15
第三次:SQL语言(1)-表定义、基本SQL查询
主要内容:
SQL(Structured Query Language) 是关系数据库标准语言,包括数据定义、数据操纵、数据控制一体化管理功能。SQL是一种陈述式的语言。讲授SQL的表定义,包括:SQL基本数据类型、primary key、foreign key和check定义,以及SQL DML语句的基本用法,包括select、from、where、group by、having各子句。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition),McGraw-Hill Book Company,高等教育出版社(2021年3月)。第3章3.1-3.7节。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:SQL作为一种陈述式语言,它和过程式语言(如C)有什么区别?SQL的数据完整性定义功能有什么优点?
作业3:书后习题 3.8、3.9
第四次:SQL语言(2)-SQL嵌套查询、数据更新、视图、索引
主要内容:
讲授SQL嵌套子查询构成的复杂查询。
讲授SQL数据更新语句,包括insert、delete、update语句.
SQL视图(view)和索引(index)分别对应数据库三级模式中的用户模式和物理模式。用户可以象查询基本表一样查询视图中的数据,在特定情况下可通过视图更新基本表中数据。索引可以加快数据库查询处理的效率。讲授视图的语法和用法,以及可更新视图的概念。通过具体例子讲解视图的优点。讲授索引的作用、索引的类型SQL索引定义的语法。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第3章3.8-3.9节,第4章4.1、4.2、4.6节。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:1)构想一个数据库应用,用SQL定义数据库中的表,并构思若干查询要求,写出对应的SQL语句。2)举例说明视图的优点。3)如何选择在数据库表上建立哪些索引?
作业4:书后习题 3.10、3.11、3.15
第五次:SQL语言(3) - 数据完整性、安全性和事务
主要内容:
数据完整性包括primary key、foreign key、check和断言(Assertion,即一个数据库必须满足的条件谓词)。触发器(Trigger)是数据库表更新时自动触发执行的动作,也是维护数据完整性的一种手段。安全性控制是数据库中不可缺少的功能。SQL中的安全性控制包括用户身份鉴别、权限管理和审计三方面。事务(transaction)是构成一个完整的逻辑工作单元的数据库操作的集合,是数据库系统进行并发控制和恢复的基本手段。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第4章4.3-4.5、4.7节,第5章5.3节。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:1)触发器在数据库系统中有哪些用处? 2)数据库安全控制有哪些方面?3)SQL 中和事务相关的语句有哪些?
作业5:书后习题 4.7、4.9、4.12
第六次:SQL语言(4)-嵌入式SQL、ODBC、 JDBC
主要内容:
嵌入式SQL是应用程序调用数据库的一种方式。SQL和高级程序设计语言(如C语言)存在着基本数据类型和执行方式两方面的不匹配。嵌入式SQL通过游标(cursor)等方式处理这些不匹配的问题。讲授嵌入式SQL的基本原理,包括不带cursor的SQL语句和带cursor的嵌入式SQL语句、静态嵌入式SQL、动态嵌入式SQL、ODBC、JDBC。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition),McGraw-Hill Book Company,高等教育出版社(2021年3月)。第5章5.1-5.2节。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:SQL和C语言在数据类型和执行方式上存在哪些不匹配的地方?嵌入式SQL如何处理这些不匹配? ODBC比起嵌入式SQL有什么优缺点?
作业6:书后习题 5.6、5.15、5.19
第七次:数据库设计和ER模型
主要内容:
实体-联系模型(Entity-Relationship Model)是一种概念模型,用于数据库分析阶段为现实世界建模。它使用ER图描述现实世界的实体(Entity)以及实体之间的联系(Relationship)。实体用以描述现实世界中可以区分的对象。实体所具有的特征称为实体的属性(Attribute)。实体之间存在着各种联系。
通过实体-联系方法得到现实世界的一个抽象模型,但这一模型并不能为数据库管理系统接受。要完成从现实世界到信息世界的转化,还必须将实体—联系方法所得的ER图转化为关系模式,并用SQL语句定义相应的表。
讲授实体-联系模型的各种要素,重点掌握采用实体-联系方法为现实世界建模的一般过程和要点。讲授ER模型中实体(包括弱实体)和联系(包括一对一、一对多、多对多联系)等的转换方法。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第6章。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:1)采用实体-联系方法为现实世界建模时,有些信息既可以用实体来表达,也可以用联系来表达,这两种方式的选择依据是什么?2)一对多的联系既可以转换成一个独立的关系,也可以和实体对应的关系合并,这两种转换方法各有什么优缺点?
作业7:书后习题 6.1、6.2、6.21
第八次:关系数据库设计和关系规范化
主要内容:
一个不好的关系数据模式会产生数据冗余、数据更新异常等问题。通过函数依赖的概念分析关系模式的规范化程度,并把不规范的关系模式分解为规范化的关系模式。讲授函数依赖的概念、Armstrong公理系统、关系模式的候选关键字(candidate key)以及关系模式分解的原则,即无损连接的分解和保持函数依赖的分解。
BCNF是函数依赖范畴内规范化程度最高的关系模式,而3NF是比BCNF低的规范化形式。一个关系模式总能无损连接地分解为BCNF 的关系模式,但不一定能保持函数依赖;若要求分解既是无损连接的又是保持函数依赖的,则保证可以分解为3NF。 通过考察多值依赖,还可以获得更高规范化的关系模式,即4NF。讲授函数依赖的相关概念 ,以及3NF和BCF的定义、分解为BCNF和3NF的算法;介绍多值依赖及4NF的概念。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition),McGraw-Hill Book Company,高等教育出版社(2021年3月)。第7章7.1-7.9节。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:1)一个不好的关系模式会产生哪些问题?如何消除这些问题? 2)3NF和BCNF有何区别?如何把关系模式分解为BCNF的关系模式? 举例说明4NF。
作业8:书后习题 7.1、7.13、7.21、7.22、7.30
第九次 数据存储
主要内容:
数据持久存放于以磁盘为代表的存储设备中,处理时需读入主存。磁盘和主存之间存在着巨大的访问速度鸿沟。讲授以块为单位的内外存数据传输、缓冲区管理与替换策略、记录在块中的存放方式,以及数据文件组织的主要形式。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第12章、第13章11.1-11.5节。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:1)磁盘和主存之间存在着多大的访问速度鸿沟?为克服这样的鸿沟,数据库管理系统采取了哪些措施?2)比较行存和列存的优缺点。
作业12:书后习题 12.1、13.5、13.9、13.11
第十次 索引
主要内容:
索引是数据库管理系统提高数据访问速度的主要措施之一。介绍稠密索引和稀疏索引的原理和区别,重点讲解B+树索引, 以及面向写优化的索引(buffer tree、LSM tree)。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)第14章114.1-14.9节,第24章24.2节
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:1)假如已知B+-树索引项的数目,如何估算B+-树的高度和结点总数?2)LSM树索引相比B+树索引有什么优势?
作业12:书后习题 14.3[a] 、14.4、14.11、24.10
第十一次 查询处理
主要内容:
查询处理是数据库管理系统的主要功能之一。介绍关系数据库管理系统查询处理的主要过程,关系数据库基本操作(选择,连接,排序等)的算法实现及代价估算,以及关系表达式的求值方式。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第15章。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:1)关系表达式求值的流水线方式有什么优点?是否所有的关系操作都可以采用流水线方式处理?
作业13:书后习题 15.2、15.3
第十二次 查询优化
主要内容:
查询优化是关系数据库管理系统的核心功能之一。讲解查询优化的两个阶段的基本步骤,即代数优化和物理优化;介绍关系代数表达式的等价变换规则,以及基于代价估算的查询优化的基本原理。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第16章。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习: 1)查询优化为什么要用到数据库的统计信息?2)数据库应用的运行会带来统计信息的变化,这对查询优化会产生怎样的影响?
作业13:书后习题 16.5、16.16
第十三次 事务管理
主要内容:
事务是数据库管理系统进行并发控制和恢复的基本单位。讲解事务的基本概念、事务的ACID性质、事务并发执行的好处和潜在问题,以及并发事务的可串行性和可恢复性。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第17章
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:1)事务的并发执行有哪些好处?2)如果不进行恰当的并发控制,多个事务并发执行可能产生哪些潜在的问题?
作业13:书后习题 17.6、17.7
第十四次 并发控制
主要内容:
并发控制保证多个事务并发执行如同串行调度一样获得正确的运行结果。讲解基于锁的并发控制协议的主要思想、两阶段封锁协议(2PL)、死锁及解决办法、多粒度锁, 以及数据删除和插入情况下的并发控制。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第18章18.1-18.4,15.9。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习:1)事务的并发执行有哪些好处?2)如果不进行恰当的并发控制,多个事务并发执行可能产生哪些潜在的问题?3)证明2PL是保证事务调度冲突可串行性的充分条件,而非必要条件。
作业14:书后习题 18.1、18.7、18.18
第十五次 数据库恢复
主要内容:
数据库管理系统确保在系统发生各种故障的情况下,数据库能恢复到正常状态。讲解各种故障类型、基于日志的恢复策略、提高恢复效率的checkpoint方法,以及业界采用的ARIES恢复算法。
授课章次:
1.Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。第19章。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习: ARIES算法如何在DBMS恢复效率和系统正常运行时效率两方面取得平衡?
作业15:书后习题 19.2、19.10、19.21、19.25
第十六次 复习总结
主要内容:
对整个课程内容进行回顾,重点说明课程的要点,巩固讲授的知识内容,对数据库技术的发展进行展望。回答同学提问。
授课章次:
1. Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。
课程思政融入点与实施方法:科学思维
教学方式:线上线下混合
课外学习: 关系数据模型;数据库系统三级模式结构;关系数据库语言SQL;数据库设计和数据库应用开发;数据库系统物理存储和索引结构;数据库系统查询处理和优化的基本方法;并发控制与恢复的基本原理。
五、参考教材及相关资料
1 Abraham Silberschatz, Henry F.Korth, S.Sudarshan, Database System Concepts (7th Edition), McGraw-Hill Book Company, 高等教育出版社(2021年3月)。
2. 陈根才等,数据库课程设计,浙江大学出版社,2008。
六、课程教学网站:
学在浙大
附1. “数据库系统” 实验要求
实验1 DBMS的安装和使用
实验目的:
1. 通过安装某个数据库管理系统,初步了解DBMS的运行环境。
2. 了解DBMS交互界面、图形界面和系统管理工具的使用。
3. 搭建实验平台。
实验平台:
1. 操作系统: Windows、Linux
2. 数据库管理系统:SQL Server、MySQL、OpenGauss、PolarDB(选一)
实验内容和要求:
1. 根据某个DBMS的安装说明等文档,安装DBMS。
2. 了解DBMS的用户管理。
3. 熟悉交互界面的基本交互命令。
4. 熟悉图形界面的功能和操作。
5. 了解基本的DBMS管理功能和操作。
6. 熟悉在线帮助系统的使用。
7. 完成实验报告。
实验2 SQL数据定义和操作
实验目的:
1. 掌握关系数据库语言SQL的使用。
2. 面向某个应用定义数据模式和操作数据。
实验平台:
1. 数据库管理系统:SQL Server、MySQL、OpenGauss、PolarDB(选一)
实验内容和要求:
1. 以某个应用(如Banking)为例,建立数据库。
2. 数据定义: 表的建立/删除/修改; 索引的建立/删除;视图的建立/删除
3. 数据更新: 用 insert/delete/update命令插入/删除/修改表数据。
4. 数据查询: 单表查询,多表查询, 嵌套子查询等。
5. 视图操作:通过视图的数据查询和数据修改
6. 完成实验报告。
实验3 SQL数据完整性
实验目的:
1. 熟悉通过SQL进行数据完整性控制的方法。
实验平台:
1. 数据库管理系统:SQL Server、MySQL、OpenGauss、PolarDB(选一)
实验内容和要求:
1. 定义若干表,其中包括primary key, foreign key 和check的定义。
2. 表中插入数据,考察primary key如何控制实体完整性。
3. 删除被引用表中的行,考察foreign key 中on delete 子句如何控制参照完整性。
4. 修改被引用表中的行的primary key,考察foreign key 中on update 子句如何控制参照完整性。
5. 修改或插入表中数据,考察check子句如何控制校验完整性。
6. 定义一个trigger, 并通过修改表中数据考察触发器如何起作用。
7. 完成实验报告。
实验4 SQL 安全性
实验目的:
1. 熟悉通过SQL进行安全性控制的方法。
实验平台:
1. 数据库管理系统:SQL Server、MySQL、OpenGauss、PolarDB(选一)
实验内容和要求:
1. 建立表,考察表的生成者拥有该表的哪些权限。
2. 使用SQL 的grant 和revoke命令对其他用户进行授权和权力回收,考察相应的作用。
3. 建立视图,并把该视图的查询权限授予其他用户,考察通过视图进行权限控制的作用。
4. 完成实验报告。
实验5 数据库程序设计
实验目的:
1. 掌握数据库应用开发程序设计方法。
实验平台:
1. 数据库管理系统:SQL Server、MySQL、OpenGauss、PolarDB(选一)
实验内容和要求:
1. 设计简单的图书管理数据库概念模式。
2. 设计相应的关系模式。
3. 实现一个图书管理程序,实现图书、借书证及图书借阅的管理的基本功能。
附2. Class Project- MiniSQL
任务目标:
1. 设计并实现一个精简型单用户SQL引擎(DBMS)MiniSQL,允许用户通过字符界面输入SQL语句实现表的建立/删除;索引的建立/删除以及表记录的插入/删除/查找。
2. 通过对MiniSQL的设计与实现,提高学生的系统编程能力,加深对数据库管理系统事先技术的理解。
系统需求:
1. 数据类型:要求支持三种基本数据类型:integer,char(n),float。
2. 表定义:一个表可以定义多达32个属性,各属性可以指定是否为unique;支持单属性的主键定义。
3. 索引定义:对于表的主属性自动建立B+树索引,对于声明为unique的属性可以通过SQL语句由用户指定建立/删除B+树索引(因此,所有的B+树索引都是单属性单值的)。
4. 数据操作: 可以通过指定用and连接的多个条件进行查询,支持等值查询和区间查询。支持每次一条记录的插入操作;支持每次一条或多条记录的删除操作。
98评价:
这门课的知识点很杂也有一定难度所以建议上课听一遍(肯定有不懂的)再结合学长笔记看一遍就学的差不多了(推荐hobbitqia前辈的笔记),期末全是判断选择填空没有主观题(符合这门课杂的特点)所以复习一定要全面,lab5的前后端有难度,lab6 minisql更是重量级一定要找靠谱队友并提前开始留容错(我们组期中就开始写了,班上有大神期中已经快写完了),助教人很好不会刁难人。参考成绩96