杨海鹏,徐志英
(1.吉林工程技术师范学院教育技术与网络中心,吉林长春130052;2.朝阳师范高等专科学校数学计算机系,辽宁朝阳122000)
随着计算机技术及信息技术的发展,数据库离人们的生活越来越近,小到小型超市,大到超级市场,随处可见数据库应用的身影。而在众多的数据库系统中,关系数据库越来越被人们重视和认可。因此,很多高校及职业类院校都把关系数据库作为学生的主修课程。关系代数是关系数据库操作的基础理论。在关系代数中共有八种运算形式,包括并、差、交、笛卡尔积、投影、选择、连接和除。在教学过程中,除法运算是学生最难理解的一种运算方式,因此如果能彻底讲清楚除法运算,对学生很好地理解该运算的确切含义是有很大帮助的。
存在关系X和Y,其元数分别为x和y(并且x>y>0),X÷Y就是(x-y)元组的集合。(X÷Y)是满足如下条件的最大关系。(X÷Y)满足如下条件的最大关系:其中每个元组t与Y中的每一个元组组成新的元<t,u>必在关系X中。其实质就是查找关系X中存在的关系Y的属性,同时进行行和列的修剪。操作意义如图1所示。
图1 关系除法的本质
X÷Y的计算步骤及每个步骤的含义如下:
①T1= π1,2,…,x-y(X)(其中,1,2,…,x - y 指的是关系X与关系Y共有属性,在进行计算的时候要过滤掉重复的元组)
②T2=(T1 x Y)-X(找出T1 x Y中在关系X中不存在的元组)
③T3=π1,2,…,x-y(T2)(对 T2 时行投影运算,去掉关系X中不存在属性)
④X÷Y=T1-T3(找出关系X中与关系Y有关系的所有元组)
即 X ÷ Y ≡ π1,2,…,x-y(X)- π1,2,…,x - y((π1,2,…,x-y(T1)x Y)- X)
下面通过一个具体的例子来了理解关系除法(X÷Y)运算的全过程,
步骤1:计算T1=π1,2(X)(注意:在这一步骤里要删除重复的行)
在上面的示例中,关系X是学生选修课程的情况,关系Y表示课程情况,而操作X÷Y表示至少选修关系Y中列出课程的学生名单。
通过上例的介绍和说明,基本能让学生比较清楚理解除法的计算过程。下面给出一种教材外解题方法:相交算法。如果学生对关系代数的基本运算掌握得比较熟练,这个方法就变得相对简单且容易理解,学生很容易上手。
算法如下:
设关系X和关系Y的目数分别为x和y,且x> y,Y不为空,求X ÷ Y。
算法分以下几个步骤:
(1)Π1,2,…,s(Y);
(2)按 Π1,2,…,s(S)的元组求其在 R 中的映像。
可以让学生们在学习的过程中,通过各种方法查阅资料来完成一个自我学习的过程,这对学生理解关系代数是大有裨益的。
[1]王 珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,2006.
[2]施伯乐.丁宝康,汪 卫.数据库系统教程(第二版)[M].北京:高等教育出版社,2005.
[3]李俊山.数据库原理及应用(SQL Server)[M].北京:清华大学出版社,2009.
[4]石玉强.数据库原理及应用[M].北京:中国水利水电出版社,2009.