关系规范化理论知识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三种模式分解等价的定义: ⒈ 分解具有无损连接性 U=U1∞U2 ∞…Un
⒉ 分解要保持函数依赖 F与 ∪Fi等价
⒊ 分解既要保持函数依赖,又要具有无损连 接性
模式的分解(续)
例:S-D-L(Sno, Sdept, Sloc) F={ Sno→Sdept,Sdept→Sloc,Sno→Sloc}
分解方法可以有多种: 1. S-D-L分解为三个关系模式 R1(Sno) R2(Sdept) R3(Sloc) 2. SL分解为下面二个关系模式 R1(Sno, Sloc) R2(Sdept, Sloc)
分解的本质:概念的单一化
本章要回答的问题:
1. “好” 模式的标准?
不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少,即每个关系只有一个 主题。 满足3NF标准的关系模式是好模式
2. 分解的本质是什么?
概念的单一化过程
3. 一个关系模式如何分解成几个“好”的模式? (不丢失信息和语义的前提下)
分解关系模式
把这个单一模式分成5个关系模式: S(sno, sn, age, sloc, ……) /*学生信息*/ C(cno, cn, credit, ……) /*课程信息*/ DEPT(dno, dn,mn, ……) /*系的信息*/ S_D(sno, dno) /*学生与系的联系*/ SC(sno,cno,grade) /*学生与课程的联系*/
关系模式S_C_D中存在的问题
教务关系模式S_C_D(一个关系模式):
(sno, sn,age,dn, mn, cno,cn, grade, …)
存在的问题:
1.删除异常(Deletion Anomalies) 2.插入异常(Insertion Anomalies) 3.数据冗余太大,
更新异常(Update Anomalies)
数据库系统概论
An Introduction to Database System
第六章 关系数据理论
计算机科学与技术系 郑海旭
第六章 关系数据理论
6.1 问题的提出 6.2 规范化 6.4 模式的分解方法简介 6.5 小结
本章解决的问题
➢针对具体问题,如何构造一个适合于
它的数据模式 (使用的工具─关系数据库的规范化理
4NF
消除连接依赖
5NF
规范化的基本思想
➢消除不合适的数据依赖 ➢的各关系模式达到某种程度的“分离” ➢采用“一事一地”的模式设计原则 ➢ 让一个关系描述一个概念、一个实体或者实
体间的一种联系。若多于一个概念就把它“分 离”出去
➢所谓规范化实质上是概念的单一化
规范化(续)
➢不能说规范化程度越高的关系模式就越好 ➢在设计数据库模式结构时,必须对现实世界的实
✓ 从语义上讲,是概念的单一化过程; ✓ 从数据依赖上说,是逐步去除非主属性对码的
部分依赖和传递依赖
6.3 模式的分解
➢规范化:把低一级的关系模式分解为若干
个高一级的关系模式的过程。
➢只有能够保证分解后的关系模式与原关系
模式等价,分解方法才有意义。
关系模式分解的标准
给定R(U,F), 将其分解成 R1(U1,F1), R2(U2,F2), ….Rn(Un,Fn)
关系模式(系-住宿分配) S-D-L(Sdept, Sloc)
5.2.6 规范化
➢关系数据库的规范化理论是数据库逻辑设计的工
具。
➢一个关系只要其分量都是不可分的数据项,它就
是规范化的关系,但这只是最基本的规范化。
➢规范化程度可以有多个不同的级别
规范化(续)
➢规范化程度过低的关系不一定能够很好地描述
际情况和用户应用需求作进一步分析,确定一个 合适的、能够反映现实世界的模式
➢上面的规范化步骤可以在其中任何一步终止
对函数依赖(FD)的讨论
1、以下3个模式都是3NF SC(Sno, Cno, Grade)
S-D(Sno, Sdept )
S-D-L(Sdept, Sloc) 2、是3NF的模式是好模式 3、是3NF的模式代表一个单一的主题 4、模式分解的本质
结论:3和4属于无损分解; 3的分解不保持FD, 4的分解保持FD。
定理6.3.1 若要求分解既具有无损连接 性,又保持函数依赖,则模式分解一定能 够达到3NF。
模式分解的方法简介
1、形式化方法 给定R(U,F) ①求F的较小函数依赖集候选码PK和Fmin
Fmin={F1, F2, …Fn}, 其中Fi: Xi →Yi ②R1(U1,F1), R2(U2,F2), ….Rn(Un,Fn), R’(PK)
论)
复习前一节的内容 [例1]试建立一个描述学校教务管理的数据库。 信息有: 学生的学号(sno)、姓名(sn)、性别(sex) 年龄(age)、住址(sloc)......
学校所属系编号(dno)、系名(dn)、系主任 (mn)、
系联系电话(phone)、所在地 ……
课程号(cno)、课程名(cn)、学分(credit)、 成绩(grade)……
结论:1和2属于有损分解
模式的分解(续)
例:S-D-L(Sno, Sdept, Sloc) F={ Sno→Sdept,Sdept→Sloc,Sno→Sloc}
分解方法可以有多种: 3. S-D-L分解为下面二个关系模式 S-L(Sno, Sloc) S-D(Sno, Sdept) 4. 将S-D-L分解为下面二个关系模式 S-D(Sno, Sdept) S-L(Sdept, Sloc)
现实世界,可能会存在插入异常、删除异常、 修改复杂、数据冗余等问题
➢一个低一级范式的关系模式,通过模式分解可
以转换为若干个高一级范式的关系模式集合, 这种过程就叫关系模式的规范化
规范化步骤
1NF
消除非主属性对码的部分依赖
2NF
消除非主属性对码的传递依赖
3NF
消除主属性对码的部分和传递依赖
BCNF
消除多值依赖
Leabharlann Baidu
关系模式分解方法举例
关系模式(学生-所在系-住宿-课程-成绩) S-D-L-C(Sno, Sdept, Sloc, Cno, Grade)
关系模式(学生选课情况) 关系模式(学生住宿情况) SC(Sno, Cno, Grade) S-D-L(Sno, Sdept, Sloc)
关系模式(学生-系) S-D(Sno, Sdept )
相关文档
最新文档