首先,你说的应该是数据库表的范式吧?
第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要
求,否则,将有很多基本 *** 作在这样的关系模式中实现不了。
第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。
第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF
具体的例子,可以看数据库设计三大范式
ps,请忽略banner上的广告,此外,这篇文章排版还是很不错的。看着舒服。
第一范式:如果关系模式R的每个关系r的属性值都是不可分的原子值,那么乘R是第一范式。
例如关系模式R(NAME,ADDRESS,PHONE),如果一个人有两个电话号码没那么在关系中至少要出现两个元组,一边存储这两个号码
第二范式:如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么R是第二范式
设关系模式R(WXYZ),主键是WX,R上还存在FD X->Z(也就是wx->z是一个局部依赖)此时应把R分成两个模式:
R1(XZ),主键是X;
R2(WXY),主键是WX,外键是X(REFERENCES R1)利用外间和主见的练级可以从r1和r2重新得到R
至于你这个题目据下面一个例子:
仓库(仓库号,货物号,库存量,仓库地址) 其中仓库号和货物号为主键--------1NF
转换为2NF:
库存(仓库号,货物号,库存量) 库存号和货物号是主键
仓库(仓库号,仓库地址) 仓库号是主键
为什么会这样 在1NF中,库存量完全依赖于仓库号和货物号,而仓库地址部分依赖于仓库号和货物号。 怎么弄成2NF 也是按照这个道理转换的
1
f={订单号
->订货日期,订单号
->客户号,产品编号
->品名,产品编号
->价格,客户号->客户名称,客户号->客户电话}
2
L类:订单号,产品编号,客户号
N类:数量
所以订单号,产品编号,客户号,数量一定是R的候选码成员
由于(订单号,产品编号,数量)+=订单号,订货日期,客户号,客户名称,客户电话,产品编号,品名,价格,数量
所以订单号,产品编号,数量是R的候选码
3第一范式,因为R中的非主属性部分依赖于候选码
职工表:职工号、姓名、年龄,仓库号
仓库表:仓库号、仓库名、地址
货物表:货物号、货物名、单价
库存表:库存号、货物号、仓库号
职工表主键是职工号,外键是仓库号,跟仓库表关联
仓库表主键是仓库号
货物表主键是货物号
库存表主键是库存号,外键是仓库号、货物号(跟仓库表、货物表关联)
(1)可以这样分析:“→”我们可以理解为决定。候选关键字就是唯一决定(A,B,C,D,E)这个数据集的几个字段,在F中我们不难看出C,E没有谁决定它,所以C,E一定是候选关键字,但是仅有C,E却不能决定A,B,D。这时我们再看F,发现能决定A的只有DC,所以再在候选关键字中加上D,加上D后我们发现B可以被D决定了,同时D当然可以决定D自身,于是R的候选关键字就是DCE
(2)首先R肯定是第一范式,简单理解就是F中A,B,C,D,E都有;其次R也属于第二范式,因为在F中不存在部分函数依赖。就是说,没有像AB→C,B→C这种约束。但是R不属于第三范式,因为在F中很明显有传递依赖(A→D, E→D,BC→D ,D→B),所以R属于第二范式。
(3)将R分解为3NF就是消除传递依赖,很好办,就把上面传递依赖中D换成B(A→B, E→B,BC→B ,B→B),再把其中(BC→B ,B→B)去掉,因为太显然了,就不需要去约束了。所以最后结果为F={A→B,E→B,DC→A }
以上就是关于数据结构中的1范式,2范式,3范式求列举一下全部的内容,包括:数据结构中的1范式,2范式,3范式求列举一下、数据库问答题:1、 列举一个符合第一范式的数据表,将其转换为符合第二范式的关系模式。、数据库 关系模式 范式问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)