1基本概念函数依赖候选关键字与主属性关系规范化本章要点退出2关系数据库:按关系数据模型组织的数据库。关系模式:关系名及其属性序列,也称为关系的型。域:是一组具有相同数据类型的值的集合。笛卡尔积:各域各取一值的完全组合称为这些域的笛卡尔积。基本概念域D1和域D2的笛卡尔积是一个表,其属性为原D1域和D2域所有属性的集合,其行数为D1域值的个数和D2域值个数的乘积,每一行由D1和D2各取一值组成,所有各行均不重复。3如果给定一组域D1,D2,…Dn则D1╳D2╳…….╳Dn={(d1,d2,…dn)︱di∈Di,I=1,2,…n}其中每一个元素(d1,d2,…dn)叫做一个N元元组,或简称为元组。元素中的每一个值叫作元组的一个分量,也是它所对应实体或联系的那个属性的一个值。关系数据库基本概念4基数:域中数值(元素)的个数。笛卡尔积的基数:构成该积所有域的基数累乘积,称为这些域的笛卡尔积。笛卡尔积的目数:元组中每个分量的列数关系数据库基本概念5例:设有D1、D2二个域,求D1×D2。已知:D1={(X1,Y1),(X2,Y2),(X3,Y3)}D2={(M1,W1,Z1),(M2,W2,Z2)}则:D1×D2={(X1,Y1,M1,W1,Z1),(X1,Y1,M2,W2,Z2),(X2,Y2,M1,W1,Z1),(X2,Y2,M2,W2,Z2),(X3,Y3,M1,W1,Z1),(X3,Y3,M2,W2,Z2)}D1×D2的基数=3×2=6,目数=2+3=5关系数据库基本概念6又例如:D1={(X1,Y1),(X2,Y2),(X3,Y3)}D3={P1,P2,P3}则:D1×D3={(X1,Y1,P1),(X1,Y1,P2),(X1,Y1,P3),(X2,Y2,P1),(X2,Y2,P2),(X2,Y2,P3),(X3,Y3,P1),(X3,Y3,P2),(X3,Y3,P3)}D1×D3的基数=3×3=9,目数=2+1=3关系数据库基本概念7多个属性构成的关系是这些属性所属域的笛卡尔积的子集。一般说来只有其真子集才有意义。图3.1的C关系中只有一半元组是有意义的。关系数据库基本概念8关系数据库基本概念图3.1关系的笛卡尔积9思考题:设有两个域,名为D1和D2。D1={A,B,C,D,E}是5个大写英文字母集合;D2={65,66,67,68,69}是5个大写英文字母对应的ASCII码集合;请列出笛卡儿积D1╳D2对应的二维表。关系数据库基本概念____课堂练习10所有关系模式的集合(包括关系名,属性名,关键字,完整性约束和安全性要求)称为关系数据库模式,它表示一个关系数据库的逻辑结构。关系数据库模式中所有关系模式的具体关系的集合称关系数据库。关系数据库模式是数据的型的表示,而关系数据库则是数据的值的表示。关系数据库基本概念11R数据库中的关系应具备如下性质:每一列中的分量来自于同一个域,是同一类型的数据。不同的列可来自于同一个域,每一列称为属性,要给予不同的属性名。列的顺序的改变不改变关系。在一个关系中任意两个元组不能全同。元组次序可以任意交换而不改变关系。每一分量必须是不可再分的数据项,即具有原子性。关系数据库基本概念12现实世界信息世界关系表计算机世界事物类实体集合关系二维表数据库文件事物实体元组行记录性质属性域(属性)列数据项不同领域不同术语对应关系关系数据库基本概念13一、函数依赖概念关系理论中函数依赖是指关系中属性间的对应关系。如关系中对于属性(组)X的每一个值,属性(组)Y只有唯一的值与之对应,则称Y函数依赖于X,或称X函数决定Y。记作X→Y,否则,如果X不能函数决定Y,记作X→Y。若X→Y,Y→X,则记作XY。函数依赖14函数依赖例如第1章中表1.3所示“系”关系中:系代码→系名,系代码→系地址,系代码→系电话,系代码→系专业设置如果系名值是惟一的,即各系名均不相同,那么还有函数依赖集:系名→系代码,系名→系地址,系名→系电话,系名→系专业设置15ABABABCDABCDa1b1c1D1a1b1c1d1a1b1c2D2a1b2c2d2a2b2c3d3a2b2c3d3a3b1c4d4a3b2c4d4思考16决定因素可能为两个以上属性构成的属性组。在一个关系中,如果一个属性(组)值不唯一,则这个属性(组)与任何属性(组)的函数依赖关系中,它都不是决定因素。函数依赖171.函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。(函数依赖关系的存在与时间无关)2.函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖,而不能按照其形式化定义来证明一个函数依赖是否成立。例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立说明:18说明3.数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在,则拒绝装入该元组。194.函数依赖与属性间的联系类型有关①在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖X→Y,Y→X,即X←→Y。例如,当员工没有重名时,Eno←→Ename。②如果属性X与Y有m:1的联系时,则只存在函数依赖X→Y。例如,Eno与Eage,Dname之间均为m:1联系,所以有Eno→Eage,Eno→Dname。③如果属性X与Y有m:n的联系时,则X与Y之间不存在任何函数依赖关系。例如,一个员工可以参与多个工程,一个工程可以为多个员工参与,所以Eno与Pno之间不存在函数依赖关系。5.函数依赖可以保证关系分解的无损连接性20二、部分函数依赖若X,Y为关系R中的属性(组),如X→Y且X中存在真子集X’(X’≠X∧X’∈X),满足X’→Y,则称Y部分函数依赖于X,记作函数依赖21图3.2部分函数依赖示意22三、完全函数依赖如X,Y是关系R中属性(组),X→Y且对于X的任何真子集X’(X’≠X∧X’∈X),都有X’Y,则称Y完全函数依赖于X,记作X→Y函数依赖23四、传递函数依赖一般说来,如X、Y为关系R中属性(组)(Y∈X)有X→Y,YX但Y→Z,则称Z传递函数依赖于X,记作XZ。函数依赖24以上关系中,课程名→职工号、职工号课程名,但职工号→老师名、职工号→性别,则有:课程名性别;课程名老师名。函数依赖25一、候选关键字在关系R中如记录完全函数依赖于属性(组)X,则称X为关系R中的一个候选关键字。它具有如下性质:在一个关系中,候选关键字可以有多个。任何两个候选关键字值都是不相同的,因为若有两条记录的候选关键字值相同,它和记录的关系就不是决定因素。候选关键字与主属性26关键字可能由一个属性构成,也可能由多个属性构成。关键字不可能再与其他的属性构成新的候选关键字。候选关键字与主属性27在任何关系中至少有一个关键字。根据关系的基本要求,在一个关系中任何二个元组不全同。因而在一个N元关系中,如果单个属性都不是关键字,任何两个属性的属性组也不是关键字,任何K(KN)个属性的属性组都不是关键字,则该关系全部属性构成的属性组是其关键字。候选关键字与主属性28二、主属性在一个关系中,如一个属性是构成某一个候选关键字的属性集中的一个属性,则称它为主属性。如一个属性不是构成该关系任何一个候选关键字的属性集的成员,就称它为非主属性。候选关键字与主属性29一、问题的提出数据冗余:是指同一数据在多个不同的地方存放。数据冗余不仅导致数据量的增加,使系统处理速度变慢,效率降低,而且易发生错误,影响全系统的性能。关系规范化30操作异常包括插入操作异常和删除操作异常两类。插入操作异常指欲录入的数据因缺少关键字或关键字数据不完整而不能被录入的现象。删除操作异常指不应当被删除的数据因部分主属性删除而被删除的现象。关系规范化31操作异常与数据冗余通常是相伴而生的,因此可通过检查数据冗余来发现是否存在操作异常的可能。关系规范化32为了解决以上问题,提出相关的解决方法。关系规范化:将一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。关系规范化33二、范式范式来自英文Normalform,简称NF,是符合某个级别的关系模式的集合。关系数据库中的关系必须满足最低的关系要求满足不同程度要求的为不同范式。目前主要有六种范式:1NF、2NF、3NF、BCNF、4NF、5NF。满足最低要求的称第一范式,简称为1NF。关系规范化341、第一范式(1NF)任给关系R,如果R中每个列与行的交点处的取值都是不可再分的基本元素,则R达到第一范式,简称1NF,记为R∈1NF。根据关系的基本性质可见,符合关系基本性质的关系均达到第一范式。关系规范化35例如:将人事卡片关系分解为三个关系,从而达到第一范式。关系规范化36关系规范化37R2、第二范式(2NF)如果一个关系达到第一范式,且不存在任何非主属性对候选关键字的部分函数依赖,则称此关系达到第二范式,简称2NF,记为R∈2NF。或者表示为如果一个关系达到第一范式,且不存在非主属性对构成候选关键字的部分主属性的完全函数依赖,则该关系达到第二范式。关系规范化38关系从1NF优化到2NF的方法是:将有关非主属性与其完全函数依赖的那些部分主属性分解建立新的关系。关系规范化39图3.3不到第二范式的关系示意在如图3.3示意图中,关系即使达到第一范式,也未达到第二范式。分解的方法是:将p3、p4、p6等函数依赖于k3的非主属性抽出来,加上k3组合成新的关系,k3是其关键字;剩余非主属性、主属性包括k3维持原有各关系不变。40关系规范化413、第三范式(3NF)如果一个关系达到第二范式且不存在非主属性对候选关键字的传递函数依赖,则称为达到第三范式,简称3NF。3NF还可表述为:如果一个关系达到第二范式且不存在非主属性对非主属性的完全函数依赖,则称之达到第三范式。关系规范化42关系从2NF优化到3NF的方法是:将对关键字存在传递函数依赖的那些属性与其完全函数依赖的非主属性分解出来建立新的关系,而它们所依赖的那个非主属性作为关联属性要存在于原关系中。关系规范化43关系规范化444.BCNF如果一个关系中每个决定因素都是关键字,则该关系达到BCNF。图3.5不到BCNF的关系示意45分解的方法是:•将k4等函数依赖于k3的主属性抽出来,•加上k3组合成新的关系,k3是其关键字;•剩余主属性包括k3维持原有各关系不变。46表3.9不到BCNF的关系实例客户名密码王平1李宾2张玲3银行名客户名中1王平商1王平中1李宾商1张玲可分解为:47四、关系分解的正确性关系分解的方案是多样的,但要注意保证分解的正确性,即:要保证分解后所形成的关系与原关系等价。分解的等价性是指:分解的无损连接性保持函数依赖性关系规范化48无损连接性是指通过对分解后形成关系的某种连接运算能使之还原到分解前的关系。保持函数依赖性是指分解过程中不能丢失或破坏原有关系的函数依赖关系。关系规范化49小结函数依赖是指关系中一个属性集和另一个属性集间的对应关系。函数依赖有部分函数依赖、完全函数依赖和传递函数依赖。第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)