详细说明数据库规范的三个范式

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 15:28:22
详细说明数据库规范的三个范式

详细说明数据库规范的三个范式
详细说明数据库规范的三个范式

详细说明数据库规范的三个范式
第三范式的要求如下:
1,每一列只有一个值
2,每一行都能区分.
3,每一个表都不包含其他表已经包含的非主关键字信息.
实质上,设计范式用很形象、很简洁的话语就能说清楚.这里将对范式进行通俗地说明,以一个简单论坛的数据库为例讲解怎么样将这些范式应用于实际工程.范式说明
第一范式(1NF):数据库表中的字段都是单一属性的,不可再分.这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等.
例如,
符合第一范式:字段1 字段2 字段3 字段4
不符合第一范式:字段1 字段2 字段3 字段4 字段3.1 字段3.2
很显然,在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列.因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的.
第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字.
假定选课关系表为SelectCourse(学号,姓名,年龄,课程名称,成绩,学分),关键字为组合关键字(学号,课程名称),因为存在如下决定关系:
(学号,课程名称) → (姓名,年龄,成绩,学分)
这个表不满足第二范式,因为存在如下决定关系:
(课程名称) → (学分)
(学号) → (姓名,年龄)
即存在组合关键字中的字段决定非关键字的情况.
由于不符合2NF,这个选课关系表会存在如下问题:
(1) 数据冗余:同一门课程由n个学生选修,"学分"就重复n-1次;同一个学生选修了m门课程,姓名和年龄就重复了m-1次.
(2) 更新异常:若调整了某门课程的学分,数据表中所有行的"学分"值都要更新,否则会出现同一门课程学分不同的情况.
(3) 插入异常:假设要开设一门新的课程,暂时还没有人选修.这样,由于还没有"学号"关键字,课程名称和学分也无法记录入数据库.
(4) 删除异常:假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除.但是,与此同时,课程名称和学分信息也被删除了.很显然,这也会导致插入异常.
把选课关系表SelectCourse改为如下三个表:
1).学生:Student(学号,姓名,年龄);
2).课程:Course(课程名称,学分);
3).选课关系:SelectCourse(学号,课程名称,成绩).
这样的数据库表是符合第二范式的,消除了数据冗余、更新异常、插入异常和删除异常.另外,所有单关键字的数据库表都符合第二范式,因为不可能存在组合关键字.
第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式.所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A.因此,

详细说明数据库规范的三个范式 数据库范式判断 数据库三范式 boyce codd normal 关于数据库的BC范式! 数据库中的范式是什么意思?范式这里感觉有些抽象,不太好理解,求通俗易懂点的解释 数据库中,三种范式之间的区别,如何判断某个关系属于第几范式? 数据库设计遵守哪些范式 数据库规范化中什么是bcnf,第四范式,第五范式,举例说清楚,不会的别乱说,一个追加100分,共300分,了解清楚了,前三个都有例子了 数据库高手请进,怎么去区分几个范式.怎么去简单的分开几个范式?最好附上例子. 三个范式的定义是什么?如果不满足三个范式会造成什么结果?举例说明? 数据库范式主属性怎么求 数据库设计三大范式有什么区别 数据结构中的1范式,2范式,3范式,bc范式,4范式,5范式.希望解释的直白些. 主析取范式和主合取范式的求法! 线性代数二次型的标准型,规范型的区别 请详细说明, 求第三范式问题已知关系r(R)=r(A,B,C,D,E),且存在函数依赖集F=(AB→C,B→D,C→E).试问r最高达到了第几范式?若没有达到第三范式请说明理由并将其规范为第三范式 数据库系统原理题目如果只考虑函数依赖则( ) 是最高的关系模式范式,如果考虑了多值依赖,则4nf是最高的关系模式范式 一道数据库的题,判断范式.最好有步骤.设有关系R(ABCDE),其函数依赖集为:F(E→D,C→B,CE→G,B→A) 问:R属于第几范式?