关系基础规范化样例_第1页
关系基础规范化样例_第2页
关系基础规范化样例_第3页
关系基础规范化样例_第4页
关系基础规范化样例_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章关系规范化理论

关系的规范是关系数据模型设计中的一种非常重要的问题,它可以指引我们设计出好的关系。

设计和构造合理的关系,使之能精确地反映现实世界并有助于应用和具体操作,是关系的规范和探

讨的问题。因此有人把关系的规范化理论称为设计数据库的理论。

第一节关系中的键

一、候选键(candidatekey)

凡在一种关系中具有主键特性的属性或属性组,均称为候选键。由于它们都具有被选为主键的J

条件,因此一种关系也许有多种候选键,但只能选其中的一种为主键。

候选键中涉及附属性,期于日勺属性称为非主属性。

例:在职工关系ZG(姓名,性别,年龄)中,增长一种属性:职工号,即得到一种新关系:

ZG(职工号,姓名,性别,年龄)

又假定职工号与职工姓名是一一相应n勺,即没有两个职工的姓名相似,则“职工号”和“姓名”

两个都是候选键。

二、替代键(alternatekey)

对于某一指定的关系也许存在多种候选键,但只能选其中日勺一种为主键。在拟定主键后,其他

的候选键都是替代键,替代键在需要时可替代主键。

二、外来键(foreignkey)

但关系中的某些属性系由另一种关系的主键构成时,则该属性(或属性组)称为外来键。

第二节函数依赖

一、函数依赖

定义1:设R是一种关系,X和Y是R中欧J两个属性。若R中X日勺任何一种值,仅有一种Y日勺

值与之相应,则称为R/、J属性Y函数依赖(FD)于属性X,记作X1Y。

冽如:在描述船员的关系

CREW(NO,NAME,AGE,JOB,PAY)

它表达由任一船员号NO,仅能找到一种姓名、一种年龄、一种。。。

定义中的属性X可以是复合属性,例如

