数据库系统原理

《数据库系统原理》是厦门大学计算机系本科生专业课程,目前由数据库实验室张东站老师和林子雨老师共同主讲。

访问“林子雨主讲《数据库系统原理》2024春季学期班级主页”

访问“林子雨主讲《数据库系统原理》2023春季学期班级主页”

访问“林子雨主讲《数据库系统原理》2022春季学期班级主页”

访问“林子雨主讲《数据库系统原理》2021春季学期班级主页”

访问“林子雨主讲《数据库系统原理》2020春季学期班级主页”

访问“林子雨主讲《数据库系统原理》2019春季学期班级主页”

访问“林子雨主讲《数据库系统原理》2018春季学期班级主页”

访问“林子雨主讲《数据库系统原理》2017春季学期班级主页”

访问“林子雨主讲《数据库系统原理》2016春季学期班级主页”

教学讲义PPT下载

第1章 第2章 第3章 第4章 第5章 第6章 第7章 第8章 第9章 第10章 第11章

实验说明下载

实验一 实验二 实验三 实验四 实验五 实验六 实验七 大实验

《数据库系统原理》课程教学大纲和教学规程

《数据库系统原理》精品课程课题组

1. 课程基本信息

课程编号:212019

课程名称(中文):数据库系统原理

课程名称(英文):Principle of Database System

开课学期:见培养方案与教学计划

课程类别: 核心专业基础课程

总学时数与学分: 68学时(4学分,不含实验课时,4学时/周)

先修课程:计算机导论、高级语言程序设计、集合论与图论、数据结构。

教学形式:课堂讲授 + 课外教学 + 实验教学(实验部分实行单列)

使用教材: 王珊,萨师煊:数据库系统概论(第四版),高等教育出版社,2006第四版

教学参考书(更多的内容见参考书目录):

Date C J, An Introduction to Database System (Ed.7), Addison-Wesley,2000

施伯乐 周傲英 著《数据库系统教程》,高等教育出版社,2000

大纲制定者: 薛永生、张东站、林子雨 

2.课程性质、类别与任务

数据库应用广泛,其理论和技术是计算机专业基础课,也是计算机工程技术人员必备的知识和技能,属于必修课。本课程的教学任务是针对大量数据管理操作,全面介绍数据库系统的基本概念,基本原理和基本技术。通过研究关系代数、关系演算、函数依赖、多值依赖,Armstrong公理,关系模式的分解,关系模式的规范化让学生建立扎实的关系数据库理论基础;结合目前信息系统建设的实际全面讲授关系数据库标准语言–SQL、关系数据库设计过程方法,使学生掌握现代信息系统中数据库开发技术;在数据库基本理论的基础上,讲授恢复技术、并发控制技术,数据库实现基本技术以及数据库安全性和完整性控制,使学生掌握数据库系统维护管理系统;对数据库技术的研究动态,如分布式数据库、数据挖掘等也作简略介绍,使学生简单了解目前数据库发展的前沿技术。在理论和实践上为学生的后续发展打下坚实基础。

此外,配合实验课程的教学中,学生应理论联系实际,理论指导实践,通过规范地完成一系列数据库系统原理实验进一步巩固所学的相关书本知识,在知识、能力、素质上得到进一步的提高。

3.课程教学的基本要求(教学内容和教学重点)

“数据库系统原理”内容的重点是数据库理论、技术及其在实际工程的应用。课程教学的基本要求是通过教学活动,使每一个学生较好地掌握课程的主要内容,能够运用数据库的理论、方法与技术解决相应的、一般的实际问题。课程的教学内容主要包括如下知识点,其中,属于重点的内容用黑体标示:

数据库系统概论(数据、数据库、数据库管理系统、数据库系统、数据管理技术的产生和发展、数据库系统的特点),数据模型(数据模型的组成要素,概念模型,层次模型,网状模型,关系模型,对象模型),数据库系统结构(数据库系统模式的概念、数据库系统的三级模式结构、数据库的二级映像功能与数据独立性、数据库系统的组成、数据库技术的研究领域)。

关系模型概述,关系数据结构及形式化定义(关系,关系模式,关系数据库),关系的完整性(实体完整性,参照完整性,用户自定义完整性),关系代数(集合运算,关系运算),关系演算(元组关系演算,域关系演算)

SQL概述,SQL数据定义,SQL查询(单表查询、连接查询、嵌套查询、集合查询),SQL数据更新(插入数据、修改数据、删除数据),视图(SQL创建视图、查询视图、更新视图、视图意义),数据控制(SQL授权、收回授权),嵌入式SQL,动态SQL。

关系系统(定义、分类、基本准则),查询优化准则,关系代数等价变换规则,查询优化步骤。

