国开《数据库基础与应用》第三章 3-4-2:第二范式规范化举例

搜答案方法:电脑端按「Ctrl+F」、手机端用「页面查找」功能输入关键词查找。

3-4-2:第二范式规范化举例

设一个学生选课关系为SSC(学生号,姓名,性别,课程号,课程名,课程学分,成绩),其中每个学生可以选修多门课程,每门课程可以由多个学生选修,成绩属性描述某个学生学习某门课程的考试成绩。SSC关系的具体实例下表1所示。

表1 学生选课关系

学生号姓名性别课程号课程名课程学分成绩
0101001王明C001C++语言478
0101001王明C004操作系统362
0102005刘芹E002电子技术573
0202003张鲁C001C++语言494
0202003张鲁X003信号原理480
0202003张鲁C004操作系统365
0303001赵红C001C++语言476
0304006刘川E002电子技术572

最小函数依赖集:根据SSC关系模式的语义,也就是上述对SSC关系的解释,可以得出该关系的最小函数依赖集FD为:

FD={学生号→姓名,学生号→性别,课程号→课程名,课程号→课程学分,(学生号,课程号)→成绩}

侯选码:(学生号,课程号)就是该关系的一个候选码,并且是唯一的候选码,同时只能由它作为该关系的主码。

部分依赖:姓名、性别部分依赖于学生号,课程名和课程学分部分依赖于课程号。成绩属性是完全依赖于候选码(学生号,课程号)。

存在着数据冗余。一个学生要选修多门课程,该学生的个人属性信息要重复存储多次。一门课程可以被多个学生选修,该课程的属性信息也得被存储多次。

存在着插入异常。当一个学生不选修课程时就无法被插入,而不选修课程应该是允许的;或者一门课在无人选修之前也无法被插入。

存在着删除异常。进行删除时,若一个学生选课的所有元组被删除了,则该学生的信息也就不存在了,或者同选一门课的所有学生选课元组都删除了,该课程的信息也就不存在了。

存在着修改异常:进行修改操作时,若一门课程的学分改变了,就需要修改它对应的所有选课元组中的课程学分属性的值,若遗漏一处就造成数据存储的不一致。

消除部分依赖方法:要分解上面的学生选课关系SSC,使直接依赖学生号的属性子集成为一个单独关系S,使直接依赖课程号的属性子集成为另一个单独关系C,使学生号、课程号和成绩这3个属性所构成的属性子集单独成为一个关系SC。分解后的三个关系为

S=(学生号,姓名,性别) //学生号为S关系的主码

C=(课程号,课程名,课程学分) //课程号为C关系的主码

SC=(学生号,课程号,成绩) //(学生号,课程号)为SC关系的主码

它们对应的最小函数依赖集分别为:

FD1={学生号→姓名,学生号→性别}

FD2={课程号→课程名,课程号→课程学分}

FD3={(学生号,课程号)→成绩}

在消除部分依赖的同时,也由一个SSC关系,变为了S、C和SC这3个关系。将这3个关系按照学生号和课程号进行自然连接,连接表达式为:S∞SC∞C,得到的结果关系与原关系SSC是完全相同的。

关系投影:把学生选课关系模式SSC分解成学生关系模式S、课程关系模式C和选课关系模式SC后,再对上表所示的SSC关系实例按分解模式进行关系投影将得到的关系实例分别如下表2、表3和表4所示。

表2 学生关系

学生号姓名性别
0101001王明
0102005刘芹
0202003张鲁
0303001赵红
0304006刘川

表3 课程关系

课程号课程名课程学分
C001C++语言4
C004操作系统3
E002电子技术5
X003信号原理4

表4 选课关系

学生号课程号成绩
0101001C00178
0101001C00462
0102005E00273
0202003C00194
0202003X00380
0202003C00465
0303001C00176
0304006E00272

取消部分依赖后的好处:减少了数据冗余,消除了操作异常,使得每个学生的信息、每门课程的信息只在相应的关系中保存一个版本,每个学生、每门课程、每次选课的有关信息都能够分别独立地被插入、删除或修改,当查询需要时,也很方便进行相关连接。


「国开学习吧」:用户COOKIE有效时间30天,收藏网址『guokaixuexi.com』不迷路哦~

相关文章

国开《数据库基础与应用》第五章 5-2-3:逻辑设计

国开《数据库基础与应用》第五章 5-2-3:逻辑设计

5-2-3:逻辑设计根据上一步概念设计得到的4个基本表:即客房表、住宿表、消费卡表和旅客登记表,以及5个视图表:即客房空闲表、住宿费表、伙食费表、娱乐费表和催补款表,以及它们之间的内在联系。creat...

国开《数据库基础与应用》第九章 9-2-2:文本框与标签控件的使用

国开《数据库基础与应用》第九章 9-2-2:文本框与标签控件的使用

9-2-2:文本框与标签控件的使用标签控件主要用来显示一些说明性文字,它是非绑定型控件。文本框控件用来显示用户输入和计算的数据,以及对应表和查询对象中的字段值。例如:请通过“窗体设计”命令创建一个窗体...

国开《数据库基础与应用》第十章 10-2-2:报表设计命令

国开《数据库基础与应用》第十章 10-2-2:报表设计命令

10-2-2:报表设计命令利用报表设计命令能够设计出个性化很强和功能丰富的报表。例如:可以设计出一个具有主/子结构的报表。假定我们要设计出雇员_订单报表,它就是一个具有主/子结构的报表。利用报表设计命...

国开《数据库基础与应用》第三章 3-2-2: 最小函数依赖集

国开《数据库基础与应用》第三章 3-2-2: 最小函数依赖集

3-2-2: 最小函数依赖集定义:设一个关系为R(U),X和Y为U的子集,若X→Y为完全函数依赖,同时Y为单属性,则称X→Y为R的最小函数依赖。由R中所有最小函数依赖构成R的最小函数依赖集,并且在最小...

国开《数据库基础与应用》第五章 数据库应用系统设计 本章导学

国开《数据库基础与应用》第五章 数据库应用系统设计 本章导学

导读本章通过两个事例简要介绍了数据库应用系统开发的大致过程,它需要相继经过六个阶段:需求分析、概念设计、逻辑设计、物理设计、机器实现和运行维护。数据库应用系统设计不是一蹴而就的事情,需要设计者具有丰富...

国开《数据库基础与应用》第四章 4-1-3:数据库的删除

国开《数据库基础与应用》第四章 4-1-3:数据库的删除

4-1-3:数据库的删除删除数据库的命令格式如下:DROP {SCHEMA | DATABASE} <数据库名>命令功能:删除掉由命令中<数据库名>所指定的一个数据库应用系统。...

国开《数据库基础与应用》第十一章 11-1-2:宏操作命令简介

国开《数据库基础与应用》第十一章 11-1-2:宏操作命令简介

11-1-2:宏操作命令简介在教材中表11-1-1中,列出了一部分的宏操作命令,它被分为数据库对象、筛选/查询/搜索、宏命令、系统命令、用户界面命令、窗口管理、数据输入操作、数据导入/导出等8种类型的...

国开《数据库基础与应用》第一章 1-4-1:各种逻辑数据模型概述

国开《数据库基础与应用》第一章 1-4-1:各种逻辑数据模型概述

1-4-1:各种逻辑数据模型概述概念数据模型是不能在计算机中使用的,必须把它转换为相应的逻辑数据模型,从而在计算机中实现数据处理活动。逻辑数据模型:层次数据模型、网状数据模型、关系数据模型、面向对象数...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。