chapter4 关系数据库的规范化设计
关系数据库设计与数据模型规范化

关系数据库设计与数据模型规范化一、关系数据库设计关系数据库是计算机领域中最为常见的一种数据库类型。
其最大的优点在于能够将数据组织成易于理解和使用的表格形式。
在实际数据处理过程中,如何设计符合需求的关系数据库,就显得尤为重要。
1.需求分析在进行关系数据库设计之前,首先需要进行需求分析。
需求分析是数据库设计的前置条件。
在需求分析的阶段中,需要明确以下几点:(1)目标:明确数据处理的目标和应用范围,为之后的数据库设计打基础。
(2)分类:对数据分类进行划分,避免数据冗余。
(3)结构:建立明确的数据结构,便于数据管理和数据维护。
2.数据模型设计在确定了需求分析后,需要选择合适的数据模型来设计关系数据库。
目前常用的模型包括ER模型和UML模型。
(1)ER模型ER模型是实体关系模型(Entity-Relations),用于描述现实世界中的实体和实体之间的关系。
但是ER模型较为简略,无法完全描述企业组织的复杂业务。
(2)UML模型UML(Unified Modeling Language, 统一建模语言)是由Rational Software从其原有的语言发展而来,也是一个面向对象的系统建模语言。
UML可以完全描述在业务领域中的实体、角色、流程、组织、行业标准、应用程序、计算机设备和网络等事物,并对它们之间的关系进行规范化处理。
3.关系数据库设计在确定了数据模型后,需要按照模型的规范进行关系数据库的设计。
(1)确定实体之间的关系,确定实体之间的主键和外键。
(2)每个实体需有一个表来存储其中的数据。
每个表应该只包含一个主题,表的内容不应该受到单个操作的影响。
(3)确定数据类型,遵循数据类型的规范。
(4)减少冗余,使表格的设计更为完善。
二、数据模型规范化数据模型规范化是指通过一定的方法对数据模型进行检验和优化,以避免数据冗余、不一致和失误等问题,提高数据的有效性和可信性。
其主要目的是将数据冗余减至最小,维护数据库稳定性。
数据库关系模式的规范化

4.2 关系模式的函数依赖
4.2.1 再论关系与关系模式 4.2.2 函数依赖的一般概念
4.2.3 候选键与主键
4.2.4 函数依赖的推理规则
4.2.1 再论关系与关系模式
关系:元组的集合,笛卡尔积的一个子集,其实 质是一张二维表,表的每一行为一个元组。 关系模式:对元组中数据组织方式的结构性描述, 其实质是删去所有元组后的空表格。 关系与关系模式的联系:关系模式是相对稳定的、 静态的,而关系却是动态变化的,不稳定的,且 关系的每一次变化结果,都是关系模式对应的一 个新的具体关系。 注意:关系模式R(U)对应的具体关系通常用小写 字母r来表示。
20010601
20010601 … 20010601
刘林
刘林 刘林
Math
Math … Math
朱红
朱红 朱红
英语
高等数学 … 数学分析
88
84 90
4.1.1 关系模式可能存在的异常(2)
StudyInfo这个关系存在的几个异常问题: ⑴ 插入异常。比如一个刚刚成立的系,但尚未招收 学生,则因属性Sno为空,导致诸如系主任姓名之 类的信息无法存入数据库;同样,没被学生选修 的课程信息也无法存入数据库。 ⑵ 删除异常 。如一个系的学生毕业了,删除学生记 录时不情愿地将系主任姓名等信息也一起删除了。 ⑶ 冗余过多。如一个系的系名、系主任姓名都要与 该系学生每门课的成绩出现的次数一样多。既浪 费存储空间又要付出很大的代价来维护数据库的 完整性。当系主任更换后,必须逐一修改该系学 生选修课程的每一个元组。
4.2.2 函数依赖的一般概念(4)
表4.6 关系r1
Sname 张华 Sex 女 Birthday 1976.08.08 Phone 88547566
关系数据库的规范化理论与数据库设计

