文档库

最新最全的文档下载
当前位置:文档库 > 数据库原理与应用综合题

数据库原理与应用综合题

1、现有如下关系模式:R(A,B,C,D,E) ,R上的函数依赖集F={AB→E,B→C,C→D }。

1.该关系模式最高满足第几范式并说明原因。

2.如果将关系模式R分解为R1(A,B,E)和R2(B,C,D),指

出关系模式R2的码,并说明该关系模式最高满足第几范式?。

3.判断2中的分解是否具有无损连接性。

4.将关系模式R分解成具有无损连接性的BCNF。

答:1. 该关系模式的候选键为AB。因为B→C,所以非键属性C部分依赖于候选键AB,所以该关系模式不是2NF,最高是1NF。(3分)

2. F在R2上的投影为{B→C,C→D},候选键是B。不存在非键属性对候选键的部分依赖,但是有B→C,C→D,且C B,因此非键属性D传递依赖于键B,因此R2不是3NF,最高满足2NF。(3分)

3. 设U1和U2分别是R1和R2的属性集合。U1?U2=B,U1-U2=AE,B→AE 不属于F+,U2-U1=CD,B→CD属于F+,所以有U1?U2→U2-U1,所以分解具有无损连接性。(3分)

4. 因为B→C,决定因素B不是键,因此把R分解成R1(BC)和R2(ABDE)。其中R1上的函数依赖集合F1={B→C},候选键是B,因此是BCNF。R2上的函数依赖集合F2={AB→E},候选键为ABD,非BCNF,进一步分解为R21(ABE)和R22(ABD)。R21上的函数依赖集合F21={ AB→E },候选键是AB,是BCNF。R22的候选键是全键,函数依赖依赖集合为空集,也是BCNF。因此原关系模式R分解成R1、R21、R22。(3分,此题的分解方法不唯一)

2、一个图书借阅数据库系统要求提供下述服务:可随时查询书库中现有书籍的名称、品种、数量与存放位置,所有各类书籍均可由书号唯一标识;可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期和还书日期。约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性;当需要时,可通过数据库中保存的出版社电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。约定:一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。

1.根据上述语义画出ER图,要求在图中画出属性并注明联系的类型。(6分,其中实体2分、联系2分、属性2分)

2.将ER模型转换成关系模型,并指出每个关系模式的主键和外键。(共4分,每个完整的关系模式1分,若关系模式的属性描述正确但主键或外键有错误时适当给分)

书籍(书号,名称,品种,数量,存放位置,出版社名) 出版社名为外键 出版社(出版社名,电报编号,电话,邮编,地址) 无外键 借书人(借书证号,姓名,单位)无外键

借阅(书号,借书证号,借书日期,还书日期) 书号和借书证号都是外键 其中下划线表示主键

3、设文件F 具有10000个记录,每个记录50字节,其中10字节用来表示文件的键值。每个磁盘块大小1000字节,指向磁盘块的指针占5字节,不允许记录跨两个块。

1. 存放整个文件需要多少个磁盘块?如果F 是顺序文件,查找一个

记录需要多少次磁盘I/O ?如果F 无序,查找一个记录需要多少次磁盘I/O ?

2. 如果为文件F 建立主索引,索引文件占用多少磁盘块?利用这个

主索引查询需要多少次磁盘I/O ?

答:1. 每个磁盘块能存放记录数:1000/50=20个。

整个文件占用的磁盘块数:10000个记录/20个每块=500块。(2分)

如果F 是顺序文件,查找一个记录需要的磁盘I/O 数:?log 2500?=9块。(2分)

如果F 无序,查找一个记录需要的磁盘I/O 数:500/2=250块。(2分)

2. 每个磁盘块能存放记录数:1000/50=20个。 整个文件占用的磁盘块数:10000个记录/20个每块=500块。

因为主索引为稀疏索引,数据文件的每个磁盘块对应一个索引项,因此主索

引共有500个索引项。

