《数据库技术及应用》部分习题解答.docx
- 文档编号:27073351
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:18
- 大小:192.37KB
《数据库技术及应用》部分习题解答.docx
《《数据库技术及应用》部分习题解答.docx》由会员分享,可在线阅读,更多相关《《数据库技术及应用》部分习题解答.docx(18页珍藏版)》请在冰豆网上搜索。
《数据库技术及应用》部分习题解答
第1章部分习题解答
一.填空题
1.数据模型通常由(数据结构)、(数据操作)和(数据完整性约束)三要素组成。
2.数据模型通常分(层次)、(网络)、(关系)和(面向对象)是四种。
3.数据操作描述的是系统的动态特性,主要分为(检索)和(更新)两大类,共包括(查询)、(插入)、(删除)和(修改)4种操作。
4.关系数据库系统是以(关系模型)为基础的数据库系统。
5.从数据库管理系统的角度划分数据库系统的体系结构,可分为(外模式)、(模式)和(内模式)三层。
6.有了外模式/模式映象可以保证数据和应用程序之间的(逻辑独立性);有了模式/内模式映象,可以保证数据和应用程序之间的(物理独立性)。
7.数据库管理系统主要由(数据描述语言及其翻译程序)、(数据操纵/查询语言及其翻译程序)和(数据库管理例行程序)三部分组成。
8.数据库管理系统在三层结构之间提供的两层映象是(外模式/模式映象)和(模式/内模式映象)。
9.当前数据库系统的主流是(关系数据库系统)。
10.在E-R图中,实体集用(矩形)表示,实体集和联系的属性用(椭圆形)表示,实体之间的联系用(菱形)表示,联系与其涉及的实体集之间以直线连接,并在直线端部标上联系的种类(1:
1,1:
n,m:
n)。
11.房屋租赁公司利用数据库记录房主的房屋和公司职员的信息。
其中房屋信息包括房屋编号、地址、面积、朝向、租金价格。
职员的信息包括员工编号、姓名、联系的客户、约定客户见面时间、约定客户看房的编号。
房屋租赁公司的E-R图如下图2.1l所示:
图2.1l房屋租赁公司的E-R图
在括号中填人正确的答案。
A:
(房屋)B:
(带客户看房)C:
(职员)D:
(地址)E:
(租金价格)F:
(联系的客户)
G:
(约定客户见面时间)H:
(约定客户看房的编号)
二.选择题
1.(B)是按照一定的数据模型组织的,长期储存在计算机内,可为多个用户共享的数据的聚集。
A.数据库系统B.数据库C.关系数据库D。
数据库管理系统
2.数据库系统的基础是(D)。
A.数据结构B.数据库管理系统C.操作系统D.数据模型
3.(C)处于数据库系统的核心位置。
A.数据字典B.数据库C.数据库管理系统D.数据库管理员
4.有了模式/内模式映象,可以保证数据和应用程序之间的(B)。
A.逻辑独立性B.物理独立性C.数据一致性D.数据安全性
5.(A)是数据库中全部数据的逻辑结构和特征的描述。
A.模式B.外模式C.内模式D.存储模式
6.(C)是数据库物理结构和存储方式的描述。
A.模式B.外模式C.内模式D.概念模式
7.(B)是用户可以看见和使用的局部数据的逻辑结构和特征的描述。
A.模式B.外模式C.内模式D.概念模式
三.问答题
8.请为计算机经销商设计一个数据库,要求包括生产厂商和产品的信息。
生产厂商的信息包括名称、地址、电话等;产品的信息包括生产厂商、品牌、型号、价格等。
试用E-R图来描述这个数据库,注意要为所有的属性和联系选择适当的类型,并且指出每个实体集的键码。
9.假如习题8的数据库加入顾客的信息,包括姓名、地址、电话、身份证号等等,试修改数据库,把修改或增加的部分用E-R图分别加以描述。
[解答]第8题和第9题的E-R图
10.设计一个适合大学选课的数据库。
该数据库应包括学生、系、教师、课程,哪个学生选了哪门课,哪个教师教哪门课,学生的成绩,一个系提供哪些课程等信息。
请用E-R模型进行描述,注意为属性和联系选择适当的类型,并指出每个实体集的键码。
第2章部分习题解答
二.问答题
1.已知关系R和关系S,求下列运算结果。
[解答]
P
Q
R.T
R.Y
S.T
S.Y
B
7
g
e
f
c
d
m
7
g
e
f
c
d
n
7
g
e
f
e
f
n
7
g
c
d
c
d
m
7
g
c
d
c
d
n
7
g
c
d
e
f
n
P
Q
B
2
b
m
2
b
n
9
z
n
7
g
n
7
g
m
P
Q
2
b
7
g
2.设两个关系模型为:
S(S#,Name,Sex,Age),SC(S#,C#,Grade),用关系代数语言实现下列操作(假设每门课都有人选)。
[解答]
(l)求课程不及格学生的课号、姓名及成绩;
(2)求学习全部课程的所有学生姓名;
(3)求’01’号课成绩大于80分的所有男生的姓名。
3.已知四个关系模式:
学生(学号,姓名,年级,专业)、选课(学号,课号,成绩)、
课程(课号,课名,学时数)、必修课(课号,必修专业),请用关系代数实现下列操作:
[解答]
(1)给出学习全部课程的学生名单;
(2)将学号为’S45’的同学的’C6’课程的成绩改为90分。
4、设有三个关系:
S(S#,SNAME,AGE,SEX),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER),试用关系代数表达式表示下列查询语句:
[解答]
(1)检索LIU老师所授课程的课程号、课程名。
(2)检索年龄大于23岁的男学生的学号与姓名。
(3)检索学号为”S1”学生所学课程的课程名与任课教师名。
(4)检索至少选修LIU老师所授课程中一门课的女学生姓名。
(5)检索WANG同学不学的课程的课程号。
(6)检索至少选修两门课程的学生学号。
(7)检索全部学生都选修的课程的课程号与课程名。
(8)检索选修课程包含LIU老师所授课程的学生学号。
5、在第4题的教学数据库S、SC、C中,用户有一查询语句“检索女同学选修课程的课程名和任课教师名”,请完成:
[解答]
(1)试写出该查询的关系代数表达式。
(2)画出该查询初始的关系代数表达式的语法树。
(3)使用优化算法,对语法树进行优化,并画出优化后的语法树。
(4)写出查询优化的关系代数表达式。
6、对某个教学数据库
S(SNO,SNAME,SAGE,SEX)
C(CNO,CNAME,HOURS)
SC(SNO,CNO,GRADE)
有如下关系代数查询:
请你给出一个较优的关系代数表达式。
[解答]
7.已知四个关系模式:
学生(学号,姓名,年级,专业),选课(学号,课号,成绩),
课程(课号,课名,学时数),必修课(课号,必修专业),假如有一关系代数查询为:
要求:
(1)写出上述查询块的含义;
(2)写出较优的等价关系代数表达式;
(3)假设学生关系有1000个元组,选课关系有10000个元组,其中选修”C1”课程的记录有20个,在内存中可容纳两个数据块进行计算,每个数据块可容纳10个学生记录,或者100个选课记录,或者10个学生×选课记录。
计算机每秒可读或写40个数据块,并忽略内存处理时间,试计算这种算法执行查询的总时间。
[解答]
(1)查询选修了‘C1’课程的学生的学号、姓名和成绩;
(2)
(3)在该算法中先进行选择运算,然后再进行自然连接和投影运算,其花费时间计算如下:
a)计算选择的时间
对选课表作选择运算,只需读一遍选课表,存取100块花费时间为100÷40=2.5(秒)。
因为满足条件的元组仅20个,可直接放在内存中。
b)计算自然连接的时间
读取学生表,把读入的学生元组和内存中的SC元组作连接,也只需读一遍学生表,存取100块花费时间为100÷40=2.5(秒)。
自然连接后的结果元组可全部放入内存中。
c)计算投影在内存中进行,时间忽略不计。
算法执行查询的总时间为:
2.5十2.5=5(秒)
第3章部分习题解答
二.问答题
1.设两个关系模式为:
S(sno,name,sex,age)、SC(sno,cno,grade),请用SQL语言实现下列操作(假设每门课都有人选):
(l)求“01”号课成绩大于80分的所有男生的姓名;
Selectname
FromS,SC
WhereS.sno=SC.snoandcno=’01’andgrade>80andsex=’男’;
(2)求至少选修“01”和“03”两门课的学生信息;
SelectS.*fromS
Wheresnoin
(selectsnofromSC
Wherecno=’01’andsnoin
(selectsnofromSC
Wherecno=’03’));
(3)建立一个新关系模式TSCC(sno,name,avggrade),并将学生的平均成绩存入该关系中;
Selectsno,name,avg(grade)asavggrade
IntoTSCC
FromS,SC
WhereS.sno=SC.sno
GroupbyS.sno,name
(4)求学习全部课程的所有学生姓名。
Selectsno,name
FromS,SC
WhereS.sno=SC.sno
GroupbyS.sno,namehavingcount(*)=(selectcount(distinctcno)
FromSC);
(5)求课程不及格学生的课号、姓名及成绩。
Selectcno,name,grade
FromS,SC
WhereS.sno=SC.snoandgrade<60;
2.已知四个关系模式:
学生(学号,姓名,年级,专业)、选课(学号,课号,成绩)、
课程(课号,课名,学时数)、必修课(课号,必修专业),请用SQL语言完成下列操作:
(1)列出选修“数据库原理”的学生名单;
Select姓名From学生,选课,课程
Where学生.学号=选课.学号and选课.课号=课程.课号and课名=’数据库原理’;
(2)将学生的学号、姓名及他的平均成绩定义为一个视图;
CreateviewPJCJ(学号,姓名,平均成绩)
AsSelect学号,姓名,avg(成绩)
From学生,选课
Where学生.学号=选课.学号
Groupby学生.学号,姓名;
(3)由
(2)建立的视图是否可更新?
请说明理由。
由
(2)建立的视图不可更新。
因为在一般情况下,只有行列子集视图才能更新,而由
(2)建立的视图不仅用到分组,而且还有avg函数,所以不能更新。
3、设有三个关系:
S(S#,SNAME,AGE,SEX),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER),试用SQL语言完成下列查询语句:
(1)检索LIU老师所授课程的课程号、课程名。
SelectC#,CNAME
FromC
WhereTEACHER=’LIU%’;
(2)检索年龄大于23岁的男学生的学号与姓名。
SelectS#,SNAME
FromS
WhereAGE>23andSEX=’男’;
(3)检索学号为’S1’学生所学课程的课程名与任课教师名。
SelectCNAME,TEACHER
FromSC,C
WhereSC.C#=C.C#andS#=’S1’;
(4)检索至少选修LIU老师所授课程中一门课的女学生姓名。
SelectSNAME
FromS,SC,C
WhereS.S#=SC.S#andSC.C#=C.C#andTEACHER=’LIU%’andSEX=’女’;
(5)检索WANG同学不学的课程的课程号。
(SelectC#
fromC
whereC#notin
(selectC#
FromS,SC
WhereS.S#=SC.S#andSNAME=’WANG%’);
(6)检索至少选修两门课程的学生学号。
SelectS#
FromSC
GroupbyS#havingcount(*)>=2;
*(7)检索全部学生都选修的课程的课程号与课程名。
[解法1]selectSC.C#,CNAME
FromS,SC,C
WhereS.S#=SC.S#andSC.C#=C.C#
GroupbySC.C#,CNAMEhavingcount(*)=
(selectcount(*)fromS);
[解法2]用p表示谓词:
学生y选修了课程x,上述题意可形式化表示如下。
意即:
没有一个学生y是不选修课程x。
SelectC#,CNAME
FromC
Wherenotexists
(select*
FromS
Wherenotexists
(select*
FromSC
WhereS#=S.S#andC#=C.C#));
*(8)检索选修课程包含LIU老师所授课程的学生学号。
查询学号为x的学生,对任一课程y,只要老师’LIU’讲授了课程y,则学生x也选修了课程y。
假设:
若用p表示谓词“老师’LIU’讲授了课程y”,用q表示谓词“学生x选修了课程y”,则上述题意可形式化表示如下:
意即:
不存在这样的课程y,老师’LIU’讲授了课程y,而学生x没有选修课程y。
SelectS#
FromSCSCX
Wherenotexists
(select*
FromCCY
WhereTEACHER=’LIU’andnotexists
(select*
FromSCSCZ
WhereCY.C#=SCZ.C#andSCZ.S#=SCX.S#));
4.今有两个关系模式:
学生(学号,姓名,性别,出生日期)、选修课程(学号,课号,成绩),请用SQL中的GRANT和REVOKE语句,完成以下授权定义或存取控制功能:
(1)用户王明对两个表有SELECT权力;
GrantSELECTon学生,选修课程to王明;
(2)用户刘刚对两个表有INSERT和DELETE权力;
GrantINSERT,DELETEon学生,选修课程to刘刚;
(3)用户金星对选修课表有SELECT权力,对学生表有更新姓名字段的权力;
GrantSELECTon选修课程,UPDATEon学生(姓名)to金星;
(4)用户周平具有对两个表的所有权力,并具有给其他用户授权的权力;
GrantALLon学生,选修课程to周平withgrantoption;
(5)对于上述每种授权情况,撤销为用户所授予的权力。
RevokeSELECTon学生,选修课程from王明;
RevokeINSERT,DELETEon学生,选修课程from刘刚;
RevokeSELECTon选修课程,UPDATEon学生(姓名)from金星;
RevokeALLon学生,选修课程from周平;
第4章部分习题解答
2、在自己的计算机上练习安装SQLServer2000数据库管理系统。
(实践练习题)
第5章部分习题解答
1、利用企业管理器创建teaching数据库和三个数据库表student、course和student_course。
(实践练习题)
2、利用查询分析器对第3章的相关习题进行验证。
(实践练习题)
第6章部分习题解答
二.问答题
1.设有关系模式R(A,B,C,D,E),F={AB→C,B→D,D→E,C→B},要求:
(l)通过闭包的计算来求出R的所有键码,并说明该模式是哪一类范式?
单属性:
A+=A,B+=BDE,C+=BCDE,D+=DE,E+=E
双属性:
AB+=ABCDE,AC+=ABCDE,AD+=ADE,AE+=AE,BC+=BCDE,
BD+=BDE,BE+=BDE,CD+=BCDE,CE+=BCDE,DE+=DE
三属性:
ABC+=ABCDE,BCD+=BCDE,CDE+=BCDE,ADE+=ADE,ABE+=ABCDE,
ABD+=ABCDE,BCE+=BCDE,ACD+=ABCDE,BDE+=BDE,ACE+=ABCDE
四属性:
ABCD+=ABCDE,BCDE+=BCDE,ACDE+=ABCDE,ABDE+=ABCDE,ABCE+=ABCDE
五属性:
ABCDE+=ABCDE
R的所有键码是:
AB,AC。
注:
R的所有超键码是:
ABC、ABE、ABD、ACD、ACE、ABCD、ACDE、ABDE、ABCE、ABCDE。
若选AB为主键码,由于D是部分函数依赖于AB,故R∈1NF。
(2)R分解为R1(A,B,C)和R2(B,D,E),请问该分解是否保持函数依赖?
R1的键码为AB和AC,F1={AB→C,C→B};R2的键码为B,F2={B→D,D→E}。
因为F=F1∪F2,所以该分解保持函数依赖。
(3)指出R1和R2的范式等级,并给出证明。
因为R1没有非主属性,所以也不可能存在非主属性对键码的部分函数依赖和传递函数依赖,即:
R1∈3NF。
又由于F1中有违例C→B,故R1∉BCNF。
因为D和E完全函数依赖于B,故R2∈2NF。
又由于E传递函数依赖于B,故R2∉3NF。
(4)可否将R1和R2分解成若干个BCNF范式?
写出分解结果。
根据模式分解的方法,可以将R1和R2分解成若干个BCNF范式,其具体的分解结果如下:
将R1分解为:
R11(A,C)∈BCNF,R12(B,C)∈BCNF;
将R2分解为:
R21(B,D)∈BCNF,R22(D,E)∈BCNF。
3.已知一关系模式:
借阅(借书证号,姓名,所在系,书号,借书日期),要求:
(l)请给出你认为合理的数据依赖;
F={借书证号→姓名,借书证号→所在系,(借书证号,书号)→借书日期}
借阅关系的键码为:
(借书证号,书号)。
(2)该模式是第几范式?
请证明;
由于姓名部分函数依赖于(借书证号,书号),故借阅∉2NF,显然借阅∈1NF。
(3)将它分解成3NF的关系模式。
根据模式分解的方法,可将借阅关系分解为:
R1(借书证号,姓名,所在系)∈3NF,R2(借书证号,书号,借书日期)∈3NF。
第7章部分习题解答
二.问答题
1.试把第1章习题三中的第8、9题的E-R图转换为关系模型。
[解答]第1章习题三中的第8、9题的E-R图如下:
转换后的关系模型(一组关系模式)如下:
生产厂商(名称、地址、电话),产品(品牌、型号、价格、生产商),顾客(身份证号、姓名、地址、电话),生产(名称,品牌、型号,数量1),购买(身份证号,品牌、型号,数量2)
2.对于第1题你设计关系模型中的每个关系模式,请用规范化理论来分析它们属于第几范式?
这些关系模式会产生什么更新异常吗?
在生产厂商中,键码是名称,F={名称→地址,名称→电话}。
根据模式分解的方法,可以判断出:
生产厂商∈BCNF。
同理,产品∈BCNF,顾客∈BCNF,生产∈BCNF,购买∈BCNF。
生产厂商(名称、地址、电话)和顾客(身份证号、姓名、地址、电话)二个关系本身不会产生更新异常。
但产品(品牌、型号、价格、生产商)、生产(名称,品牌、型号,数量1)和购买(身份证号,品牌、型号,数量2)三个关系中的外键码若违反引用完整性的话,则就有可能产生更新异常。
第8章部分习题解答
三.应用题
1、参考本章资料室图书借阅管理系统的分析和设计过程,分析并设计一个高校人事管理系统,具备人员入校(毕业分配、调入等)、出校(调出、退休等)、基本情况查询和报表打印等功能。
此题可结合实验七和实验八(数据库综合设计练习)分组合作进行。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库技术及应用 数据库技术 应用 部分 习题 解答