关系数据库的规范化理论与数据库设计
Posted CaoPengCheng&
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系数据库的规范化理论与数据库设计相关的知识,希望对你有一定的参考价值。
关系数据库的规范化理论与数据库设计
第七章 关系数据库的规范化理论与数据库设计
1、“不好”的关系模式有以下4个问题:
a、数据冗余 b、更新异常 c、插入异常 d、删除异常
2、函数依赖
数据依赖中重要的是函数依赖和多值依赖
(1)函数依赖定义:设R(U)是属性集U上的一个关系模式,X和Y均为U的子集。若对于R(U)的
任一个可能的关系r,r中不可能有两个元组在X中的属性值相等,而在Y中的属性值不等,那么称X
函数决定Y X->Y,或Y函数依赖于X, X为决定因素(函数中的一一映射关系)
(2)函数依赖包括非平凡的函数依赖、平凡的函数依赖、完全函数依赖、部分函数依赖及传递函
数依赖
平凡函数依赖:
非平凡函数依赖: 如果 X→Y,但 Y X, 则称 X→Y 是平凡的函数依赖
完全函数依赖: 在关系模式 R(U)中,如果X→Y,并且对于 X 的任何一个真子集X’,都有
X’ Y, 则称 Y 完全函数依赖于 X,记作:
部分函数依赖: 若X→Y,但Y不完全函数依赖于X,则称 Y 部分函数依赖于X,记作:
传递函数依赖: 在关系模式R(U)中,如果X→Y(Y ÍX),Y→X ,Y→Z,则称 Z 传递函数依赖于X。
(3) 函数依赖的逻辑蕴含
设R<U, F>是一个关系模式,X可以由F推导出Y,则称F逻辑蕴含X→Y
(4)码:设 K 为关系模式 R<U,F>中的属性或属性组合。若 ,并且不存在K的真子集决定U,则
K 称为 R 的一个侯选码(Candidate Key)。若关系模式 R 有多个候选码,则选定其中的一个做
为主码(Primary key)。
主属性与非主属性
全码(ALL KEY):主码为关系模式所有属性
如何找候选码:a.找出F集合的所有仅出现在左边的属性和左右两边都没出现的属性,组合为U1,
U1必包含在候选码中;b.如果U1->U,则U1为一个候选码,否则然后增加其他属性到U1中组成属性
组K,使K->U,则K为候选码,再找出其他候选码
(5)函数依赖的公理系统
a.自反律:若Y ÍX Í U,则X-> Y为F所逻辑蕴含。
b.增广律:若X->Y为F所逻辑蕴含,且Z Í U,则XZ->YZ为F所逻辑蕴含。
c.传递律:若X- >Y及Y->Z为F所逻辑蕴含,则X->Z为F所逻辑蕴含。
推论
合并规则:X->Y,X->Z,则X->YZ
伪传递规则:X->Y,WY->Z,则XW->Z
分解规则:X->Y及ZÍY,则X->Z
3、1NF、2NF,3NF,BCNF
(1)1NF: 1NF的模式是关系数据库的最基本要求
如果关系模式R的所有属性都是不可再分解的,则称R属于第一范式,简称1NF,记做R∈1NF。
(2) 2NF:若R∈ INF,且每一个非主属性完全函数依赖于码,则R∈2NF
(3) 3NF: 关系模式R∈2NF,且每个非主属性都不传递依赖于码,则R∈3NF
(4) BCNF: 若关系模式R∈1NF,且对于每个非平凡的函数依赖X-> Y都有X包含码,则R ∈BCNF。在函数依赖的范围内,BCNF达到了最高的规范化程度。
4、多值依赖和4NF
(1)多值依赖:设R(U)是一个属性集U上的一个关系模式, X、 Y和Z是U的子集,并且Z=U-X
-Y,多值依赖 X→→Y成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这
组值仅仅决定于X值而与Z值无关。
平凡多值依赖和非平凡的多值依赖
若X→→Y,而Z=φ,则称 X→→Y为平凡的多值依赖, 否则称X→→Y为非平凡的多值依赖
特性:a.多值依赖具有对称性 若X→→Y,则X→→Z,其中Z=U-X-Y
b.函数依赖是多值依赖的特殊情况。若X→Y,则X→→Y。
c. 若函数依赖X→Y在R(U)上成立,则对于任何Y’ Ì Y均有X→Y’ 成立
多值依赖X→→Y若在R(U)上成立,不能断言对于任何Y’ Ì Y有X→→Y’ 成立
d. 多值依赖的有效性与属性集的范围有关. 若X→→Y在U上成立,则在W(X YÍWÍ U)上一定成立;反之则不然,即X→→Y在W(W ÌU)上成立,在U上并不一定成立.
(2)4NF关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y Í X),X都含有候选
码,则R∈4NF。
根据定义:不允许有非平凡且非函数依赖的多值依赖,X包含码,即X->Y,实际就是函数依赖
如果R ∈ 4NF, 则R ∈ BCNF
5、关系模式分解
常用的等价标准有要求分解具有无损连接性的和分解是保持函数依赖的两种。
关于模式分解的几个事实
(1)分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。
(2)若要求分解具有无损连接性,那么模式分解一定可以达到BCNF。
(3)若要求分解保持函数依赖,那么模式分解可以达到3NF,但不一定能达到BCNF。
(4)若要求分解既具有无损连接性,又保持函数数依赖,则模式分解可以达到3NF,但不一定能达
到BCNF
6、数据库的分析与设计
(1)数据库设计的6个阶段:需求阶段、概念结构阶段、逻辑结构设计、物理结构设计、数据库实
施、运行维护
(2)设计概念结构通常有4类方法:自顶向下、自底向上、由里向外和混合策略。
E-R模型为工具来描述概念结构。最常用的设计策略是自底向上设计策略
E-R方法的步骤
a.设计局部E-R图 b.设计全局E-R图 解决属性冲突、结构冲突、命名冲突 c.全局E-R图的优化
(3) 逻辑结构设计
E-R模型向关系模型转换: a.实体转换为关系,属性转换为关系的属性,实体码转换为关系的码
b.1:1的联系,可以转换为一个关系,也可以与联系的任意一端实体关系模式合并
c.1:n的联系可以转换为一个独立关系(属性为1端和n端实体的码和联系本身属性)(码为n端实体
码),也可以与联系的n端实体关系模式合并(加入1端实体码)
d.m:n联系转换为一个关系模式(码为各实体码组合)
e.3个或3个以上的多元联系转换为一个关系模式,模式的码由联系的实体码组成。
7、物理结构设计
(1)存储记录的格式设计:记录的垂直分割法、记录的水平分割法。
(2)存储方法设计:顺序存放、散列存放和聚簇存放。
(3)存取方法设计:索引是一种非常重要的存取路径(建立在经常查询和连接的属性组上)
8、规范化理论是数据库设计的理论基础,可以应用到数据库设计的不同阶段。
以上是关于关系数据库的规范化理论与数据库设计的主要内容,如果未能解决你的问题,请参考以下文章