数据库原理--规范化理论
[工学]8数据库设计与规范化理论教学内容
1.5 第三范式3NF
前面的关系模式S-L(Sno,Sdept, deptHead)虽然属于 2NF,但还会有数据冗余的问题,进一步消除的办 法是规范化至3NF。
关系模式 R〈U,F〉中若不存在这样的码 X,属 性组 Y 及非主属性Z(Z Y)使得X→Y,(Y X) Y →Z 成立,则称R〈U,F〉∈3NF。
1971~1972,E.F.Codd,1NF,2NF,3NF 1974,Codd和Boyce,BCNF
1976,Fagin,4NF 后来,5NF
各种范式使关系达到的(规范化)程度是不 一样的:
1NF 2NF 3NF BCNF 4NF 5NF
1.2模式分解要求
令C为数据库上的约束集。如果对模式R上满足C 的所有合法关系r,均有
r= R1(r) R2(r) … Rn(r),
则我们说关系模式R的分解{R1,R2…Rn}为无损 连接分解。
无损连接
将一个关系分解成若干小的关系时,保证分解无损是 很重要的。
令R为一个关系模式,F为R上函数依赖集,R1与R2为 R的分解。该分解为R的无损连接分解只要F+中至少有 如下函数依赖中的一个:
函数依赖是最常见的一种数据依赖。
函数依赖:设R(U)是属性集U上的关系模式,X,Y是U的子 集。若对于R(U)的任意一个可能的关系r,r中不可能存在两 个元组在X上的属性值相等,而在Y上的属性值不等,则 称X函数确定Y或Y函数依赖X。记作 X→Y。
数据库原理第六章(关系)
6.2.1 函数依赖
一、函数依赖 二、平凡函数依赖与非平凡函数依赖 三、完全函数依赖与部分函数依赖 四、传递函数依赖
21
一、函数依赖 定义6.1 定义
设R(U)是属性集U上的关系模式。X,Y是U的 子集。若对于R(U)的任意一个可能的关系r,r 中不可能存在两个元组在X上的属性值相等,而 在Y上的属性值不等,则称X函数确定Y或Y函数 依赖于X,记作X→Y。
•原因:存在非主属性对码的部分函数依赖。 •规范化:分解 CPN为CP +P +CN关系(表2) •过 程:消除非主属性对码的部分函数依赖
36
定义6.6 定义 若R∈lNF,且每一个非主属性完全函数 非主属性完全函数 非主属性 依赖于码,则R∈2NF。 依赖 满足第二范式的关系模式是否完全解决了 存储异常问题呢? 分析:关系CP,P的情况? 关系CN的情况?
第六章 关系数据理论
2011-12-17
第六章 关系数据理论
本章内容提要
理论方面: 用形式化的关系数据理论来描述和研究关系模型,阐述
了关系规范化理论研究的实际背景。 实践方面: 关系数据理论是进行数据库设计的有力工具。对数据 库设计有重要指导作用。
2
第六章 关系数据理论
本章重点: 本章重点:
数据依赖的基本概念; 各级范式的定义; 规范化的含义和作用 关系模式的规范化
数据库原理考核大纲
《数据库原理》考核大纲
课程编号:
课程类别:专业必修课
总学时数:学时
学分:学分
一、考核要求
《数据库原理》课程是计算机科学与技术专业的一门主干理论必修课。根据教学计划,它的考核内容主要包括数据库基本概念、数据模型与概念模型、数据库系统设计方法、关系数据库、ANSI-SQL语言、SQL Server关系数据库管理系统、关系数据库理论、数据库完整性与安全性、数据库并发控制与数据库恢复等。
考核的重点是检查对基础知识的掌握情况。考核的要求分为3个层次。
1、掌握:能运用有关知识熟练解决最基本的问题或者能综合运用相关知识解决有一定难度的问题。
2、理解:用有关知识解决一般的问题。
3、了解:用有关知识解决比较简单的问题。
二、考核内容
(一)数据库基础知识
考核知识点:
1、数据库的特点及概念;
2、数据库系统及发展;
3、数据库系统的结构。
掌握:数据库系统的结构,数据库、数据库系统、数据库管理系统的重要概念。
理解:数据库系统的发展。
(二)数据模型与概念模型
考核知识点:
1、信息世界及描述;
2、概念模型及表示;
3、常见的数据模型;
掌握:数据模型的三要素、用E-R图建立和表示概念模型、关系模型的基本概念。
理解:层次模型、网状模型的特点。
了解:面向对象数据模型的概念。
(三)数据库系统设计方法
考核知识点:
1、数据库系统设计的内容;
2、数据库系统设计各步骤的任务与方法。
掌握:数据库系统设计的基本步骤、概念模型向关系模型的转换。
理解:数据库设计的基本方法。
了解:需求分析的任务和方法。
(四)关系数据库
考核知识点:
1、关系数据模型及其三要素;
数据库规范化管理理论(ppt 33页)
无损连接的分解 不丢失信息,且定能达到4NF
保持函数依赖的分解 减轻异常,且定能达到3NF
既保持函数依赖又无损连接的分解 定能达到3NF
SL (Sno, Sdept, Sloc)的分解
分解1:SN (Sno), SD (Sdept), SO (Sloc) 分解2:NL (Sno, Sloc), DL (Sdept, Sloc) 分解3:ND (Sno, Sdept), NL (Sno, Sloc) 分解4:ND (Sno, Sdept), DL (Sdept, Sloc)
投影 WM (W, M)
WMP (W, M, P) 分解
∈4NF
WP (W, P)
小结
在函数依赖范畴内,BCNF是规范化程度最 高的;
在多值依赖范畴内,4NF是规范化程度最高 的;
连接依赖与5NF。
4.3 关系模式的规范化
4.3.1 关系模式规范化的步骤 4.3.2 关系模式的分解
4.3.1 关系模式规范化的步骤
4. 传递函数依赖
在关系模式中,若X Y,且Y Z,但Y X, 那么属性集Z传递函数依赖于X。记作 X tห้องสมุดไป่ตู้Z。
例:Student (Sno, Sdept, Mname, Cname, Grade)
5. 码 码是关系模式中的一个重要概念
第七章关系数据库理论
赖。若不特别声明,总是讨论非平凡的函数依赖。
(学号, 课程名) 成绩
数据库原理 第七章
(5)函数依赖与属性之间的联系类型有关: ① 如果属性X与Y之间有1:1联系,则 X Y
学号 姓名
② 如果属性X与Y之间有n:1联系,则只存在函数 依赖 X Y 。
学号 系名
③ 如果属性X与Y之间是n:m联系,则X和Y之间不 存在函数依赖关系。
2. 函数依赖的相关概念
(1)若 X Y ,且 Y X ,则记为 X Y 。
(2)若Y不函数依赖于X,记为 X Y 。
学号 成绩 , 课程名 成绩
(3) X Y ,但 Y X ,则称 X Y 是平凡的函数依赖
(学号, 姓名) 学号
X Y ,但 Y X ,则称 X Y 是非平凡的函数依 (4)
F
数据库原理 第七章
如果 X Y ,并且对于X的某个真子集X′,有 X ' Y ,
则 称Y对X部分函数依赖,记作
X Y 。
P
由于 (学号,课程名) 姓名且 学号 姓名
姓名 所以(学号,课程名)
P
注意:只有当决定因素X是属性的组合时,讨论部分函
数依赖才有意义。
当决定因素X中只包括一个属性时,只能是完全函数依 赖。
删除全部学生的记录也随之删除了该系的有关信息;
数据库原理课程介绍和教学大纲
《数据库原理》课程简介
课程内容:
数据库技术是计算机科学技术的一个重要分支,是构成信息系统的基础。《数据库原理》课程是计算机科学与技术专业(本科)的重要的专业核心课,同时也是软件工程专业的专业基础课程。
本课程从着重介绍数据库系统的基本概念、原理和技术方法。课程内容包括数据库系统的基本概念、关系运算理论、SQL语言、关系规范化理论、数据库应用系统的设计方法、数据库系统的安全性控制、完整性控制、并发控制和系统故障恢复等。
通过教学,使学生系统地掌握数据库系统的知识,培养学生运用数据库技术解决问题的能力,为更深入地学习数据库技术和今后从事系统设计实践打下良好的基础。
Brief Introduction
Course Description:
Database technology is a computer science technology, and now has become an important branch of computer science. It is a foundation of information system. The Database Principles is a specialized core course of computer science and technology professionals. It can also take as a specialized course of software professionals.
This course highlights the basic concepts , principles and techniques of database system. The content of this course include concepts of database system, relation operation theory, SQL language, relation normalization theory, design and development of DB system, security technology, integrity control, concurrency control, DB recovery and so on..
数据库系统原理教程课后习题及答案(第七章)
第7章数据库设计
1.试述数据库设计过程。
答:这里只概要列出数据库设计过程的六个阶段:( l )需求分析;( 2 )概念结构设计;( 3 )逻辑结构设计;( 4 )数据库物理设计;( 5 )数据库实施;( 6 )数据库运行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。
2 .试述数据库设计过程各个阶段上的设计描述。
答:各阶段的设计要点如下:( l )需求分析:准确了解与分析用户需求(包括数据与处理)。( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型。( 3 )逻辑结构设计:将概念结构转换为某个DBMS 所支持的数据模型,并对其进行优化。( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。( 5 )数据库实施:设计人员运用DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。( 6 )数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。
3 .试述数据库设计过程中结构设计部分形成的数据库模式。
答:数据库结构设计的不同阶段形成数据库的各级模式,即:( l )在概念设计阶段形成独立于机器特点,独立于各个DBMS 产品的概念模式,在本篇中就是 E 一R 图;( 2 )在逻辑设计阶段将E 一R 图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图( Vi 娜),形成数据的外模式;( 3 )在物理设计阶段,根据DBMS 特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
关于数据库规范化理论教学的思考
些 功 能 ,提 出一 些 要 求 ,和 同 学 们 一 起 分 析 系 统 数 据 库 的 创 建 ,以加 快 同学 们 对 概 念 的理 解 ,如 :在 综 合 设 计 过 程 中 ,首
实体 的属 性 组 成 ;实 体 间 的相 互 关 系 ;根 据 前 面 的分 析 ,建 立
工作 岗位 的 同学 数 据 表 的设 计 ,他 们 是 将 所 有 的字 段 都 存 在 一 行 审 核 和 提 问 ,使 同学 们 对 规 范 化 理 论有 更进 一 步 的掌 握 。
个 表 中 ,这种 情 况 的 出现 ,我 们 认 为 与 同学 们 对 数 据 库 设 计 的 当 然 ,对 数 据 库 知 识 的 理解 和 掌 握 ,也 要 求 同 学们 要博 览 规 范 化 理论 掌握 程 度 有 一 定 的关 系 。高 职 高 专 的 培 养 目标 是 培 群 书 ,将 理 论 知 识 和 实 际 操 作 结 合 起 来 。 另 外 .要 多 多 参 加 实
养 一 个 具 有 一定 的动 手 能 力 的 人 ,学 生 如 何 提 高 动 手 能 力 .掌 际 的 设 计 ,有 专 家 对 同 学 们 的 设 计 成 果 进 行 点 评 .这 样 ,有 利 握 一 定 的理 论 知 识 是 基 础 ,因 此 ,在 高 职 高 专 的 教 学 中 ,存 在 于 同 学们 对规 范化 知 识 的掌 握 ,从 而设 计 出更 好 的 数 据 库 。 着 理 论 与 实 际 应 用 的矛 盾 ,但 必 要 的理 论 知 识 的 掌 握 是 必 需
数据库原理04-1 关系规范化理论
例:项目(编号,项目名称,负责
人,职务, 成员,任务情况) (假设:负责人无重名情况)
项目名称
负责人 成员 职务
22
编号 任务情况
任务(编号,成员,任务情况)
项目(编号,项目名称,负责人,职务)
任务
编号 任务情况 成员
项目
编号
项目名称
负责人
职务
23
任务
编号 任务情况 成员
项目
项目名称
编号
负 责 人 职 务
39
1、多值依赖
• 在R(U)的任一关系r 中,如果存在元组t,s 使得 t[X]=s[X],那么就必然存在元组 w,v r,(w, v可以与s,t相同),使得w[X]=v[X]=t[X],而 w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z] (即交换s,t元组的Y值所得的两个新元组必在r 中),则Y多值依赖于X,记为X→→Y。 这里,X,Y 是U的子集,Z=U-X-Y。
31
例:关系模式STJ(S,T,J)
S:学生 [某一学生选定某门课,就对应一个固定教师] T:教师 [每个教师只教一门课] J: 课程 [每门课有若干教师] 函数依赖: (S,J)→ T
(S,T)→ J
分析得知:STJ ∈ 3NF 但是:STJ ∈ BCNF 因为: T → J
STJ可以分解为:ST(S,T)TJ(T,J)
第3章 关系模型与关系规范化理论 第3节 数据库设计的规范化
在数据依赖中,函数依赖是最基本、最重要的一种依赖,它是属性之间的一种联系, 假设给定一个属性的值,就可以唯一确定(查找到)另一个属性的值。
规范化程度较高者必是较低者的子集,即5NF⊆4NF⊆BCNF⊆3NF⊆2NF⊆1NF 一个低一级范式的关系模式,通过模式分解可以转换成若干个高一级范式的关系模式 的集合,这个过程称作规范化。
1NF
如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系 数据库。 1NF仍然会出现插入异常、删除异常、更新异常及数据冗余等问题。
mname Cno cname 李中一 C01 C 语言程序设计 李中一 C02 数据结构 李中一 C03 数据库原理及应用 李中一 C04 数字电路 李中一 C01 C 语言程序设计 李中一 C02 数据结构 李中一 C03 数据库原理及应用 李中一 C04 数字电路 张超亮 C05 高等数学 张超亮 C06 机械制图 张超亮 C07 自动控制 张超亮 C08 电工基础
例如,知道某一学生的学号,可以唯一地查询到其对应的系别,如果这种情况成立, 就可以说系别函数依赖于学号。这种唯一性并非指只有一个记录,而是指任何记录。
数据库规范化的原理与实践案例分析
数据库规范化的原理与实践案例分析
数据库规范化是数据库设计中非常重要的一个概念。它通过将数据分解成更小
且更有组织的部分,以降低数据冗余并提高数据操作的效率。本文将深入探讨数据库规范化的原理,并通过实践案例分析来展示其重要性和应用。
一、数据库规范化的原理
1. 第一范式(1NF)
第一范式要求每个表中的每个字段都是不可再分的(原子的)。这意味着每个
字段中的值都是唯一的,并且不存在重复的数据。实现1NF可以消除数据冗余和
数据不一致的问题。
举例来说,假设有一个学生信息表,其中包含了学生的姓名、性别和生日。如
果存在多个学生拥有相同的生日,则存在数据冗余。遵循第一范式的规范化原理,我们可以将学生信息表拆分成两个表,一个存储学生的基本信息,另一个存储学生的生日信息。
2. 第二范式(2NF)
第二范式要求表中的每个非主键字段完全依赖于主键。简单来说,就是要保证
数据表中没有部分依赖或传递依赖的情况发生。
以一个订单信息表为例,包含了订单号、产品名称、产品价格和客户手机号码。在这个例子中,订单号是主键。如果一条记录中包含了订单号和产品价格,但是没有包含产品名称,那么存在部分依赖。为了满足第二范式,我们可以将产品信息拆分成另一个表,用产品名称作为主键,这样每个非主键字段都完全依赖于主键。
3. 第三范式(3NF)
第三范式要求表中的每个非主键字段不依赖于其他非主键字段,而是直接依赖
于主键。也就是说,任何一个字段都不能通过其他字段推导出来。
再以订单信息表为例,假设我们加入了一个产品类型字段。在这种情况下,产
品类型并不依赖于订单号,而是依赖于产品名称。为了满足第三范式,我们可以将产品类型拆分成另一个表,并使用产品名称作为主键。这样可以确保非主键字段直接依赖于主键。
数据库原理与系统开发教程第04章 关系数据库设计规范化理论
2020年4月15日
北京电子科技学院计算机系 张克君
4.4.4 BC范式(BCNF)
❖ 设关系模式R(U,F)属于1NF,对于R的每个函数依赖X→Y,若Y不属于X ,则X中必含有候选码,那么R属于BCNF。简单来说,就是比3NF更进一步
,所有的属性包括主属性和非主属性都不能传递依赖于候选码。 ❖ 如果一个关系数据库中的所有关系模式都属于BCNF,那么在函数依赖范
属性。 ❖ 在任何一个关系数据库系统中,1NF是最起码的要求,不满
足1NF的数据库就不能称作关系数据库。
2020年4月15日
北京电子科技学院计算机系 张克君
4.4.2 第二范式(2NF)
虽然关系模式示例SLC满足1NF能称其为关系数据库了,但是会存在上述的种种问题 。 将SLC分解成如下几个关系模式。 (1)SC(Sno,Cno,Result) 主码为Sno、Cno。 函数依赖关系为:Sno、Cno决定Result。 (2)SL(Sno,Sdepartment,Slocation) 主码为Sno。 函数依赖关系为:Sno决定Sdepartment,Slocation;Sdepartment决定Slocation。 上述(1)的问题有所解决,是因为取消了关系模式中的部分函数依赖关系。 2NF的定义如下。 若关系模式R∈1NF,并且每一个非主属性都完全依赖于R的码,则R∈2NF。
2020年4月15日
数据库原理 第4章 关系数据库设计理论PPT课件
完全函数依赖: X→Y,并且对于X的任何一个真子集X‘,都 有X‘→Y,记为:
X →f Y
(SNO, CNO) f SCORE
部分函数依赖:
X →p Y
(SNO, CNO)p AGE
16
传递函数依赖: X→Y,但是Y→X,而Y→Z,则Z对X传递函 数依赖,记为:
X →t Z
SNO DEPT, DEPT SNO, DEPT MN, 则:SNO t MN
一个系有多个学生,一个学生只属于一个系; 一个系只有一个系主任,一个人可兼任多个系的主任; 一个学缺生点可1选:多冗门余课,,表一中门很课多可列被要多重个复学很生多选次; 每个学生选每门课时,都有一个分数;
SNO S1 S1 S2 S2 S2
SN 赵红 赵红 王小明 王小明 王小明
AGE 20 20 17 17 17
关系数据库模式设计的是否合理,将直接决定整个系统的运 行效率; 为此,设计பைடு நூலகம்一整套“关系数据库规范化理论”,来指导关 系数据库模式上的设计;
3
关系数据库的规范化理论主要包含以下内容: 函数依赖:核心地位,是模式分解和模式设计的基础; 范式:模式分解的标准; 模式设计;
4
举例:要求设计学生-课程数据库。不好的关系模式 SDC( SNO, SN, AGE, DEPT, MN, CNO, SCORE)。其中:
1.规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,...
1.规范化理论是关系数据库进行逻辑设计的理论依据,根据这个
理论,...
第一篇:1.规范化理论是关系数据库进行逻辑设计的理论依据,根据这
个理论,...
1.规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每一个属性都是()。
A.长度不变的
B.不可分解的
C.互相关联的
D.互不相关的2.已知关系模式R(A,B,C,D,E)及其上的函数依赖集合F={A→D,→C,E→A },该关系模式的候选码是()。
A.AB
B.BE
C.CD
D.DE
3.关系模式中,满足2NF的模式()。
A.可能是1NF
B.必定是1NF
C.必定是3NF
D.必定是BCNF
4.消除了部分函数依赖的1NF的关系模式,必定是()。
A.1NF
B.2NF
C.3NF
D.BCNFB
5.关系模式的候选码可以有1个或多个,而主码有()。
A.多个
B.0个
C.1个
D.1个或多个
6.候选码的属性可以有()。
A.多个
B.0个
C.1个
D.1个或多个
7.关系数据库规范化是为了解决关系数据库中()的问题而引入的。
A.提高查询速度
B.插入、删除异常和数据冗余
C.保证数据的安全性和完整性
D.8.学生表(id,name,sex,age,depart_id,depart_name),存在的函数依赖是id→{name,sex,age,depart_id};
dept_id→dept_name,其满足()。
A.1NF
B.2NF
C.3NF
D.BCNF
9.设有关系模式R(A,B,C,D),其数据依赖集:F={(A,B)→C,C→D},则关系模式R的规范化程度最高达到()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关系数据库规范化理论
一。问题的提出
现实工作中,如何将工作中的一组数据存储到计算机数据库中,如何对存储在数据库的数据能方便进行快捷的操作,这就是所谓的数据逻辑结构问题。这也是数据库管理中一个非常重要的问题
1。关系模式存在的问题
假设学生管理中有关系为:
SDUENT(学号,姓名,性别,出生年月,系名,课号,课名,成绩,学时)
(sno,sname,ssex,symd,depart,cno,cname,degree,Ctime)
001 王一 男 1990-11-12 计算机 K01 数学 90 80
001 王一 男 1990-11-12 计算机 K02 物理 90 80
001 王一 男 1990-11-12 计算机 K03 化学 90 70
001 王一 男 1990-11-12 计算机 K04 英语 90 100
001.....
002 王二 男 1990-11-12 计算机 K01 数学 90 80
002 王二 男 1990-11-12 计算机 K02 物理 90 80
002 王二 男 1990-11-12 计算机 K03 化学 90 70
002 王二 男 1990-11-12 计算机 K04 英语 90 100
002
....
分析此关系,会造成如下问题存在:
1)数据的冗余度(SNO,SNAME,SSEX,CNO,CNAME)
2)数据的不一致(修改CNAME可能造成数据不一致)
3)数据插入异常(有一门新课,如何保存课程信息)
4)数据删除异常(将一门课删除,这门课的信息一起删除)
分析结论:
此表问题多,不是一张好的关系模式,即不规范。
不规范的原因在于:数据之间存在数据依赖关系有关
2。学生表中数据之间的依赖关系分析
函数依赖:指关系表中属性之间存存的一定依赖关系。
学号决定(姓名,性别,出生年月,系名)
即当学号确定后,姓名,性别,出生年月,系名就唯一确定了。
换句话:学生表中不可能出现,学号相同且姓名不同的现象存在。
课号决定(课名,学时)
学号+课号决定(成绩)
记作: SNO-->SNAME,SSEX,SYMD,DEPART
CNO-->CNAME,CTIME
SNO,CNO-->DEGREE
正是以上的数据依赖关系,存在于一张关系表中,所以造成众多问题.
3.问题的解决:折分不规范表
R1(学号,姓名,性别,出生年月,系名)
R2(学号,课号,成绩)
R3(课号,课名,学时)
分析分解后的关系,是否解决以上问题。
冗余多基本解决
不一致基本解决
插入异常解决
删除异常解决
理论上问题
如何从将SDUENT关系进行分解,理论上依据是什么?
二. 函数依赖
1. 函数依赖定义:
定义1--函数依赖:在R(U)关系中,如果Y属性值依赖于X属性值,则称Y函数依赖于X.
记作:X->Y
例:关系模式(学号,姓名,性别...)
表中不存在着学号相同,而姓名不同的现象,(即学号是主码), 则学号唯一
决定了姓名,它们之间存在着函数依赖关系.
记为: 学号-->姓名
同理:学号-->性别
学号-->出生年月
定义2--平凡函数依赖:在R(X,Y)关系中,如果已有X->Y,且Y又是X中的一个子属性,则称X与Y的函数依赖为平凡函数依赖。
记作 Y∈X
例: 关系模式(学号,姓名,性别,课号,成绩)
(学号,课号)--学号
(学号,课号)--课号
且,学号是主码(学号,课号)中的一个子集,则称学号平凡孙数依赖于主码(学号,课号)
定义3--完全函数依赖: 在关系模式R(U)中,如果X->Y,且对于X中的任何一个子集X',都有X'≠>Y,则Y对X完全函数依赖.
记为: X_f_>Y
例: 在上表中,有(学号,课号)-->成绩,且学号≠成绩,课号≠成绩,成绩只能依赖于学号和课号,即不可能有学号和课号相同,而成绩不同的现象,故成绩完全依赖于(学号,课号).
记为:(学号,课号)_f_>成绩
定义4--部分函数依赖: 在关系模式R(U)中,如果X-->Y,但Y不是完全依赖于X,则称Y部分函数依赖于X.
记为:X_P_Y
例: 在上表中,有(学号,课号)-p->姓名,但姓名只是依赖于学号与课号中的学号,则此依赖为部份函数依赖。
记为(学号,课号)_p_>姓名。
定义5--传递函数依赖: 在关系模式R(U)中,如果X-->Y,且Y≮X,而Y-->z,则称z传递依赖于X.
记为: X_t_>z
例:
关系模式(学号,姓名,性别,系号,系名)
有(学号)-->系号,且系号不能决定学号,而(系号)-->系名
则: 系名传递函数依赖于学号
记为: 学号-t-系名
三。属性之间关系所存在的函数依赖
1。属性之间:1对1关系---存在函数依赖关系
2。属性之间:1对M关系--存在函数关系
3。属性之间:M对N关系---不存在函数依赖关系
例:关系(学号,姓名,性别,系号,系名,班号,宿舍区号)
关系主码:学号
函数依赖:
(学号)->姓名
(学号)->性别
(学号)->班号,
(学号)->系号
(系号)->系名,(系号)->宿舍区号
(学号)-T-系号
(学号)-T-宿舍区号
R1(学号,姓名,性别,班号,系号)
R2(系号,系名,宿舍区号)
四。公理
从函数依赖的一套推理规则。由ARMSTRONG提出,即ARMSTRONG公理
公理1:自反律--如果B->A,则A->B
公理2:增广律--如果A->B,则AC->BC
公理3:传递律--如果A->B,且B->C,则A->C
由上面公理得到推论
推论1:自合规则--A->A
推论2:分解规则--如果A->BC,则A->B,A->C
推论3:合并规则--如果A->B,A->C,则 A->BC
推论4:复合规则--如果A->B,C->D,则 AC->BD
范例:设有关系模式R,有A,B,C,D,E,F
是它的属性集中的子集,R满足下列函数依赖:
F={A->BC,CD->EF},证明:函数依赖AD->F成立。
证明:
1)A->BC 给定
2)A->C 分解规则
3)AD->CD 增广律
4)CD->EF 给定
5)AD->EF 传递律(由第3,4得)
6)AD->F 分解规则
五.范式及规范化
1.什么叫范式及范式分析
1)所谓范式:满足一定的约束条件的关系式。
2)范式分析:将一个存在有数据冗余、插入异常、删除异常问题的关系模式,分解为多个关系模式的过程,称为“范式分析”,或叫范式规范化.
3)分解原则:分解后的若干关系,经连接运算后仍能恢复原关系的所有信息及函数依赖关系。
2. 范式的判定条件及规范化
1) 第一范式 (first normal form,简记为1NF)
定义:如果关系模式R中的每个属性A的值域都是不可分的原子项,那么称R是第一范式。
说明:满足1NF的关系称为规范化的关系,否则称为非规范化的关系。
关系数据库研究的关系都是规范化的关系
规范化:如果一个非规范化的关系,依次检查每个属性的取值,如果是组合情况,即不是最小单位,就进行属性值的最小化拆分,分解不可再分的原子项即可。
2。第二范式 2NF
定义:如果一个关系模式R是1NF,且每个非主属性完全函数依赖于主码,那么称R是第二范式(2NF)的模式。
规范化:通过消除关系中非主属性对主码的部分依赖成分,使之满足2NF。
无损分解:即分解原关系为2NF后,不应丢失原来的信息,即分解后的若干关系,经连接运算后仍能恢复原关系的所有信息。
例: 有关系:(学号,姓名,性别,课号,成绩)
范式分析:首先:关系表1NF范式
关系主码为:(学号,课号)
函数依赖为:
(学号,课号)_p__(姓名) ,
(学号)->(姓名)
(学号,课号)_p__(性别) ,
(学号)->(性别)
(学号,课号)_f___(成绩)
故关系模式不是2NF
投影分解:R1(学号,姓名,性别)
R2(学号,课号,成绩)
新关系函数依赖分析:
R1:主码:学号
依赖:学号-F->姓名,学号-F->性别
R2: 主码: 学号+课号-F->成绩
3。第三范式 3NF
定义:如果关系模式R是2NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。
或:R关系中的每个非主属性既不部分依赖于主码,也不传递依赖于主码,这样的R关系称为第三范式。
例:表(学号,姓名,性别,出生年月)---1NF,2NF,3NF
分析: 主码:学号
平坦结构:1NF
(学号)-f->(姓名)
(学号)-f->(性别)
(学号)-f->(出生年月)
故:此表为1NF,2NF,3NF
例:表(教师号,姓名,性别,系号,系名,系电话)
分析:主码: 教师号
平坦结构: 1NF
函数依赖:
(教师号)-F->(姓名)
(教师号)-F->(性别)
(教师号)-F->(系号)
(系号)->(系名)
(系号)->(系电话)
(教师号)-T->(系名)
(教师号)-T->(系电话)
故表是2NF,但不是3NF
无损分解: R1(学号,姓名,性别,系号)
R2(系号,系名,系电话)
4。BC范式 (BCNF) 扩充第三范式
定义:在关系模式R(U)中,如果所有非平凡的、完全的函数依赖的决定因素是码,则这个关系为BCNF范式。
定义: 在关系模式R(U)中,如果对于R中的每个函数依赖X->Y,若Y不属于X,则X必含有候选码,则R称为BCNF.
记为:R∈BCNF
BC范式必定是第三范式。
推论: 如果一个关系R为BCNF,则有以下要求:
1. 所有非主属性对每一个码都是完成函数依赖
2. 所有主属性对于每一个不包含它的码,也是完全函数依赖.
3. 没有任何属性完全函数依赖于非码的其他属性.
例: 关系(学号,姓名,性别,年龄)
语义:
候选码: 学号(主码,主属性)
分析: 1.所有非主属性(姓名,性别,年龄)完成依赖于学号.
2.只有一个主属性
3.所有非主属性之间不存在相互完全函数依赖
结论: 关系为1NF,2NF,3NF,BCNF
例: 关系(学生S,课程C,名次P)
语义:每一学生,可选修不同课程,且有一名次
每门课程中每一名次只有一个学生(没有并列名次)
依赖:(S,C)->P
(C, P)->S
候选码: (S,C)和(C,P)
分析: 主码任意取等候码中一个,非主属性完全依赖于主码,
并没有非主属性与主码之间的传递关系,除(S,C)(C,P)
外没有其他决定因素.
结论: 关系为BCNF
例: 关系(学生S,教师T,课程C)
语义:每一教师只教一门课,每门课可由多个教师教,每一学生可选修某门课程,对应一个固定教师
依赖:(S,C)->T
(S,T)->C
(T)->C
候选码: (S,C)和(S,T)
分析1: 主码任意取等候码中一个,非主属性完全依赖于主码
则表是3NF.
分析2 T->C,这里T是决定因素,但T不包含码,则表不是BCNF
分解STC关系:
R1(S,T)
R2(T,J)
例: 关系(街道名S,城市名C,邮政编号Z)
语义:
依赖: (S,C)->Z
(Z,S)->C
Z->C
候选码: (S+C), (Z,S)
分析1: 表中所有属性都属于候选码,且不存存非主属性,也没有相互传递依赖关系,故表为3NF,但它不是BCNF.
分析2: 表中存在z->C,Z是决定因素,但Z不包含码,所以关系(SCZ)不是BCNF.
分解关系:
R1(Z,C)
R2(S,Z)
范例:关系(学生,课号,课名,教师)---2NF,非3NF,非BC范式
学号 姓名 课号 课程 教师
0001 王刚 K01 C++ 王强
0002 刘洪 K02 VB 刘强
0003 张红 K03 JAVA 张梅
................
分析:学号-->姓名
学号-->课号
课号-->老师
学号_t_>教师
以上有传递依赖的关系,故该不是第三范式,也非BC范式
分解:R1(学号,姓名,课程)
R2(课程,老师)
说明:分解后的二个关系中的函数依赖达到定义中的要求,故是BC范式
范例:学生(学号,姓名,性别,课号,课名,成绩)---1NF,非2NF
范式分析:学生关系中主码为:(学号,课号)
(学号,课号)_p__(姓名) 非完全函数依赖
(学号,课号)_p__(性别) 非完全函数依赖
(学号,课号)_p___(课名) 非完全函数依赖
(学号,课号)_f___(成绩) 完全函函数依赖
分析结果: 关系表中不是所有非主属性都是完全函数依赖主码,故不是BC范式
投影分解:R1(学号,姓名,性别)
R2(学号,课号,成绩)
R3(课号,成绩)
分解结果分析:R1,R2,R3关系中所有非主属性都完全函数依赖主码,故三个关系都是BC范式。
4。4 关系模式的分解
关系模式规范化:将一个存在有数据冗余、插入异常、删除异常问题的关系模式,分解为多个关系模式(范式)的过程,称为“范式分析”,或叫范式规范化
规范化原则:分解过程必须是无损分解:即分解后的若干关系,经连接运算后仍能恢复原关系的所有信息及函数依赖关系。(分解后的关系模式信息没有丢失,且数据间语义联系必须存在)
一。无损分解
1。无损分解定义:原关系模式下任一舍法的关系值在分解后应能通过自然连接运算恢复起来。
2。无损分解的充要条件:R1 R2--(R1-R2) 或 R1 R2--(R1-R2)
二。无损分解的测试方法 (难点)
三。保持函数依赖的分解
思考
1。设有如下的关系模式R:
课程名 教师名 教师地址
C1 王刚 D1
C2 刘强 D1
C3 马列 D3
C4 王刚 D1
A D E
a1 d
1 e2
a2 d6 e2
a3 d4 e3
1)列出它的所有候选码 :课程名
2)列出它的函数依赖关系:F=(课程名--教师名,教师名--教师地址,课程名_t__教师地址)
3)它当前属于第几范式?:根据函数依赖关系,它属于:2NF
1)列出它的所有候选码 :A,D
2)列出它的函数依赖关系:F=(A--D,A--E,D--A,D--E,A_f_D,A_f_E,D_f_A,D_f_E)
3)它当前属于第几范式?:根据函数依赖关系,它属于:BC
2。设有如下的关系模式R:
工程号 材料号 数量 开工日期 完工日期 价格
P1 I1 4 9805 9902 250
P1 I2 6 9805 9902 300
P1 I5 15 9805 9902 180
P2 I1 6 9811 9912 250
P2 I4 18 9811 9912 350
1)它当前为第几范式?1NF
2)它当前是否存在操作异常?冗余现象、修改异常、删除异常
在什么情况下发生异常?新增材料时日期数据会冗余,修改日期时可能会产生数据不一致,删除某工程号时可能将某一材料信息一同删除。
3)将它分解为更高级范式(1NF,2NF,3NF)
3。设有关系框架R(),R关系中的函数相关性集合F=(),当R关系分解为P()后,证明R的分解是否为无损分解?