关系数据库的规范化理论与数据库设计在当今数字化的时代,数据成为了企业和组织的重要资产,而关系数据库作为存储和管理数据的重要手段,其设计的合理性直接影响着数据的质量、完整性和可用性。
关系数据库的规范化理论是指导数据库设计的重要原则,它能够帮助我们避免数据冗余、更新异常等问题,从而提高数据库的性能和可靠性。
首先,我们来了解一下关系数据库的基本概念。
关系数据库是由一组二维表组成的,每张表都有一个唯一的表名,表中的每一行称为一个元组,代表一个实体;每一列称为一个属性,代表实体的一个特征。
通过在不同的表之间建立关联,我们可以实现数据的查询和操作。
那么,什么是规范化理论呢?规范化理论是一种用于设计关系数据库的方法和原则,其目的是通过对关系模式进行分解和优化,消除数据冗余和更新异常,确保数据的一致性和完整性。
规范化理论主要包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。
第一范式要求表中的每个属性都是不可再分的原子值。
例如,如果有一个“联系人信息”表,其中包含“地址”这个属性,如果地址又分为“省”“市”“区”“详细地址”等子属性,那么就不满足第一范式,需要将其拆分成多个属性。
第二范式要求在满足第一范式的基础上,每个非主属性都完全依赖于主键。
举个例子,如果有一个“订单”表,主键是“订单号”,而“客户姓名”和“客户地址”等非主属性只依赖于“客户编号”,而不是“订单号”,那么就不满足第二范式,需要将其拆分成两个表,一个是“订单”表,一个是“客户”表。
第三范式要求在满足第二范式的基础上,每个非主属性都不传递依赖于主键。
比如说,有一个“员工”表,主键是“员工编号”,“部门名称”依赖于“部门编号”,而“部门编号”又依赖于“员工编号”,这就不满足第三范式,需要将“部门名称”这个属性移到“部门”表中。
规范化理论在数据库设计中具有重要的意义。
通过规范化设计,可以减少数据冗余,节省存储空间。
想象一下,如果一个客户的信息在多个表中重复存储,不仅浪费空间,而且当客户信息发生变化时,需要在多个地方进行更新,容易导致数据不一致。
关系数据库的规范化设计

第二范式
确保每个非主键列完全依赖于主键,消除非主键列之间的传递依赖。
第三范式
确保每个列只与键直接相关,消除非键列之间的传递依赖。
规范化设计的优点
1 数据一致性
通过消除数据冗余和重 复,确保数据库中的数 据一致性。
2 查询效率
通过优化数据结构,提 高查询性能,减少数据 操作的时间。
3 存储优化
通过合理的数据分解和 组织,减少数据存储空 间的占用。
规范化设计的挑战
复杂性
规范化设计需要考虑多个表之间的关系和依赖,增加了设计的复杂性。
性能折衷
规范化设计可能导致性能折衷,某些查询可能需要多个表的连接操作。
更新操作
规范化设计可能导致更新操作的复杂性,特别是在涉及多个表的更新操作时。
最佳实践和常见错误
最佳实践
• 了解业务需求和数据关系 • 谨慎添加冗余数据 • 使用正确的数据类型和约束
常见错误
• 拆分过分,导致过多的连接操作 • 忽略实际查询需求,导致性能问题 • 不正确地处理关联关系,导致数据不一致
总结和重点
1 规范化设计是优化关系数据库结ቤተ መጻሕፍቲ ባይዱ
构的重要技术
3 规范化设计有优点和挑战,需要
权衡设计决策
2 三个范式规则用于确保数据的一
致性和查询效率
4 遵循最佳实践并避免常见错误是
实现成功的关键
关系数据库的规范化设计
在关系数据库设计中,规范化是一种重要的技术,它的目标是优化数据库结 构以提高数据的存储效率和查询性能。
规范化设计的概念和目的
规范化设计是一种组织和优化数据库结构的过程,通过将数据分解成更小的关系表,消除数据冗余和不 一致,以提高数据存储和查询效率。
数据库课件第4章关系数据库(RDB)规范化设计理论

