数据库综合练习3.docx

上传人:b****9 文档编号:26355829 上传时间:2023-06-18 格式:DOCX 页数:24 大小:158.21KB
下载 相关 举报
数据库综合练习3.docx_第1页
第1页 / 共24页
数据库综合练习3.docx_第2页
第2页 / 共24页
数据库综合练习3.docx_第3页
第3页 / 共24页
数据库综合练习3.docx_第4页
第4页 / 共24页
数据库综合练习3.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数据库综合练习3.docx

《数据库综合练习3.docx》由会员分享,可在线阅读,更多相关《数据库综合练习3.docx(24页珍藏版)》请在冰豆网上搜索。

数据库综合练习3.docx

数据库综合练习3

数据库综合练习三

习题一

1•现有一个局部应用,包括两个实体:

“出版社”和“作者”,这两个实体是多对多的联系,请设计适当的属性,画出E-R图,再将其转换为关系模型(包括关系名、属性名、码和完整性约束条件)。

2.请设计一个图书馆数据库,此数据库中对每个借阅者保存的记录包括:

读者号,姓名,地址,性别,年龄,单位。

对每本书保存有:

书号,书名,作者,出版社。

对每本被借出的书保存有读者号、借出口期和应还口期。

要求:

给出该图书馆数据库的E-R图,再将其转换为关系模型。

3.图4-1是某个教务管理数据库的E-R图,请把它们转换为关系模型(图中关系、属性和联

系的含义,己在它旁边用汉字标出)。

空号&名*别教弄号姓名

*号潦尿名w*

图4-1教学管理数据库

4•图4-2是一个销售业务管理的E-R图,请把它转换成关系模型。

5•设有一家百货商店,已知信息有:

1)每个职工的数据是职工号、姓名、地址和他所在的商品部。

2)每一商品部的数据有:

它的职工,经理和它经销的商品。

3)每种经销的商品数有:

商品名.生产厂家、价格、型号(厂家定的)和内部商品代号(商店规定的)。

4)关于每个生产厂家的数据有:

厂名、地址、向商店提供的商品价格。

请设计该百货商店的概念模型,再将概念模型转换为关系模型。

注意某些信息可用属性表示,其他信息可用联系表示。

6•下列有关E-R模型向关系模型转换的叙述中。

不正确的是o

A.一个实体类型转换为一个关系模式

B.一个1:

1联系可以转换为一个独立的关系模式,也可以与联系的任意一端实体所对应的

关系模式合并

C.一个l:

n联系可以转换为一个独立的关系模式,也可以与联系的任意一端实体所对应的

关系模式合并

D.一个m:

n联系转换为一个关系模式

习题一解答

1.答:

转换后的关系模型如图6所示。

出版社(出版社名,地址,邮政编码);

作者(姓名,性别,年龄,证件号码,单位);出版(出版社名,作者姓名,出书数量,联系方式)。

?

出版彳仁出版社名.地址,邮政如码

作瓠迤性别.年龄.证件号码,单位?

?

?

?

?

?

2.答:

读者

该图书馆数据库的E-R图如图7

图7

其中:

读者:

读者号,姓名,地址,性别,年龄,单位;

图书.迤,书名,作者,出版社。

转换后的关系模型为:

借阅者(读者号,姓名,地址,性别,年龄,单位):

书籍(书号,书名,作者,出版社);

借阅(读者号,书号,借出口期,应还口期)。

3答:

转换后的关系模型如卜•:

Student(SNO,SN,SD,SA);Teacher(TNO,TN,TD,TG);Course(CNO,CN,PCNO);ST(SNO,TNO):

SC(SNO,CNO,G):

TC(TNO,CNO)o

4・答:

转换后的关系模型如下工厂(厂名,厂长,地址);产品(编号,型号,单价);用户(姓名,地址,电话);工厂■产品■用户(厂名,编号,姓名)。

5.答:

概念模型如图8所示。

关系模型为:

职工(职工号,姓名,住址,工作商品部);商品部(商品部号,名称,经理职工号,经理名);

商品(商品代号,价格,型号,出厂价格);

生产厂家(厂名,地址);

销售(商品代号,商品部号):

生产(厂名,商品代号)。

©J.r

图8百货商店E-R图模型

图中:

职工:

职工号,姓名,住址;

商品部:

商品部号,名称;

商品:

