答案是B,2NF。
S->D,D->M表示依赖关系,表示D依赖于S,尔M依赖于D,这表示M与S之间有传递依赖关系。
我们知道3NF是在2NF的基础上消除了传递依赖,2NF在1NF的基础上消除了部分依赖。
具体实例看我的另一个回答:
>
3NF的分解,不存在传递和部分依赖的分机。
第一个表:工号(主键),姓名,工种(外键),车间(外键)。
第二个表:车间(主键),车间主任。
第三个表:工种(主键),定额。
第四个表:工号,时间(两个组合为主键),超额。
原来的那个表的超额的值根据什么来计算的,我假定的是它是根据时间和工号两个因素决定。定额我假定是根据工种来决定。
设计数据库关键是要满足第三范式
(1)一个单元格只能一个数据
(2)需要有非复合的主键
(3)不能有和非主键有直接关系的键
就这三个条件分析:
(1)书名-书作者要拆分成另一个表
(2)书号-书名为复合主键,需要拆分
(3)出版社地址,负责人,负责人电话号码和出版社名称(非主键)有直接关系,需要拆分负责人的电话又和负责人有直接关系,继续拆分
这样拆成5个表(实际设计时,其实并不需要3NF这么精细!这只是做题时的设计):
书号_书名:(书号#,书名)
书号_书作者:(书号#,书作者)
书(书号#,书类别,出版社名称)
出版社(出版社名称#,出版社地址,出版社负责人)
负责人(出版社负责人#,出版社负责人电话号码)
主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。
非主属性:与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。
所以 此时的主属性是:H,L,I,J。 非主属性是:K
范式的判断:
第一范式(1NF)无重复的列 属性不可分
第二范式(2NF)属性完全依赖于主键[消除非主属性对主码的部分函数依赖] 符合1NF,并且,非主属性完全依赖于码
第三范式(3NF)属性不依赖于其它非主属性[消除传递依赖] 符合2NF,并且,消除传递依赖
BC范式(BCNF):符合3NF,并且,主属性不依赖于主属性
由于存在 J->K,所以K部分依赖于候选码(IJ),所以不满足第二范式。所以该模式只属于第一范式。
首先来分析数据库规范化的三范式 1、第一范式:没有重复冗余的列。 首先a/b/c不是重复列 符合第一范式 2、第二范式:去除不依赖于主键的列,确保关系中的所有信息都是关于一个实体的。 其次a和b是主键 c依赖于a和b,就是说非主属性依赖于主键,完全符合第二范式 3、去除不属于该表的数据,消除表中传递依赖的列和完全依赖于外键的列。 a/b/c间不存在传递依赖,而是非主属性完全依赖于主键的,所以符合第三范式 补充: 第四范式是多值依赖 第五范式是联接依赖
以上就是关于数据库范式问题全部的内容,包括:数据库范式问题、求解数据库范式简单题目、数据库关系范式的例题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)