关系规范化样例

上传人:M****1 文档编号:506711657 上传时间:2023-07-12 格式:DOC 页数:13 大小:98KB
返回 下载 相关 举报
关系规范化样例_第1页
第1页 / 共13页
关系规范化样例_第2页
第2页 / 共13页
关系规范化样例_第3页
第3页 / 共13页
关系规范化样例_第4页
第4页 / 共13页
关系规范化样例_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《关系规范化样例》由会员分享,可在线阅读,更多相关《关系规范化样例(13页珍藏版)》请在金锄头文库上搜索。

1、-第三章 关系规化理论关系的规是关系数据模型设计中的一个非常重要的问题,它可以指导我们设计出好的关系。设计和构造合理的关系,使之能准确地反映现实世界并有利于应用和具体操作,是关系的规和探讨的问题。所以有人把关系的规化理论称为设计数据库的理论。第一节 关系中的键一、候选键candidate key凡在一个关系中具有主键特性的属性或属性组,均称为候选键。因为它们都具有被选为主键的条件,所以一个关系可能有多个候选键,但只能选其中的一个为主键。候选键中包含的属性,期于的属性称为非主属性。例:在职工关系ZG,性别,年龄中,增加一个属性:职工号,即得到一个新关系:ZG职工号,性别,年龄又假定职工号与职工是

2、一一对应的,即没有两个职工的一样,则“职工号和“两个都是候选键。 二、替代键(alternate key)对于*一指定的关系可能存在多个候选键,但只能选其中的一个为主键。在确定主键后,其余的候选键都是替代键,替代键在需要时可代替主键。二、 外来键(foreign key)但关系中的*些属性系由另一个关系的主键构成时,则该属性或属性组称为外来键。第二节 函数依赖一、函数依赖定义1:设R是一个关系,*和Y是R中的两个属性。假设R中*的任何一个值,仅有一个Y的值与之对应,则称为R的属性Y函数依赖FD于属性*,记作*Y。例如:在描述船员的关系CREWNO,NAME,AGE,JOB,PAY它表示由任一船

3、员号NO,仅能找到一个、一个年龄、一个。定义中的属性*可以是复合属性,例如SPS*,P*,QTY-USED中的S*,P*二、完全函数依赖和局部函数依赖定义2:如果属性Y函数依赖于复合属性*,而且不与*的任一子集*函数依赖*Y ,则称属性Y完全函数依赖FFD于复合函数*,记作*Y。假设*Y但不是完全函数依赖,则称Y局部函数依赖于*。例:在关系SPS*,P*,QTY-USED中QTY-USED表示部件P*在S*船上使用的数量,只有同时指定S*和P*,才能说明*部件在*船上的用量,缺一不可,因此QTY-USED完全函数依赖于S*,P*。三、传递函数依赖定义3:如果*,Y,Z是R中的三个属性或属性复合

4、假设*Y, Y*, YZ,则称Z对*传递函数依赖。例如:SS*,SNAME,CITY,POSTCODE中S*CITY,CITY S*,假设CITY POSTCODE,则称POSTCODE传递依赖于S*。例:设有以下关系GPD零件号,零件名,设计人,设计人等级因为零件号零件名 零件号设计人 设计人设计人等级 故 零件号设计人等级第三节 规化和式 一、规化问题的提出关系模型的特点是使用二维表来表示现实世界的实体集合和属性关系,这样容易历届和被用户所承受,然而并不是所有二维表都能构成关系模型,见表农产品统计表省市总产值产量亩产小麦稻谷小麦稻谷职工情况登记表职工号级别工资学历毕业时间001技1083中

5、专大学研究生195719681981002技1262以上两二维表就不能构成关系,因为出现了子项,则具备那些条件的二维表才能称为关系呢.在关系模式中,要求二维表具有以下性质:(1) 二维表中的每一列都是不能分割的根本数据项,且无重复组。(2) 同一关系中,没有一样的列出现。 描述一个实体,不需要重复出现一样的属性名(3) 同一关系中,各行的容不能完全一样完全一样的行,实无意义满足上述条件的关系,称为规化的关系,否则叫非规化形式,这种“形式即不能被定义成关系模型,又不能被关系型的DBMS所承受,因此要对非规化的表格关系进展规化处理。所谓规化处理,就是逐步用更单纯、更规则的关系来取代原有关系的过程。

6、 二、规化的意义规化处理的目的不仅将关系的“概念单一化,使每一个数据项使一个简单的根本项,又无重复组。还有以下意义:1解决冗余度问题所谓“冗余问题是指表格中的数据重复。例:船与船员之间的1:N联系见表船与船员SHIPS*SNAMENSPS*SNAMENONAMEAGES1DQS1DQ1001S2*HS1DQ1004S1DQ1020SCS*NONAMES2*H1025S11001S11004S11020这样重复太多,一条船有多个船员,船号与船名就要重复存储屡次,如果将船的有关数据分开存储,分为SHIP和SC两个表,在SC中存放船号与船名数据,则重复的仅仅是船号,其余的重复都消除了。为了减少甚至消