每个索引项存放一个键值指针对,共10+5=15字节。每个磁盘块能存放索引

项个数为?1000/15?=66个。

N M

1

N

书籍

出版社

借书人

借阅

名称

品种 数量

存放位置

书号

姓名 借书证号 单位 还书日期

借书日期 出版

邮编

地址

出版社名

电话

电报编号

因此索引文件占用的磁盘块数为?500/66?=8块。(3分)

利用主索引查询,需要读索引文件log 28=3块,数据块1块,因此利用这个

主索引查询某记录需要3+1=4次磁盘I/O 。(3分)

4、设教学数据库有三个关系:

学生关系:S(S#, SNAME, AGE, SEX) 选课关系:SC(S#,C#,GRADE)

课程关系:C(C#,CNAME,TEACHER)

数据库上的一个查询为“检索男同学选修课程的课程名和任课教师名”。

1. 写出该查询的初始关系代数表达式。

2. 画出初始关系代数表达式对应的查询树。

3. 使用启发式代数优化规则对该查询进行优化,画出优化的过

程和最后结果。

1. 初始关系代数表达式:(3分)

∏CNAME,TEACHER σSEX=’男’AND S.S#=SC.S# AND SC.C#=C.C#(S ?SC ?C) 2. 初始关系代数表达式对应的查询树:(3分,若初始关系代数有误且查询树与其对

应,若查询树正确则给满分)

3. 优化的过程及结果(共6分,其中过程3分,结果3分。过程只需要画出1棵树,

过程对应的查询树不唯一)

SC

S ? C

∏CNAME,TEACHER

σSEX=’男’AND S.S#=SC.S# AND SC.C#=C.C#

σSEX=’男’σ S.S#=SC.S#

?

SC

S ?

C

σ SC.C#=C.C#

选择下移

5、将下述关系代数表达式进行查询优化,

))

((..'1'.''.SPJ S Sno

SPJ Sno S J Jno SPJ 北京City

S Sname ?=∧=∧=σπ

要求:①写出优化后的关系代数表达式;②画出优化后的语法树。 解答:

)))

