资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,管理,01,数据库原理与,SQL Sever2000,第3章 关系数据库理论基础,(第一部分),3.1关系的数学定义,3.1.1 引例,男性的集合:,M=,王强,张伟,陈海,女性的集合:,W=,李丽,刘英,M,与,W,的全部配对组合如表3-1所示,称为笛卡尔积(即各集合各元素间一切可能的组合,),表(,a),没有意义,表(,b),为笛卡尔集的子集有意义,称为它为笛卡尔积的二元关系.笛卡尔积、关系均是从域出发定义的。,3.1.2定义,域:(,Domain),域是一组具有相同数据类型的值的集合,需命名。域中数据的个数叫域的基数(,Cardinal number)。,如,D1=,张三,李四,D1,的基数为3,D2=,男,女,D2,的基数为2,3.1关系的数学定义,笛卡尔积(,Cartesian Product),给定一组域,D1,D2,,Dn,(,这些域中可以有相同的)。,D1,D2,,Dn,的笛卡尔积为:,D1D2,Dn,(d1,d2,,dn,),d,i,D,j,,j1,2,n,其中每个(,d1,d2,,dn,),叫作元组(,Tuple,)。,元素组中的每一个,d,i,叫作一个分量(,Component)。,若,D,i,(i1,2,n),为有限集,其基数为,M,i,(i1,2,n),,则,D1D2,Dn,的基数为:,n,M=,M,i,i=1,笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。,3.1关系的数学定义,关系,(,Relation),D1D2,Dn,的子集叫作在域,D1、D2、,Dn,上的关系,用,R(D1,D2,Dn,),表示。这里,R,表示关系的名字,,n,是关系的目或度(,Degree)。,N=2,时,关系中含有两个域,称为二元关系,,n,度关系必有,n,个域,不同领域不同术语对应的关系可以,图3-1,中看出。,3.1关系的数学定义,不同领域不同术语对应关系,关系具有以下六条性质:,列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。,不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。(,参见实例,),列的顺序无所谓,即列的次序可以任意交换。,任意两个元组不能完全相同。,行的顺序无所谓,即行的次序可以任意交换。,分量必须取原子值,即每一个分量都必须是不可分的数据项,“表中不套表”。参见,P36,表3-3,3.2关系的性质,干部(姓名,年龄,本职,兼职)对应的二维表如下,姓名,年龄,本职,兼职,陈刚,40,工程师,教师,王芳,20,技术员,打字员,来自于以下三个域,姓名=,陈刚,王芳,年龄=40,20,职业=,工程师,技术员,教师,打字员,“本职”和“兼职”两个属性来自同一个域“职业”,3.3关系数据库描述(略),3.4,关系数据库操作语言,DML,3.4.1关系,DML,特点(,P39),操作对象与结果均为关系,非过程性强,语言一体化,有严密的数学工具,3.4.2 关系代数,关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。,关系代数用到的运算符包括四类:,集运算合符:,(,并)、(差)、,(,交)、,专门的关系运算关符:,(,选择)、,(,投影)、(连接)、,(,除)、,(,笛卡尔积),比较运算符:,、,、,、,、,逻运算辑符:(非)、,(,与)、,(,或),3.4,关系数据库操作语言,DML,传统的集合运算(,参见表3-6,),并(,Union),设关系,R,和关系,S,具有相同的目,n(,即两个关系都有,n,个属性),且相应的属性取自同一个域,则关系,R,与关系,S,的并由属于,R,或属于,S,的元组组成。其结果关系仍为,n,目关系。记作:,RS=t|tRtS,差(,Difference),设关系,R,和关系,S,具有相同的目,n,,且相应的属性取自同一个域,则关系,R,与关系,S,的差由属于,R,而不属于,S,的所有元组组成。其结果关系仍为,n,目关系。记作:,RS=t|tR,tS,3.4,关系数据库操作语言,DML,交(,Intersection Referential integrity),设关系,R,和关系,S,具有相同的目,n,,且相应的属性取自同一个域,则关系,R,与关系,S,的交由既属于,R,又属于,S,的元组组成。其结果关系仍为,n,目关系。记作:,RS=t|tRtS,笛卡尔积(,Extended,cartesian,product),两个分别为,n,目和,m,目的关系,R,和,S,的广义笛卡尔积是一个(,n+m),列的元组的集合。元组的前,n,列是关系,R,的一个元组,后,m,列是关系,S,的一个元组。若,R,有,k1,个元组,,S,有,k2,个元组,则关系,R,和关系,S,的广义笛卡尔积有,k1k2,个元组。记作:,3.4,关系数据库操作语言,DML,3.4,关系数据库操作语言,DML,例3-2 并、差、交,3.4,关系数据库操作语言,DML,例3-5笛卡尔集,2.专门的关系运算,投影,从现有关系中选取某些属性(列),可对选取的属性重新排序,并删除重复的行(元组),组成新的关系。是一个元关系,其元组变量为,t,k,=;,那么关系在其分量,t,j1,t,j2,t,jn,(n=k;j,1,j,2,j,n,为到之间互不相同的整数)上的投影(运算符“,”),记为:,3.4,关系数据库操作语言,DML,例:,3,1,(R)=t|t=R,3.4,关系数据库操作语言,DML,例3-4,选择,从现有关系中选择满足一定条件的元组组成新的关系。运算符,记为:,F,为条件表达式运算对象是常量或元组的属性,运算符:算术比较符、逻辑运算符,3.4,关系数据库操作语言,DML,例,241=a,(R)=t|t=tR241=a,3.4,关系数据库操作语言,DML,例3-3,R:,结果:,连接,连接也称为,连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:其中,A,和,B,分别为,R,和,S,上度数相等且可比的属性组。,是比较运算符。连接运算从,R,和,S,的笛卡尔积,RS,中选取(,R,关系)在,A,属性组上的值与(,S,关系)在,B,属性组上值满足比较关系,的元组。,3.4,关系数据库操作语言,DML,3.4,关系数据库操作语言,DML,例3-6,等值连接与自然连接,为“”的连接运算称为等值连接。它是从关系,R,与,S,的笛卡尔积中选取,A、B,属性值相等的那些元组。即等值连接为:,自然连接(,Natural join),是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若,R,和,S,具有相同的属性组,B,,则自然连接可记作:,3.4,关系数据库操作语言,DML,一般的连接操作是从行的角度进行运算。但自然连接还需要取消了重复列,所以是同时从行和列的角度进行运算。,3.4,关系数据库操作语言,DML,3.4,关系数据库操作语言,DML,例3-6,3.4,关系数据库操作语言,DML,例3-6,设图(,a),和(,b),分别为关系,R,和关系,S,,图,c,为,R S,的结果,图(,d),为,R S,的结果,图,e,为,R S,的结果,3.4,关系数据库操作语言,DML,例3-8,例1 查询信息系(,IS,系)全体学生,例2 查询年龄小于20岁的元组,例3 查询学生关系,Student,在学生姓名和所在系两个属性上的投影,例4 查询学生关系,Student,中都有哪些系,即查询学生关系,Student,在所在系属性上的投影,例5 查询至少选修了1号课程和3号课程的学生号码,例6 查询选修了2号课程的学生的学号,例7 查询至少选修了一门其直接先行课为5号课程的学生姓名,例8 查询选修了全部课程的学生号码和姓名,3.5关系数据库标准语言,参见第9、10章节内容,
展开阅读全文