3. 完全函数依赖与部分函数依赖
完全函数依赖: 在关系模式R(U)中,如果X→Y,并且对于X的任何一 个真子集X′,都有X′ Y,则称Y完全函数依赖于X, 记作X f Y。 部分函数依赖: 若X→Y,但Y不完全函数依赖于X,则称Y部分函数依 p Y。 赖于X,记作X
例8: 学生(学号,姓名,所在系,系主任姓名,课程号,成绩) 学生关系模式存在的部分函数依赖: p (学号,课程号) 姓名 p 所在系 (学号,课程号) p (学号,课程号) 系主任姓名
教师姓 名
李林 78号
住址
课程号
C1
课程名
N1
李林
李林 汪佳 吴仪
78号
78号 59号 79号
C2
C3 C4 C5
N2
N3 N4 N5
师帆
76号
C6
N6
⑷当执行数据插入时,DB中的数据不能产生插入 异常现象 所谓“插入异常”是指希望插入的信息由于不 能满足数据完整性的某种要求而不能正常地被 插入到DB中的异常问题。 比如:上例中插入一个尚未安排授课的新进教师 信息. 原因: 因多种信息混合放在一个表中,可能造成因一 种信息被捆绑在其他信息上而产生的信息之间 相互依附存储的问题,使得信息不能独立插入。
第4章
关系数据库(RDB)规范化理论
4.1 关系模式规范化的必要性 4.2 数值依赖 4.3 范式与规范化 、关系分解原则
RDB规范化理论的目的是要设计“好的”RDB模式。要设计 好的关系模式,必须是关系满足一定的约束条件,此约束 形成了规范。 范式(Normal Form):衡量DB规范的层次或深度,DB规范化 层次由范式来决定。简记作NF. 根据关系模式满足的不同性质和规范化的程度,将关系模 式分为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、 BC范式、第四范式(4NF)、第五范式(5NF),范式越高规范 化程度越高。 规范化:低级关系模式通过模式分解转换为若干高级范式 的关系模式集合的过程。 规范化是在RDB中减少数据冗余的过程。
关系数据库规范化理论