关系模式的冗余和异常问题,规范化(函数依赖、码、范式、2NF、3NF、BCNF、多值依赖、4NF),数据依赖的公理系统,模式的分解。

数据库设计的基本步骤,需求分析,概念结构设计,逻辑结构设计,物理设计,数据库的实施和维护。

事务的基本概念,故障的种类,恢复的实现技术(数据转储、登记日记文件),恢复策略(事务故障的恢复,系统故障的恢复,介质故障的恢复),具有检查点的恢复技术,数据库镜像,Oracle的恢复技术。

并发控制概述,封锁协议,活锁和死锁,并发调度的可串行性,两段锁协议,封锁的粒度,意向锁,Oracle的并发控制。

计算机系统的三类安全性问题,可信计算机系统的评测标准,数据库安全性控制(用户标识和鉴别,存取控制,自主存取控制方法,强制存取控制方法,视图机制,审计,数据加密),统计数据库安全性,Oracle数据库的安全性措施。

完整性约束条件,完整性控制,Oracle的完整性。

DBMS概述,DBMS的进程结构和线索机制,DBMS系统结构,语言处理,数据存取,缓冲区管理。

面向对象数据库技术概述,Web数据库技术概述,数据仓库技术概述,分布式数据库技术概述

4.教学目标、教学内容的初步论证和教学过程中应该注意事项

近三十年来,数据库技术不断发展,同时广泛应用于社会各行各业,领域不断扩展。目前可见的绝大多数计算机应用系统都离不开数据库的支撑。由于数据库技术在计算机技术中的重要作用,决定了数据库课程在计算机人才培养中的重要意义。尤其在当今知识经济的时代,信息化、数字化建设的决定因素是这方面的人才,信息处理为整个计算机应用的主要领域,其基础和核心属于数据库范畴,教学中要积极跟踪当前数据库技术发展的水平和趋势来培养计算机学科的人才。本课程的重点要落实在数据库基础理论和应用两个方面,通过教学,使学生系统地掌握数据库系统的基本原理,概念,模型,结构,方法,能够从事复杂数据库系统的设计,开发,研究和应用工作,并为从事计算机各领域的科研及毕业后走向各岗位的工作打下数据库基础,在教学过程中要注意通过各种形式对学生下列能力的培养:

(1)分析、归纳和设计能力

深刻理解基本概念和方法,学会数据库系统的分析方法,归纳各种概念,权衡各方因素,设计合理系统。

(2)实践开发,调试能力

能够动手开发成功的数据库应用系统。

(3)自学能力

数据据库软件很多,发展快,绝大多数要求学生在实验或课余自学掌握,课堂重在讲方法和个案剖析。

(4)系统集成能力

数据库与其他部分,数据库与数据库之间,异构环和系统之间,如达到全局优化,要能把握较复杂较系统的整体结构。

(5)研究创新能力

数据库技术发展快,新内容层出不穷,注意学习类比,观察提炼,提出新问题,新概念,新方法。

通过上述分析,“数据库系统原理”课程的教学应该注意两个层面的交叉线索。从数据库原理的特性出发,第一条线索是介绍基础理论知识、数据模型、数据库系统构成、关系数据库、关系系统及查询优化、关系数据理论、数据库保护和数据库设计,第二条线索是从实际工程角度介绍应用数据库设计技术、规范化理论、E-R图、SQL语言等技术设计和解决数据库应用管理系统方面的问题的过程与方法。两条线索相辅相成,理论主线为应用主线提供严格的理论支持,应用主线为理论主线的提出和完善提供素材,两条线索在关系模型系统处实现合一。然后引入WEB 数据库技术及应用、面象对象技术、数据仓库技术等新技术,简单介绍数据库技术的新进展和新一代数据库系统,包括Web数据应用技术、分布式数据库、对象数据库、数据仓库等,反映数据库发展的最新潮流。这样一种内容设计上的安排,既让学生扎实地掌握数据库的基本理论,又使学生全面掌握数据库的实际应用,可以迅速投入实际工作,并且初步了解数据库技术的最新发展,为从事科学研究及将来从事研究生的学习提供良好的入门与开端。

5.课外教学要求

本课程的课外教学内容和形式主要由学生读书,任课教师辅导、答疑、批改作业、实践环节等几部分构成,其中,实践环节的实验教学已经单列,实验教学内容已经剥离。本课程要求学生在有时间的情况下,尽可能多地完成教材中的习题。学生应在任课教师的帮助下,认真听课,反复思考,大量完成作业,在学习中反复进行阅读、思考、做习题,通过阅读、思考、做习题、分析、联想、概括、归纳、总结等多种有效的方式方法,比较全面、准确地掌握课程的主要内容和教学重点。

