
第四章关系数据库设计理论4.1数据依赖4.2范式4.3关系模式的规范化
第四章关系数据库设计理论 4.1 数据依赖 4.2 范式 4.3 关系模式的规范化

4.1数据依赖4.1.1关系模式中的数据依赖一完整的关系模式的描述:R(U,D,DOM,F)·R关系名·U属性组●D是U的取值范围,是域的集合?DOM是属性向域映象的集合●F是属性间数据的依赖关系集合一关系模式是静态的、稳定的:关系是动态的,不同时刻关系模式中的关系可能不同,但关系都必须满足关系模式中数据依赖关系集合F指定的完整性约束一影响数据库模式设计的主要是U和F,所以一般关系模式简化为:R(U,F)
4.1 数据依赖 4.1.1 关系模式中的数据依赖 – 完整的关系模式的描述:R(U,D,DOM,F) ⚫R关系名 ⚫U属性组 ⚫D是U的取值范围,是域的集合 ⚫DOM是属性向域映象的集合 ⚫F是属性间数据的依赖关系集合 – 关系模式是静态的、稳定的;关系是动态的,不同时 刻关系模式中的关系可能不同,但关系都必须满足关 系模式中数据依赖关系集合F指定的完整性约束 – 影响数据库模式设计的主要是U和F,所以一般关系 模式简化为:R(U, F)

4.1.2数据依赖对关系模式的影响数据依赖有:一函数依赖、多值依赖和连接依赖口一个关系模式示例U= {Sno,Sdept,Mname,Cname,Grade }F= {Sno->Sdept, Sdept->Mname, (Sno,Cname)->Grade)该关系模式存在如下问题:一数据余太大:系主任名字重复出现,和所有学生的所有课程成绩次数一样-更新异常:更换系主任必须修改每一个学生信息一插入异常:刚成立的系如果还没有招生就无法存储系主任信息一删除异常:某个系的学生全部毕业删除时会丢失系主任信息
4.1.2 数据依赖对关系模式的影响 ⚫ 数据依赖有: – 函数依赖、多值依赖和连接依赖 ❑一个关系模式示例 U={Sno,Sdept,Mname,Cname,Grade} F={Sno->Sdept, Sdept->Mname, (Sno,Cname)->Grade} ⚫ 该关系模式存在如下问题 : –数据冗余太大:系主任名字重复出现,和所有学生 的所有课程成绩次数一样 –更新异常:更换系主任必须修改每一个学生信息 –插入异常:刚成立的系如果还没有招生就无法存储 系主任信息 –删除异常:某个系的学生全部毕业删除时会丢失系 主任信息

4.1.3相关概念>函数依赖R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集,对于R(U)的任意一个可能的关系r如果r中不存在两个元组wW,V,使得w[X]=v[X]而W[Y]<>v[Y],称X函数决定Y,或Y函数依赖于X,记X->Y>平凡的和非平凡的函数依赖关系模式R(U),X和Y是U的子集,如果X->Y,且YX,则称X->Y是非平凡的函数依赖,否则称平凡的函数依赖,我们讨论的都是非平凡的函数依赖
4.1.3 相关概念 ➢ 函数依赖 R(U)是一个关系模式,U是R的属性集合,X和Y 是U的子集,对于R(U)的任意一个可能的关系r, 如果r中不存在两个元组w,v,使得w[X]=v[X]而 w[Y]<>v[Y],称X函数决定Y,或Y函数依赖于X, 记X->Y ➢ 平凡的和非平凡的函数依赖 关系模式R(U), X和Y是U的子集,如果X->Y, 且YX,则称X->Y是非平凡的函数依赖,否则称 平凡的函数依赖,我们讨论的都是非平凡的函数依 赖

