《数据库原理及应用》课程教案
授课时间第 1 周周一第12 节课次 1
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
!
课时
安排
2
授课题目(教学章、节或主题):
数据库基础
上一课次
教学内容提要
第一堂课
·
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
了解数据库知识,熟悉专业术语
教学重点及难点:
信息、数据、数据库、数据库系统、数据库管理系统
教学基本内容与教学设计(含时间分配)方法及手段
信息、数据、数据处理与数据管理
数据是信息的符号表示或载体
>
信息是数据的内涵,是对数据的语义解释
信息=数据+数据处理
数据库技术的产生、发展
人工管理阶段、文件系统阶段、数据库系统阶段
数据库系统的组成
数据库(DB)是存储在计算机内、有组织的、可共享的数据集合
软件系统(OS、DBMS、应用开发工具、应用系统)
用户(数据库管理员、程序员、用户)
—
数据库系统的模式结构
内模式、模式、外模式
内模式是整个数据库实际存储的表示
模式是整个数据库实际存储的抽象表示
外模式是概念模式的某一部分的抽象表示
保证了数据与程序间的逻辑独立性
确保了数据的物理独立性
《数据库原理及应用》课程教案
【
《数据库原理及应用》课程教案
《数据库原理及应用》课程教案
授课时间第 2 周周五第56 节课次4
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
关系代数
上一课次
教学内容提要
关系数据库
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
关系运算(传统、专门)
教学重点及难点:
关系代数表达式
教学基本内容与教学设计(含时间分配)方法及手段2.3.1 关系代数的分类及其运算符
关系代数是一种抽象的查询语言
关系代数的运算对象与运算结果都是关系
关系代数运算符
关系代数的运算按运算符的不同主要分为两类:
传统的集合运算:
把关系看成元组的集合,以元组作为集合中元素来进行
运算,其运算是从关系的“水平”方向即行的角度进行的。
包括并、差、交和笛卡尔积等运算。
专门的关系运算:
不仅涉及行运算,也涉及列运算,这种运算是为数据库
的应用而引进的特殊运算。
包括选取、投影、连接和除法等运算。
2.3.2 传统的集合运算
并(Union):R∪S={t | t∈R∨t∈S}
差(Difference):R-S = {t | t∈R∧┐t∈S}
交(Intersection):R∩S = {t | t∈R∧t∈S}
广义笛卡尔积(Extended Cartesian Product):
R×S = {t r⌒t s| t r∈R∧t s∈S}
作业和思考题:
《数据库原理及应用》课程教案
授课时间第 3 周周一第12 节课次5
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
第2章专门的关系运算
上一课次
教学内容提要
传统的集合运算
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
掌握专门的关系运算
教学重点及难点:
投影、选择、连接、除
教学基本内容与教学设计(含时间分配)方法及手段2.3.3 专门的关系运算
选择(Selection)
F(R)={t | t∈R∧F(t)='真'}
投影(Projection)
除法(Division)
R÷S = {t r[X] | t r∈R∧Πy(S)Yx}
除法运算同时从行和列的角度进行运算,适合于包含“全部”
之类的短语的查询。
连接(Join)
自然连接: 在等值连接的情况下,当连接属性X与Y具有相同属性组
时,把在连接结果中重复的属性列去掉,记为:R*S
除法(Division)
R÷S = {t r[X] | t r∈R∧Πy(S)Yx}
除法运算同时从行和列的角度进行运算,适合于
包含“全部”之类的短语的查询。
作业和思考题:
《数据库原理及应用》课程教案
[例2-5] 查询计算机系的全体学生。
Dept='计算机' (S)或
5=‘计算机’ (S)(其中5为属性Dept的序号)
[例2-6] 查询工资高于1000元的男教师。
(Sal>1000) ∧(Sex= '男')(T)
运算结果如图
[例2-7] 查询教师的姓名、教师号及其职称。
ΠTN,TNo,Prof(T) 或
Π2,1,5(T)
[例2-11] 查询讲授“数据库”课程的教师姓名。
ΠTN(CN='数据库' (C)*TC*ΠTNo,TN(T)) 或
ΠTN(ΠTNo(CN='数据库' (C)*TC)*ΠTNo,TN(T))
[例2-13] 查询选修了全部课程的学生学号和姓名。
ΠSNo,CNo(SC)÷ΠCNo(C)*ΠSNo,SN(S)
[例2-14] 查询至少选修了C1课程和C3课程的学生学号。ΠSNo,CNo(SC)÷ΠCNo(CNo='C1'∨CNo='C3' (C))
只有S4同学的象集至少包含了C1课程和C3课程,因此,查询结果为S4 。
《数据库原理及应用》课程教案
授课时间第 4 周周一第12 节课次7
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
第三章SQL 语言
上一课次
教学内容提要
关系数据库
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
掌握SQL语言的功能、了解SQL SERVER软件的基本工具、数据库的构成、创建方法
教学重点及难点:
数据库的构成、创建方法
教学基本内容与教学设计(含时间分配)方法及手段一、结构化查询语言Structured Query Language
数据查询、数据定义、数据操纵、数据控制
二、了解SQL Server 2000
企业版(Enterprise Edition)标准版(Standard Edition)
个人版(Personal Edition)开发者版(Developer Edition)
三、创建与使用数据库
存放数据库数据和数据库对象的文件
主要数据文件(.mdf ) +次要数据文件(.ndf )
记录数据库更新情况,扩展名为.ldf 当数据库破坏时可以用事务日志
还原数据库内容
文件组(File Group)是将多个数据文件集合起来形成的一个整体
SQL Server的系统数据库
四、用Enterprise Manager 创建数据库
用SQL命令创建数据库
作业和思考题:画出学生选修课程ER图
课后小结:
《数据库原理及应用》课程教案
授课时间第 4 周周五第56 节课次8
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
创建数据表
上一课次
教学内容提要
创建数据库
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
数据表的创建
教学重点及难点:
两种方法数据表的创建
教学基本内容与教学设计(含时间分配)方法及手段创建与使用数据表
3.4.1 数据类型
3.4.2 创建数据表
“字段名”
“数据类型”
字段的“长度”、“精度”和“小数位数”
“允许空”
“默认值”
用SQL命令创建数据表
C REATE TABLE <表名>
( <列定义>[{,<列定义>|<表约束>}])
完整性约束的基本语法格式
[CONSTRAINT <约束名> ] <约束类型>
作业和思考题:画出学生选修课程ER图
《数据库原理及应用》课程教案
授课时间第 5 周周一第12 节课次9
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
约束
上一课次
教学内容提要
创建数据表
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
掌握定义五种约束的方法
教学重点及难点:
约束的含义、应用
教学基本内容与教学设计(含时间分配)方法及手段3.4.3 定义数据表的约束
完整性约束的基本语法格式
[CONSTRAINT <约束名> ] <约束类型>
(1)NULL/NOT NULL约束
NULL表示“不知道”、“不确定”或“没有数据”的意思
(2)UNIQUE约束(惟一约束)
指明基本表在某一列或多个列的组合上的取值必须惟一
(3)PRIMARY KEY约束(主键约束)
用于定义基本表的主键,起惟一标识作用
(4)FOREIGN KEY约束(外键约束)
[CONSTRAINT<约束名>] FOREIGN KEY REFERENCES
<主表名> (<列名>[{,<列名>}])
CHECK约束
(5)CHECK约束用来检查字段值所允许的范围
作业和思考题:画出学生选修课程ER图
课后小结:
《数据库原理及应用》课程教案
授课时间第 5 周周五第56 节课次10
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
修改、删除数据表;创建索引
上一课次
教学内容提要
约束
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
修改、删除数据表;创建索引
教学重点及难点:
修改、删除数据表;创建索引
教学基本内容与教学设计(含时间分配)方法及手段
3.4.4 修改数据表
用Enterprise Manager 修改数据表的结构
用SQL命令修改数据表
ALTER TABLE <表名>
ADD <列定义> | <完整性约束定义>
ALTER TABLE <表名>
ALTER COLUMN <列名> <数据类型> [NULL|NOT NULL]
ALTER TABLE<表名>
DROP CONSTRAINT <约束名>
3.4.5 删除基本表
用Enterprise Manager删除数据表
用SQL命令删除数据表
DROP TABLE <表名>
只能删除自己建立的表,不能删除其他用户所建的表
创建与使用索引
3.5.1 索引的作用
3.5.2 索引的分类
作业和思考题:画出学生选修课程ER图
课后小结:
《数据库原理及应用》课程教案
授课时间第 5 周周一第12 节课次9
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
单表数据查询
上一课次
教学内容提要
约束
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
单表数据查询
教学重点及难点:单表数据查询
教学基本内容与教学设计(含时间分配)方法及手段
3.6.1 SELECT命令的格式与基本使用
SELECT [ALL|DISTINCT][TOP N [PERCENT][WITH TIES]]
〈列名〉[AS 别名1] [{,〈列名〉[ AS 别名2]}]
[INTO 新表名]
FROM〈表名1或视图名1〉[[AS] 表1别名] [{,〈表名2或视图名
2〉[[AS] 表2别名]}]
[WHERE〈检索条件〉]、[GROUP BY <列名1>[HAVING <条件表达式>]]
ORDER BY <列名2>[ASC|DESC]]
3.6.2 条件查询
[例3-34] 查询所有姓张的教师的教师号和姓名。
3.6.3 常用库函数及统计汇总查询
[例3-37] 求学号为S1学生的总分和平均分。
3.6.4 分组查询
[例3-44] 查询选修两门以上课程的学生的学号和选课门数。
3.3.5 查询的排序
作业和思考题:画出学生选修课程ER图
课后小结:
《数据库原理及应用》课程教案
授课时间第 5 周周五第56 节课次10
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
多表数据查询
上一课次
教学内容提要
单表数据查询
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
多表数据查询
教学重点及难点:
多表数据查询
教学基本内容与教学设计(含时间分配)方法及手段
3.6.6 数据表连接及连接查询
连接查询:一个查询需要对多个表进行操作
表之间的连接:连接查询的结果集或结果表
连接字段:数据表之间的联系是通过表的字段值来体现的
连接操作的目的:从多个表中查询数据
表的连接方法:
表之间满足一定条件的行进行连接时,FROM子句指明进行连接的表名,WHERE子句指明连接的列名及其连接条
件
利用关键字JOIN进行连接:当将JOIN 关键词放于FROM子句中时,应有关键词ON与之对应,以表明连接的条件
作业和思考题:
课后小结:
《数据库原理及应用》课程教案
授课时间第 6 周周一第12 节课次11
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
数据更新
上一课次
教学内容提要
多表数据查询
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
数据更新
教学重点及难点:数据更新
教学基本内容与教学设计(含时间分配)方法及手段
3.7.1 添加数据
用Enterprise Manager添加数据
不能应付数据的大量添加
用SQL命令添加数据
INSERT INTO <表名>[(<列名1>[,<列名2>…])] VALUES(<值>)
添加多行记录
INSERT INTO <表名> [(<列名1>[,<列名2>…])]
子查询
3.7.2 修改数据
用Enterprise Manager修改数据
不能应付数据的大量修改
用SQL命令修改数据
UPDATE <表名>SET <列名>=<表达式> [,<列名>=<表达式>]…[WHERE <条
件>]
3.7.3 删除数据
DELETE FROM<表名> [WHERE <条件>]
作业和思考题:画出学生选修课程ER图
课后小结:
《数据库原理及应用》课程教案
授课时间第6周周五第56 节课次12
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
视图
上一课次
教学内容提要
数据更新
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
视图
教学重点及难点:
视图
教学基本内容与教学设计(含时间分配)方法及手段视图
视图是虚表,其数据不进行存储,其记录来自基本表,只在数据库
中存储其定义。
3.8.1 创建视图
用Enterprise Manager创建视图
用SQL命令创建视图
CREATE VIEW <视图名>[(<视图列表>)]AS <子查询>
3.8.2 修改视图
用SQL命令修改视图
ALTER VIEW <视图名>[(<视图列表>)]AS <子查询>
3.8.3 删除视图
用SQL命令删除视图
DROP VIEW <视图名>
3.8.4 查询视图
视图定义后,对视图的查询操作如同对基本表的查询操作一样。
作业和思考题:
课后小结:
《数据库原理及应用》课程教案
授课时间第7 周周一第12 节课次13
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
关系数据库理论
上一课次
教学内容提要
视图
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
理解关系数据库理论
教学重点及难点:函数依赖、范式、关系模式的规范化
教学基本内容与教学设计(含时间分配)方法及手段函数依赖
定义函数依赖
定义逻辑蕴涵
定义函数依赖集F的闭包
4.2.3函数依赖的推理规则
Armstrong公理
自反律:如果YXU,则X→Y在R上成立如果YXU,则X→Y在R上成
立
增广律:若X→Y在R上成立,且ZU,则XZ→YZ在R上也成立
传递律:若X→Y和Y→Z在R上成立,则X→Z在R上也成立
Armstrong公理推论
合并律(Union rule)若X→Y和X→Z在R上成立,则X→YZ在R上
也成立
伪传递律(Pseudotransitivity rule)
若X→Y和YW→Z在R上成立,则XW→Z在R上也成立
分解律(Decomposition rule)
若X→Y和ZY在R上成立,则X→Z在R上也成立
复合律(Composition)
若X→Y和W→Z在R上成立,则XW→YZ在R上也成立
4.2.4 完全函数依赖与部分函数依赖、传递函数依赖
《数据库原理及应用》课程教案
授课时间第7 周周五第56 节课次14
授课方式(请打√)理论课√讨论课□实验课习题课□其他□
课时
安排
2
授课题目(教学章、节或主题):
关系数据库理论
上一课次
教学内容提要
函数依赖
本课次教学目的、要求(分掌握、熟悉、了解三个层次):
理解关系数据库理论
教学重点及难点:函数依赖、范式、关系模式的规范化
教学基本内容与教学设计(含时间分配)方法及手段
4.2.6 属性集的闭包及其算法
X +={属性A|X→A在F +中}
定理
X→Y能用函数依赖推理规则推出的充分必要条件
是Y X +中
算法
result=X
do
{
if F中有某个函数依赖Y→Z满足Y result
then result=result ∪Z}
while (result有所改变);
4.2.7 候选键的求解理论和算法
关键码的定义如果X→U在R上成立(即X→U在F +
中),那么称X是R的一个超键。如果X→U在R上成
立,但对X的任一真子集X′都有X′→U不成立(即X′
→U不在F+中,或者X →U),那么称X是R上的一个
候选键。
定理对于给定的关系模式R及其函数依赖集F
(1)若X(X∈R)是L类属性,则X必为R的任一候选键的成员。(2)若X(X∈R)是L类属性,且X +包含了R的全部属性,则X必为R的惟一候选键。
(3)若X(X∈R)是R类属性,则X不在任何候选键中。
(4)若X(X∈R)是N类属性,则X包含在R的任一候选键中。(5)若X(X∈R)是R的N类和L类属性组成的属性集,且X +包含了R的全部属性,则X是R的惟一候选键。
多属性函数依赖集候选键的求解算法
(1)属性分类(L、R、N和LR)
(2)若X +包含了R的全部属性,转(5);否则,转(3)。
(3)在Y中取一个属性A,求(XA) +,若它包含了R的全部属性,则转(4);否则,调换一属性反复进行这一过程,直到试完所有Y中的属性。
(4)如果已找出所有候选键,则转(5);否则在Y中依次取两个、三个、…,求它们的属性集的闭包,直到其闭包包含R的全部属性。(5)停止,输出结果。
作业和思考题:
课后小结: