判断属于第几范式,首先知道该范式的主码
15,主码,候选键是AD,因为A→B,A→C,(C,D)→E,所以AD+=ABCDE。因为A→B,A→C,所以存在非主属性对任意候选键的依赖,所以不符合第2范式。所以是第一范式。要规范化到第3范式,那么首先就要符合第2范式的要求,要求是不存在非主属性对任意候选键的依赖,那么,可以分为R1(A,B,C)和R2(C,D,E),可是在R1中有A→B,A→C的依赖集的集合,A是R1关键字,这存在非主属性对任意候选键的全部依赖,不是部分依赖,而且每一个决定因素都含有码,所以属于BC范式,因此,需要再分解,分为AB和AC就达到目的了。共有关系AB,AC,CDE 3个
18和19题就要搞清楚第一23BC各个范式的要求了,也是判断最高范式的方法,需要死记。
20题我在15题分析提及到,慢慢领会吧
方案一用三个字段,applicanttype申请者类型1个人2组织applyperson申请人,个人申请时填写applygroup申请组织,组织申请时填写好处,有列标明申请者类型,可以分别建立外键方案二两个字段applicanttype申请者类型applicant申请者,申请者为个人时,填写申请人id,申请者为组织时,填写组织id有字段标识组织者类型,不能建外键方案三两个字段申请人id,为个人时填写申请组织id,为组织时填写只能通过哪列有值确定申请者类型,可以建外键。
数据依赖是关系内部属性之间相关联系的表达,是语义的体现,是构成数据的约束,大多数数据依赖是函数依赖,它是关系中“键”概念的范化。
使用数据依赖这一概念来定义关系模式的规范形式,即规范化理论。
函数依赖FD
A1,A2,……,An——>B1,B2,……,Bm
(若两个元组A1到An上相同则B1到Bm也相同,A1到An函数决定B1到Bm)
从已知FD推断其它FD
FD的集合T,S
T与S等价:关系实例集合满足S与其满足T的情况完全一样
(S是从T中推断而来,T也是从S中推断而来)
S从T中推断而来:满足T的关系实例也满足S(S蕴涵于T)
分解/结合规则:
平凡函数依赖
一个约束对所有关系实例都成立,且与其它约束无关
平凡FD的右边是左边的子集
平凡依赖规则:
(注:
非平凡函数依赖:仅当其右边属性集中至少有一个属性不属于左边的集合。例如: title year →year length
完全非平凡函数依赖:仅当其右边集合中的属性均不在左边集合中。例如: title year →length)
属性的闭包
S下{A1,A2,……An}的闭包{A1,……An}上标+
就是A中可以从S推断出来的右边变成一个集合
从一个给定集合A出发,不断扩展这个集合,对于S中的FD分解使右边只有一个属性,然后对于FD,只要左边都在集合中就把右边也加到集合中。p42
传递规则
函数依赖的闭包集合
求函数依赖集F的闭包F+:求所有属性子集的闭包(不考虑空集),然后利用每个闭包来写FD(A->空集也要写)
S的基本集:任何和S等价的FD集合
最小化基本集:右边均是单一属性;删除任何一个FD后不再是基本集;
对于任何一个FD,若删除其左边一个或多个属性,不再是基本集
投影函数依赖
R投影到R1
函数依赖集S的投影为满足以下条件的FD的集合:1从S推断而来2只包含R1中的属性
对R1的所有子集求闭包,得到FD的基本集,简化为最小基本集
“求属性子集闭包”的几个主要应用
1求所有候选键
2求所有非平凡FD
3求所有违反BCNF的非平凡FD(投影函数依赖应用1)
4求非平凡FD的最小基本集(投影函数依赖应用2)
简化规则:
1不必考虑空集(适用于1-4)
2不必考虑不能推出非平凡函数依赖的属性子集X(适用于1-4)
21属性子集X的任何一个子集都不是FD的左部,无法推出非平凡FD,无需求该属性子集X的闭包。如例1
22不必考虑属性全集U的闭包。
23 属性子集X+的闭包依然是X+本身,无法推出非平凡FD,不需要再求X+的闭包
3如果已知属性子集X, X+是属性全集,那么就无需考虑任何X超集的闭包。(注意:!!!!!!不适用于2!!!!!!)
异常:冗余;更新异常;删除异常
分解关系
将一个关系用多个不存在异常的关系替换
Boyce-Codd范式BCNF
每个非平凡FD的左边都必须是超键
任何一个二元关系属于BCNF
(BCNF范式在3NF的基础上,消除主属性对键的部分函数依赖与传递函数依赖)
分解为BCNF
输入:关系R0其上的函数依赖集S0
输出:由R0分解出的关系集合,每个关系都属于BCNF
方法:R=R0 S=S0
1检验R是否属于BCNF若是则返回{R}
2有BCNF违例X->Y,计算X的闭包,令R1为X的闭包,R2为X与不在X的闭包中的属性
3计算R1,R2的投影函数依赖S1,S2
4递归检验R1,R2
分解的优势
1消除异常
2信息的可恢复
3依赖的保持
BCNF可保持1,2
3NF可保持2,3
无损连接的分解
子关系经连接(这里指自然连接)运算可恢复原关系
保持依赖的分解
子关系的函数依赖集可蕴涵原函数依赖集
从分解中恢复信息
无损连接:可通过连接分解的各个关系重构原关系
若Y->Z在关系R上成立,且R的属性集为X∪Y∪Z,则R=π{下标X∪Y}(R)⋈π{下标Y∪Z}(R)
chase算法:检验一个分解是否含有无损连接,即判断是否可以根据F中的FD来证明所有属于π{下标s1}(R)⋈π{下标s2}(R)⋈……⋈π{下标sk}(R)的元组t也属于R
依赖的保持
BCNF无法保持 p57例325
第三范式3NF
拥有无损连接和依赖保持性质
条件:对于每个非平凡FD,或者其左边是超键,或者其右边仅由主属性构成
第四章 关系数据库的模式设计
45 什么是关系数据库:
关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界。一个关系既可以用来描述一个实体及其属性,也可以用来描述实体间的联系。关系实质上是一张二维表。
46 一个关系模型有哪两个方面内容:
一个关系模型包括外延和内涵两个方面的内容。
外延就是通常所说的关系,或实例,或当前值。它与时间有关,随着时间的推移在不断变化。(由于元组的插入、删除、修改引起的)
内涵是与时间独立的,包括关系、属性、及域的一些定义和说明,还有各种数据完整性约束。
47 数据完整性约束分为哪两类:
数据完整性约束分为静态约束和动态约束。
静态约束:包括各种数据之间的联系(数据依赖),主键的设计和关系值的各种限制等等。这一类约束是如何定义关系的有效数据问题。
动态约束:主要定义如插入、删除、和修改等各种 *** 作的影响。
48 关系数据库设计理论主要包括哪些内容:
关系数据库设计理论主要包括三个方面的内容:数据依赖、范式、模式设计方法。其中数据依赖起着核心的作用。
49 数据库使用过程中存在的问题是什么:
数据冗余、更新异常、插入异常、删除异常。
50 函数依赖(FD)的定义:
设有关系模式R(A1,A2,……,An)(即R(U)),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y,X→Y为模式R的一个函数依赖。
或者说,对于X的每一个具体值,都有Y惟一的具体值与之对应,即Y值由X值决定,因而
这种数据依赖称为函数依赖。
51 函数依赖的逻辑蕴涵、FD的闭包F+:
设F是关系模式R的一个函数依赖集,X,Y是R的属性子集,如果从F中的函数依赖能够推出X—>Y,则称F逻辑蕴涵X—>Y,记为F X→Y。
被F逻辑蕴涵的函数依赖的全体构成的集合,称为F的闭包,记为F+。F+={X→Y|F X→Y}
52 候选键、主属性、非主属性:
设有关系模式R(A1,A2,……,An),F是R的一个函数依赖集,X是{A1,A2,……,An}的一个子集。如果
① X→A1A2……An∈F+,且
② 不存在X真子集Y,使得Y→A1A2……An成立,则称X是R的候选键。
包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性称为非主属性。
53 函数依赖的推理规则:
设有关系模式R(A1,A2,……,An)和属性集U= A1,A2,……,An,X,Y,Z,W是U的一个子集,F是R的一个函数依赖集,推理规则如下:
(1) 自反律:如果Y X U,则X→Y在R上成立。
(2) 增广律:如果X→Y为F所蕴涵,Z U,则XZ→YZ在R上成立。
(3) 传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。
FD的其他三个推理规则:
(4) 合并律:如果X→Y成立,那么X→YZ成立。
(5) 伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。
(6) 分解律:如果X→Y和Z Y成立,那么X→Z成立。
54 什么是平凡的FD?平凡的FD可根据哪一条推理规则推出?
如果X→Y,并且Y X,则称X→Y是平凡的FD。根据推理规则的自反律可推出。
55 关系模式的分解有几个不同的衡量标准:
分解具有无损联接;
分解要保持函数依赖;
分解既要保持依赖,又要具有无损联接。
56 什么是无损连接:
设有关系模式R,分解成关系模式ρ={R1,R2,……Rk},F是R的一个函数依赖集。如果对R中满足F的每一个关系r都有:r=πR1(r)|×|πR2(r)|×|……πRK(r),则称这个分解ρ是无损联结分解。
57 试叙保持函数依赖的定义:
设F是属性集U上的一个函数依赖集,Z是U上的一个子集,F在Z上的一个投影定义为:πZ(F)={X→Y|X→Y∈F+且XY Z}
设关系模式R的一个分解为ρ={R1,R2,……Rk},F是R的一个函数依赖集,如果
则称为分解ρ保持函数依赖。
58 第一范式(1NF):
如果关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R是属于第一范式模式。
59 第二范式(2NF):
如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的候选键,则称R是第二范式模式。
60 第三范式(3NF):
如果关系模式R是第一范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。
61 BCNF:
如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。从BCNF的定义可明显地得出如下结论:
(1) 所有非主属性对键是完全函数依赖。
(2) 所有主属性对不包含它的键是完全函数依赖。
(3) 没有属性完全函数依赖于非键的任何属性组。
如果模式R是BCNF,则它必定是第三范式,反之,则不一定。
62 模式设计方法的原则:
关系模式R相对于函数依赖集F分解成数据库模式ρ={R1,R2,……Rk},一般应具有下面三个特性:
(1) ρ中每个关系模式Ri是3NF或BCNF
(2) 保持无损联结
(3) 保持函数依赖集
(4) ρ中模式个数最少和属性总数最少。
63 一个好的模式设计方法应符合哪三条原则:
表达性,分离性,最小冗余性。
表达性涉及到两个数据库模式的等价性问题,即数据等价和依赖等价,分别用无损联接和保持函数依赖性来衡量。
分离性是指属性间的“独立联系”应该用不同的关系模式表达。
最小冗余性要求在分解后的数据库能表达原来数据库的所有信息这个前提下实现。
关系模式设计方法基本上可以分为分解与合成两大类。
64 多值依赖MVD:
设R(U)是属性集U上的一个关系模式,X,Y是U的子集,若对R(U)的任一关系r,对于X的一个给定的值存在着Y的一组值与其对应,同时Y的这组值又不以任何方式与U-X-Y中的属性相关,那么称Y多值依赖于X,记为X→→Y。
65 平凡多值依赖:
对于属性集U上的一个多值依赖X→→Y,如果Y X或者XY=U,那么称X→→Y是一个平凡多值依赖。
66 第四范式(4NF):
设关系模式R,D是一个多值依赖集,如果D中存在一个非平凡多值依赖X→→Y,并且X必是R的超键,那么称R是4NF模式。
第一范式:一言以蔽之:“第一范式的数据表必须是二维数据表”,第一范式是指数据库的每一列都是不可分割的基本数据项,强调列的原子性,试题中某一属性不能拥有几个值。比如数据库的电话号码属性里面不可以有固定电话和移动电话值。 说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
第二范式建立在第一范式的基础上,即满足第二范式一定满足第一范式,第二范式要求数据表每一个实例或者行必须被唯一标识。除满足第一范式外还有两个条件,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。
第三范式若某一范式是第二范式,且每一个非主属性都不传递依赖于该范式的候选键,则称为第三范式,即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。
扩展资料:
范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。
参考资料:
1、网络游戏FD:即First Done的缩写,指得是在网络游戏中第一次击败某个强大的BOSS,大家常看见的说某工会在某区内FD了某个Boss,就是这个意思。比如在魔兽世界中,最轰动的新闻便是某公会在世界范围内fd了某个最终BOSS。2、**FD:《Final Destination》的缩写。3、网站FD——由姚志伟在1998年创立的“狐朋狗友”网站(>
1、FD:所有程序规则,通常由一个可以被防火墙加载的规则包组成 。
2、FD即First Down的缩写,指得是在网络游戏中第一次击败某个强大的BOSS,大家常看见的说某工会在某区内FD了某个Boss,就是这个意思。比如在魔兽世界中,最轰动的新闻便是某公会在世界范围内fd了某个最终BOSS。
关键码是可以确定整个关系的码
A-->B,B-->C,则A-->C,所以A可以确定BC
A-->A,A确定A
则A-->ABC,根据增广性,可得AD-->ABCD
俺也刚学的。。。
以上就是关于求数据库高手,解决有关范式的问题,谢谢!!全部的内容,包括:求数据库高手,解决有关范式的问题,谢谢!!、数据库包含某一字段就更新,比如字段fd_name如果包含“项目申报人”,就更新为“项目申报”、关系数据库设计理论等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)