完全函数依赖和部分函数依赖关系模式R(U),如果X一Y,且对于任意的X的真子集X'都有X+Y,则称Y完全函数依赖于X,记XfY。反之则Y不完全依赖于X,称Y部分依赖于X,记X卫Y传递函数依赖关系模式R(U),如果X一>Y,Y一>Z,且Y十X,则称Z传递函数依赖于X,记XZ码的重新定义关系模式R(U.F),K为属性组合,若KfU,则K是一个候选码
⚫ 完全函数依赖和部分函数依赖 关系模式R(U),如果X Y,且对于任意的X的真子 集X’都有X’ \ Y,则称Y完全函数依赖于X,记X f Y。 反之则Y不完全依赖于X,称Y部分依赖于X,记X P Y ⚫ 传递函数依赖 关系模式R(U),如果X->Y,Y->Z,且Y \ X,则 称Z传递函数依赖于X,记X t Z ⚫ 码的重新定义 关系模式R(U,F),K为属性组合,若K f U,则K是一 个候选码

4.2 范式范式定义数据依赖满足某种条件级别的关系模式的集合目前共6种范式:1NFD2NFD3NFBCNFD4NFD5NF
4.2 范式 ⚫ 范式定义 数据依赖满足某种条件级别的关系模式的集合 ⚫ 目前共6种范式: 1NF2NF3NFBCNF4NF5NF

4.2.1第一范式(1NF)1NF定义-如果一个关系模式R的所有属性都是原子的,即不可再分的基本数据项,则Re1NF例: SCL(S#, SN, SA, CLS,MON, C#,CN, CRD,GR)属于1NF它有以下问题:数据余大,如MON,CRD等插入异常,当无课程时学生信息无法插入删除异常,当某个学生的选课信息全部删除时无法十保留学生基本信息
4.2.1 第一范式(1NF) ⚫ 1NF定义 –如果一个关系模式R的所有属性都是原子的,即不可 再分的基本数据项,则R1NF 例:SCL(S#, SN, SA, CLS, MON, C#, CN, CRD, GR) 属于1NF它有以下问题: ▪ 数据冗余大,如MON,CRD等 ▪ 插入异常,当无课程时学生信息无法插入 ▪ 删除异常,当某个学生的选课信息全部删除时无法 保留学生基本信息

SCL存在的函数依赖关系(S#, C#)_f_GR(S#,C#)PSNS# fSN(S#,C#)PSAS# f.SAS# _fCLS(S#,C#)-PCLS(S#,C#)PCNC# f.CN(S#,C#)P_CRD C# fCRDCLS—→MON S# _tMON
SCL存在的函数依赖关系 (S#,C#) f GR (S#,C#) P SN S# f SN (S#,C#) P SA S# f SA (S#,C#) P CLS S# f CLS (S#,C#) P CN C# f CN (S#,C#) P CRD C# f CRD CLS MON S# t MON

4.2.2第二范式(2NF)2NF定义一如果一个关系模式REINF,并且每一非主属性都完全依赖于R的码,则RE2NF。一显然码只包含一个属性的R如果是1NF,则必是2NF例: S L(S#,SN,SA,CLS,MON)C(C#,CN,CRD)S C(S#,C#,GR)都属于2NF存在问题:一数据亢余大,如MON一插入异常,无学生信息无法插入班长信息一删除异常,当学生的信息删除无法保存班长
4.2.2 第二范式(2NF) ⚫ 2NF定义 – 如果一个关系模式R1NF,并且每一非主属性都完全 依赖于R的码,则R2NF。 – 显然码只包含一个属性的R如果是1NF,则必是2NF 例:S_L(S#,SN,SA,CLS,MON) C(C#,CN,CRD) S_C(S#,C#,GR)都属于2NF 存在问题: – 数据冗余大,如MON – 插入异常,无学生信息无法插入班长信息 – 删除异常,当学生的信息删除无法保存班长

函数依赖关系:S#_f.SAS#_f.CLSS#f.SNCLSMON S# MONC# fCNC# fCRD(S#,C#)fGR
函数依赖关系: S# f SA S# f CLS S# f SN CLS MON S# t MON C# f CN C# f CRD (S#,C#) f GR