()((('

1'.'

'...SPJ S J Jno SPJ

北京City

S Sno SPJ Sno S Sname ===?σσσπ

数据库原理与应用综合题

∏S#

S.S#=SC.S#

σSEX=’男’

∏SC.C#

SC

S

C

最后结果

SC.C#=C.C#

∏C#, S#

6、在教学管理数据库中有学生、课程和选课三个表,它们的定义分别为为:

Student(Sno Char(5),Sname Char(6),Ssex Char(2),

Sage Int,Sdept Char(2))

Course(Cno Char(1), Cname Char (10), Cpno Char(1),

Ccredit Int)

SC(Sno Char(5), Cno Char(1), Grade int)

根据下面的要求,写出SQL语句。

①用SQL语句建立数据表SC,以(Sno, Cno)作为主键;

②向Student表插入一条记录(95011, 张三, 女, 19,CS);

③检索计算机系(CS)所有女同学的姓名和年龄;

④检索选修了2号课程学生的学号、姓名、成绩,并按成绩降序排序;

⑤建立一个信息系(IS)所有不及格(Grade<60)学生的视图

vwStudent。

解答:

①用SQL语句建立数据表SC,以(Sno, Cno)作为主键

CREATE TABLE SC (

Sno CHAR(5),

Cno CHAR(1),

Grade INT,

PRIMARY KEY (Sno,Cno)

);

②向Student表插入一条记录(95011, 张三, 女, 19,CS)

INSERT INTO Student VALUES('95011', '张三', '女', 19, 'CS');

③检索计算机系(CS)所有女同学的姓名和年龄;

SELECT Sname, Sage FROM Student

WHERE Sdept='CS' AND Ssex='女';

④检索选修了2号课程学生的学号、姓名、成绩,并按成绩降序排序;

SELECT Student.Sno, Sname, Grade

FROM Student INNER JOIN SC ON Student.Sno=SC.Sno

WHERE http://www.wendangku.net/doc/0533f42e915f804d2b16c1fd.htmlo='2'

ORDER BY Grade DESC

⑤建立一个信息系(IS)所有不及格(Grade<60)学生的视图vwStudent。

CREATE VIEW vwStudent AS (

SELECT Student.*

FROM Student INNER JOIN SC ON Student.Sno=SC.Sno

WHERE Sdept='IS' AND Grade < 60)

7、设有关系模式R(A,B,C,D,E,G,K),其最小函数依赖集F={AB→C,B →DE,C→G,G→A}

①求模式R的所有候选码;

②说明R不是2NF的理由,并把R分解成2NF模式集;

解答:

L属性:B;R属性:DE;LR属性:A,C,G;NLR属性:K。

计算(B)+={DE},所以,B不能做为唯一的候选码,需要与LR属性联合;

计算(AB)+={ABCDEG},故ABK是候选码;

计算(BC)+={ABCDEG},故BCK是候选码;

计算(BG)+={ABCDEG},故BGK是候选码;

在上面的关系中,非主属性只有{DE},但存在函数依赖B→DE,即存在非主属性对码

的部分函数依赖,故不是2NF;

将R分解成:

R1(A,B,C,G,K, AB→C,C→G,G→A)

R2(B,D,E, B→DE)

R1关系中的候选码仍为ABK,BCK,BGK,没有非主属性,故一定满足2NF;R2关系中

候选码为B,主属性只有一个,故一定满足2NF

8、现有某个应用,涉及到两个实体集,相关的属性为:实体集R(A#,A1,A2,A3),

其中A#为码,实体集S(B#,B1,B2),其中B#为码,从实体集R到S存在多对一的联系,联系属性是D1。 1.设计相应的关系数据模型;

2.如果将上述应用的数据库设计为一个关系模式,如下:

RS(A#,A1,A2,A3,B#,B1,B2,D1),指出该关系模式的码。

3.假设上述关系模式RS上的全部函数依赖为:A1→A3,指出上述模式RS最高满

足第几范式?(在1NF~BCNF之内)为

么?

4.如果将上述应用的数据库设计为三个关系模式,如下:R1 (A#,A1,A2,A3)

R2 (B#,B1,B2) R3 (A#,B#,D1)关系模式R2是否一定满足第3范式?为什么?

1.R1 (A#, A1,A2,A3,B#,D1) R2 (B#, B1, B2)

2.码是A#B#

3.RS满足2NF,不满足3NF 因为存在非主属性A3对码A#、B#的传递依赖,没有部分函数依

赖。

4.不一定。 因为R3中有两个非主属性B1和B2,有可能存在函数依赖B1→B2,则出现传

递依赖B#→B1、B1→B2。

9. 一个超市货品销售管理系统有如下信息:

货品:编号、货品名

销售部门:部门名、经理

制造商:厂商名、地址

其中约定:超市中的货品用编号唯一标识。一个制造商可以提供多种货品,一种货品也可以由多个制造商提供,制造商具有自己专有的厂商名,制造商提供货品的型号和价格;超市的一个部门可以销售多种货品,某一种货品仅能在一个部门销售,超市内的各部门名具有唯一性。试完成如下设计:

( 1)该系统不完整的E-R图如下图所示,请按照题中所给的信息完善该E-R 图。(5分)

( 2)将完善后的E-R图转换为关系模型结构;(5分)

( 3)指出转换结果中每个关系模式的关键字。(5分)

( 2 )

货品(编号,货品名,部门名)

部门(部门名,经理)

供应商(厂商,地址)

供应(厂商名,编号,型号,价格)

( 3 )主键为( 2 )中下划线

10. 设有关系模式R,如图所示。试问:

职工号姓名年龄性别部门号部门名E1 赵毅20 男D3 情报所

E2 李珊24 女D1 财务室

E3 刘铭30 男D3 情报所

E4 孙亭亭25 女D3 情报所

( 1)R最高属于第几范式?为什么?(4分)

( 2)举一例说明R中存在的异常现象。(3分)

( 3)如果将关系模式R分解为:R1(职工号,姓名,年龄,性别,部门号),R2(部门号,部门名)。是否满足关系分解的无损连接性?为什么?(3分)

( 1 )最高属于 2NF ,因为主键为职工号,所以不存在非主属性对主属性的部分函数依赖。故属于 2NF 。但存在非主属性对主属性的传递函数依赖:部门号依赖于职工号,而部门名依赖于部门号,所以部门名传递函数依赖于职工号,因此不属于 3NF 。

( 2 )存在数据冗余,插入异常,删除异常

例如:删除 E2 的信息,则 D1 ,财务室的信息也就此丢失。这就是删除异常。

( 3 )满足关系分解的无损联结性,因为: R=R1*R2 ,即 R 关系等价于 R1 自然连接 R2

11、设某商业集团数据库中有三个实体集:“公司”实体集,其中的属性有公司编号、公司名、地址等;“仓库”实体集,其中的属性有仓库编号、仓库名、规格、地址等;“职工”实体集,其中的属性有职工编号、姓名、性别等。

公司与仓库之间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工之间存在着“聘用”联系,每个可聘用的职工人数应该在10~40人之间,每个职工只能在一个仓库工作,仓库聘用职工有聘用期和工资。

(1)试画出ER图;

(2)将ER图转换成关系模型,并注明主码和外码。

解:(1)ER图如下:

(2)将ER图转换成关系模型如下[注:下划线表示为主码(关键字),波浪线为外码(外关键字)]:公司(公司编号,公司名,地址)

仓库(仓库编号,仓库名,地址,公司编号)

职工(职工编号,姓名,性别,仓库编号,聘期,工资)

12、旅馆的住房管理问题应包括客房管理与收费管理,现在用关系模式收费R (住客姓名,

性别,年龄,地址,客房号,床位号,收费标准,住宿日期,退房日期,预付款)进行记录,假设:(1)旅馆住客中可能存在同名现象。

(2)一个客人可以多次、不同时间到该旅馆住宿。

试回答下列问题:

(1)关系模式R最高已经达到第几范式?为什么?

(2)如果R不属于3NF,请将R分解成3NF模式集。

解答:(1)显然,该关系模式属于1NF。同时存在非主属性对候选键的部分依赖,所以该关系模式不满足2NF的条件。由此可见,该关系模式最高只达到1NF。

(2)住客信息(住客身份证,住客姓名,性别,年龄,地址),其中主键是住客身份证。

床位信息(客房号,床位号,收费标准),其中主键是(客房号,床位号)。

住宿信息(客房号,床位号,住宿日期,住客身份证,预付款,退房日期),其中主键是(客房号,床位号,住宿日期)。

显然,以上关系三个关系模式都满足2NF。而且,这三个关系模式都不存在非主属性对键的传递函数依赖,因此以上两个关系模式都满足3NF。

13、设有如下实体:

学生:学号、单位、姓名、性别、年龄、选修课程名

课程:编号、课程名、开课单位、任课教师号

教师:教师号、姓名、性别、职称、讲授课程编号

单位:单位名称、电话、教师号、教师名

上述实体中存在如下联系:

(1)一个学生可选修多门课程,一门课程可为多个学生选修;

(2)一个教师可讲授多们课程,一门课程可为多个教师讲授;

(3)一个单位可有多个教师,一个教师只能属于一个单位。

试完成如下工作:

(1)分别设计学生选修课和教师任课两个局部信息的结构E-R图。

(2)将上述设计完成的E-R图合并成一个全局E-R图。

(3)将该E-R图转换为等价的关系模式表示的数据库逻辑结构。

(1)学生选课局部E—R图如下:

l

单位名称单位开课

l

拥有

m

m

学生选修课程教师号学号姓名性别年龄编号课程名

教师任课局部E—R图如下:

教师号姓名性别职称编号

m n

教师讲授课程

m

属于

l

单位

单位名电话

(2)、合并的全局E—R图如下:

l m

单位属于教师

l m

l

拥有开课讲授

m

m n

m n

学生选修学生

(3)该全局E—R图转换为等价的关系模型表示的数据库逻辑结构如下:

单位(单位名,电话)

教师(教师号,姓名,性别,职称,单位名)

课程(课程编号,课程名,单位名)

学生(学号,性别,年龄,单位名)

讲授(教师号,课程编号)

14.设有关系模式

R(职工名,项目名,工资,部门名,部门经理)

如果规定每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一个经理。

①试写出关系模式R的基本FD和关键码。

②说明R不是2NF模式的理由,并把R分解成2NF模式集。

③进而把R分解成3NF模式集,并说明理由。

解:⑴R的基本FD有三个:

(职工名,项目名)→工资

项目名→部门名

部门名→部门经理

关键码为(职工名,项目名)。

⑵根据⑴,R中存在下列两个FD:

(职工名,项目名)→(部门名,部门经理)

项目名→(部门名,部门经理)

其中前一个FD是一个局部依赖,因此R不是2NF模式。

R应分解成两个模式:R1(项目名,部门名,部门经理)

R2(职工名,项目名,工资)

R1和R2都是2NF模式。

⑶R2已是3NF模式。

在R1中,由于存在两个FD:

项目名→部门名

部门名→部门经理

即存在一个传递依赖,因此R1不是3NF模式。

对R1应分解成两个模式:R11(项目名,部门名),R12(部门名,部门经理)。这两个模式都是3NF模式。

因此,R分解成3NF模式集时,ρ={ R11,R12,R2 }。

15.设大学里教学数据库中有三个实体集。一是“课程”实体集,属性有课程号、课程名称;二是“教师”实体集,属性有教师工号、姓名、职称;三是“学生”实体集,属性有学号、姓名、性别、年龄。

设教师与课程之间有“主讲”联系,每位教师可主讲若干门课程,但每门课程只有一位主讲教师,教师主讲课程将选用某本教材;教师与学生之间有“指导”联系,每位教师可指导若干学生,但每个学生只有一位指导教师;学生与

课程之间有“选课”联系,每个学生可选修若干课程,每门课程可由若干学生选修,学生选修课程有个成绩。

(1)试画出ER 图,并在图上注明属性、联系类型、实体标识符; (2)将ER 图转换成关系模型,并说明主键和外键。 (3)将ER 图转换成对象联系图。 (4)将ER 图转换成UML 的类图。 (1)ER 图如图9所示。

图9

(2)转换成的关系模型应具有4个关系模式:

教师(工号,姓名,职称)

学生(学号,姓名,性别,年龄,教师工号) 课程(课程号,课程名称,教师工号) 选课(学号,课程号,成绩)

(3)图9的ER 图的对象联系图如图10所示。三个实体类型转换成三个对象类型,一个M:N 联系类型转换成一个对象类型。因此对象联系图中共有四个对象类型,如图10所示。图中未标出基本数据类型属性,具体如下:

N 1 成绩 主讲 课程 课程号 课程名称 N 工号 教师

姓名 指导 教材 学生 学号 姓名 年龄1 选课 M N 职称 性别

教师(工号,姓名,职称)

学生(学号,姓名,性别,年龄) 课程(课程号,课程名称,教材) 选课(成绩)

图10

(4)图9的ER 图的UML 类图如图11所示。图中,三个实体类型转换成三个类,一个M:N 联系类型转换成一个关联类。

图11

16.设大学教学数据库中有下面一些数据:

·Dept (系)有属性dno (系编号)和dname (系名);

·Student (学生)有属性sno (学号)和sname (学生姓名); ·Course (课程)有属性cno (课程号)、cname (课程名)和teacher (任课教师);

·学生选修课程有个grade (成绩)。

如果规定:每个系有若干学生,每个学生只能属于一个系;每个系开设了

教师

课程 成绩 学生

教师 工号

姓名 职称 课程 课程号 课程名称 教材

1 * * 学生 学号 姓名

性别 年龄

选课 成绩 * 1

*

若干课程,每门课程由一个系开设;每个学生可以选修若干课程,每门课程可以有若干学生选修。

(1)试画出ER 图,并在图上注明属性、联系类型、实体标识符; (2)将ER 图转换成关系模型,并说明主键和外键。 解:(1)ER 图如图12所示。

图12

(2)转换成的关系模型应具有4个关系模式:

Dept (dno ,dname )

Course (cno ,cname ,teacher ,dno ) Student (sno ,sname ,dno ) SC (sno ,cno ,grade )

17.(1)试画出第16题数据库的对象联系图。 (2)试画出第16题数据库的UML 类图。

(1)图12的ER 图的对象联系图如图13所示。三个实体类型转换成三个对象类型,一个M:N 联系类型转换成一个对象类型。因此对象联系图中共有四个对象类型,如图13所示。图中未标出基本数据类型属性,具体如下:

Dept (dno ,dname )

Course (cno ,cname ,teacher ) Student (sno ,sname ) SC (grade )

Dept

Course

SC

Student

N 1 grade D_C Course cno cname N dno Dept

dname D_S Student sno sname 1 SC M

N teacher

图13

(2)图12的ER 图的UML 类图如图14所示。图中,三个实体类型转换成三个类,一个M:N 联系类型转换成一个关联类。

图14 18.1).对于教学数据库的三个基本表 学生 S(S#,SNAME,AGE,SEX) 学习 SC(S#,C#,GRADE)

课程 C(C#,CNAME,TEACHER)

试用关系代数表达式和SQL 语句表示:检索WANG 同学不学的课程号。 πC#(C)-πC#(σSNAME='WANG'SSC) 或者

πC#(SC)-πC#(σSNAME='WANG'SSC)(全部课程号减去WANG 同学所学的课程号)

SELECT C# FROM C

WHERE C# NOT IN (SELECT C# FROM SC

WHERE S# IN SELECT S# FROM S

Dept dno

dname

Course

cno

cname

teacher

1 *

*

Student sno sname SC grade * 1 *

WHERE SNAME=‘WANG’)

(1)πC#(C)-πC#(σSNAME='WANG'SSC) 或者πC#(SC)-π

C#(SNAME='WANG'SSC)(全部课程号减去WANG同学所学的课程号) (2)SELECT C#

FROM C

WHERE C# NOT IN

(SELECT C#

FROM SC

WHERE S# IN

SELECT S#

FROM S

WHERE SNAME=‘WANG’)

2).教学数据库的基本表如上题,有如下关系代数表达式:

πC#,CNAME(C(πS#,C#(SC)÷πS#(S)))

请写出对应的SQL语句,并指出其汉语含义。

汉语含义:检索全部学生都选修的课程的课程号与课程名。SELECT C#,CNAME

FROM C

WHERE NOT EXISTS

(SELECT *

FROM S

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE SC.S#=S.S# AND SC.C#=C.C#))

汉语含义:检索全部学生都选修的课程的课程号与课程名。SELECT C#,CNAME

FROM C

WHERE NOT EXISTS

(SELECT *

FROM S

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE SC.S#=S.S# AND SC.C#=C.C#))

3).设销售数据模型如下:

厂家 S (SNO,SNAME,CITY )

产品 P (PNO,PNAME,COLOR,WEIGHT)

销售 SPJ (SNO,PNO,QTY)

用SQL完成以下操作:

试建立一个有关产品“电钻”的产品号和厂家号的视图,其结构如下:View2(ENO, SNO) (4分)

CREATE VIEW View2(ENO, SNO) AS SELECT P.PNO ,SNO FROM SPJ ,P

WHERE SPJ.PNO=P.PNO AND PNAME="电钻";

4).在以上销售数据库表中,用SQL 语句完成以下操作:PNO 为'00227'的产品数增加100;并检索出其对应的产品名。 (4分) UPDATE SPJ

SET QTY=QTY+100 WHERE PNO='00227'; SELECT PNAME FROM P

WHERE PNO='00227'

19、. 学生运动会模型:

(1)有若干班级,每个班级包括: 班级号,班级名,专业,人数

(2)每个班级有若干运动员,运动员只能属于一个班,包括:运动员号,姓名,性别,年龄 (3)有若干比赛项目,包括:项目号,名称,比赛地点 (4)每名运动员可参加多项比赛,每个项目可有多人参加 (5)要求能够公布每个比赛项目的运动员名次与成绩 (6)要求能够公布各个班级团体总分的名次和成绩 解题要求:

(1) 画出每个实体及其属性关系、实体间实体联系的E-R 图. (5分)

(2) 根据试题中的处理要求:完成数据库逻辑模型,包括各个表的名称和属性.并指出每个表的主键和外键。(5分

2.(1) 1

n m n

班级

项目

运动员 拥有 参赛

班级号

班级名

专业

人数

运动员号

姓名 性别

年龄

项目号

项目名

比赛地点

名次

成绩

得分

(2)

班级(班级号,班级名,专业,人数) 主键:班级号 运动员(运动员号,姓名,性别,年龄,班级号) 主键:运动员号 外键:班级号

项目(项目号,项目名,比赛地点) 主键:项目号 比赛(运动员号,项目号,成绩,名次,得分)

主键:运动员号,项目号 外键: 运动员号;项目号

20、设有关系R 和函数依赖F :

R (W ,X ,Y ,Z ),F = { X →Z ,WX →Y }。 试求下列问题:

(1)关系R 属于第几范式?(4分)

(2)如果关系R 不属于BCNF ,请将关系R 逐步分解为BCNF 。(5分)

要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。 解:R 是1NF 。侯选码为WX ,则Y ,Z 为非主属性,又由于X →Z ,因此F 中存在非主属性对侯选码的部分函数依赖。

将关系分解为:

R1(W ,X ,Y ),F1 = { WX →Y } R2(X ,Z ),F2 = { X →Z }

消除了非主属性对码的部分函数依赖。

W

X Y

Z

F1和F2中的函数依赖都是非平凡的,并且决定因素是候选码,所以上述关系模式是BCNF 。

.解:R 是1NF 。侯选码为WX ,则Y ,Z 为非主属性,又由于X →Z ,因此F 中存在非主属性对侯选码的部分函数依赖。

将关系分解为:

R1(W ,X ,Y ),F1 = { WX →Y } R2(X ,Z ),F2 = { X →Z }

消除了非主属性对码的部分函数依赖。

F1和F2中的函数依赖都是非平凡的,并且决定因素是候选码,所以上述关系模式是BCNF 。

22、 假设某商业集团数据库中有一关系模式R 如下: R (商店编号,商品编号,数量,部门编号,负责人)

如果规定:(1) 每个商店的每种商品只在一个部门销售; (2) 每个商店的每个部门只有一个负责人; (3) 每个商店的每种商品只有一个库存数量。 试回答下列问题:

(1) 根据上述规定,写出关系模式R 的基本函数依赖; (2) 找出关系模式R 的候选码;

(3) 试问关系模式R 最高已经达到第几范式?为什么? (4) 如果R 不属于3NF ,请将R 分解成3NF 模式集。

1) 有三个函数依赖:(商店编号,商品编号) →部门编号(1分) (商店编号,部门编号) →负责人(1分) (商店编号,商品编号) →数量(1分) (2) R 的候选码是 (商店编号,商品编号) (2分)

(3) 因为R 中存在着非主属性“负责人”对候选码 (商店编号、商品编号)的传递函数依赖,所以R 属于2NF ,R 不属于3NF 。(3分)

(4) 将R 分解成:R1 (商店编号,商品编号,数量,部门编号) (2分) R2 (商店编号,部门编号,负责人) (2分)

W

X Y

Z