《数据库系统》教学大纲(2018版)

一、课程基本信息

课程代码3140520011019课程名称数据库系统
英文名称Database Systems
开课单位计算机学院授课对象计科、软工专业本科生
课程类别专业类
课程学分2.5课程性质必修
总学时40理论学时40实践学时0
先修课程计算机组成与设计、数据结构、离散数学
适用专业软件工程
课程网站http://db.whu.edu.cn

二、课程简介

本课程是计算机科学与技术、软件工程两个专业的专业基础课。本课程全面地介绍了数据库技术要解决的问题、数据库的基本原理、数据库系统的内部构造和实现技术、数据库应用的设计与开发方法、数据管理技术所面临的挑战与机遇。使学生了解并掌握管理和调优数据库系统的能力,同时具备熟练利用不同抽象层次的建模工具根据应用需求开展大型数据库设计的能力,在此基础上培养学生开发数据库应用系统的能力以及研发数据库系统内核的能力。

三、课程教学目标

本课程的目的在于培养学生掌握数据库系统的基本理论和方法,并且能够针对具体问题综合利用数据库的理论和方法分析实际问题;培养学生管理数据库系统、开发数据库应用以及研制数据库系统的能力。

通过对该课程的学习,应达到以下课程目标:

课程目标1:系统掌握数据库系统的基本原理、数学基础以及内部架构,深入分析数据库系统的运行机制,培养学生分析数据库系统中查询性能等问题的关键原因和影响因素的能力。

课程目标2:掌握数据库设计方法和工具,理解数据库系统各种关键特性对于数据库系统性能和功能的影响,培养学生根据不同场景选择合适的数据库管理系统、设计方法以及建模工具的能力,引导学生使用使用设计工具独立设计复杂数据库系统及数据库应用的能力。

课程目标3:熟悉SQL语言、数据库安全等级标准等数据库国际或国家标准,理解开源数据库系统的各种许可证特点,通过分析和比较国内外开源数据库系统体会国内外文化对数据库系统发展的影响。

课程目标4:通过阅读分析数据库系统领域最新的学术论文,培养学生利用英语了解数据管理技术的最新发展动态的能力;通过讲解所读论文并参与讨论,锻炼学生在跨文化交流、竞争和合作方面的能力。

四、课程目标对毕业要求的支撑

课程教学目标指标点毕业要求
课程目标12-1能够运用数学、自然科学和工程科学知识识别和判断复杂软件工程问题的关键环节。毕业要求2.问题分析
课程目标25-2 针对特定复杂软件工程问题,能够选用或开发恰当的技术、资源、软件工具与平台,对复杂软件工程问题进行分析、建模、设计、开发、测试、模拟与预测等任务,能够分析所使用的技术、资源和工具的优势及其局限性,并用以提高解决复杂系统及工程问题的能力和效率。毕业要求5.使用现代工具
课程目标36-1了解软件行业相关领域的技术标准体系、知识产权、产业政策和法律法规,理解不同社会文化对软件工程活动的影响。毕业要求6.工程与社会
课程目标410-3具备跨文化交流的语言和书面表达能力,能够就专业问题进行沟通和交流,具备一定的国际视野,具有跨文化的交流、竞争与合作能力。毕业要求10.沟通

五、课程教学内容与课程目标关系

1. 课程教学内容分配

