问题 问答题

阅读下列说明,根据要求回答下列问题。

[说明]

某学校为实现无纸化、网络化的教材管理,拟开发一套教材管理系统。该系统主要负责统计全校的教学用书的需求信息,以便进行教材的统一购买。

[需求分析结果]

(1)教学计划。各学院的教学计划是教材需求的来源,各学院的教学管理人员为本学院的各个专业方向制订教学计划。教学计划主要描述每个专业方向不同学期所开设的课程信息,教学计划的示例如表1所示。

 

表1 “教学计划”示例
院系名称专业名称学期课程编号课程名教材编号
计算机系软件工程4C0101软件开发B001
计算机系软件工程4C0103数据库技术B003
计算机系网络通信5C0103数据库技术B003
电子工程系网络通信6C020l数据库技术B005

(2)课程信息。课程信息包括课程编号、课程名和教材编号,由课程编号唯一标识。如表1所示,《数据库技术》课程因其使用的教材不同而分别编号。

(3)专业方向和班级。学校根据学院和专业方向将学生划分班级。一个学院可有多个专业方向,不同学院可以有相同名称的专业方向。一个专业方向可有多个班级,班级包含入学年份和人数。

(4)教材信息。教材信息记录教材的基本信息,包括教材编号、教材名称、ISBN号、出版社名称、作者和版本号。同一种教材版本不同,编号也不同,一种教材可以有多个作者。

(5)教材需求。根据各学院的教学计划和对应的班级人数,统计全校各系各专业各班级的教材需求情况。教材需求量是根据现有的教学计划和班级人数计算得到的。

[逻辑结构设计]

根据需求阶段收集的信息,设计的关系模式如图所示。

关系模式的主要属性、含义及约束如表2所示。

 

表2 主要属性含义及约束
属性含义及约束属性含义及约束
班级号唯一标识每个班级的编号教材编号唯一标识每本教材的编号
院系名称唯一标识每个院系的名称ISBN教材图书的ISBN号,唯一标识一本图书
专业名称唯一标识某个院系中某个专业方向的名称  

根据如图所示的关系模式,给出班级和教材的函数依赖(不完整)如下。

(1)班级关系函数依赖FD1。

班级号→入学年份,人数,院系名称,专业名称

(2)教材关系函数依赖FD2。

教材编号→教材名称,ISBN,出版社,版本号(不完整)

根据如图所示的关系模式,回答以下问题。
(1)分析“教材”关系,给出除FD2外其余的函数依赖和多值依赖。
(2)列出“教材”关系的所有候选键。
(3)分析“教材”关系的所属范式,并说明原因。
(4)对“教材”关系进行分解,使其达到4NF。分解后各关系模式分别命名为:教材1,教材2……

答案

参考答案:

这是一道要求读者掌握数据库关系模式规范化理论的综合分析题,本题解答思路如下。

根据图、表2和题干相关描述信息,可得到如下各关系模式的主键和外键。

班级(班级号,入学年份,人数,院系名称,专业名称)

课程(课程编号,课程名,教材编号)

教材(教材编号,教材名称,ISBN,出版社,作者,版本号)

教学计划(院系名称,专业名称,学期,课程编号,课程名,教材编号)

(1)对于“教材”关系模式,教材的信息除了完全函数依赖于教材编号,也完全函数依赖于ISBN号。因此还需补充函数依赖:ISBN→{教材名称,教材编号,出版社,版本号}。

此外,根据题干中的关键信息“一种教材可以有多个作者”可知,对于“教材”关系模式中的作者属性,存在多值依赖。

教材编号→→作者

ISBN号→→作者

(2)如果属性组Y完全函数依赖于候选键,则根据FD2和(1)中补充的函数依赖可知,“教材”关系模式的候选键为:教材编号和ISBN。

(3)对于“教材”关系模式来说,没有主属性对码的部分依赖和传递函数依赖;非主属性完全依赖于码;没有任何属性完全函数依赖于非候选码的任何一组属性,满足BCNF范式的要求。因此“教材”关系模式属于BCNF范式。

(4)由于“教材”关系模式存在多值依赖,因此它不满足4NF的要求。可以针对“作者”属性进行分解,从“教材”关系模式中去掉作者属性得出关系模式“教材1”,并将作者属性及对应的教材主键放在新的关系模式“教材2”中。

教材1(教材编号,ISBN,教材名称,出版社,版本号)

教材2(教材编号,作者) 或者 教材2(ISBN,作者)

填空题
单项选择题