590 likes | 749 Views
第 4 章 关系数据库基本概念. 本 章 要 点. 基 本 概 念. 函 数 依 赖. 候选关键字与主属性. 关 系 规 范 化. 函数依赖理论. 退 出. 学习目标. 掌握函数的依赖关系(完全函数依赖、部分函数依赖和传递函数依赖) 候选关键字,关键字和主属性的基本定义 关系规范化的理论,掌握范式的基本概念和分解方法. 关系数据库基本概念. 关系数据库 : 按关系数据模型组织的数据库。 关系模式 : 关系名及其属性序列 , 也称为关系的型。
E N D
本 章 要 点 基 本 概 念 函 数 依 赖 候选关键字与主属性 关 系 规 范 化 函数依赖理论 退 出
学习目标 • 掌握函数的依赖关系(完全函数依赖、部分函数依赖和传递函数依赖) • 候选关键字,关键字和主属性的基本定义 • 关系规范化的理论,掌握范式的基本概念和分解方法
关系数据库基本概念 关系数据库:按关系数据模型组织的数据库。 关系模式:关系名及其属性序列,也称为关系的型。 域:是一组具有相同数据类型的值的集合。 笛卡尔积:各域各取一值的完全组合称为这些域的笛卡尔积。 域D1和域D2的笛卡尔积是一个表,其属性为原D1域和D2域所有属性的集合,其行数为D1域值的个数和D2域值个数的乘积,每一行由D1和D2各取一值组成,所有各行均不重复。
如果给定一组域D1,D2,…D n 则D1 ╳ D2 ╳…….╳Dn ={(d1,d2,…dn)︱di∈Di,I=1,2,…n} 其中每一个元素(d1,d2,…dn)叫做一个N元元组,或简称为元组。 元素中的每一个值叫作元组的一个分量,也是它所对应实体或联系的那个属性的一个值。
基数:域中数值(元素)的个数。 笛卡尔积的基数:构成该积所有域的基数累乘积, 称为这些域的笛卡尔积。 笛卡尔积的目数:元组中每个分量的列数
例:设有D1、D2二个域,求D1×D2。已知: D1={(X1,Y1),(X2,Y2),(X3,Y3)} D2={(M1,W1,Z1),(M2,W2,Z2)} 则:D1×D2={(X1,Y1,M1,W1,Z1),(X1,Y1,M2,W2,Z2), (X2,Y2,M1,W1,Z1),(X2,Y2,M2,W2,Z2),(X3,Y3,M1,W1,Z1),(X3,Y3,M2,W2,Z2)} D1×D2的基数=3×2=6,目数=2+3=5
又例如:D1={(X1,Y1),(X2,Y2),(X3,Y3)} D3={P1,P2,P3} 则:D1×D3={(X1,Y1,P1),(X1,Y1,P2), (X1,Y1,P3),(X2,Y2,P1),(X2,Y2,P2),(X2,Y2,P3),(X3,Y3,P1),(X3,Y3,P2),(X3,Y3,P3)} D1×D3的基数=3×3=9,目数=2+1=3
多个属性构成的关系是这些属性所属域的笛卡尔积的子集。一般说来只有其真子集才有意义。多个属性构成的关系是这些属性所属域的笛卡尔积的子集。一般说来只有其真子集才有意义。 图3.1的C关系中只有一半元组是有意义的。
关系数据库基本概念____课堂练习 思考题:设有两个域,名为D1和D2。 D1={A,B,C,D,E}是5个大写英文字母集合; D2={65,66,67,68,69}是5个大写英文字母对应的ASCII码集合; 请列出笛卡儿积D1╳D2对应的二维表。
所有关系模式的集合(包括关系名,属性名,关键字,完整性约束和安全性要求)称为关系数据库模式,它表示一个关系数据库的逻辑结构。所有关系模式的集合(包括关系名,属性名,关键字,完整性约束和安全性要求)称为关系数据库模式,它表示一个关系数据库的逻辑结构。 关系数据库模式中所有关系模式的具体关系的集合称关系数据库。 关系数据库模式是数据的型的表示,而关系数据库则是数据的值的表示。
数据库中的关系应具备如下性质: • 每一列中的分量来自于同一个域,是同一类型的数据。 • 不同的列可来自于同一个域,每一列称为属性,要给予不同的属性名。 • 列的顺序的改变不改变关系。 • 在一个关系中任意两个元组不能全同。 • 元组次序可以任意交换而不改变关系。 • 每一分量必须是不可再分的数据项,即具有原子性。 R
4.2 函数依赖 一、函数依赖概念 关系理论中函数依赖是指关系中属性间的对应关系。 如关系中对于属性(组)X的每一个值,属性(组)Y只有唯一的值与之对应,则称Y函数依赖于X,或称X函数决定Y。记作X→Y ,否则,如果X不能函数决定Y,记作X→Y。若X→Y,Y→X,则记作X Y。
例如第1章中表1.3所示“系” 关系中: 系代码→系名,系代码→系地址, 系代码→系电话,系代码→系专业设置 如果系名值是惟一的,即各系名均不相同,那么还有函数依赖集: 系名→系代码,系名→系地址,系名→系电话,系名→系专业设置
思考 A B A B
决定因素可能为两个以上属性构成的属性组。 在一个关系中,如果一个属性(组)值不唯一,则这个属性(组)与任何属性(组)的函数依赖关系中,它都不是决定因素。
说 明 1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。(函数依赖关系的存在与时间无关 ) 2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖,而不能按照其形式化定义来证明一个函数依赖是否成立。 例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立
3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。
4 .函数依赖与属性间的联系类型有关 ① 在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖X→Y,Y→X,即X ←→ Y。 例如,当员工没有重名时,Eno ←→ Ename。 ② 如果属性X与Y有m:1的联系时,则只存在函数依赖X→Y。例如, Eno与Eage , Dname之间均为m:1联系,所以有Eno → Eage , Eno → Dname 。 ③ 如果属性X与Y有m:n的联系时,则X与Y之间不存在任何函数依赖关系。例如,一个员工可以参与多个工程,一个工程可以为多个员工参与,所以Eno与Pno之间不存在函数依赖关系。 5.函数依赖可以保证关系分解的无损连接性
图3.2 部分函数依赖示意 二、部分函数依赖 若X,Y为关系R中的属性(组),如X→Y且X中存在真子集X’(X’≠X∧X’∈X),满足X’→Y,则称Y部分函数依赖于X,记作
三、完全函数依赖 如X,Y是关系R中属性(组),X→Y且对于X的任何真子集X’(X’≠X∧X’∈X),都有 X’ Y,则称Y 完全函数依赖于X,记作X → Y
四、传递函数依赖 一般说来,如X、Y为关系R中属性(组)(Y∈X)有X→Y,Y X但Y → Z ,则称Z传递函数依赖于X,记作X Z 。
以上关系中,课程名→职工号、职工号 课程名,但职工号→老师名、职工号→性别,则有: 课程名 性别;课程名 老师名。
4.3 候选关键字与主属性 • 一、候选关键字 • 在关系R中如记录完全函数依赖于属性(组)X,则称X为关系R中的一个候选关键字。它具有如下性质: • 在一个关系中,候选关键字可以有多个。 • 任何两个候选关键字值都是不相同的,因为若有两条记录的候选关键字值相同,它和记录的关系就不是决定因素。
关键字可能由一个属性构成,也可能由多个属性构成。关键字不可能再与其他的属性构成新的候选关键字。关键字可能由一个属性构成,也可能由多个属性构成。关键字不可能再与其他的属性构成新的候选关键字。
在任何关系中至少有一个关键字。 根据关系的基本要求,在一个关系中任何二个元组不全同。因而在一个N元关系中,如果: • 单个属性都不是关键字 • 任何两个属性的属性组也不是关键字 • 任何K (K<N)个属性的属性组都不是关键字 则该关系全部属性构成的属性组是其关键字。
二、主属性 在一个关系中,如一个属性是构成某一个候选关键字的属性集中的一个属性,则称它为主属性。 如一个属性不是构成该关系任何一个候选关键字的属性集的成员,就称它为非主属性。
4.4 关系规范化 一、问题的提出 数据冗余:是指同一数据在多个不同的地方存放。 数据冗余不仅导致数据量的增加,使系统处理速度变慢,效率降低,而且易发生错误,影响全系统的性能。
操作异常包括插入操作异常和删除操作异常两类。操作异常包括插入操作异常和删除操作异常两类。 • 插入操作异常指欲录入的数据因缺少关键字或关键字数据不完整而不能被录入的现象。 • 删除操作异常指不应当被删除的数据因部分主属性删除而被删除的现象。
操作异常与数据冗余通常是相伴而生的,因此可通过检查数据冗余来发现是否存在操作异常的可能。操作异常与数据冗余通常是相伴而生的,因此可通过检查数据冗余来发现是否存在操作异常的可能。
关系规范化:将一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。关系规范化:将一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。
二、范式 范式来自英文 Normal form,简称NF,是符合某个级别的关系模式的集合。 关系数据库中的关系必须满足最低的关系要求 满足不同程度要求的为不同范式。 目前主要有六种范式:1NF、2NF、3NF、BCNF、4NF、5NF。 满足最低要求的称第一范式,简称为1NF。
1、第一范式(1NF) 任给关系R,如果R中每个列与行的交点处的取值都是不可再分的基本元素,则R达到第一范式,简称1NF,记为R∈1NF。 根据关系的基本性质可见,符合关系基本性质的关系均达到第一范式。
例如:将人事卡片关系分解为三个关系,从而达到第一范式。例如:将人事卡片关系分解为三个关系,从而达到第一范式。
2、第二范式(2NF) 如果一个关系达到第一范式,且不存在任何非主属性对候选关键字的部分函数依赖,则称此关系达到第二范式,简称2NF,记为 R∈2NF。 或者表示为如果一个关系达到第一范式,且不存在非主属性对构成候选关键字的部分主属性的完全函数依赖,则该关系达到第二范式。 R
关系从1NF优化到2NF的方法是: 将有关非主属性与其完全函数依赖的那些部分主属性分解建立新的关系。
图3.3 不到第二范式的关系示意 在如图3.3 示意图中,关系即使达到第一范式,也未达到第二范式。 分解的方法是:将p3、p4、p6等函数依赖于k3的非主属性抽出来,加上k3组合成新的关系,k3是其关键字;剩余非主属性、主属性包括k3维持原有各关系不变。
3、第三范式(3NF) 如果一个关系达到第二范式且不存在非主属性对候选关键字的传递函数依赖,则称为达到第三范式,简称3NF。 3NF还可表述为:如果一个关系达到第二范式且不存在非主属性对非主属性的完全函数依赖,则称之达到第三范式。
关系从2NF优化到3NF的方法是: 将对关键字存在传递函数依赖的那些属性与其完全函数依赖的非主属性分解出来建立新的关系,而它们所依赖的那个非主属性作为关联属性要存在于原关系中。
图3.5 不到BCNF的关系示意 • 4.BCNF • 如果一个关系中每个决定因素都是关键字,则该关系达到BCNF。
分解的方法是: • 将k4等函数依赖于k3的主属性抽出来, • 加上k3组合成新的关系,k3是其关键字; • 剩余主属性包括k3维持原有各关系不变。
表3.9 不到BCNF的关系实例 可分解为:
四、关系分解的正确性 • 关系分解的方案是多样的,但要注意保证分解的正确性,即:要保证分解后所形成的关系与原关系等价。 • 分解的等价性是指: • 分解的无损连接性 • 保持函数依赖性
无损连接性是指通过对分解后形成关系的某种连接运算能使之还原到分解前的关系。无损连接性是指通过对分解后形成关系的某种连接运算能使之还原到分解前的关系。 • 保持函数依赖性是指分解过程中不能丢失或破坏原有关系的函数依赖关系。