关系数据库范式规则

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例3-5P54 分析:最小函数依赖集为 FD1={职工号→姓名,职工号→性别,职工号→ 年龄,职工号→职务} FD2={教工号→姓名,教工号→职称,课程号→ 课程名,课程号→课时数,(职称,课程号) →课时费} FD3={学号→姓名,学号→性别,学号→系号, 系号→系名,系号→系主任名}
定义7:设一个关系为R(U),X为U的一个子 集, 若X能够函数决定U中的每个属性,且X 的任何真子集都不能函数决定U中的每个属性, 则称X为关系R的一个侯选码。侯选码的等价 定义:若关系中一个属性或属性组能够函数决 定整个元组,并且它的任何子集都不能函数决 定整个元组,则它被称为该关系的一个侯选码 。 例3-6设P55 …
wk.baidu.com
定义4:设一个关系为R(U),X,Y和Z为属性 集U上的子集, 其中X→Y, Y→Z,但Y→\X, Y≯Z (Z不是Y的子集) 则存在X→Z ,称此 为传递函数依赖,即X传递函数决定Z,Z传递 函数依赖于X。
例3-3设一个学生关系(学号,姓名, 性别,系号,系名,系主任名), 函数依赖分析:
定义5:设一个关系为R(U),X,Y 和Z为属性集U上的子集, 若X→Y, 则存在XZ→YZ 和XZ→Y 。
若一个关系中的属性子集X不能函数决定另一个 属性子集Y,则记作X→/Y,读作X不能函数决 定Y,或Y不能函数依赖于X。 定义2:设一个关系为R(U),X和Y为属性集U 上的子集, 若X→Y且X≯Y (Y不是X的子 集),则称X→Y为非平凡函数依赖,否则若 X﹥Y (Y是X的子集) ,则必有X→Y,称 X→Y 为平凡函数依赖。因为整体决定局部, 平凡函数总是成立的。就是说,
方法二:分解为两个关系: J1(借阅证号,姓名,性别) J2(借阅证号,图书号,书名,借阅日期, 归还日期) 方法三:P60
3.2.2第二范式 定义9:设一个关系R(U),它是满足第 一范式的,若R中的不存在非主属性对侯 选码的部分函数依赖,则称该关系R(U) 是符合第二范式的。记为2NF。 一个关系若只满足第一范式,那可能会带 来数据冗余和操作异常。 操作异常:插入、删除和修改异常,又称 为更新异常或存储异常。
例3-12P63 一个关系SDH=(学号,姓名,性别,籍贯, 系号,系名,系地址,系电话,宿舍号,宿舍电话) 实例表3-10 根据SDH关系模式的语义,可得出最小函数依赖集FD: FD={学号→姓名,学号→性别,学号→籍贯,学号→系 号,系号→系名,系号→系地址,系号→系电话,学 号→宿舍号,宿舍号→宿舍电话} 由于该关系是单属 性侯选码,所以不存在部分依赖,自然 满足2NF。但 存在传递依赖,所以必然会产生数据冗余和操作异常 P64。 消除R的传递依赖也是通过R的分解来实现的。
对关系进行规范化分为六个级别,从高到 底为第一范式、第二范式、第三范式、 BC范式、第四范式、第五范式。通常只 要求规范到第三范式就可以了,并且前 三个范式能够很好地保持数据的无损连 接性和函数依赖性,再向后规范化容易 破坏这两个特性,有时可能得不偿失。
3.21关系规范化 定义8:设一个关系R(U),若U中的每个属性 都是不可再分的,或者说都是不被其他属性所 包含的独立属性,则称关系R(U)是符合第 一范式的。记为1NF。 关系数据库中的每个关系都必须达到第一范式— 最起码的要求。 若一个关系不满足第一范式,则称为非规范化的 关系,否则称为规范化的关系。 若库中所有关系都满足1NF,则称为
每一种类型的数据与数据之间的联系,在关系数 据库系统中都是 利用相应的关系来描述的。因 为关系是由属性构成的,所以数据依赖的基础 是属性之间的数据依赖。 数据依赖包括函数依赖和多值依赖两个方面。 在一个关系中,属性=变量,属性域=变量的取值 范围,属性在元组上的取值=属性变量的当前 值。单值(映射)函数,多值函数。如: f(x)=2x,f(n)=(-1)n等。
例3-9P57 通信录关系T(姓名,性别,单位,省市, 邮编,电话(长途区号,办公电话,家庭电话)) 因为电话属性不是一个原子属性,所以它不是一个 规范化的关系。提升规范为1NF,得到的T(姓 名,性别,单位,省市,邮编,长途区号,办公 电话,家庭电话)。或分解为两个关系: T1(姓名,性别,单位,省市,邮编) T2(姓名,长途区号,办公电话,家庭电话,手机 号码)
定义6:设一个关系为R(U),X和Y为属性集U 上的子集, 若X→Y, 并且为完全非平凡函数 依赖,同时Y为单值属性,则称X→Y为R的最 小函数依赖。由R中所有最小函数依赖构成R 的最小函数依赖集,其中不含有冗余的传递函 数依赖 。 例3-4设一个关系R(A,B,C,D),函数依赖 集FD={A →B,B →C,A →C,B →D},判断 它是否为R的最小函数依赖集。 分析:A →C 冗余,应去掉,就成为R的最小函数依赖集。
3.2.3第三范式 定义10:设一个关系R(U),它是满足第一范 式的,若R中的不存在非主属性对侯选码的传 递函数依赖,则称该关系R( U)是符合第三 范式的。记为3NF。 若一个数据库中所有关系都达到了3NF(自然也 就包括达到2NF)则称该数据库是符合第三范 式的。 一个关系若只满足第二范式,仍然存在着由传递 依赖带来数据冗余和操作异常。
3.2 关系规范化
关系数据库由相互联系的一组关系所组成, 每个关系包括关系模式和关系值两个方 面。 关系模式是对关系的抽象定义,给出关系 的具体结构; 关系值是关系的具体内容,反映关系在某 一时刻的状态。
一个关系包含许多元组,每个元组都是符 合关系模式结构的一个具体值,并且部 分属于相应的属性。 在关系数据库中的每个关系都需要进行规 范化,使之达到一定的规范化程度,从 而提高数据的结构化程度、共享性、一 致性和可操作性。
关系数据库系统具有三级模式结构,最主 要的是中间层的全局模式结构,简称关 系数据库模式或数据库模式。 一个关系数据库模式由一个面向具体应用 所涉及的若干个关系模式所 组成,这些 关系模式通过外码建立相互联系,形成 一个结构化的数据整体。
一个数据库系统逻辑设计的好坏主要看数据库模 式设计的好坏,一个数据库模式设计的好坏又 主要看所含的各个关系模式设计的好坏。 如果各个关系模式结构结构合理、功能简单明确、 规范化程度高。就能够确保所建立的数据库具 有: 较少的数据冗余、较高的数据共享度、较好的数 据一致性、较灵活和方便的数据更新能力。
↘关系中一个元组的任一属性值能够函数决定它自己的 值,任一属性组的值能够函数决定任一属性或属性子 集的值。 平凡函数依赖又称为函数依赖的自反性规则。 如在职工关系中,职工号总能函数决定它本身,对于任 给一个职工号,都有它本身的职工号值惟一对应;职 工号和性别构成的属性子集总是能够函数决定其中的 职工号或性别属性,记作 (职工号,性别)→职工号和(职工号,性别)→性别。 通常讨论的都是非平凡函数。
定义1:设一个关系为R(U),X和Y为属性集U 上的子集,若对于元组中X上的每个值都有Y 上的一个惟一值与之对应,则称X和Y具有函 数依赖关系,并称X函数决定Y,或称Y函数依 赖于X,记作X→Y,称X为决定因素。 例3-1设一个职工关系(职工号,姓名,性别, 年龄,职务)就有函数依赖关系: 职工号→姓名,职工号→性别,职工号→年龄, 职工号→职务。
例3-11P60 学生选课关系SSC(学生号,姓名, 性别,专业,课程号,课程名,课程学分,成 绩) 根据SSC关系模式的语义,可得出最小函数依赖 集FD: FD={学生号→姓名,学生号→性别,学生号→ 专业,课程号→课程名,课程号→课程学分, (学生号,课程号) →成绩} 该关系存在非 主属性对主码的部分依赖。必然存在数据冗余 和操作异常P61。
正确的分解要求关系的无损分解和无损连接。即 通过外码自然连接完全能得到原来的关系;同 时,分解后的每个关系的最小函数依赖集都是 原关系的最小函数依赖集的子集。这种分解才 是正确、有效和合理的分解。 一个关系中所有侯选码都是单属性,就不存在部 分函数依赖,满足1NF也就满足2NF。只有出 现复合侯选码时才有可能存在部分函数依赖, 才需要判断和消除部分函数依赖,通过分解 达 到2NF。
例如:在职工关系中,职工号与其他每个属性之 间的函数依赖都是完全函数依赖。 真子集职工号→年龄,所以存在部分函数依赖: (职工号,性别)--p→年龄。 下图
– (SNO,CNO) f GRADE – (完全函数依赖) – (SNO,CNO) p CREDIT – (部分函数依赖) SNO G
数据库基础与应用
• 主教材: • 《数据库基础与应 用》(新版) 辅导教师:吴旻倩
Email: wuli1977@163.com
3.1数据依赖 在现实生活中,事物之间(内部)的各特 征之间存在着相互依赖和制约的关系。 用数据来描述和处理,需要把具有共同 特征的事物归为一类。并可进一步细分。 如把人归为一类,把书归为一类等。 如针对学校的数据库管理需要,把所有人 员分为教师类、管理人员类和学生类。
“事务”的概念:P61 为了消除部分函数依赖,对SSC分解为: S(学生号,姓名,性别,专业) C(课程号,课程名,课程学分) SC(学生号,课程号,成绩) 对应的最小函数依赖集分别为: FD1={学生号→姓名,学生号→性别,学生号→专业} FD2={课程号→课程名,课程号→课程学分} FD3={(学生号,课程号) →成绩} 关系实例P62表3-7、3-8、3-9
CNO
CR
SC1函数依赖示意图
例3-2设一个教师任课关系(教工号,姓名,职 称,课程号,课程名,课时数,课时费)函数 依赖分析: 主码:(教工号,课程号) 教工号→姓名,教工号→职称;课程号→课程名, 课程号→课时数; 完全函数依赖:(职称,课程号) --f→课时费 部分函数依赖:(教工号,课程号) --p→姓名, (教工号,课程号) --p→职称,…
例3-8P56 设R(A,B,C,D,E,F), 最小函数依赖集FD={A →B,A →C, (C,D) →E},求侯选码? 分析: 侯选码(A,D,F)
函数依赖的常用规则:P56 自反性:若X﹥Y,则存在X→Y。 增广性:若X→Y,则存在XZ→YZ。 传递性:若X→Y和Y→Z,则存在X→Z。 合并性:若X→Y和X→Z,则有X→YZ。 分解性:若X→Y且Y﹥Z,则存在X→Z。 伪传递性:若X→Y和WY→Z,则存在WX→Z。 复合性:若X→Y和Z→W,则存在XZ→YW。 自增性:若X→Y,则存在WX→Y。
例3-10P58 借阅图书关系J(借阅证号,姓名,性别,借 阅图书登记(图书号1,书名1,图书号2,书名2,图 书号3,书名3 )) 因为借阅图书登记属性不是一个原子属性,所以它不是 一个规范化的关系。提升规范为1NF。方法一:再原 关系中增加独立属性,取消分栏。得到: J(借阅证号,姓名,性别,图书号1,书名1,图书号2, 书名2,图书号3,书名3 )。由于每个人借阅情况不 同,按这种方法规范化将出现许多空值,浪费存储空 间,不便于DBMS进行管理,应采用第二种方法。
分析:侯选码 FD1={职工号→姓名,职工号→性别,职 工号→年龄,职工号→职务} FD2={教工号→姓名,教工号→职称,课 程号→课程名,课程号→课时数,(职 称,课程号) →课时费} FD3={学号→姓名,学号→性别,学号→ 系号,系号→系名,系号→系主任名}
例3-7P55 分析:最小函数依赖集: FD={教师号→姓名,课程号→课程名,课 程号→课程学分,专业号→专业名, (教师号,课程号,专业号) →教学等 级分}
定义3:设一个关系为R(U),X和Y为属性集U 上的子集, 若X→Y,同时X的一个真子集X’ 也能够函数决定Y,即X’→ Y ,则称X部分函 数决定Y,或Y部分函数依赖于X,记作X -p→Y。否则,若不存在一个真子集X’,使得X’ 也能够函数决定Y,则称X完全函数决定Y,或 Y完全函数依赖于X,记作X --f→Y。 X→Y的 部分函数依赖也称为局部函数依赖。例如:
相关文档
最新文档