序号教学内容教学要求 (目标)重难点教学环节对应的课程目标
教学方式学时分配
1第1章数据库系统概述 1.1 数据库与数据管理 1.2 数据模型与信息模型 1.3 数据库系统结构知识点: 1.掌握数据库、数据库管理系统、数据库系统等基本概念。 2.初步了解数据管理技术的发展历程以及各类数据模型。 3.了解数据库系统的主流体系结构。 能力点: 掌握数据管理技术的评价方法以及数据模型的组成要素1.数据模型的概念以及常用数据模型 2.数据库系统的体系结构课堂 讲授3课程目标1 课程目标2
课后 作业 
2第2章关系数据库 2.1 关系模型 2.2 关系代数 2.3 查询优化知识点: 1.关系基本概念、关系模型的组成、关系数据结构及形式化定义、关系的完整性。 2.关系代数及其扩展。 3.查询优化的一般策略和步骤、关系代数表达式的等价规则与优化算法。 能力点: 培养学生利用关系代数表达对关系的各类操作以及查询优化的主要手段1.关系模型的约束 2.关系代数 3.关系代数表达式的等价变换 4.查询优化的过程和算法课堂 讲授5课程目标1 课程目标2
课后 作业1
3第3章数据库语言及访问接口 3.1 SQL简介 3.2 SQL的数据定义 3.3 SQL的数据查询 3.4 SQL的数据更新 3.5 SQL中的视图 3.6 数据库访问技术知识点: 1. SQL标准。 2. SQL语法规则。 3. 数据库对象的创建、修改、删除。 4. 数据查询、增加、删除、修改。 5. 视图概念以及视图更新规则。 6. JDBC、ODBC、嵌入式SQL等数据库访问技术。 能力点: 1.培养学生利用SQL语言操纵关系数据库中数据的能力。 2. 培养学生用数据库访问技术开发数据库应用的能力。1. SQL语言的特点 2. SQL语言的嵌套查询、递归查询课堂 讲授7课程目标2 课程目标3
课后 作业2
课后 实验5
4第4章关系数据理论 4.1 函数依赖 4.2 关系模式的规范化 4.3 数据依赖公理 4.4 关系模式的分解知识点: 1. 函数依赖的概念。 2. 1NF,2NF,3NF,BCNF,4NF等范式的概念。 3. 关系模式的规范化算法。 4. 阿姆斯特朗公理及其相关证明。 5. 保持依赖以及无损连接的模式分解方法。 能力点: 1.培养学生利用关系规范化理论判别并改进关系模式的能力。1.函数依赖以及范式 2. 关系模式规范化方法 3. 阿姆斯特朗公理 4. 保持函数依赖以及无损连接的分解课堂 讲授6课程目标1 课程目标2
课后 作业2
5第5章数据库设计 5.1 数据库设计概述 5.2 需求分析 5.3 概念结构设计 5.4 逻辑结构设计 5.5 数据库物理设计 5.6 数据库实施与维护知识点: 1. 数据库设计特点。 2. 需求分析方法。 3. 概念结构设计方法,E-R图及EE-R图。 4. 逻辑结构设计方法,概念模型与逻辑模型的转换。 5. 物理设计、数据库的实施和维护阶段的主要任务及方法。 能力点: 1.培养学生根据数据库应用需求设计数据库结构的能力。1.需求分析 2.E-R以及EE-R图课堂 讲授4课程目标1 课程目标2 课程目标4
课堂 讨论2
课后 实验3
课后 作业2
6第6章数据库保护与事务管理 6.1 数据库的安全性 6.2 数据库的完整性 6.3 事务管理与数据库恢复 6.4 事务的并发控制知识点: 1. 数据库安全性概念、数据库安全性控制技术、安全数据库标准。 2. 完整性约束条件、完整性控制的功能、数据库安全性和完整性措施。 3. 事务的基本概念、数据库恢复的实现技术、恢复策略、检查点恢复技术、数据库镜像等。 4. 并发控制概念、封锁协议、活锁和死锁、并发调度的可串行性、两段锁协议、封锁的粒度等。 能力点: 1. 培养学生使用访问控制模型保护数据安全的能力。 2. 培养学生利用各种约束保证数据完整性的能力。 3. 培养学生使用事务的能力。1.事务的ACID特性 2.检查点恢复技术 3.两阶段锁协议 4.可串行化 5.死锁及其检测解决课堂 讲授6课程目标1 课程目标2 课程目标3
课后 作业1
课后 实验2
7第7章 数据库管理系统及编程 7.1 对象关系数据库 7.2 过程化SQL 7.3 控制语句 7.4 游标的使用 7.5 数据结构 7.6 存储过程与存储函数 7.7 数据库触发器知识点: 1.关系数据库的对象扩展。 2.过程化SQL的特性。 3.过程化SQL的控制语句。 4.过程化SQL的数据结构。 5.游标、存储过程、存储函数以及触发器。 能力点: 1.培养学生利用过程化SQL进行数据库服务器端开发的能力。1.过程化SQL的特性 2.游标的使用 3.触发器 4.表继承课堂 讲授3课程目标1 课程目标2
课后 实验3
8第8章现代数据库技术及发展 8.1 现代数据库技术概述 8.2 XML数据库 8.3 数据仓库与数据挖掘 8.4 新型数据库知识点: 1.大数据时代的数据管理技术挑战及趋势。 2.XML、时空数据库等专用数据库。 3.NoSQL数据库。 4.NewSQL数据库。 能力点: 1.培养学生根据新时代需求选择合适数据库的能力。1.NewSQL数据库的可扩展性等特性 2.数据管理技术的发展趋势课堂 讲授2课程目标1 课程目标2 课程目标4
课堂 讨论2

