大学数据库考试复习试题带答案.docx
- 文档编号:5958119
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:19
- 大小:36.39KB
大学数据库考试复习试题带答案.docx
《大学数据库考试复习试题带答案.docx》由会员分享,可在线阅读,更多相关《大学数据库考试复习试题带答案.docx(19页珍藏版)》请在冰豆网上搜索。
大学数据库考试复习试题带答案
1.选择题
(1)(数据库)是存储在计算机内结构化的数据的集合
(2)下述关于数据系统正确的描述是(数据库系统减少了数据冗余)。
(3)数据库(DB)、与数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(DBS包含DB和DBMS)。
(4)数据库管理系统的工作不包括(为定义的确据库提供操作系统)。
(5)用于对现实世界进行描述的工具是(数据模型)。
(6)在数据库的三级模式结构中,描述数据库中全局逻辑结构和特征的是(模式)。
(7)E-R图用来建立数据库的(概念模型)。
(8)下列模型中不能直接描述实体间多对多的联系的是(关系模型)。
(9)数据模型的三个要素是(数据结构、数据操作、完整性约束)
(10)数据库的设计人员和用户之间沟通信息的桥梁是(实体联系图)。
(11)数据的独立性分为(逻辑独立性和物理独立性)。
(12)数据库通常是根据(数据模型)来分类的。
(13)关系数据库系统能实现专门的关系运算,包括(选择、投影、连接、除)。
(14)在关系模型中,下述关于关键字的说法正确的是(可以由一个或多个其值能唯一标识该关系模式中任何元组的属性组成)。
(15)被称为关系的两个不变性,由关系数据库系统自动支持的是(实体完整性和参照完整性)。
(16)在关系中不能出现相同元组的约束是通过(主码)来实现。
(17)下列数据模型中,数据独立性最高的是(关系模型).
(18)规范化理论是关系数据库进行逻辑设计的理论依据。
根据这个理论,关系数据库中的关系必须满足:
每一属性都是(不可分解的)。
(19)关系数据库规范化是为解决关系数据库中(插入异常、删除异常和数据冗余)问题而引入的。
(20)在关系数据库中,任何二元关系模式的最高范式必定是(BCNF)
(21)若属性X函数依赖于属性Y时,则属性X与属性Y之间的关系是(多对一)。
(22)设有关系模式:
部门(部门代码,部门名称,部门成员,部门经理)由于其中(部门成员)属性存在,使该关系不属于第一范式。
(23)若关系模式R中的属性都是主属性,则R最高属于(3NF)。
(24)若要彻底消除插入异常和删除异常,关系模式最低要属于(BCNF)。
(25)关系模式分解的无损连接和保持函数依赖两个特性之间的联系是(没有必然联系)。
(26)关系模式中数据依赖的存在,可能会导致成立蕴涵后者数据插入异常,这是指(该插入的数据未被插入)。
(27)设要对关系模式R(学号,姓名,课程代码,课程名,课程成绩)进行分解,将其规范化到3NF,下列(B)是正确的规范化结果。
(学号,姓名)R2(课程代码,课程名)R3(学号,课程代码,课程成绩)
(28)有如下关系R(是BCNF)。
(29)对用户访问数据库的权限加以限定是为了保护数据库的(安全性)。
(30)下面(可移植性)不是数据库系统必须提供的数据控制功能。
(31)数据库系统中,对存取权限定义为(授权)。
(32)在数据库的安全性控制中,为了保证用户只能存取他有权存取的数据,在授权的定义中,数据对象的(范围越小),授权子系统就越灵活。
(33)数据库安全性遭到破坏的情况属于(非法用户读取数据库中的数据)。
(34)数据库的(完整性)是指数据的正确性和相容性。
(35)数据完整性保护中的约束条件是指(值的约束和结构的约束)。
(36)实体完整性和参照完整性属于(静态关系约束)。
(37)数据类型、取值范围、空值约束属于(静态列级约束)。
(38)“断言”是数据库系统采用的(完整性约束)。
(39)脏数据的读出是(并发性)遭到破坏的情况。
(40)SQL中ROLLBACK语句的主要作用是(事务卷回)。
(41)SQL中提供的(GRANT)语句用于实现数据存取的安全控制。
(42)SQL中COMMIT语句的主要作用是(提交事务)。
(43)解决并发操作带来的数据不一致性问题时普遍采用(封锁)。
(44)不允许其它事务对这个锁定目标再加任何类型的锁是(排他锁)。
填空题:
1.三级模式之间的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性、物理独立性。
2.关系的完整性约束条件包括三大类:
实体完整性、参照完整性、用户定义的完整性。
3.关系代数运算中,专门的关系运算有投影、选择、连接、除。
4.数据库是长期存储在计算机内、有组织的、可共享的数据集合。
5.数据模型分成两个不同的层次。
概念模型从用户的观点对现实世界的信息建模,主要用于数据库设计。
数据模型从计算机系统的观点,对信息建模。
6.常用的数据模型有层次模型、网状模型和关系模型三种。
2.判断题
(1)在文件系统阶段,数据的独立性差。
√
(2)对于数据库系统,负责定义数据库内存,决定存储结构和存储策略及安全授权等工作的是应用程序员。
×
(1)假设一个仓库可存放多种商品,同种商品只能存放在一个仓库中,则从仓库到商品的联系是多对一的联系。
×
(2)在数据库系统的模式结构中,外模式有且仅有一个。
×
(3)数据独立性是指应用程序与数据之间相互独立,不受影响。
√
(1)一个关系模型的逻辑结构是一张二维表,表中的一行即为一个属性,表中的一列即为一个元组。
×
(2)当数据库的存储结构改变了,由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而保证了程序与数据的物理独立性。
(√)
(1)相对于非关系模型,关系模型的缺点之一是存取路径对用户透明,需进行查询优化。
√
(2)关系模型的三个组成部分,不包括完整性约束。
×
1.数据库物理存储方式的描述称为内模式。
√
2.在数据库三级模式间引入二级映象的主要作用是提高数据与程序的安全性。
×
3.关系模型是数据模型,而网状模型不是数据模型。
×
4.同一关系模型的任意两个元组值不能完全相同。
√
5.在关系中能唯一标识元组的属性集的是主码。
√
(1)属于BC范式的关系模式中已经完全消除了插入异常和删除异常。
√
(2)在关系模式R(A,B,C,D)中,有函数依赖集F={B→C,C→D,D→A},则R能达到3NF×
应用题
设有如下教学环境:
一个班级有多名学生,一个学生只属于一个班级。
一个学生可以选修若干门课程,一门课程只有一个教师主讲。
每位教师属于一个教研室,一个教研室有若干位教师。
请画出E-R图。
关系代数练习
给定如下关系:
S(S#,SN,SA,SD),S#表示学号,SN表示姓名,SA表示年龄,SD表示所在系。
C(C#,CN,PC#),C#表示课程号,CN表示课程名,PC#表示先修课程号。
SC(S#,C#,G),S#、C#含义同上,G表示成绩。
请用关系代数完成如下查询操作:
(1)查询选修课程号为C1、成绩为A的所有学生姓名。
(2)查询年龄为23岁的学生所选修的课程名。
(3)查询选修“数据库原理”课程的学生姓名。
(4)查询选修所有课程的同学姓名。
(5)查询选修了先修课程号PC为6的课程学生学号。
解:
(1)∏SN(S⋈∏S#(σC#=“C1”∧G=”A”(SC)))
(2)∏CN(C⋈∏C#(SC⋈∏S#(σSA=23(S)))
(3)∏SN(S⋈∏S#(SC⋈∏C#(σCN=‘数据库原理’(C)))
(4)∏SN(S⋈∏S#((SC)÷(∏C# (C)))
(5)∏S#(SC⋈∏C#(σPC=‘6’(C))
===========================================================================
给定如下关系:
S(S#,SN,SA,SD),S#表示学号,SN表示姓名,SA表示年龄,SD表示所在系。
C(C#,CN,PC#),C#表示课程号,CN表示课程名,PC#表示先修课程号。
SC(S#,C#,G),S#、C#含义同上,G表示成绩。
请用关系代数完成如下查询操作:
(1)查询所有小于20岁学生的学号、姓名。
(2)查询计算机系的学生所选修的课程名。
(3)查询选修“数据库原理”课程的学生姓名。
(4)查询选修所有课程的同学姓名。
(5)查询选修了先修课程号PC为6的课程学生学号。
(1)∏S#,SN(σSA=20(S))
(2)∏CN(C⋈∏C#(SC⋈∏S#(σSD=‘计算机’(S)))
或者:
∏CN(σSD=‘计算机’(C⋈SC⋈S))
(3)∏SN(S⋈∏S#(SC⋈∏C#(σCN=‘数据库原理’(C)))
或者:
∏SN(σCN=‘数据库原理’(C⋈SC⋈S))
(4)∏SN(S⋈∏S#(SC÷(∏C# (C))
或者:
∏SN(S⋈∏S#(SC÷C))
(5)∏S#(SC⋈∏C#(σPC=‘6’(C))
或者:
∏S#(σPC=‘6’(C⋈SC))
设职工社团数据库有三个基本表:
职工(职工号,姓名,年龄,性别,工资,住址);
社会团体(编号,名称,负责人,活动地点);
参加(职工号,编号,参加日期)。
用关系代数表达式实现下列1—5小题:
1.查询年龄大于20岁的职工姓名和性别。
2.查询参加社会团体编号为101的所有职工的姓名和年龄。
3.查询负责人为刘刚,活动地点在北二区小礼堂的社会团体的名称。
4.查询在西三环居住、工资在1000元以上职工参加社团的编号。
5.查询参加健美社团、活动时间在周六的职工的姓名和职工号。
1.П姓名,性别(σ年龄>20(职工))
2.П姓名,年龄(σ编号=101(职工∞参加))
3.П名称(σ负责人=‘刘刚’∧活动地点=‘北二区小礼堂’(社会团体))
4.П编号(σ住址=‘西三环’∧工资>1000(职工∞参加))
5.П姓名,职工号(σ名称=‘健美’∧参加时间=‘周六’(职工∞参加∞社会团体))
用SQL语句实现下列6—12小题:
6.定义职工表,职工号不能为空,其值唯一。
答案.CREATTABLE职工(职工号CHAR(l0)NOTNULLUNIQUE,
姓名CHAR(8)NOTNULL,
年龄SMALLINT,
性别CHAR
(2));
7.建立视图:
参加人情况(职工号,姓名,社团编号,社团名称,参加日期)
答案.CREATVIEW参加人情况(职工号,姓名,社团编号,社团名称,参加日期)
ASSELECT参加.职工号,姓名,社会团体编号,名称,参加日期
FROM职工,社会团体,参加
WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号;
8.查找参加唱歌队或篮球队的职工号和姓名。
答案.SELECT职工号,姓名
FROM职工,社会团体,参加
WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号
AND社会团体.名称IN(‘唱歌队’,‘篮球队’);
9.求每个社会团体的参加人数。
答案:
SELECT编号,COUNT(职工号)
FROM参加
GROUPBY编号;
或者:
SELECT社会团体.名称,COUNT(职工号)
FROM参加,社会团体
WHERE社会团体.编号=参加.编号
GROUPBY名称;
10.查询名字中第二个字为“明”字的职工的姓名和职工号。
答案:
SELECT职工号,姓名
FROM职工
WHERE姓名LIKE‘__阳%’;
11.将职工号=6887的年龄改为45岁。
答案:
UPDATE职工
SET年龄=45
WHERE职工号='6887';
12.把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并允许他再将此权力授予其他用户。
答案:
.GRANTselect,insert,deleteONTABLE社会团体,参加TO李平
WITHGRANTOPTION;
现有关系数据库如下
学生(学号,姓名,性别,专业,奖学金)
课程(课程号,名称,学分)
学习(学号,课程号,分数)
用关系代数表达式实现下列1—2小题:
1.检索“英语”专业学生的学号、姓名、性别。
2.检索课程号为“10031”,课程成绩高于90分的所有学生的学号。
1.П学号,姓名,性别(σ专业='英语'(学生))
2.П学号(σ分数>90∧课程号='10031'(学习))
用SQL语言实现下列3—10小题:
3.检索姓王学生的姓名、专业。
答案:
SELECT姓名,专业FROM学生WHERE姓名LIKE“王%”;
4.检索奖学金在200元以下的学生姓名和专业。
答案:
SELECT姓名,专业FROM学生WHERE奖学金<200;
5.检索选修课程号为“C135”课程的学生信息,包括学号,姓名和专业
答案:
SELECT学号,姓名,专业FROM学生,学习
WHERE课程号='C135'and学生.学号=学习.学号;
6.检索学习‘C1’号课程的学生最高分。
答案:
SELECTMAX(分数)FROM学习WHERE课程号='C1';
7.向学生表中插入一个记录(‘980810’,‘王东’,‘男’,‘计算机’,150)
答案:
.INSERTINTO学生
VALUES(‘980810’,‘王东’,‘男’,‘计算机’,150);
8.定义“英语”专业学生所学课程的信息视图AAA,包括学号、姓名、课程号和分数
答案:
CREATEVIEWAAA(学号,姓名,课程号,分数)
ASSELECT学号,姓名,课程号,分数
FROM学生,学习
WHERE学生.学号=学习.学号AND专业=’英语’;
9.检索所有有成绩的学生学号和课程号。
答案:
SELECT学号,课程号FROM学习WHERE成绩ISNULL;
10.检索选修C56课程的学生学号和成绩,检索结果按分数的降序排列。
答案:
.SELECT学号,成绩
FROM学习
WHERE课程号=‘C56’
ORDERBY成绩DESC;
有如下三个关系表
st(sno,sn,sa,ss):
学生表格,sno:
学号sn:
姓名sa:
年龄ss:
性别
sc(sno,cno,score):
学生选择课程表格,sno:
学号cno:
课程号score:
成绩
c(cno,cn,ct):
课程表格,cno:
课程号cn:
课程名ct:
课程学时
1.用关系代数写出下面查询的表达式(每题4分)
(1)查找所有女生的学号、姓名和年龄。
(2)查找选修了“数据库技术”的学生学号和成绩。
(3)查找选修了“软件工程”的男生姓名和年龄。
2.请按以下题目的要求写出相应的SQL语句(每题4分)
(1)定义学生关系表,要求学号属性非空,取值唯一;
createtablest(snochar(10)notnullunique,
snchar(20),
saint,
sschar
(2));
(2)查询年龄大于26岁的男生学号和姓名;
selectsno,snfromstwheresa>26andss=’男’;
(3)查询全体学生的姓名和出生年份;
selectsn,2018-safromst;
(4)查询年龄18到30岁之间的学生姓名和年龄;
selectsn,safromstwheresabetween18and30;
(5)查询所有姓孙的学生学号、姓名;
selectsno,snfromstwheresnlike‘孙%’;
(6)查询男女学生的平均年龄;
selectss,avg(sa)fromstgroupbyss;
(7)查询学习5号课程的最高分和最低分。
selectmax(score),min(score)
fromsc;
综合题:
某个学校有若干个系,每个系有若干个学生,开设若干个课程,每门课程有若干学生选修,某一门课可以为不同的系开设。
用E-R图画出该学校的概念模型。
描述学生的属性有:
学号、姓名、出生日期、系号、班号;
描述系的属性有:
系名、系号、系办公室地点、人数;
描述学校的属性有:
学校名、成立年份、地点;
描述课程的属性有:
课程号、课程名、学分。
(1)设计学校的E-R图。
(2)将该E-R图转换为关系模式。
关系模型如下。
学生(学号、姓名、出生日期、系号、班号)。
系(系名、系号、系办公室地点、人数)。
学校(学校名、成立年份、地点)
课程(课程号、课程名、学分)
(3)指出转换结果中每个关系模式的候选码。
学生关系的主码:
用户名
系的主码:
系号
学校主码:
学校名
课程主码:
学校名
有三个关系如下
(1)学生关系Student,包括学号Sno、姓名Sname、年龄Sage、性别Ssex;
(2)课程关系Course,包括课程号Cno、课程名Cname、任课教师Cteacher;
(3)学生选课关系SC,包括Sno、Cno和成绩Grade。
1.定义学生关系Student,学号不能为空,其值唯一,姓名值也唯一,学号为主码;
CREATETABLEStudent
(SnoCHAR(10)NOTNULLUNIQUEPRIMARYKEY,
SnameCHAR(30)UNIQUE,
SageINT,
SsexCHAR
(2));
2.查询1号课程的平均成绩;
SELECTAVG(Grade)FROMSCWHERECno=‘1’;
3.查询学号“95001”的学生选修全部课程号和成绩;
SELECTCno,GradeFROMSCWHERESno=‘95001’;
4.查询年龄在19-20岁之间的男生和女生的数量;
SELECTSsex,COUNT(Sno)
FROMStudent
WHERESage≥19andSage≤20
GROUPBYSsex;
或者:
WHERESageBETWEEN19and20
有三个关系如下:
(1)学生关系Student,包括学号Sno、姓名Sname、年龄Sage、性别Ssex;
(2)课程关系Course,包括课程号Cno、课程名Cname、任课教师Cteacher;
(3)学生选课关系SC,包括Sno、Cno和成绩Grade。
1.查询“软件工程”课程的平均成绩;
SELECTAVG(Grade)
FROMCourse,SC
WHERECname=‘软件工程’
AND=;
或者:
SELECTAVG(Grade)
FROMSCWHERECnoIN(SELECTCnoFROMCourseWHERECname=‘软件工程’)
2.查询名字中第2个字为"阳"字的学生的姓名和学号。
SELECTSname,Sno
FROMStudent
WHERESnameLIKE‘__阳%’;
3.查询刘阳同学所选修的课程号和课程名
SELECT,CnameFROMCourseWHERECnoIN
(SELECTCnoFROMSCWHERESnoIN
(SELECTSnoFROMStudentWHERESname=‘刘阳’));
或者:
SELECT,SnameFROMStudent,Course,SC
WHERESname=‘刘阳’AND=AND=;
4查询学生数据库课的成绩,输出学生姓名和成绩,按成绩排序(降序)。
SELECTSname,GradeFROMStudent,Course,SCWHERE=AND=AND=’数据库’ORDERBYGradeDESC;
5.检索没有成绩的学生姓名和课程号。
SelectSname,CnoFromStudent,SCWhereGradeisNULLAND=
有三个关系如下
(1)学生关系Student,包括学号Sno、姓名Sname、年龄Sage、性别Ssex;
(2)课程关系Course,包括课程号Cno、课程名Cname、任课教师Cteacher;
(3)学生选课关系SC,包括Sno、Cno和成绩Grade。
使用SQL语句实现:
1.为学生表建立一个聚簇索引STUNO,按学号升序和年龄降序。
CREATCLUSTERINDEXStuonONStudent(SNOASC,SAGEDESC);
2.查询王寒同学没有选修的课程的课程号
SELECTCno
FROMCourse
WHERECnoNOTIN
(SELECECno
FROMSC,Student
WHERE=
ANDSname=”王寒”);
3.创建一个成绩高于90分的学生视图S1,包括学生学号、出生年份、所选课程号、成绩。
CREATVIEWS1(Sno,Sbirth,Cno,Grade)
ASSELECTSno,2018-Sage,Cno,Grade
FROMStudent,SCWHERE=ANDGrade>90
4.向课程表中增加属性任课教师(Tname),类型是字符型
ALTERTABLECourseAddTnamechar(20)
5.将课程号为‘003’课程成绩增加10分
UPDATESCSETGrade=Grade+10
WHERECno=‘003’
有三个关系如下
(1)学生关系Student,包括学号Sno、姓名Sname、年龄Sage、性别Ssex;
(2)课程关系Course,包括课程号Cno、课程名Cname、任课教师Cteacher;
(3)学生选课关系SC,包括Sno、Cno和成绩Grade。
下面使用关系代数表达式实现:
1.查询课程名为数据库原理,授课教师为刘洋的课程号。
Пcno(σcname=‘数据库原理’∧Cteacher=‘刘洋’(Course))
2.查询既选修了课程1又选修了课程3的学生学号,姓名。
ПSno,Sname(σcno=“1”(Student∞SC))∩ПSno,Sname(σcno=“2”(Student∞SC))
使用SQL语句实现:
3.将数据库原理课程的成绩提高10分。
UPDATESCSETGRADE=GRADE+10
where‘数据库原理’=(selectCnamefromCoursewhere=;
4.查询至少2门课在80分以上的学生学号及课程数
SELECTSno,COUNT(*)
FROMSC
WHEREGrade>=80
GROUPBYSno
HAVINGCOUNT(*)>=2;
5.查询“C语言_课程设计”的课程号
SELECTCno
FROMCourse
WHERECnameLike“C语言\_程序设计”ESCAPE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 数据库 考试 复习 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)