数据库模式分解的原则是什么
发布网友
发布时间:2022-04-24 01:37
我来回答
共3个回答
热心网友
时间:2022-04-08 19:42
关系模式的分解准则
关系模式的规范化过程是通过对关系模式的分解来实现的。把低一级的关系模式分解为若干个高一级的关系模式。这种分解不是唯一的。
规范化的方式是进行模式分解,模式分解的原则是与原模式等价,模式分解的标准是:
模式分解具有无损连接性
模式分解能够保持函数依赖
举例:关系规范化过程
第一范式(1NF):如果一关系模式,它的每一个分量是不可分的数据项,即其域为简单域,则此关系模式为第一范式。
例:将学生简历及选课等数据设计成一个关系模式STUDENT, 其表示为:
STUDENT(SNO,SNAME,AGE,SEX,CLASS,DEPTNO,DEPTNAME,CNO,
CNAME,SCORE,CREDIT)
设该关系模式满足下列函数依赖:
F={SNO-->SNAME, SNO-->AGE, SNO-->SEX, SNO-->CLASS,CLASS-->DEPTNO, DEPTNO-->DEPTNAME, CNO-->CNAME,SNO.CNO-->SCORE, CNO-->CREDIT}
由于该关系模式的每一属性对应的域为简单域,即其域值不可再分,符合第一范式定义,所以STUDENT关系模式为第一范式。
第二范式(2NF):若关系模式R?1NF,且每个非主属性完全函数依赖于码,则称R?2NF。
分析一下关系模式STUDENT, 它是不是2NF ?
属性组(SNO,CNO)为关系STUDENT的码。
例如:SNAME非主属性,根据码的特性具有:SNO.CNO??SNAME
根据STUDENT关系模式已知函数依赖集,下列函数依赖成立:SNO??SNAME
所以SNO.CNO??SNAME, SNAME对码是部分函数依赖。同样方法可得到除SCORE属性外,其它非主属性对码也都是部分函数依赖。所以STUDENT关系模式不是2NF。
当关系模式R是1NF而不是2NF的模式时,对应的关系有何问题呢?我们分析STUDENT关系模式,会有下列问题:
存在大量的冗余数据:当一个学生在学习多门课程后,他的人事信息重复出现多次。
根据关系模型完整性规则,主码属性值不能取空值。那么新生刚入学,还未选修课程时,该元组就不能插入该关系中。这种情况称为插入异常。
同样还有删除异常,则会丢失信息
解决上述问题方法是将大的模式分解成多个小的模式,分解后的模式可满足更高级的范式的要求。
热心网友
时间:2022-04-08 21:00
数据库设计要使用户删除,更新,插入比较方便,避免产生数据冗余,异常等现象;一般要遵循三大范式,简而言之就是,
1NF:属性不可再分,即不能表中套表
2NF:不存在非主属性对码的部分函数依赖
3NF:不存在非主属性对码的传递函数依赖
BCNF:不存在主属性对码的部分依赖和传递
即使BCNF仍然存在不足,比如下表
科目 老师 参考书
语文 张老师 一点通
语文 * 黄冈兵法
语文 王老师 巅峰阅读
数学 张老师 黄冈兵法
数学 王老师 一点通
数学 * 巅峰阅读
这个表的码是全码满足1,2,3,BC,范式,可以看出,这个表的数据冗余,这就是多值依赖,为了解决多值依赖的问题,我们引进的4NF即消除非平凡且非函数依赖的多值依赖
至于如何分解,则要利用数据依赖的公理系统,把低级的关系模式分解成若干个高一级的关系模式。当然分解不唯一。
eg:
R(U,F)
U(A,B,C,D,E,F)
F(A->B,AC->D,AC->E,E->F)
分解:码 AC
主属性 A,C
非主属性 B,D,E,F
R是1NF不是2NF
R->R1(A,B)为BCNF
R2(A,C,D,E,F)为2NF不是3NF
R2->R21(A,C,D,E)为BCNF
R22(E,F)为BCNF
故R分解成R1,R21,R22
一点小心得,共同进步
热心网友
时间:2022-04-08 22:35
1NF ,所有属性都以完全分解(教师,课程,学生)是1NF,(教师和他教的课程,学生)不是;
2NF,消除非主属性对候选键的的局部依赖(学生,课程,成绩,课程名),课程名只部分依赖于主键中的课程,首先是数据冗余,然后可能更新不一致
3NF,消除非主属性对候选键的的传递依赖(课程,教师,住址,手机), 住址和手机对教师有依赖,教师依赖课程,那么住址要传递依赖于课程,会造成数据冗余,更新丢失教师信息不一致等情况,就要分解(课程,教师),(教师,住址,手机)
BCNF则消除了任何属性对候选键的传递依赖,在3nf的基础上消除了主属性间的传递依赖关系,
选课表 (教师,课程,学生)都是主属性,但是学生依赖于课程,课程依赖于教师,学生传递依赖于教师,所以应该拆成(教师,课程),(课程,学生)
参考:http://wenku.baidu.com/view/d1eaf21aa8114431b90dd8e2.html
三级数据库笔试题 求高手解答 感谢万分!
1、分解是具有无损连接性的;2、分解是保持函数依赖的;3、分解既要具有无损连接又要保持函数依赖两种。按三个标准进行分解后,还要记住一些东西:1、分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定保持函数依赖,保持函数依赖的分解不一定具有无损连接性。2、 若...
数据中台选型应注意哪些事项?
在选择数据中台时,有几个关键事项需要注意:需求分析与业务匹配:不同的企业在数据处理、分析和应用的需求上各有差异,因此需要深入了解企业当前和未来的业务需求,确定数据中台需要支持的业务场景。技术架构与可扩展性:当下,数据量增长和技...
数据库模式分解问题
是既有无损连接性又保持函数依赖的分解才会要求去掉候选码和关系模式中属性重复的一方。题中只是转化为保持函数依赖的3NF,是不需要进行这一步的。比较匆忙 从右边看吧
数据库原理 关系模式分解
设关系模式R(U,F)中,U={A,B,C,D,E},F={AB→C,C→D,D→E},R的一个分解ρ={ R1(A,B,C),R2(C,D),R3(D,E)}。试判断ρ具有无损连接性。解:① 首先构造初始表,如图(a)所示。A B C D E R1(A,B,C) a1 a2 a3 b14 b15 R2(C,D) b21 b2...
数据库 关系模式 BC → D, C → AF, AB → CE 如何分解成BCNF_百度知 ...
c->af===>c->a,c->f ab->ce===>ab->c,ab->e 这样我们得到:ab->a,ab->c,ab->f,ab->e 又因为 bc->d,ab->c 我们是不是能得到ab->d呢,答案是肯定的。所以呢ab作为码就可以了。根据BCNF定义,可分为:R1 {A,B,C,E} R1 {A,B,D,F},如果不对,欢迎指正。
对关系模式进行什么分解提高数据库的效率
对关系模式进行什么分解提高数据库的效率 关系模式进行规范化的目地:规范化目的是使结构更合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新 关系模式进行规范化的原则:遵从概念单一化 "一事一地"原则,即一个关系模式描述一个实体或实体间的一种联系。规范的实质就是概念的单一化。
数据库中的三大范式是什么?
数据库中三大范式的定义如下:1、第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。2、第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都...
数据库系统系统原理,关系模式方面问题
1.保持函数依赖的分解一定是3NF,但不一定是BCNF。2.既保持函数依赖又有无损连接性的分解一定是3NF,但不一定是BCNF。3.具有无损连接性的分解,一定可达到4NF。Q3:第一范式,第二范式都能理解,那么第三范式是在第二范式的基础上,增加了什么条件?A3:第三范式是在第一模式的基础上,消除了每一个...
判断是否保持函数依赖
对于第一句话,为什么需要分解关系模式?因为原来的关系模式可能造成数据冗余或 给数据库带来潜在的不一致性。对于第二句话,根据不同语义,分解的原则也不尽相 同,所以方法肯定是不唯一的,譬如U={A,B,C},根据不同原则(随便你自己定),可能分成(A,B)(A,C)也可能分成(B,C)(A,C)。
数据库如何判断是否保持分解?
怎么判断关系数据库分解无损连接和保持函数依赖 怎么判断关系数据库分解无损连接和保持函数依赖 举个例子设有关系模式R(A,B,C,D,E),函数依赖集F={A->B,B->C,C->D,D->A},p={AB,BC,AD}是R上的一个分解,那么分解p相对于F___ 不无损连接和不保持函数依赖 ...
数据库关系模式范式的题目应该怎么做
(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就是消除传递...