商品代号,价格,型号,出厂价格:

生产厂家:

匚赛,地址。

6.答:

D

?

习题二

1.设职工社团数据库有三个基本表:

职工(职工号,姓名,年龄,性别);

社会团体(编号,名称,负贵人,活动地点);

参加(职工号,编号,参加口期)。

其中:

1)职工表的主码为职工号。

2)社会团体表的主码为编号;外码为负责人,被参照表为职工表,对应属性为职工号。

3〉参加表的职工号和编号为主码;职工号为外码,其被参照表为职工表,对应属性为职工号;编号为外码,其被参照表为社会团体表,对应属性为编号。

试用SQL语句表达下列操作:

1)定义职工表、社会团体表和参加表,并说明其主码和参照关系。

2)建立下列两个视图。

社团负贵人(编号,名称,负责人职工号,负贵人姓名,负贵人性别);

参加人情况(职工号,姓名,社团编号,社团名称,参加口期)

3)查找参加唱歌队或篮球队的职工号和姓名。

4)查找没有参加任何社会团体的职工情况。

5)查找参加了全部社会团体的职工情况。

6)查找参加了职工号为“1001”的职工所参加的全部社会团体的职工号。

7)求每个社会团体的参加人数。

8)求参加人数最多的社会团体的名称和参加人数。

9)求参加人数超过100人的社会团体的名称和负责人。

10)把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并允许他再将此权力授予其他用户。

2.SQL语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句INSERT.DELETE.

UPDATA实现下列哪类功能o

A.数据查询B.数据操纵

C.数据定义D.数据控制

3.下面列出的关于视图(View)的条目中,不正确的是o

A.视图是外模式

B.视图是虚表

C.使用视图可以加快查询语句的执行速度

D.使用视图可以简化查询语句的编写

4.在SQL语言的SELECT语句中,能实现投影操作的是。

A.SELECTB.FROM

C.WHERED.GROUPBY

5.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,语句ALTERTABLE

实现哪类功能o

A.数据查询B.数据操纵

C.数据定义D.数据控制

6.在关系数据库系统中,为了简化用户的查询操作,而又不增加数据的存储空间,常用的

方法是创建o

A.另一个表B.游标

C.视图D.索引

7.设要建立学生选课数据库,库中包括学生、课程和选课3个表,其表结构为:

学生(学号,姓名,性别,年龄,所在系);

课程(课程号,课程名,先行课),

选课(学号,课程号,成绩)。

用Transact-SQL完成卜•列操作。

1)建立学生选课库。

2)建立学生、课程和选课表。

3)建立各表以主码为索引项的索引。

4)建立学生性别只能为“男”或“女”的规则,性别为“男”的缺省,并将它们绑定在学生表上。

5)建立在对选课表输入或更改数据时,必须服从参照完整性约束的INSERT和UPDATE触发器。

6)建立在删除学生记录时,同时也要把相应的选课记录删除的触发器。

7)查询各系及学生数,最后来出共有多少系和多少学生。

8)将学生表和选课表进行内连接、左外连接和右外连接。

9)列出学生学号、姓名及学习情况。

学习情况用好、较好、一般或较差表示。

当平均成绩人于85分时,学习情况为好:

当平均成绩在70〜85分之间,学习情况为较好;当平均成绩在60〜70分之间,学习成绩为一般;平均成绩在60分以下的为学习情况较差。

习题二解答

1.答:

1)CREATTABLE职工(职工号CHAR(10)NOTNULLUNIQUE.

姓名CHAR(8)NOTNULL,

年龄SMALLINT,

性别CHAR

(2),

CONSTRAINTClCHECK(性别IN(“男"女')));

CREATTABLE社会团体(编号CHAR(8)NOTNULLUNIQUE,

名称CHAR(12)NOTNULL,

负贵人CHAR(8),

活动地点VARCHAR(50),

CONSTRAINTC2FOREIGNKEY(负贵人)REFERENCES职工(职工号));

CREATTABLE参加(职工号CHAR(8),

编号CHAR(8),

参加口期DATE

CONSTRAINTC3PRIMARYKEY(职工号,编号),

CONSTRAINC3FOREIGNKEY(职工号)REFERENCES职工(职工号));

2)CREATVIEW社团负责人(编号,名称,负贵人职工号,负责人姓名,负贵人性别)

ASSELECT编号,名称,负资人,姓名,性别

FROM社会团体,职工

WHERE社会团体,负资人=职工.职工号;

CREATVIEW参加人情况(职工号,姓名,社团编号,社团名称,参加口期)

ASSELECT参加.职工号,姓名,社会团体编号,名称,参加口期FROM职工,社会团体,参加

3)

WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号;

SELECT职工号,姓名

FROM职工,社会团体,参加

WHERE职匚职工号=参加.职工号AND参加.编号=社会团体.编号

AND社会团体.名称IN(“唱歌队'篮球队')

4)