7、除重复,将关系进展别离,正是逐步规化的重要一步。2消除多义性问题多义性是指关系中*些属性含义不清或有多种可能的含义。例:船部件这个关系 SPS*,P*,QTY 其中数量QTY到底是说明S与P之间的联系,即*船需要*个部件多少个,还是仅仅说明P为仓库中现存*个部件多少个呢.在这个关系中是确定不了的,如果QTY仅仅表示部件的库存量,则将关系SP别离,使用关系PQP*,QTY来描述就不再模糊不清了。3解决操作可行性及提高操作方便性指对数据的插入、删除与修改是否可行,是否方便例:职工编号,工资等级,工资假设要插入新的工资等级和工资额,例如9-110元,由于没有对应的职工编号、,无法插入。假设要删除E1

8、这一行,则10级100元也丧失。修改也随之都修改。NONAMESTATUSSALE110100E28120E3严1280E9王8120 引起上述问题的原因,是非主属性之间的依赖关系所致。 这个关系中各个属性之间的对应关系可用以下图表示,NO为关键字,即主属性,其余属性为非主属性。 EMPNO,NAME,STATUS,SAL箭头表示属性间的对应关系,即任意一个职工号,仅能在表中找到一个NAME与之对应,任何一个非主属性SAL函数依赖于非主属性STATUS。如果要从这个关系中消除非主属性之间的依赖关系,可将表改为两个关系 EMPNO,NAME,STATUS SSSTATUS,SAL这样插入数据9级

9、、110元就可在SS中进展。由上例可见,通过适当“别离可以消除非主属性之间的依赖性,如何进展别离或合并,使得新的一组关系模式既能反映现实世界,又能排除多义性,控制冗余度,并方便实现数据操作,正是我们研究规化问题的目的所在。三、 系规化的表述所谓关系的规化,是指满足*些条件后的关系,通常按属性间依赖情况来区分关系规化的程度,并义式来表述NORMAL FORMS式又分为n级,有1NF,2NF,3NF等等,为了判断一个关系属于哪一级式,引入函数依赖这一概念。所有规化的关系起码是第一式,在第一式中进一步满足一些要求的关系为第二式,依次类推。各种形式的式在关系数据哭系统中都允许存在,但为了更方便于数据处

10、理,通常要把低级式分解为假设干个3NF或BF,下面给出各式的概念。1) 第一式1NF 关系R中,每个分量都是不可分割的。2) 第二式2NF 假设关系R满足1NF,且每个非主属性完全函数依赖于关键字。3) 第三式3NF 假设关系R满足2NF,且每个非主属性非传递依赖于关键字。4) 加强第三式BF 假设关系R满足3NF,且所有主属性和非主属性既非局部依赖关键字,也非传递依赖于关键字。下面举例说明逐步规化的方法与过程。例:一购物登记表,要求规到BF式的程度,以便被关系型DBMS所承受。购物登记顾客商品名称数量单价付款工作单位顾客地址A彩电11400元1400元厂L市 38540B手电筒钢笔12035

11、元2.2元47.50元学校P市 28266C电冰箱手电筒钢笔1121530元3.5元2.2元1537.9元机关L市53834(1) 分析表,来决定是否需要进展规化处理通过观察可知,表不能直接被关系型DBMS所承受,因为它存在许多问题。1) 在关系模型中对关系的最起码要求,应该满足第一式,表显然不满足这个条件。2) 在数据操作上将会出现以下问题: 删除异常假设顾客A不购置彩电,则表中的记录A删除时就会将商品名称、单价等同时删除,此时彩电价格也无从查找。 插入异常如顾客A想要购置洗衣机,不但要填上洗衣机的名称与价格,还要填上有关顾客A的信息工作单位、地址、显然是重复的。 数据的冗余量大在有多个顾客

12、购置同一商品的情况下,就使这一商品的名称和单价屡次重复出现在数据库中,造成数据的大量冗余。3) 非独立数据存在付款工程是由数量*单价得来的,在此可以去掉,基于上述情况,必须对表进展规化处理。 2利用规化工具逐步解决表中的数据构造所存在的问题首先,去掉表中的非独立项,变成满足第一式的要求的关系命名为RR 购物登记表顾客商品名称数量单价工作单位顾客地址A彩电11400元厂L市38540B手电筒135元学校P市28266B钢笔202.2元学校P市28266C电冰箱11530元机关L市53834C手电筒13.5元机关L市53834C钢笔22.2元机关L市53834显然R是1NF,从而解决了第1个问题进

13、一步规化过程如下步骤进展:第一步 语义分析 每一名顾客有一个工作单位、住址、; 每种商品有一种价格 每个顾客所购物品有一定数量; 付款=单价*数量非独立项可去掉为了讨论方便,将表种属性用字母简记顾客 A 单价 D商品名称 B 顾客工作单位 E数量 C 顾客地址 F 顾客 G第二步 找出函数依赖集 FD有语义分析,根据函数依赖的含义,可以的出下面一组函数依赖关系。 AE ,AF,AG BD ABC故FD=AE,AF,AG,BD,ABC第三步 画出函数依赖图 首先从函数依赖集中,选出一组属性作为关键字,这里选关键字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的函数依赖图ECAFGDB从图中看出,非主属性与关键字的关系,哪些是完全函数依赖,哪些是局部函数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号