关系模型的规范化设计理论

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 把关系模式 把关系模式SCD分解为 分解为
– 学生关系 (SNO,SN,AGE,DEPT) 学生关系S( , , , ) – 选修课 (SNO,CNO,SCORE) 选修课SC( , , ) – 系关系 (DEPT,MN) 系关系D( , )
• 三个结构简单的关系模式
得到好关系模式的方法 ——模式分解
• 与SCD相比,分解为三个关系模式后,数 相比, 相比 分解为三个关系模式后, 据的冗余程度明显降低。 据的冗余程度明显降低。
得到好关系模式的方法 ——模式分解
•当新开办一个系时,只要在关系D中添加 当新开办一个系时,只要在关系 中添加 当新开办一个系时 一个记录就可以了; 一个记录就可以了; •当某个新学生尚未选课时,只要在关系 当某个新学生尚未选课时, 当某个新学生尚未选课时 S中添加一条学生记录就可以了,而与选 中添加一条学生记录就可以了, 中添加一条学生记录就可以了 课关系无关, 课关系无关, •这就避免了插入异常。 插入异常。 插入异常
•关系数据库设计 关系数据库设计
•创始人E.F.Codd提出规范化理论 创始人E.F.Codd提出规范化理论 创始人E.F.Codd •后经许多专家学者对关系数据库理论作了深 后经许多专家学者对关系数据库理论作了深 入的研究和发展, 入的研究和发展,形成了系统的关系数据库设 计理论。 计理论。
关系数据库的设计理论-前言
不合理关系模式存在的问题 ——(1)数据冗余
• 系名和系主任的名字存储次数等于该系学 生人数乘以每个学生选修课程数 • 学生的姓名、年龄也都重复存储多次 • 数据冗余度很大,浪费了存储空间。
不合理的关系模式存在的问题 ——(2)插入异常
• 若某新系未招生,则系名和系主任的信息 无法插入到数据库中。因为该关系中 (SCO,CNO)是主键,根据实体完整性 约束,主键值不能为空,而这时SNO和 CNO均无值,因此不能进行插入操作 • 若某学生未选课,即CNO未知,实体完整 性约束还规定,主键的值不能部分为空, 同样也不能进行数据插入操作,故数据库 中就没有该生的信息。
是系统设计成败的 • 每一关系模式应包括哪些属性? 每一关系模式应包括哪些属性? 关键 • 多少关系模式? 多少关系模式? • 如何将这些相互关联的关系模式组建成一个适合的关 系模型? 系模型?
• 规范化理论具有具有指导作用。 规范化理论具有具有指导作用。
关系数据库的设计理论-前言
• 关系数据库规范化理论主要包括三方面的 内容: 内容:
不合理关系模式存在的问题
SNO S1 S1 S2 S2 S2 S2 S3 S3 S3 S4 SN AGE DEPT MN CNO SCORE 赵军 17 计算机 刘军航 C1 90 赵军 17 计算机 刘军航 C2 85 钱进 18 信息 王平 C3 57 钱进 18 信息 王平 C6 80 钱进 18 信息 王平 C7 钱进 18 信息 王平 C5 70 张伟 20 信息 王平 C1 0 张伟 20 信息 王平 C2 70 张伟 20 信息 王平 C4 85 李平 20 自动化 刘军航 C1 93
得到好关系模式的方法 ——模式分解
• 当一个系的学生全部毕业时,只需在 S中删 当一个系的学生全部毕业时, 中删 除该系的全部学生记录,而关系D 除该系的全部学生记录,而关系 中有关 该系的信息仍然保留,从而不会引起异常 该系的信息仍然保留,从而不会引起异常 删除 • 同时,由于数据冗余度的降低,数据没有 同时,由于数据冗余度的降低, 重复存储,也不会引起更新异常 更新异常。 重复存储,也不会引起更新异常。
[例1]某教学管理数据库,其关系模式SCD如下: 1]某教学管理数据库,其关系模式SCD如下: 某教学管理数据库 SCD如下
SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE) SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE) SNO表示学生学号 表示学生学号, 其中 SNO表示学生学号, AGE表示学生年龄 表示学生年龄, AGE表示学生年龄, MN表示系主任姓名 表示系主任姓名, MN表示系主任姓名, SCORE表示成绩 表示成绩。 SCORE表示成绩。 SN表示学生姓名, SN表示学生姓名, 表示学生姓名 DEPT表示学生所在系别 表示学生所在系别, DEPT表示学生所在系别, CNO表示课程号 表示课程号, CNO表示课程号,
好关系模式的四个条件
• 分解后的关系模式是一个好的关系数据库 模式。 模式。 • 一个好的关系模式应该具备四个条件: 一个好的关系模式应该具备四个条件:
– 尽可能少的数据冗余 – 没有插入异常 – 没有删除异常 – 没有更新异常
好关系模式VS.最优关系模式
注意
• 一个好的关系模式并不是在任何情况下都 是最优的, 是最优的,
S
SNO S1 S2 S3 S4 SN AGE DEPT 赵军 17 计算机 钱进 18 信息 张伟 20 信息 李平 21 自动化
SC
D
MN CNO SCORE DEPT C1 90 计算机 刘军航 王平 C2 85 信息 自动化 刘军航 C3 57 C6 80 C7 C5 70 C1 0 C2 70 C4 85 C1 93
函数依赖
这里t 分别表示元组t 这里 1[X],t2[X]分别表示元组 1,t2在属性集 , 分别表示元组 X上的值, 上的值, 上的值 FD是对关系 的一切可能的当前值 r 定义的, 是对关系R的一切可能的当前值 定义的, 是对关系 不是针对某个特定关系,也就是说,对于X 不是针对某个特定关系,也就是说,对于 的每一个具体的值,都有惟一的Y值与之对 的每一个具体的值,都有惟一的 值与之对 值决定, 应,即 Y 值由 X值决定,因而这种数据依 值决定 因而这种数据依 称为函数依赖 函数依赖。 赖称为函数依赖。
不合理的关系模式存在的问题 ——(4)更新异常
• 某学生改名,则该学生的所有记录都要逐 某学生改名, 一修改SN的值 一修改 的值 • 某系更换系主任,则属于该系的学生记录 某系更换系主任, 都要修改MN的内容 都要修改 的内容 • 稍有不慎,就有可能漏改某些记录,造成 稍有不慎,就有可能漏改某些记录, 数据库的不一致性,破坏了数据的完整性。 数据库的不一致性,破坏了数据的完整性。
• 关系数据库系统中,关系模型包括一组关系模式, 关系数据库系统中,关系模型包括一组关系模式, 并且各个关系模式不是完全孤立的。 并且各个关系模式不是完全孤立的。 • 一个合适的关系数据库系统的设计,关键是关系 一个合适的关系数据库系统的设计, 数据库模式的设计 这些工作决定了整 • 一个好的关系数据库系统 个系统运行的效率。 个系统运行的效率。
不合理关系模式存在的问题
•根据实际情况,这些数据有以下语义规定 根据实际情况, 根据实际情况 •一个系有若干个学生,一个学生只属于一个系; 一个系有若干个学生, 一个系有若干个学生 一个学生只属于一个系; •一个系只有一名系主任,一个系主任可以同时兼 一个系只有一名系主任, 一个系只有一名系主任 几个系的系主任; 几个系的系主任; •一个学生可以选修多门功课,每门课程 一个学生可以选修多门功课, 一个学生可以选修多门功课 •可被若干个学生选修; 可被若干个学生选修; 可被若干个学生选修 •每个学生学习的课程有一个成绩。 每个学生学习的课程有一个成绩。 每个学生学习的课程有一个成绩 •在此关系模式中填入一部分具体的数据,则可得到 在此关系模式中填入一部分具体的数据, 在此关系模式中填入一部分具体的数据 SCD关系模式的实例,即一个教学管理数据库,如下 关系模式的实例, 关系模式的实例 即一个教学管理数据库, 图所示。 图所示。
不合理的关系模式存在的问题 ——(3)删除异常。
• 当某系学生全部毕业而未招生时,要删除 全部学生的记录,这时系名、系主任也随 之删除,现实中系仍存在,但数据库中却 无法找到该系的信息。 • 如果某学生不再选修C1课程,本应该只删 去C1,但C1是主关系键的一部分,为保证 实体完整性,必须将整个元组一起删掉, 这样,有关该学生所有的其他信息也随之 丢失。
SNO S1 S1 S2 S2 S2 S2 S3 S3 S3 S4
得到好关系模式的方法 ——模式分解
• 在以上三个关系模式中,实现了信息的某 在以上三个关系模式中, 种程度的分离: 种程度的分离:
– S保存学生基本信息,与所选课程及系主任无 保存学生基本信息, 保存学生基本信息 关 – D保存系的信息,与学生无关 保存系的信息, 保存系的信息 – SC保存学生选课的信息,而与学生及系无关 保存学生选课的信息, 保存学生选课的信息
• 函数依赖 • 范式(Normal Form) 范式( Form) • 模式设计
• 函数依赖起着核心作用,是模式分解和模 函数依赖起着核心作用, 式设计的基础, 式设计的基础, • 范式是模式分解的标准。 范式是模式分解的标准。
不合理关系模式存在的问题
•数据库的逻辑设计为什么要遵循一定的 数据库的逻辑设计为什么要遵循一定的 规范化理论? 规范化理论? •什么是好的关系模式? 什么是好的关系模式? 什么是好的关系模式 •不好的关系模式可能导致哪些问题? 不好的关系模式可能导致哪些问题? 不好的关系模式可能导致哪些问题
– 比如查询某个学生选修课程名及所在系的系主 任时,要通过连接 连接, 连接所需的系统开销非 任时,要通过连接,而连接所需的系统开销非 常大 – 因此要以实际设计的目标出发进行设计
数据依赖
• 数据依赖
– 通过一个关系中属性之间值的相等与否体现出 来的数据间相互关系 – 数据依赖是现实世界属性间相互联系的抽象 – 数据依赖是数据内在性质,语义的体现。 数据依赖是数据内在性质,语义的体现。
函数依赖
• 函数依赖是语义范畴的概念。
– 只能根据语义来确定一个函数依赖。 只能根据语义来确定一Baidu Nhomakorabea函数依赖。
• 例如,“姓名→出生年月”
– 只有在没有同名人的条件下成立 如果允许在同 只有在没有同名人的条件下成立,如果允许在同 一关系中有相同姓名存在, 一关系中有相同姓名存在,则出生年月就不再 函数依赖于姓名。 函数依赖于姓名。 – 如果系统设计人员限定不允许相同姓名出现, 如果系统设计人员限定不允许相同姓名出现, 姓名→出生年月 函数依赖成立。 出生年月” 则“姓名 出生年月”函数依赖成立。
不合理关系模式存在的问题
• 根据语义规定并分析关系中的数据可看出 根据语义规定并分析关系中的数据可看出:
– (SNO,CNO)属性的组合能唯一标识一个元 , ) 组,故(SNO,CNO)是该关系模式的主键。 , )是该关系模式的主键。
• 进行数据库的操作时,会出现什么问题呢? 进行数据库的操作时,会出现什么问题呢?
• 最重要的数据依赖
–函数依赖(Functional Dependency,FD) 函数依赖( Dependency,FD) 函数依赖 –多值依赖(Multivalued Dependency,MVD) 多值依赖( Dependency,MVD) 多值依赖
函数依赖
• 定义:设R(U)是属性集 上的关系模式, 定义: 上的关系模式, ( )是属性集U上的关系模式 X,Y是U的子集,r是R的任一具体关系, 的子集, 的任一具体关系, , 是 的子集 是 的任一具体关系 如果对r的任意两个元组 的任意两个元组t 如果对 的任意两个元组 1,t2,由t1[x]=t2[x] 导致t 导致 1[Y]=t2[Y], , • 则称 函数决定 或Y函数依赖于 ,记为 则称X函数决定 函数决定Y或 函数依赖于 函数依赖于X, X→Y。 。
数据库设计
关系数据库设计理论
关系数据库设计理论-前言
•层次和网状数据库的设计 层次和网状数据库的设计
•遵循其模型本身固有的原则, 遵循其模型本身固有的原则, 遵循其模型本身固有的原则 •无具体的理论依据 无具体的理论依据 •在运行和使用中发生许多预想不到的问题。 在运行和使用中发生许多预想不到的问题。 在运行和使用中发生许多预想不到的问题
不合理关系模式存在的问题
由于存在以上问题,我们说, 由于存在以上问题,我们说,SCD是一个 是一个 不好的关系模式。产生上述问题的原因, 不好的关系模式。产生上述问题的原因, 直观地说,是因为关系中“包罗万象” 直观地说,是因为关系中“包罗万象”, 内容太复杂了。 内容太复杂了。
得到好关系模式的方法 ——模式分解
相关文档
最新文档