SP(S',Ps,QTY-USED)中日勺(SK,Ps)

二、完全函数依赖和部分函数依赖

定义2:如果属性Y函数依赖于复合属性X,并且不与XH勺任一子集X.函数依赖(X'TY),

则称属性Y完全函数依赖(FFD)于复合函数X,记作XTY。

若XTY但不是完全函数依赖,则称Y部分函数依赖于X。

洌:在关系SP(6,P',QTY-USED)中QTY-USED表达部件P*在S"船上使用的数量,只有同步

指定S「和才干阐明某部件在某船上日勺用量,缺一不可,因此QTY-USED完全函数依赖于(S=,

P#)o

三、传递函数依赖

定义3:如果X,Y,Z是R中的三个属性(或属性复合)若XR\Y玲X,Y-»Z,则称Z对X

传递函数依赖。

洌如:S(S8,SNAME,CITY,POSTCODE)中S*TCITY,CIT*»S8,若CITY-POSTCODE,则称

POSTCODE传递依赖于S%

洌:设有下列关系

GPD(零件号,零件名,设计人,设计人级别)

由于零件号一零件名零件号-设计人设计人一设计人级别

故零件号一设计人级别

第三节规范化和范式

一、规范化问题口勺提出

关系模型日勺特点是使用二维表来表达现实世界日勺实体集合和属性关系,这样容易历届和被顾客

所接受,然而并不是所有二维表都能构成关系模型,见表

农产品登记表

省市总产值产量亩产

小麦稻谷小麦稻谷

北京

河北

职工状况登记表

职工号姓名级别工资学历毕业时间

001张技1083中专1957

大学1968

研究生1981

002李技1262

以上两张二维表就不能构成关系,由于浮现了子项,那么具有那些条件日勺二维表才干称为关系

呢?在关系模式中,规定二维表具有如下性质:

(1)二维表中日勺每一列都是不能分割的基本数据项,且无反复组。

(2)同一关系中,没有相似的列浮现。

描述一种实体,不需要反复浮现相似的属性名

(3)同一关系中,各行的内容不能完全相似

完全相似H勺行,实无意义

满足上述条件的关系,称为规范化的关系,否则叫非规范化形式,这种“形式”即不能被定义

成关系模型,又不能被关系型的DBMS所接受,因此要对非规范化的表格(关系)进行规范化解决。

所谓规范化解决,就是逐渐用更单纯、更规则日勺关系来取代原有关系的过程。

二、规范化的意义

规范化解决的目日勺不仅将关系日勺“概念”单一化,使每一种数据项使一种简朴日勺基本项,乂无

反复组。尚有如下意义:

(1)解决冗余度问题

所谓“冗余”问题是指表格中的数据反复。]

洌:船与船员之间的1:N联系见表

船与船员SHIPS8SNAME

NSPS5SNAMENONAMEAGESiDQ

S.DQ1001s2XH

SiDQ1004—►

S1DQ1020SCs*NONAME

S2XH1025Si1001

・♦・Si1004

・・・s.1020

这样反复太多,一条船有多种船员,船号与船名就要反复存储多次,如果将船的有关数据分开

存储,分为SHIP和SC两个表,在SC中寄存船号与船名数据,则反复的仅仅是船号,其他口勺反复

都消除了。

为了减少甚至消除反复,将关系进行分离,正是逐渐规范化的重要一步。

(2)消除多义性问题

多义性是指关系中某些属性含义不清或有多种也许的含义。

洌:船部件这个关系SP(S=,P=,QTY)

其中数量QTY究竟是阐明S与P之间的联系,即某船需要某个部件多少个,还是仅仅阐明P

为仓库中现存某个部件多少个呢?在这个关系中是拟定不了的,如果QTY仅仅表达部件的库存量,

则将关系SP分离,使用关系PQ(P%QTY)来描述就不再模糊不清了。

(3)解决操作可行性及提高操作以便性

指对数据的插入、删除与修改与否可行,与否以便

洌:职工编号,姓名,工资级别,工资

如果要插入新的工资级别和工资额,例如9-110元,由于没有相应的职工编号、姓名,无法插入。

如果要删除E这一行,则10级100元也丢失。修改也随之都修改。

NONAMESTATUSSAL

Ei陈10100

E2李8120

80

E3严12

・・.・・・•・・••・

Eg王8120

引起上述问题的因素,是非主属性之间的依赖关系所致。

这个关系中各个属性之间的相应关系可用下图表法,N0为核心字,即主属性,其他属性

为非主属性。

EMP(NO,NAME,STATUS,SAL)

箭头表达属性间H勺相应关系,即任意一种职工号,仅能在表中找到一种姓名NAME与之相应,

任何一种非主属性SAL函数依赖于非主属性STATUSo

如果要从这个关系中消除非主属性之间的依赖关系,可将表改为两个关系

EMP(NO,NAME,STATUS)SS(STATUS,SAL)

t

这样插入数据9级、110元就可在SS中进行。

出上例可见,通过合适“分离”可以消除非主属性之间的依赖性,如何进行分离或合并,使得

新的一组关系模式既能反映现实世界,又能排除多义性,控制冗余度,并以便实现数据操作,正是

我们研究规范化问题H勺目H勺所在。

三、系规范化的表述

所谓关系的规范化,是指满足某些条件后的关系,一般按属性间依赖状况来辨别关系规范化

日勺限度,并义范式来表述(NORMALFORMS)

范式又分为n级,有INF,2NF,3NF等等,为了判断一种关系属于哪一级范式,引入函数依

赖这一概念。

所有规范化H勺关系起码是第一范式,在第一范式中进一步满足某些规定的关系为第二范式,依

次类推。

多种形式的范式在关系数据哭系统中都容许存在,但为了更以便于数据解决,一般要把低档范

式分解为若干个3NF或BCNF,下面给出各范式日勺概念。

1)第一范式(1NF)关系R中,每个分量都是不可分割的。

2)第二范式(2NF)若关系R满足1NF,且每个非主属性完全函数依赖于核心字。

3)第三范式(3NF)若关系R满足2NF,且每个非主属性非传递依赖于核心字。

4)加强第三范式(BCNF)若关系R满足3NF,且所有主属性和非主属性既非部分依赖核

心字,也非传递依赖于核心字。

下面举例阐明逐渐规范化日勺措施与过程。

洌:已知一张购物登记表,规定规范到BCNF范式的限度,以便被关系型DBMS所接受。

购物登记

顾客地址

顾客姓名商品名称数量单价付款工作单位

电话

L市

A彩电11400元1400元xxr

38540

手电筒135元P市

B47.50元XX学校

钢笔202.2元28266

电冰箱11530元

L市

C手电筒13.5元1537.9元XX机关

53834

钢笔22.2元

(1)分析已知表,来决定与否需要进行规范化解决

通过观测可知,表不能直接被关系型DBMS所接受,由于它存在许多问题。

1)在关系模型中对关系口勺最起码规定,应当满足第一范式,表显然不满足这个条件。

2)在数据操作上将会浮现下列问题:

①删除异常

如果顾客A不购买彩电,那么表中的记录A删除时就会将商品名称、单价等同步删除,此时

彩电价格也无从查找。

②插入异常

如顾客A想要购买洗衣机,不仅要填上洗衣机的名称与价格,还要填.上有关顾客A的信息(工

作单位、地址、电话)显然是反复日勺。