2. 实践教学安排

序号实验内容类型实验任务重难点
1实验1:SQL语言设计型用SQL语言实现数据查询、修改、删除和增加、数据库对象定义和维护等操作。1.掌握SELECT、UPDATE、INSERT、DELETE等语句的基本语法形式 2.掌握相关子查询、非相关子查询的用法 3.掌握递归查询的用法 4.掌握批量插入的几种形式
2实验2:数据库设计设计型针对一个数据库应用的需求,按照需求分析、概念设计、逻辑设计、物理设计的步骤完成其数据库设计。1.掌握需求分析的常用方法 2.掌握概念设计的常用方法和工具 3.掌握逻辑设计的方法 4.掌握物理设计的方法 5.锻炼合作沟通能力
3实验3:事务隔离性验证型利用数据库事务的不同隔离级别设置,验证数据库中出现的各种数据不一致问题。1.理解读未提交、不可重复读、幻读等数据不一致问题及其产生的原理 2.掌握数据库系统隔离级别与数据不一致问题之间的关系
4实验4:过程化SQL设计型利用过程化SQL编写存储过程(函数)、游标、触发器完成复杂约束等功能。1.掌握过程化SQL的语法及数据结构 2.掌握游标的使用时机和使用方法 3.掌握触发器的不同类型和使用方法

六、教学方式设计

1. 课堂讲授

1)讲授基本原理,理论联系实际,启发式教学,培养学生独立思考的能力;

2)采用多媒体课件、网络学习平台和传统教学相结合进行教学;

3)教学互动,强调学生在教学中的作用,充分利用现代通信交互平台如QQ群、微信群等与学生交流答疑,并根据情况采用质疑的方法了解学生学习情况。

2. 课堂讨论

设置讨论环节的目的是让学生针对同一个数据库应用需求给出不同的需求理解以及不同的概念设计,探讨大型数据库设计过程中的分工合作以及冲突解决方法。同时培养学生运用搜索工具紧跟数据管理技术相关的发展趋势和最新研究热点,了解不同应用场景对数据管理技术的需求,探讨技术和工具的不同应用场景和局限性。通过设立讨论主题,学生在进行课堂汇报和讨论报告的过程中,加强学生与教师、学生与学生的交流互动,加强思维训练,培养同学理解和解决计算机复杂工程问题的能力。

3. 课后实验

设置课后实验的目的是为了让学生及时消化吸收课堂上的理论知识,利用PostgreSQL等数据库管理系统软件进行实时操作,理解和实习数据库语言的使用方法;通过实际应用的需求实践数据库设计的过程和方法;在数据库系统中验证事务隔离性加深对数据库事务机制的理解;并通过利用过程化SQL实现数据库系统端高级功能来培养学生自我探索和学习的意识和能力。

七、考核及成绩评定方式

1.考核方式

本课程考核方式为课堂表现、课后作业、课后实验和期末考试(闭卷)。

八、教材及参考资料

1. 教材

[1]数据库系统概念(第七版),机械工业出版社,亚伯拉罕·西尔伯沙茨,2021。

2. 参考书

[1] 数据库系统概论(第5版),高等教育出版社,王珊,萨师煊著,2014。

[2] 数据库系统实现(第2版),机械工业出版社,加西亚·莫利纳等著,杨冬青等译,2010。

[3] 数据库索引设计与优化,电子工业出版社, 拉赫登迈奇, 利奇著, 2015。

[4] 数据库系统内幕,亚历克斯·彼得罗夫著,机械工业出版社,2020。

[5]数据库原理与技术(Oracle版)(第3版),清华大学出版社,尹为民 李石君 金银秋 曾慧 等编著,2014。