SELECT*

FROM职工

WHERENOTEXISTS(SELECT*

FROM参加

WHERE参加.职工号=职工・职工号):

SELECT*

FROM职工

WHERENOTEXISTS(SELECT*

FROM参加

WHERENOTEXISTS

(SELECT*

FROM社会团体

WHERE参加.职工号=职工・职工号AND

参加.编号=社会团体.编号));

6)SELECT职工号

FROM职工

WHERENOTEXISTS(SELECT*

FROM参加参加1

WHERE参加1・职工号=T00I'ANDNOTEXISTS

(SELECT*

FROM参加参加2

WHERE参加2・编号=参加1・编号AND

参加2.职工号一职工.职工号));

7)SELECTTCOUNT(职工号)

FROM参加

GROUPEY编号;

2.答:

B

3・答:

C

4.答:

A

5.答:

C

6.答:

C

7.答:

1)CREATEDATABASE学生选课库

ONPRIMARY(NANE=学生选课库,

FILENAME=‘C:

\msSQL\data\学生选课.mdf',

SIZE=4ME,

MAXSIZE=6MB>

FILEROWHT=2ME)

GO

2)CREATTABLE学生(学号CHAR10)PRIMARYKEYCLUSTERED,

姓名CHAR(8),

性别CHAR

(2),

年龄SMALLINT所在系VARCHAR(50))

GO

CREATTABLE课程(课程号CHAR(10)PRIMARYKEYCLUSTERED,

课程名VARCHAR(50),

先行课VARCHAR(50))

GO

CREATETABLE选课(学号CHAR(10),

课程号VARCHAR(50),

成绩SMALLINT,

CONSTRAINTClPRIMARYKEY(学号,课程号),

CONSTRAINTC2FOREIGNKEY(学号)REFRENCES学生(学号),CONSTRAINTFOREIGNKEY(课程号)REFERENCES课程(课程号))GO

3)CREATEINDEXstudent_mdON学生(学号)

GO

REATEI**巨class.mdON课程(课程号)

GO

CREATEINDEXselecUndON选课(学号,课程号)

GO

4)CREATRULEvalue_mleAS©VALUEIN('男,女')

GO

CREATDEFAULE性别缺省AS'男’

GO

EXECsp_bmdmle4value_mle','学生•性别'

GO

EXECSp.binddefault'性别缺省学生•性别'

GO

5)CREATETRIGGERsc_insertON选课

FORINSERT

ASIF(SELECTCOLJNT(*)

FROM学生,mserted,课程

WHERE学生.学号=inswed・学号AND课程.课程号=mserted.课程号)=0

ROLLBACKTRANSACTION

GO

CREATETRIGGERsc_updat6ON选课

FORUPDATE

ASIF(SELECTCOUNT(*)

FROM学生,updated,课程

WHERE学生.学号updated.学号AND课程.课程号=updated.课程号)=0

ROLLBACKTRANSACTION

GO

6)CREATETRIGGERdelete_allON学生

FORDELETE

ASDELETE

FROM选课

WHERE选课.学号=deleted.学号

GO

7)SELECT所在系,COUNT(学号)

FROM学生

GROUPBY学生.所在系

COMPUTECOUNT(DISTINCT(所在系))

COMPUTECOUNT学号)BY所在系

GO

8)SELECT*

FROM学生INNERJOIN课程

GO

SELECT*

FROM学生LEFTOUTERJOIN课程

GO

SELECT*

FROM学生RIGHTOUTERJOIN课程

GO

9)SELECT选课.学号,学生.姓名,

学习情况=CASE

WHENAVG(成绩)〉=85THEN,好,