③数据的冗余量大

在有多种顾客购买同一商品日勺状况下,就使这一商品H勺名称和单价多次反复出目前数据库中,

导致数据的大量冗余。

3)非独立数据存在

付款项目是由数量*单价得来的,在此可以去掉,基于上述状况,必须对表进行规范化解决。

(2)运用规范化工具逐渐解决表中日勺数据构造所存在的问题

一方面,去掉表中的非独立项,变成满足第一范式的规定『、J关系命名为R

R购物登记表

顾客

商品名称数量单价工作单位顾客地址电话

姓名

A彩电11400元XX厂L市38540

B手电筒135元XX学校P市28266

B钢笔202.2元XX学校P市28266

C电冰箱11530元XX机关L市53834

C手电筒13.5元XX机关L市53834

C钢笔22.2元XX机关L市53834

显然R是1NF,从而解决了第1)个问题

进一步规范化过程如下环节进行:

第一步语义分析

①每一名顾客有一种工作单位、住址、电话:

②每种商品有一种价格

③每个顾客所购物品有一定数量;

④付款二单价*数量(非独立项可去掉)

为了讨论以便,将表种属性用字母简记

顾客姓名A单价D

商品名称B顾客工作单位E

数量C顾客地址F顾客电话G

第二步找出函数依赖集FD

有语义分析,根据函数依赖日勺含义,可以的出下面一组函数依赖关系。

①A9E,A9F,ATG

②BTD

③AETC

故FD={ATE,ATF,A-»G,B-»D,AB->C}

第三步画出函数依赖图

一方面从函数依赖集中,选出一组属性作为核心字,这里选核心字AB,分析非主属性对核

心字依赖的状况。

(A,B)-f->C表白属性C对核心字(A,B)为函数依赖

(A,B)-P->E表白属性E对核心字(A,B)为部分函数依赖

(A,B)-P->F

(A,B)-P->G

(A,B)-P->D(理由同上)

画出关系R口勺函数依赖图

DB

从图中看出,非主属性与核心字的关系,哪些是完全函数依赖,哪些是部分函数依赖,根据范

式的定义,下面可以逐渐再进行规范化。

第四步去掉非主属性对核心字的部分依赖关系,得到一组新的关系函数依赖图。

于是R得到一组新的关系RRL的集合

三个关系表

R顾客关系

顾客姓名工作单位顾客地址电话

AXX厂L市38540

BXX学校P市28266

CXX机关L市53834

K商品关系

商品名称单价

彩电1400元

手电筒35元

钢笔2.2元

电冰箱1530元

比购物关系

顾客姓名商品名称数量

A彩电1

B手电筒1

B钢笔20

C电冰箱1

C手电筒1

C钢笔2

R田勺核心字为顾客姓名

R泮勺核心字为商品姓名

R:N、J核心字为顾客姓名商品姓名口勺组合

关系RJL和兄均属于BCNF,这是由于所有主属性和非主属性既非部分依赖核心字,也非传递

依赖核心宇。

至此,规范化解决完毕

上述H勺规范化解决成果,事实上已消除了前面提到的删除异常、插入异常和数据冗余的问题。

.如果顾客不购买彩电,只是合理地删除R,中一种记录,不会影响R中的顾客信息,也不会影

响兄中的商品信息。

.如果顾客A购买洗衣机时,在区中填写数量,而价格在R2中填写,与顾客信息无关。

.在多种顾客购买同一种商品的)状况下,因商品名称与价格R?在中,不会反复浮现多次,消除

了冗余

第四节关系模式的分解

分解是提高关系范式级别的重要措施,如下通过一种事例阐明模式分解口勺•般措施和对分解的规

定。

例:知关系

S(学号,班级,班主任)E2NF

下图显示了它涉及日勺内容和属性间日勺依赖关系,试将S分解为3NF的新关系

学号班级班主任

班级

5财9241

10财9241

15管9235

2()管9235

25电9241

3()电9241T-

35电9241丁一

这里有三种不同的分解法,即

①SS-C(学号,班级)

C-M(班级,班主任)

②SS-C(学号,班级)

S-M(学号,班主任)

③SS-M(学号,班主任)

C-M(班级,班主任)

三种方案得出H勺新关系全是3NF。但分解的质量却大有差别。如下结合对分解质量的规定,

对这三种方案作一比较。

L分解必须是无损的,即不应在分解丢失信息

在上例中,第③种方案就不能保证无损分解,下图显示了这一方案得出H勺两个关系。由于财9241

班和管9335班的班主任是同一种人,分解后将无法辨别5,10,15,20号各属于哪一种班。

学号班主任

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论