第4章关系数据库规范化理论数据库设计的一个最基本的问题是怎样建立一个合理的数据库模式,使数据库系统无论是在数据存储方面,还是在数据操作方面都具有较好的性能。
什么样的模型是合理的模型,什么样的模型是不合理的模型,应该通过什么标准去鉴别和采取什么方法来改进,这是在进行数据库设计之前必须明确的问题。
为使数据库设计合理可靠、简单实用,长期以来,形成了关系数据库设计理论,即规范化理论。
它是根据现实世界存在的数据依赖而进行的关系模式的规范化处理,从而得到一个合理的数据库设计效果。
本章首先说明关系规范化的作用,接着引入函数依赖和范式等基本概念,然后介绍关系模式等价性判定和模式分解的方法,最后简要介绍两种数据依赖的概念。
4.1 关系规范化的作用4.1.1问题的提出从前面的有关章节可知,关系是一张二维表,它是涉及属性的笛卡尔积的一个子集。
从笛卡尔积中选取哪些元组构成该关系,通常是由现实世界赋予该关系的元组语义来确定的。
元组语义实质上是一个n目谓词(n是属性集中属性的个数)。
使该n目谓词为真的笛卡尔积中的元素(或者说凡符合元组语义的元素)的全体就构成了该关系。
但由上述关系所组成的数据库还存在某些问题。
为了说明的方便,我们先看一个实例。
【例4.1】设有一个关于教学管理的关系模式R(U),其中U由属性Sno、Sname、Ssex、Dname、Cname、Tname、Grade组成的属性集合,其中Sno的含义为学生学号,Sname为学生姓名,Ssex为学生性别,Dname为学生所在系别,Cname为学生所选的课程名称,Tname 为任课教师姓名,Grade为学生选修该门课程的成绩。
若将这些信息设计成一个关系,则关系模式为:教学(Sno,Sname,Ssex,Dname,Cname,Tname,Grade)选定此关系的主键为(Sno,Cname)。
由该关系的部分数据(如表4-1所示),我们不难看出,该关系存在着如下问题:1. 数据冗余(Data Redundancy)●每一个系名对该系的学生人数乘以每个学生选修的课程门数重复存储。
关系数据库的规范化设计
现实世界。 从形式上看,它由一组关系组成。 关系数据库的模式:定义这组关系的关系模式的全体。
2021/3/11
二、关系模式的形式化定义
关系模式由五部分组成,即它是一个五元组:
R(U, D, DOM, F)
R:
关系名
U: 组成该关系的属性名集合
D: 属性组U中属性所来自的域
DOM: 属性向域的映象集合 F: 属性间数据的依赖关系集合
2021/3/11
三、什么是数据依赖
1. 完整性约束的表现形式
限定属性取值范围:例如学生成绩必须在0-100之间 定义属性值间的相互关连:(主要体现于值的相等与否)
2. 数据依赖
数据依赖是通过一个关系中属性间值的相等与否体现 出来的数据间的相互关系。它是现实世界属性间相互 联系的抽象,是数据内在的性质,是语义的体现。它 是数据库模式设计的关键
⒋ 删除异常 不该删除的数据不得不删 例,如果某个系的学生全部毕业了, 我们在删除该系学 生信息的同时,把这个系及其系主任的信息也丢掉了。
2021/3/11
数据依赖对关系模式的影响(续)
结论:
• Student关系模式不是一个好的模式。 • “好”的模式: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少。
原因:由存在于模式中的某些数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适
的数据依赖。
2021/3/11
4.2 规范化
规范化理论正是用来改造关系模式, 通过分解关系模式来消除其中不合适 的数据依赖,以解决插入异常、删除 异常、更新异常和数据冗余问题。
2021/3/11
第4章规范化设计
4.1.2关系模式的冗余和异常问题
关系S
S# SNAME DNAME S1 成红 计算机 S3 李莎 电子 S9 赵强 计算机 AGE 20 19 21 C# C1 C2 C3 C4 C7
关系C
CNAME 计算机基础 C语言 电子学 数据结构 操作系统 CNO#
C1 C1 C2 C4
关系SC
S# S1 S1 S1 S3 S3 S9 C# C1 C2 C4 C2 C3 C7 SCORE 78 88 86 64 87 80
4.1.3关系模式的非形式化设计准则 4.1.4 本章的符号规定
大写字母(首部)A,B,C,…表示单个的属性。 大写字母(尾部) …,U,V,W,X,Y,Z 表示属性集。 大写字母R表示关系模式,小写字母r表示其关系。有时也 用属性名的组合表示关系模式。若模式有A、B、C共3个 属性,就用ABC表示关系模式。 属性集{A1,…,An}简写为A1…An。属性集X和Y的并集X∪Y 简写为XY。X ∪{A}简写成XA或AX。
S# SNAME S1 成红 S1 成红 S1 成红 S3 李莎 S3 李莎 S9 赵强
DNAME
AGE
C#
CNAME
CNO#
SCORE
计算机 计算机 计算机 电子 电子 计算机
20 20 20 19 19 21
C1 计算机基础 C2 C语言 C4 数据结构 C2 C语言 C3 电子学 C7 操作系统 C1 C2 C1 C1 C4
4.2.3 FD的推理规则
为了从已知的函数依赖推导出其他函数依赖,Armstrong提出 了一套推理规则,常称为Armstrong公理。 设U是关系模式R的属性集,F是R上成立的只涉及U中属性的 函数依赖集,具体包括3条推理规则。 (1) A1(自反性):若Y XU,则X→Y在R上成立。这是一个 平凡函数依赖。 (2) A2(增广性|扩展性): 若X→Y在R上成立,且ZU,则 XZ→YZ在R上成立。 (3) A3(传递性):若X→Y和Y→Z在R上成立,则X→Z在R上 成立。
第4章+关系数据库的规范化设计
4.3.2 无损分解(三)
❖ 定理4.6 设ρ={ R1,…,Rk }是关系模 式R旳一种分解,r是R旳任一关系,ri=πRi (r)(1≤i≤k),那么有下列性质:
❖ 定理4.5 FD推理规则{A1,A2,A3}是完备旳。4.7 假如关系模式R(U)上旳两个函数依赖集F和G, 有F+=G+,则称F和G是等价旳函数依赖集。
❖ 定义4.8 设F是属性集U上旳FD集。假如Fmin是F旳一种最 小依赖集,那么Fmin应满足下列四个条件: ⑴ F+min =F+; ⑵ 每个FD旳右边都是单属性; ⑶ Fmin中没有冗余旳FD(即F中不存在这么旳函数依赖 X→Y,使得F与F-{ X→Y }等价); ⑷ 每个FD旳左边没有冗余旳属性(即F中不存在这么旳函数 依赖X→Y,X有真子集W使得F-{ X→Y }∪{ W→Y } 与F等价)。
⊨XW→YZ。 (5) A8 { X→Y,W→Z }⊨X∪(W-Y)→YZ。
4.2.3 FD旳推理规则(三)
❖ 例4.5 已知关系模式R(ABC),F={ A→B, B→C },求F+。 根据FD旳推理规则,可推出F旳F+有43个FD。 譬如,据规则A1可推出A→φ(φ表达空属性集), A→A,…。据已知旳A→B及规则A2可推出 AC→BC,AB→B,A→AB,…。据已知条件及规 则A3可推出A→C等。作为习题,读者可自行推出 这43个FD。
4.2.3 FD旳推理规则(一)
❖ 设U是关系模式R旳属性集,F是R上成立旳只涉及 到U中属性旳函数依赖集。FD旳推理规则有下列三 条:
关系数据库的规范化设计
关系数据库的规范化设计在当今数字化的时代,数据成为了企业和组织的重要资产。
关系数据库作为一种常用的数据存储和管理方式,其设计的合理性直接影响到数据的准确性、完整性和可用性。
而关系数据库的规范化设计则是确保数据库设计质量的关键步骤。
那么,什么是关系数据库的规范化设计呢?简单来说,就是通过一系列的规则和方法,对数据库中的表、字段、关系等进行优化,以减少数据冗余、避免数据不一致和提高数据操作的效率。
为什么要进行规范化设计呢?想象一下,如果我们的数据库设计不合理,会出现什么样的问题。
比如说,一个员工信息表中,既包含了员工的基本信息,又包含了员工的工作经历、薪资等详细信息。
这样的设计就会导致数据冗余,因为同一个员工的基本信息可能会在多条记录中重复出现。
这不仅浪费了存储空间,还容易在数据更新时出现不一致的情况。
比如,当我们修改一个员工的基本信息时,如果不小心只修改了其中的一部分记录,就会导致数据的混乱。
规范化设计的一个重要原则是消除数据冗余。
通过将相关的数据分离到不同的表中,并通过适当的关系进行连接,可以有效地减少冗余。
例如,将员工的基本信息放在一个表中,工作经历放在另一个表中,通过员工编号进行关联。
另一个重要原则是确保数据的一致性。
比如,在一个订单表中,订单的总金额应该等于订单中各个商品的金额之和。
如果数据库设计不合理,可能会导致计算总金额时出现错误,从而影响业务的准确性。
规范化设计还可以提高数据操作的效率。
合理的表结构和关系可以使查询、插入、更新和删除等操作更加高效。
比如,如果一个表中的字段过多,会导致数据存储和检索的效率降低。
在关系数据库的规范化设计中,通常会提到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。
第一范式要求数据表中的每个字段都是不可再分的原子值。
比如说,一个“地址”字段不能同时包含省、市、区等信息,而应该将它们分别存储在不同的字段中。
第二范式要求数据表中的非主键字段完全依赖于主键。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库系统教程
第4章 关系数据库的规范化设计
17
4.2.3 FD的推理规则(四)
定义4.4 X→Y是一个“平凡的FD”,否则称为“非平 凡的FD”。 充分性: X→ A1…An⊨ X→Ai
(1) X→ A1…An (2) X→Ai [已知] [(1),A5(分解性)] 必要性: X→Ai ⊨ X→ A1…An (1) X→Ai [已知] 对于 FD X (2) X→X→Y A1…An,如果Y [(1) ,,那么称 A4(合并性)]
数据库系统教程 第4章 关系数据库的规范化设计
14
4.2.3 FD的推理规则(一)
设U是关系模式R的属性集,F是R上成立的只 涉及到U中属性的函数依赖集。FD的推理规 则有以下三条:
A1(自反性,Reflexivity):若YXU,则 X→Y在R上成立。 A2(增广性,Augmentation):若X→Y在R上成 立,且ZU,则XZ→YZ在R上成立。 A3(传递性,Transitivity):若X→Y和Y→Z在R 上成立,则X→Z在R上成立。
数据库系统教程
第4章 关系数据库的规范化设计
15
A1(自反性):若YXU,则X→Y在 R上成立。 4.2.3 FD的推理规则(二) A4的证明: (1) X→Y [已知 ] 上成立,且 A2(增广性):若 X→Y 在R A5的证明: (2) X X→ XY [(1) ,A2] ZU ,则 XZ→YZ 在 R 上成立。 (1) Z Y [ 已知 ] A6 的证明: 定理4.1 FD推理规则 A1、A2和A3是正确的。也就是,如果 X→Y (3) X→Z [ 已知 ] A7 +中。 (2) 的证明: Y→Z [(1) ,和 A1] (1) X→Y X→Y在 [已知 ] Y→Z在R上成 A3(传递性):若 X→Y 是从F用推理规则导出,那么 F A8 的证明: (4) XY → YZ [(3) A2] (1) X→Y 已知 (3) [[ 已知 ]] , (2) XW → WY [(1) , A2] 立,则 X→Z 在R上成立。
数据库系统教程 第4章 关系数据库的规范化设计
9
4.2 函数依赖
4.2.1 函数依赖的定义(一)
定义4.1 设有关系模式R(U),X和Y是属性集U 的子集,函数依赖(Functional Dependency, 简记为FD)是形为X→Y的一个命题,只要r是 R的当前关系,对r中任意两个元组t和s,都有 t[X]=s[X]蕴涵t[Y]=s[Y],那么称FD X→Y在关 系模式R (U)中成立。 X→Y读作“X函数决定 Y”,或者“Y函数依赖于X”。
(1) X→Y [已知 ] 证明:根据FD的定义使用反证法来证明。 (5) X→YZ [(2) , (4) ,A3] (2) XW →WY [(1) , A2] (4) X→Z [(3) , (2) A3] (3) WY→Z [已知 ], (2) X(W-Y)→Y (W-Y) [(1) ,A2] (3) W→Z [已知 ] (3) (4) XW→Z [(2), ,A3] (3) X(W-Y) 定理4.2 FD的其他五条推理规则 : (4) YW→ YZ →WY [(3),A2][(2)的等价] (4) W→Z [已知 (1) A4(合并性,Union ):{ X→Y,X→Z ⊨X→YZ (5) XW→YZ [(2),} (4) , A3] ]。 (5) WY→YZ):{X→Y,Z [(3) A2] (2) A5(分解性,Decomposition Y, }⊨ X→Z 。 (6){X(WY)→YZ [(3), (3) A6(伪传递性): X→Y ,WY→Z }⊨ WX→Z 。(5),A3] (4) A7(复合性,Composition): {X→Y,W→Z } ⊨ XW→YZ。 (5) A8 { X→Y,W→Z }⊨X∪(W-Y)→YZ。
数据库系统教程
第4章 关系数据库的规范化设计
16
4.2.3 FD的推理规则(三)
例4.5 已知关系模式R(ABC),F={A→B, B→C },求F+。 根据FD的推理规则,可推出F的F+有43个FD。 例如,据规则A1可推出A→φ(φ表示空属性 集),A→A,…。据已知的A→B及规则A2可 推出AC→BC,AB→B,A→AB,…。据已知条 件及规则A3可推出A→C等。作为习题,读者可 自行推出这43个FD。
规范化设计理论对关系数据库结构的设计起着重要 的作用。 本章主要介绍函数依赖、关系模式的分解特性、范 式和模式分解算法。
数据库系统教程 第4章 关系数据库的规范化设计
3
4.1 关系模式的设计问题
4.1.1 关系模型的外延和内涵
外延就是通常所说的关系、表或当前值,它的基本性 质已在第2章介绍过。由于用户经常对关系进行插入、 删除和修改操作,因此,外延是与时间有关的,随着 时间的推移在不断变化。 内涵是与时间独立的,是对数据的定义以及数据完整 性约束的定义。对数据的定义包括对关系、属性、域 的定义和说明。对数据完整性约束的定义涉及面较广, 主要包括以下两个方面:
S4
S6 S6 S4 S8
数据库系统教程
C4
C4 C2 C2 C6
PASCAL
PASCAL ADA ADA BASIC
图4.1 关系模式R的实例
WEN
WEN LIU LIU MA
第4章 关系数据库的规范化设计
5
4.1.2 关系模式的冗余和异常问题(二)
S# S2 S4 S6 S6 S4 S8
C# C4 C4 C4 C2 C2 C6Leabharlann 图4.3 关系模式R的两个关系
其中,A→B在(a)中成立,但在(b)中不成立。
数据库系统教程 第4章 关系数据库的规范化设计
11
4.2.1 函数依赖的定义(三)
例4.3 有一个关于学生选课、教师任课的关系模式: R(S#, SNAME, AGE, SEX, C#, CNAME, SCORE, T#, TNAME, TITLE) 属性分别表示学生学号、姓名、年龄,性别,选修课程的课程号、 课程名,成绩、任课教师工号,姓名和职称等意义。 如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一 门课程,那么可写成下列FD形式: S#→SNAME, C#→CNAME 每个学生每学一门课程,有一个成绩,那么可写出下列FD: (S#,C#)→SCORE 还可以写出其他一些FD: S#→(AGE,SEX), C#→T#, T# →(TNAME,TITLE)
2
数据库系统教程
第4章 关系数据库的规范化设计
前 言
关系数据库的规范化设计是指面对一个现实问题,如 何选择一个比较好的关系模式集合。规范化设计理 论主要包括三个方面的内容:数据依赖、范式和模 式设计方法。其中数据依赖起着核心的作用。
数据依赖研究数据之间的联系; 范式是关系模式的标准; 模式设计方法是自动化设计的基础。
第4章 关系数据库的规范化设计
数据库系统教程
第4章 关系数据库的规范化设计
本章重要概念
(1)关系模式的冗余和异常问题。 ( 2) FD的定义、逻辑蕴涵、闭包、推理规则、与关 键码的联系;平凡的FD;属性集的闭包;推理规则 的正确性和完备性;FD集的等价;最小依赖集。 ( 3 )无损分解的定义、性质、测试;保持依赖集的 分解。 ( 4 )关系模式的范式: 1NF , 2NF , 3NF , BCNF 。 分解成2NF、3NF模式集的算法。 (5)MVD、4NF、JD和5NF的定义。
数据库系统教程 第4章 关系数据库的规范化设计
8
4.1.4 本章的符号规定
为了便于阅读,本章对使用的符号有如下规定:
① 英文字母表首部的大写字母“A,B,C,…”表示单个的 属性。
② 英文字母表尾部的大写字母“…,U,V,W,X,Y,Z” 表示属性集。 ③ 大写字母R表示关系模式,小写字母r表示其关系。为叙 述方便,有时也用属性名的组合写法表示关系模式。若 模式有A、B、C有三个属性,就用ABC表示关系模式。 ④ 属性集{ A1 , …,An }简写为A1…An 。属性集 X 和 Y 的并 集X∪Y简写为XY。X∪{A}简写为XA或AX。
静态约束,涉及到数据之间联系(称为“数据依赖”,data dependences)、 主键和值域的设计。 动态约束,定义各种操作(插入、删除、修改)对关系值的影响。 一般,把内涵称为关系模式。
数据库系统教程 第4章 关系数据库的规范化设计
4
4.1.2 关系模式的冗余和异常问题(一)
例4.1 S# S2 C# C4 CNAME PASCAL TNAME WEN
准则4.1 关系模式的设计应尽可能只包含有直 接联系的属性,不要包含有间接联系的属性。 也就是,每个关系模式应只对应于一个实体类 型或一个联系类型。 准则4.2 关系模式的设计应尽可能使得相应关 系中不出现插入、删除和修改等操作异常现象。 如果出现任何异常,则要清楚地加以说明,并 确保更新数据库的程序正确操作。 准则4.3 关系模式的设计应尽可能使得相应关 系中避免放置经常为空值的属性。 准则4.4 关系模式的设计应尽可能使得关系的 等值连接在主键和外键的属性上进行,并且保 证连接以后不会生成额外的元组。
第4章 关系数据库的规范化设计
② ③
数据库系统教程
6
4.1.2 关系模式的冗余和异常问题(三)
S# S2 S4 S6 S6 S4 S8 C# C4 C4 C4 C2 C2 C6 CNAME PASCAL PASCAL PASCAL ADA ADA BASIC TNAME WEN WEN WEN LIU LIU MA
数据库系统教程
第4章 关系数据库的规范化设计
10
4.2.1 函数依赖的定义(二)
例4.2
A a1 a1 a2 a3 B b1 b1 b2 b1
(a)