数据库系统原理教案2Word格式.doc
《数据库系统原理教案2Word格式.doc》由会员分享,可在线阅读,更多相关《数据库系统原理教案2Word格式.doc(7页珍藏版)》请在冰豆网上搜索。
第一次:
介绍数据结构(笛卡儿积、关系、关系模式、关系数据库)。
关系完整性(实体、参照、用户自定义)(实际教学过程中将第三章的表定义及对数据库的插入操作部分提前到这里,相当于第三章有2学时多调整到了这里)。
第二次:
介绍举例关系操作的语义(关系代数,重点是投影、选择、连接、除法操作),并介绍相应的SQL语句表达式(实际教学过程相当于将第三章的相关内容调整到了此处介绍)。
作业与要求
P64第2、3、4、5、7、8六题。
本章的习题要求熟练掌握。
备注
2.1关系数据库概述
1、关系数据库系统:
支持关系模型的数据库系统。
2、关系模型的组成:
关系数据结构、关系操作集合、完整性约束条件三部分。
3、关系数据结构
表,
特点:
简单的数据结构表达丰富的语义,描述现实世界的实体以及实体间的联系(例)
4、关系操作
*采用集合操作:
操作对象与操作结果为集合,
*常用的操作
**查询:
选择、投影、连接、除、并、交、差等;
更新:
增、删、改
**查询的表达能力是关系操作中的最主要部分
*关系模型中关系操作能力的早期抽象表示(即抽象查询语言,领会语言的含义):
1)关系代数语言:
用代数方式表示,即用关系的运算来表达查询要求的方式。
2)关系演算语言:
用逻辑方式表示,即用谓词来表达查询要求的方式。
元组关系演算:
谓词变元的基本对象是元组变量。
域关系演算:
谓词变元的基本对象为域变量。
3)关系代数、关系演算(元组关系演算、域关系演算)三种语言在表达能力上是等价的。
*早期抽象查询语言(关系代数、关系演算语言)的作用
作为评估实际系统中查询语言能力的标准。
与具体DBMS实现的实际语言不完全一样(提供许多附加功能,如集函数、关系赋值、算术运算等)
*关系数据库的标准语言(SQL—structuredquerylanguage结构化查询语言)
是集数据查询、DDL数据定义、DML数据操纵、DCL数据控制于一体的语言。
具有关系代数与关系演算双重特点的语言。
5、完整性约束
*允许定义三类完整性:
实体完整性、参照完整性、用户自定义完整性。
*关系系统自动支持的完整性:
实体完整性、参照完整性。
2.2关系数据结构(关系、关系模式、关系数据库)
1、关系
例1:
有表结构(关系模式):
学生(学号、性别)
如果,学号为子界类型D1=[1..100],性别为枚举类型D2=(男,女),
学生表的最大取值(最大表):
100*2=200个元组
例2:
有表结构:
学生(学号、姓名、性别、系别、年龄、籍贯)
每个列的类型:
integer,char(8),bolean,char(8),integer,char(10)
最大表元组数:
实际应用中的具体表:
最大表的有意义的子集
1)域:
是一组具有相同数据类型值的集合。
表中的每列都与一域(表的数据类型)相关连
2)笛卡儿积(本质上为最大元组表)
*定义:
给定一组域D1,D2,….,Dn,这些域可以完全不同,也可以部分或全部相同。
D1,D2,….,Dn的笛卡儿积为:
D1╳D2╳….╳Dn={(d1,d2,…,dn)∣di∈Di,i=1,2,…,n}
其中每一个元素(d1,d2,…,dn)叫作一个n元组,或简称为元组。
元素中的每一个值di叫作一个分量。
*若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则
D1╳D2╳….╳Dn的基数为m1*m2*……*mn
3)关系
D1╳D2╳….╳Dn的子集叫作在域D1,D2,….,Dn上的关系,用
R(D1,D2,….,Dn)表示。
R表示关系的名字,n是关系的目或度
n=1单元关系
n=2二元关系
关系为笛卡儿积的子集,表行——元组,表列——属性(n目关系有n个属性)。
*侯选码:
若关系中某一属性组的值能唯一标识一个元组,则称该属性组为侯选码
*主码:
若一个关系中有多个侯选码,则选其中一个作为主码。
*主属性:
主码的诸属性
*非码属性:
不包含在任何侯选码中的属性
*全码:
侯选码为关系的所有属性组
*关系的三种类型:
基本表(实际存在表)、查询表(查询结果)、视图表(虚表由基本表与其他试图表导出)
*基本关系具有6条性质:
(见书P40)
2、关系模式
关系的描述称为关系模式。
它可形式化地表示为R(U,D,DOM,F)。
R为关系名
U组成该关系的属性名集合
D属性组所来自的域
DOM属性向域的映象集合
F属性间数据的依赖关系集合(第四章专门讨论)
*关系模式通常简记为R(U)或R(A1,A2,…,An),域名及属性向域的映象常常直接说明为属性的类型、长度
*型与值:
模式是型,关系(表)是模式的值
3、关系数据库
含义:
在一个给定的现实世界的领域中,相应于所有实体及实体之间的联系的关系的集合构成一个关系数据库。
关系数据库的型和值:
型即关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。
关系模式的值也称为关系数据库,是这些关系模式在某一时刻对应的关系的集合。
关系数据库模式与关系数据库通常称为关系数据库。
2.3关系完整性
1、实体完整性
要点:
主属性不能取空值。
现实世界的语义要求:
一个基本关系通常对应现实世界的一个实体集,现实世界的实体是可以区分的,即它们具有某种唯一标识,在关系模型中以主码作为唯一标识。
2、参照完整性
*关系与关系之间存在着引用关系:
因为现实世界的实体之间存在某种联系,而关系模型中实体及实体间的联系都是用关系来描述的。
*举例:
*
要点:
*外码——基本关系R的非码属性(组)F与基本关系S的主码Ks相对应,则属性(组)F为R的外码。
*参照关系——R
*被参照关系——S
*参照完整性规则——基本关系R的外码F与基本关系S的主码Ks相对应,则R上的每个元组在F上的取值要求:
或者取空值;
或者等于S中的某个元组的主码值。
3、用户自定义完整性
*反映某一具体应用所涉及的数据必须满足的语义要求。
*通常有三类:
非空约束(notnull)、唯一约束(unique)、检查约束(check)
*2.4如何实现完整性约束规则(作问题处理)
1、在表中定义完整性规则
2、在对表中的数据进行更新操作时,数据库管理系统自动的检查完整性规则,将表中的数据约束在用户期望的范围中。
*PB提供了一定的前端约束检查功能
**在前端定义约束规则(相当check功能),在前端进行合法性检查。
即在输入数据时一定程度上过滤了不合法的数据。
相同的检查在数据库表中可以不需要再定义。
**在前端一已经实现的完整性约束,在数据库表中是否可以不需要再定义?
回答否,因为,如不通过应用程序直接通过工具操作数据库表时,就没有了相应的完整性检查。
2.4关系代数
1、何为关系代数:
是抽象的查询语言,它用关系运算来表达查询。
主要研究关系(表)运算,运算对象是关系,运算结果也是关系。
2、关系运算分两类:
1)传统的集合运算:
并、交、差、广义笛卡尔积。
运算只涉及行,将关系看成是行(元组)的集合,。
2)专门的关系运算:
选择、投影、连接、除。
运算既涉及行也涉及列。
3、传统的集合运算(着重掌握语义)
设关系R、S
R
A
B
a1
b1
b2
S
a2
1)并(U)
R∪S={t|t∈R∨t∈S}并由属于R或属于S的元组组成。
两集合元组并在一起,去掉重复元组。
关系R、S要求具有相同的目n(都具有n个属性),相应的属性取自同一个域(同类型数据)
2)差(—)
R—S={t|t∈R∧﹁t∈S}差由属于R并不属于S的元组组成。
3)交(∩)
R∩S={t|t∈R∧t∈S}由属于R且属于S的元组组成。
4)广义笛卡尔积
R╳S={trts|tr∈R∧ts∈S}
*关系R、S分别为m、n目k1、k2个元组,结果为m+n目,元组个数为k1*k2个。
例:
学号
姓名
1
课程
数据库
操作系统
R╳S
课程
(广义笛卡儿积与笛卡儿积的比较:
)
4、专门关系运算(运算结果着重掌握语义)
1)选择
σF(R)={t|t∈R∧F(t)=“T”}选择关系R中满足逻辑表达式F为真的元组。
P48例1、查询信息系的全体学生例2、查询年龄小于20的元组
例1:
σsdept='
is'
(student)例2:
σsage<
20(student)
逻辑表达式F的基本形式为:
X1θY1[φX2θY2]…
θ比较运算符,φ逻辑运算符﹁∧∨,Xi、Yi属性名或常量名或简单函数。
2)投影
ПA(R)={t[A]|t∈R}A为R中的属性列
例3:
学生关系在姓名和系两个属性上的投影。
例4:
在学生关系中有那些系
表见P48
例3:
Пsname,sdept(student)例4:
Пsdept(student)
注:
投影后的重复行应该消除
3)连接∞
R∞S={trts|tr∈R∧ts∈S∧tr[A]θts[B]}
AθB
从广义笛卡尔积R╳S中选择满足比较运算表达式AθB的元组,A、B分别为R、S上度数相等且可比的属性组。
例5(P50):
R∞S
c<
d
等值连接:
上述连接的特例,θ取=
自然连接:
书写格式在连接符下不加比较表达式,比较分量必须是相同的属性组,连接结果去掉重复列。
4)除(÷
例6:
设关系R(A,B,C),S(B,C,D),求R÷
S,
R÷
S为新关系P(A),P是R中满足下列条件的元组在A属性列上的投影:
元组在A上分量值a的象集BCa包含S在BC上投影的集合。
见书P51
*象集:
关系R(X,Z),X和Z为属性组。
我们定义,当t[X]=x时,x在R中的象集为:
Zx={t[Z]|t∈R,t[X]=x}
表示R中属性组X上值为x的诸元素在Z上分量的集合。
*R÷
S:
R(X,Y),S(Y,Z),其中X,Y,Z为属性组
R(X,Y)X=A,Y=BC