任课教师(包括助教)每周安排2次辅导、答疑,每次1小时。每次辅导、答疑至少应有一位教师参加,一般不得合并执行。主讲教师应批改全班学生作业量的5%,参加辅导、答疑的次数不少于总次数的1/5,以掌握教学的效果,调控教学进度。

课程对学生作业的质量要求是:正确、简洁、规范。

要求做题正确,意味着学生必须掌握基本概念、基本原理、基本方法、基本技术等课程的基本知识,基本知识不掌握,就很难正确解答问题,这是对学生知识水平和解决问题能力的考核。要求做题简洁和规范,意味着在正确解题的情况下,不应该存在“拖泥带水”和“东拉西扯”的问题,而且,正反映出学生在这方面训练有素,这是对学生素质的考核。

6.课程的实验教学

计算机科学实验课程将安排一些有代表性的上机实验单元与本课程相呼应,目的是通过实验让学生体会理论与实践高度统一的学科特点,进一步认识理论、抽象、设计等三个过程及其相互关系,形成对学科范型更深入的体会和认识。其中,有一个单元是综合性的实验,如一个简单的信息管理系统。它要求学生从分析问题出发,解决某一简单的实际问题。完成需求分析、概念结构设计、逻辑结构设计、物理设计,开发出应用系统,完成安全、备份恢复、完整性等相关的维护管理。

学生应按照理论联系实际,理论指导实践的要求,在实际操作中规范地完成各项实验。通过实验工作,通过实验,更深入理解数据库系统工作原理,比较熟练地掌握数据语言SQL的使用方法,能够用数据库软件开发应用,能够管理维护具体的数据库系统。

实验教学按照实验单元进行,一个实验单元完成后或相近内容的一组实验单元完成后,每一个学生要撰写和提交实验报告。任课教师应依据每一个学生的实验报告,在学期结束时给出学生该门课程的学术评语和成绩,并与四个学年所有实验课程评语一起,最终产生对学生的实践能力作出综合评定的学术评语与成绩。学术评语应着重从发展的眼光和视角,考察学生是否能够理论联系实际,理论指导实践,按照实验课程的教学要求,规范地完成实验单元,较好或基本掌握了实验教学的内容。

在实验课程单列之前,课程的实践环节拟安排39学时(实际执行13次共13*3=39学时),教学内容由大纲确定,实验考核成绩占总成绩的20-30%,实验课程单列之后,实验考核成绩单独计算,不计入课程考核成绩。

7.考核的方式方法

课程结束考核方式: 闭卷考试

课堂考试时间: 3小时(180分钟)

考试命题: 任课教师命题,研究所分管该课程的负责人和分管教学的系副主任审题;

课程考试的命题内容要从大纲的要求出发,围绕本课程的教学内容、知识点和教学要求,着重从知识、能力、素质三个方面对学生进行全面的考核,重点考核学生运用知识解决问题的能力,同时考察学生的综合素质。考核范围为除了最后一周教学的内容外,其他大纲确定的知识点都在考试范围之内,课程考试的试卷命题范围不得免除期中考试已经考过的内容。试卷中不少于85%的内容应来自课程重点内容的范围,不少于10%的内容应来自课程非重点内容的范围,要求学生全面复习,以达到系统掌握,全面考核的目的。试卷的题型要力戒避免文科标准化试卷的题型,避免出现简单概念问答题和简答题。试卷题目数量一般为5、6、7题,以优秀学生在全部会做的情况下正常书写速度能够在120分钟内完成为宜。

试卷题目数量的减少与全面考核的目的并不矛盾。由于考核的范围是明确的,只要教师不透露题型和范围,学生就必须全面复习,这样,即使题目不覆盖某些教学内容,也不会影响实际的教学效果。

随堂监考授权: 主讲教师和助教

实验考核的方式: 实验操作与实验报告(独立于课程的考试),成绩实行四级记分。其中,优(86-100分),良(71-75),及格(60-70),不及格(59分及以下)。

期中考试: 由任课教师决定是否安排期中考试,主要用于检查教学情况。

口试:任课教师有权根据需要,安排学生进行口试。

关于考核的说明: 为了鼓励学生全面掌握课程的教学内容,融会贯通,学期成绩一般应以最后一次考试成绩为准,期中考试的成绩一般不计入最后成绩,而只与平时作业、口试情况等作为少数学生成绩需要提分时的一种参考依据。例如,期中考试成绩优秀而期末考试成绩不佳的同学,以及期末考试成绩在55分及其以上,60分以下的同学,教师可以参考平时作业(较好)、口试(较好)情况等决定是否加分。

教学讲义PPT下载

第1章 第2章 第3章 第4章 第5章 第6章 第7章 第8章 第9章 第10章 第11章

实验说明下载

实验一 实验二 实验三 实验四 实验五 实验六 实验七 大实验