
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 }
可以参考的资料:
>
第一范式:如果关系模式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、S最高为第二范式。因为主键是学号,所以有学号->(姓名,系名,住处),
又有系名->(住处),所以存在传递依赖
2、由于存在传递依赖,所以存在数据插入异常。如新设立的系名,还没有学生时,因为学号为空,所以导致新系名无法插入
3、分解为第三范式:
S1:学号,姓名,系名
S2:系名,住处
解:
(1) F={(S# C#)→G, C#→U, S#→SN, C#→CN}
(2) (S# C#)
(3)最高达到第一范式,因为(S# C#)是主键,但C#→U, S#→SN, C#→CN,即U,SN,CN这些非主属性均部分函数依赖于主键,所以只能达到第一范式。
(4)S (S#, SN)C (C#, CN, U)SC (S#, C#, G)
>
哈哈哈,下面的回答好好笑
以上就是关于数据库 关系模式 范式问题全部的内容,包括:数据库 关系模式 范式问题、数据库关系模式范式的题目应该怎么做、数据库问答题:1、 列举一个符合第一范式的数据表,将其转换为符合第二范式的关系模式。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)