WHENAVG(成绩)>=75ANDAVG(成绩产85THEN“较好'

WHENAVG(成绩)V60THEN,较差,

END

FROM学生选课

WHERE学生.学号=选课.学号

GROUPBY选课.学号

GO

习题三

1.设关系模式R,函数依赖集F={A-*C,C~A,B~AC,D-AC,BD-A}。

1)求出R的候选码。

2)求出F的最小函数依赖集。

3)将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性。

2.设关系模式R〈A,B,C,D,E,F>,函数依赖集F={AB-E,AC-F,AD-B,B-C,C-*D}o

1)证明AB、AC、AD均是候选关键宇。

2)证明主属性C部分依赖于关键字AB,传递依赖于AD。

同时证明主属性D部分依赖于关键字AC,传递依赖于关键字AB。

3.设关系模式R,函数依赖集F={AB~E,BC-D,BE-C,CD-B,CE-AF,CF-BD,C-A,D-EF},求F的最小函数依赖集。

4.判断下面的关系模式是不是BCNF,为什么?

1)任何一个二元关系。

2)关系模式选课(学号,课程号,成绩),函数依赖集F={(学号,课程号)一成绩}。

3)关系模式R(A,B,C,D,E,F),函数依赖集F={A-BC,BC-A,BCD-EF,E-C}。

5.设关系模式R(A,B,C,D,E,F),函数依赖集F二{A-B,C-F,E~A,CE-A},将R分解为P={ABE,CDEFlo判断p是否是无损连接。

6.设关系模式R{B,0,I,S,Q.D},函数依赖集F二{S~D,I-S,1ST,B-Q}。

1)找出R的主码。

2)把R分解为ECNF,且具有无损连接性。

7.在关系模式选课(学号,课程号,成绩)中,“学号一课程号”正确吗?

为什么?

8.设有关系模式R(A,B,C),数据依赖集F={AB—C,C—A},R属于第几范式?

为什么?

9.设有关系模式R(A,B,C,D),数据依赖集F={A-*B,B~A,AC~D,EC-D,AD—C,BD~*C»A~*-*CD,B~*-*CD}o

1)求R的主码。

2)R是否为第4范式?

为什么?

3)R是否是BCNF?

为什么?

4)R是否是3NF?

为什么?

习题三解答

1.答:

1)R的候选码为BDo

2)①将F中的函数依赖都分解为右部为单属性的函数依赖。

F={A-C,CfA,E-A,B->C,D-A,D~C,ED-A}

2去掉F中冗余的函数依赖。

判断A-C是否冗余。

设:

Gl={C-A,B->AtB->C,D-A,D~C,ED-A},得:

(A)g=A

•••Cg(4)二.\A->C不冗余

判断C-A是不冗余。

设:

G2={A-C,B-*A,B-C,D~A,D-C,BD-A},得:

(U)s=C.*.c-*a不冗余

判断B~A是否冗余。

设:

G3={A-C,C-A,B-C,D~A,D-C,BD-A},得:

(B):

3=ECA

VAe(B):

3・•・£〜A冗余

判断E~C是否冗余。

设:

G4={A-C,C-A,DfA,D-C,ED-A},得:

(B):

~=E

TCW(占):

」・・.BfC不冗余

判断D-*A是否冗余。

设:

G5={A-C,C-A,B-*C,D~C,ED-A},得:

(°):

°=DCA

.*.d-*a不冗余

判断D~C是否冗余。

设:

G6={A-C,C-A,B-*C,BD-*A},得:

TC@AD-*C不冗余

判断ED-A是否冗余。

设:

G7={A-C,C-A,EfC,D-C},得:

r=BDCA

・・a@

•••ED-*A冗余

F=(A^C,C~A,E~C,DfC}

3由于各函数依赖在部都为单属性.故:

Fm={A—C,C~A,EfC,D—C}。

3)T=(AC,BC,DC,BD)

4)

2.

答:

2)IB~C

・・.AB誌分》C

•:

AD-E,B-C

AAD>C

•?

C~D

AAC>C

•:

B~C,C-D

3.答:

AAB>C

•••AD为码

1将F中的函数依赖都分解为右部为单属性的函数依赖。

F={AB->E,EC-D,BE-C,CD-E,CE-A,CE-F,CF-E,CF~D,C->A,D~E,D~F}

2去掉F中冗余的函数依赖。

判断AB-E是否冗余。

设:

Gl={BC->D,EE~C,CD-E,CE-A,CE-F,CF-E,CF-D,C~A,D->E,D-F}

判断BC-D是否冗余。

设:

G2={AB->E,BE->C,CD-E,CE~A,CE-F,CF-E,CF~D,C~A,D~E,D-F}

得:

(BC)心=BCAEFD

IDE(〃C)gZ.BC-DTl余

判断BE->C是否冗余。

设:

G3={AB->E,CD->B,CE->A,CE~F,CF~E,CF-D,C~A,D-E,D~F}

得:

(BE)»be

C/(BE)g/.be-*c不冗余

判断CD-B是否冗余。

设:

G4={AB~E,EEfCCE~A、CE-F,CF-E,CF~D,C~A,D~E,D~F}

得:

CQ)5=CDAEFB

得:

(Og=c

*.*(Cs>/.C-*A不冗余

判断D-E是否冗余。

设:

G10={AB~E,EE-C,CE-F,CF-B,CF~D,C-A,D-F}

得:

(Q)go=DF

・.・e2)GIO••.D-E不冗余

判断D-F是否冗余。

设:

Gll={AB->E,BE->C,CE->F,CF~E,CF~D,C~A,D-E}

得:

(Q)gi=dE

E0(Q)gi.*.D-*F不冗余

AF={AB-E,EE-C,CE~F,CF-*B,CF~D,C-A,D-E,D~F}求得.Ff=F

•/DeFf・••不能以FfD代替CF~D

在决定因素中去掉F。

求得:

Cf=CA

•••D0Cp•••不能以C-*D代替CF-D

•••不能以CF-D不冗余

・・・F={AB~E,BE->C,CE-F,CF~E,CF~D,C-A,D~E,D-F}

4答:

1)是BCNFo二元关系中或为全码,或为一个单属性码候选码。

2)是BCNFo关系模式中只有一个候选码。

3)不是ECNF、因为模式中存在候选码为AD、BCD和EE。

显然C对AD是部分依赖。

5答:

••Pln5=EUi-U:

=AB

U1AU:

-*U1-U2={E->AB}={E-*A,E->B}

UiPUz-Ui-UzeF

・••该分解具备无损连接。

6答:

1)R的主码为IBOo

2)F={S->D,I-S,1->Q・E-Q}

令P=BOISQD

1由于R的码为IBO.选择S-D分解。

得出:

Q={Si,S2J

其中Si=SD,Fi={S~D};

S2=BOISQ,F2={I-S,I-Q,E-Q}。

显然Sj不服从BCNF,需要继续分解:

2对Si分解,S2的码为IEO,选择IfS分解。

得出:

Q={Si,s2,S3}

其中:

S3=IS・f3={I-S}

S4=BOIQ・F尸{IfQ,EfQ}

显然.不服从BCNF,还需要继续分解。

3对S4分解。

S4的码为LBO,选择I-Q分解。

得出:

Q={Si,S3,S5,s(s}o

其中S5=IQ,f5={Ifq};

S6=BIO,F6=0°

4最后的分解为:

P={SD,IS.IQ.EIO}。

7答:

正确。

因为学号能够多值决定课程号。

8答:

BCNFo由于A多值依赖于动而C不是码・故不服从4NF。

但在函数依赖式中C依赖于码AB・故该模式服从BCNFo

9答:

1)候选码为AC,BC.AD,ED、可选其中之一为主码。

2)不服从4NFo在多值依赖中泱定因素中不包含码。

3)不服从BCNFo在函数依赖中决定因素中不包含码。

4)服从3NF。

该模式中不存在非主属性。

1.今有两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号);部门(部门号,名称,经理名,地址,电话)。

请FRSQL的GRANT和REVOKE语句(加上视图机制),完成以卞授权定义或存取控制功能。

1)用户王明对两个表有SELECT权力。

2)用户李勇对两个表有INSERT和DELETE权力。

3)用户刘星对职工表有SELECT权利,对工资字段具有更新权力。

4)用户张新具有修改这两个表的结构的权力。

5)用户周平具有对两个表的所有权力(读、插、改、删数据),并具有给其他用户授权的权利。

6)用户杨兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。

2.假设有下面两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码.

用SQL语言定义这两个关系模式.要求在模式中完成以卞完整性约束条件的定义:

1)定义每个模式的主码。

2)定义参照完整性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 专升本

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1