1教学目的:熟练掌握关系代数的运算掌握函数依赖和关系规范化的相关概念第2章关系数据库的数学基础数据库系统原理2一、关系的数学定义域是具有相同数据类型的值的集合域中数据的个数称为域的基数笛卡儿积给定一组域D1,D2,…,Dn,这些域中可以有相同的域,则D1,D2,…,Dn的笛卡儿积定义为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}每一个元素(d1,d2,…,dn)称做一个n元组,简称为元组元组中每个di称做一个分量D1={张三,李四,王五}D2={男,女}D3={18,19,20,21,22}数据库系统原理3一、关系的数学定义笛卡儿积笛卡儿积可以分别用集合或二维表表示MAN×WOMAN×CHILD={(王兵,丁娟,王小和),(王兵,丁娟,武小明),(王兵,陈和妹,王小和),(王兵,陈和妹,武小明),(武强,丁娟,王小和),(武强,丁娟,武小明),(武强,陈和妹,王小和),(武强,陈和妹,武小明),(彭冲,丁娟,王小和),(彭冲,丁娟,武小明),(彭冲,陈和妹,王小和),(彭冲,陈和妹,武小明)}MAN={王兵,武强,彭冲}WOMAN={丁娟,陈和妹}CHILD={王小和,武小明}MANWOMANCHILD王兵丁娟王小和王兵丁娟武小明王兵陈和妹王小和王兵陈和妹武小明武强丁娟王小和武强丁娟武小明武强陈和妹王小和武强陈和妹武小明彭冲丁娟王小和彭冲丁娟武小明彭冲陈和妹王小和彭冲陈和妹武小明数据库系统原理4一、关系的数学定义关系D1×D2×…×Dn的子集,称为D1,D2,…,Dn上的关系,用R(D1,D2,…,Dn)表示关系是一个二维表,行对应元组,列对应域,对每列起唯一的名字,称为属性有n个属性的关系称做n度关系一般来说,只选取笛卡儿积中具有一定意义的子集构成关系MANWOMANCHILD王兵陈和妹王小和武强丁娟武小明数据库系统原理5二、关系代数传统集合运算:并、交、差、笛卡儿积设R和S是相容的两个关系,即两个关系具有相同的度,且相应的属性取自同一个域并:R与S的并,记做R∪S,是一个关系,由属于R或属于S或同时属于R和S的元组组成(去掉重复的元组)交:R与S的交,记做R∩S,是一个关系,由同时属于R和S的元组组成差:R与S的差,记做R-S,是一个关系,由同时属于R而不属于S的元组组成笛卡儿积:设关系R有m个属性,k1条元组,关系S有n个属性,k2条元组,则R与S的笛卡儿积,记做R×S,是一个具有(m+n)个属性、(k1×k2)条元组的关系,每一条元组的前m列是关系R的一条元组,后n列是关系S的一条元组。数据库系统原理6二、关系代数R:具有书法专长的学生学号姓名性别系别0804207赵静女计算机0704126张久志男计算机0805203李丽女自动化学号姓名性别系别0804207赵静女计算机0805228杨立男自动化S:具有舞蹈专长的学生学号姓名性别系别0804207赵静女计算机R∩SR∪S学号姓名性别系别0804207赵静女计算机0704126张久志男计算机0805203李丽女自动化0805228杨立男自动化R-S学号姓名性别系别0704126张久志男计算机0805203李丽女自动化数据库系统原理7二、关系代数R学号姓名专业0804207赵静计算机0704126张久志计算机0804205刘红梅自动化学号高数英语C语言08042079085950804205778890SR×SR.学号姓名专业0804207赵静计算机0704126张久志计算机0804205刘红梅自动化S.学号高数英语C语言080420790859508042057788900804207赵静计算机0704126张久志计算机080420790859508042057788900804205刘红梅自动化08042079085950804205778890数据库系统原理8二、关系代数专门关系运算:选择、投影、连接选择:单目运算,是对一个关系按给定的条件,从关系中挑选满足条件的元组构成一个新的关系,记做其中F表示条件投影:单目运算,是对一个关系挑选指定的属性,由这些属性组成一个新的关系,记做其中A是属性名列表,属性名之间用逗号分隔},|{)(FtRttRF满足)(RA数据库系统原理9二、关系代数R学号姓名性别系别0804207赵静女计算机0704126张久志男计算机0805203李丽女自动化学号姓名性别系别0804207赵静女计算机U:计算机系的女同学)(RU女性别计算机系别)(,RV姓名学号V:向学号和姓名两属性投影学号姓名0804207赵静0704126张久志0805203李丽数据库系统原理10二、关系代数专门关系运算:选择、投影、连接连接:双目运算,是从两个关系的笛卡儿积中选取满足一定条件的元组,记做其中A、B分别为R、S上度数相同且可比的属性组,θ是比较运算符等值连接:当θ为“=”的连接运算,它是从关系R与S的笛卡儿积选取A、B属性值相等的那些元组,记作自然连接:是一种特殊的等值连接,即自然连接是除去重复属性列的等值连接,记作SRBASRSRBA数据库系统原理11二、关系代数R:求职者关系求职者号姓名要求工资035吴刚900041李建设700108张东成1200S:供职者关系供职者号公司名提供工资07新宇实业60031康健药业80028丽达时装1000T求职者号姓名要求工资035吴刚900041李建设700041李建设700供职者号公司名提供工资28丽达时装100031康健药业80028丽达时装1000)(SRSRT要求工资提供工资要求工资提供工资数据库系统原理12二、关系代数R:读者借书证号姓名书号书名1035张文林11980数据库1041李冬冬21700数据结构1108杨柳35700操作系统1105韩曲生79800C语言S:图书书号书名作者出版社11980数据库萨师煊高等教育42041数据库孟涛南京大学42097软件工程郑人杰清华大学35700操作系统黄干平国防科技借书证号姓名R.书号R.书名1035张文林11980数据库1108杨柳35700操作系统S.书号S.书名作者出版社11980数据库萨师煊高等教育35700操作系统黄干平国防科技借书证号姓名书号书名1035张文林11980数据库1108杨柳35700操作系统作者出版社萨师煊高等教育黄干平国防科技SRSRSR书号书号..数据库系统原理13三、关系的规范化:问题的提出考察一个关系是否合理?例:图书(书号,书名,ISBN,单价,出版社号,出版社名,订单号,数量)这个关系模式存在以下问题:数据冗余大:存在大量重复数据插入异常:若要插入一本新书《数据结构》,但由于没人买(无订单),不能插入更新异常:若要修改《C程序设计》一书的出版社或单价时,需要修改多条记录删除异常:若删除《C程序设计》一书,则“信息出版社”的信息也被删除数据库系统原理14三、关系的规范化:问题的提出结论:在任意一个关系模式中,属性之间都存在某些数据依赖关系一般来说,属性之间数据依赖关系复杂的关系模式不是“好”的关系模式关系规范化就是将不合理的关系模式改造成合理的关系模式的过程数据库系统原理15四、函数依赖函数依赖用来表示关系中各个属性之间的相互制约而又相互依赖的关系,关系规范化是围绕函数依赖进行的函数依赖:设U={A1,A2,…,An}是属性集合,R(U)是U上的关系模式,X、Y是U的子集,若对于R(U)的任何一个可能关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称Y函数依赖于X,或X函数决定Y,称X为决定因素,记作:X→Y若X→Y,但Y不是X的子集,则称X→Y是非平凡的函数依赖若X→Y,但Y是X的子集,则称X→Y是平凡的函数依赖若X→Y,且Y→X,则称X与Y相互依赖,记作X←→Y数据库系统原理16四、函数依赖例1:考察以下关系模式的函数依赖教学(学号,姓名,专业,系名,系主任,课程号,课程名称,成绩)可得出如下函数依赖:学号→姓名学号→专业学号→系名系名→系主任课程号→课程名称(学号,课程名)→成绩例2:考察以下关系模式的函数依赖图书(书号,书名,ISBN,单价,出版社号,出版社名,订单号,数量)可得出如下函数依赖:书号→书名书号→ISBN书号→单价出版社号→出版社名(书号,订单号)→数量数据库系统原理17四、函数依赖完全函数依赖:在R(U)中,若X→Y,且对于X的任意真子集,都有,则称Y完全函数依赖于X,记作否则称Y部分函数依赖于X,记作传递函数依赖:在R(U)中,若X→Y(且Y不是X的子集),,则,称Z传递函数依赖X,记作xyxyxfyxpyxzy,zxzxt在教学关系模式:(学号,课程号)→成绩,(学号,专业)→姓名,(学号,课程号,课程名称)→成绩,∵学号→系名,系名→系主任∴学号→系主任。FPT教学(学号,姓名,专业,系名,系主任,课程号,课程名称,成绩)P数据库系统原理18五、关键字KEY候选关键字:K是关系R中的一个属性或属性组,如果K能够函数决定关系R中所有其他的属性,则称K是关系R的一个候选关键字主关键字:PrimaryKey,在关系R的多个候选关键字中,指定其中之一用做主关键字,简称主键,用PK表示外部关键字:ForeignKey,如果属性或属性组X不是关系R的关键字,但X是其他关系的关键字,则称X为关系R的外部关键字,简称外键,用FK表示主属性:包含在候选关键字中的任何一个属性非主属性:没有包含在候选关键字中的属性数据库系统原理19六、关系规范化范式:NormalForm(NF)范式:是符合某一级别要求的关系模式的集合,关系数据库用范式作为衡量关系模式是否合理的主要标准目前已提出6种范式:1NF、2NF、3NF、BCNF、4NF、5NF分别代表不同级别的要求或条件。若R达到某种范式要求的条件,则称R为第几范式,记作:各范式之间的关系:规范化:对一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这个过程就叫规范化NFNFNFBCNFNFNF12345xNFRNF5NF4BCNFNF3NF2NF1数据库系统原理20六、关系规范化1NF:若关系R的所有属性是不可再分的数据项,则R称为第一范式,即第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库但是满足第一范式的关系模式并不一定是一个好的关系模式。NFR1例1:教学(学号,姓名,专业,系名,系主任,课程号,课程名称,成绩)、数据库系统原理21六、关系规范化2NF:若,且它的每一非主属性都完全依赖于关键字(主属性),则NFR1NFR2教学(学号,姓名,专业,系名,系主任,课程号,课程名称,成绩)学生(学号,姓名,专业,系名,系主任)课程(课程号,课程名称)选修(学号,课程号,成绩)NFR2数据库系统原理22六、关系规范化3NF:若,且它的每一个非主属性都不传递依赖于关键字(主属性),则NFR2NFR3学生(学号,姓名,专业,系名,系主任)课程(课程号,课程名称)选修(学号,课程号,成绩)学生(学号,姓名,专业,系名)系(系名,系主任)课程(课程号,课程名称)选修(学号,课程号,成绩)NFR3NFR2数据库系统原理23六、关系规范化例2:将“图书”关系转化为3NF订单(书号,订单号,数量)NFR2图书(书号,书名,ISBN,单价,出版社号,出版社名,订单号,数量)NFR1图书(书号,书名,ISBN,单价,出版社号,出版社名)数据库系统原理24六、关系规范化例2:将“图书”关系转化为3NF订单(书号,订单号,数量)NFR3图书(书号,书名,ISBN,单价,出版社号)出版社(出版社号,出版社名)订单(书号,订单号,数量)NFR2图书(书号,书名,ISBN,单价,出版社号,出版社名)数据库系统原理25六、关系规范化规范化小结:规范