2024年5月30日发(作者:铁星泽)
数据库系统概论复习资料:
第一章:
三:简答题:
1.
什么是数据库?
答:数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库是按某种数据模型进行 组织的、存放
在外存储器上,且可被多个用户同时使用。因此,数据库具有较小的冗余度,较高的数据 独立性和易扩展性。
2.
什么是数据库的数据独立性?
答:数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理 数据独立性。
逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图) 之间的独
立性。当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的 变更或增加新的数据
类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。
物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念 视图)和应
用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。
3.
什么是数据库管理系统?
答:数据库管理系统
(DBMS)
是操纵和管理数据库的一组软件
,
它是数据库系统
(DBS)
的重要组成部 分。不
同的数据库系统都配有各自的
DBMS,
而不同的
DBMS
各支持一种数据库模型
,
虽然它们的功能强 弱不同,但大多数
DBMS
的构成相同,功能相似。
一般说来
,DBMS
具有定义、建立、维护和使用数据库的功能,它通常由三部分构成:数据描述语言 及其翻译程
序、数据操纵语言及其处理程序和数据库管理的例行程序。
4.
什么是数据字典?数据字典包含哪些基本内容?
答:数据字典是数据库系统中各种描述信息和控制信息的集合,它是数据库设计与管理的有力工具, 是进行详细
数据收集和数据分析所获得的主要成果。数据字典的基本内容有:数据项、数据结构、数据 流、数据存储和处理过程
5
个部分。
第一章补充作业部分:
假设教学管理规定:
① 一个学生可选修多门课,一门课有若干学生选修;
② 一个教师可讲授多门课,一门课只有一个教师讲授;
③ 一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号/教师姓名;课程的属性有课程号
・
课程名。
要求:根据上述语义画出
ER
图
,
要求在图中画出实体的属性并注明联系的类型;
1
第
2
章关系数据库
8
、如图所示,两个关系
R1
和
R2
,
它们进行 ______________ 运算后得到
R3
。
D
A
A
C
D
E
M
N
M
M
I
J
K
B
1
2
1
R1
C
1
X
2
Y
5
y
R2
R3
A
A
C
B
1
1
C
X
Y
D
M
M
E
I
I
c
A
•交
B
•并
C
•笛卡尔积
D
•连接
2 y N J
答案:
D
三、应用题
:
设有如下所示的关系
S(S#,SNAME,AGE,SEX) C(C#,CNAME,TEACHER)
和
SC(S#,C#,GRADE),
试用关系代数
表达式表示下列查询语句
:
(1)
检索“程军”老师所授课程的课程号
(C#)
和课程名
(CNAME) °
(2)
检索年龄大于
21
的男学生学号
(S
切和姓名
(SNAME)
。
(3)
检索至少选修“程军”老师所授全部课程的学生姓名
(SNAME) °
(4)
检索”李强”同学不学课程的课程号
(C#)
。
(5)
检索至少选修两门课程的学生学号
(S
切。
(6)
检索全部学生都选修的课程的课程号
(C#)
和课程名
(CNAME)
。
(7)
检索选修课程包含“程军”老师所授课程之一的学生学号
(S#) °
(8)
检索选修课程号为
kl
和
k5
的学生学号
(S#)
。
(9)
检索选修全部课程的学生姓名
(SNAME)
。
(10)
检索选修课程包含学号为
2
的学生所修课程的学生学号
(S#)
。
(11)
检索选修课程名为
“C
语言”的学生学号
(S#)
和姓名
(SNAME)
。
解:本题各个查询语句对应的关系代数表达式表示如下:
(1) . nc#, CNAME( <7TEACHER=
'程军’
(C))
(2) . ns#, SNAME( aAGE>21 ASEX=
W
男”
(C))
(3) . nSNAMEfsM [nS#,C# (sc) vnc#((
J
TEACHER=
'程军’
(C))]}
(4) . nc#(c)- nC#((7SNAME=
'李强’
(S)XSC)
(5) . nS#(a[l]=[4]A[2]#=[5] (SCxSC))
(6) . nc#,CNAME(CM (ns#,C#(sc)4-nS#(S)))
(7) . ns#(scx nC#(aTEACHER=
'程军’
(C)))
(8) . ns#,c# (sc) vnc#( (9) . nSNAMEfsM [ns#,C# (sc) mTIC#(C)]} (10) . ns#,c# (sc) 4-nc#(<7S#= 2'(so) (11) . ns#, SNAME{sM [ns#(sccx](7CNAME= 'C 语言’ (C))]} 关系 R 和 S 如下图所示,试计算 RmS 。 一、选 择题 第 8 到 第 11 C(C# , CN) SC(S# ‘ C# ‘ GRADE) 其中: S# 为学号, SN 为姓名‘ SEX 为性别, AGE 为年龄, DEPT 为系别, C# 为课程号, CN 为课程名, GRADE 为成绩。 11 、检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正 确的 (SELECT GRADE FORM SC SELEC WHERE C#= “C2” ) T WHERE C#= “C2” AND GRADE IN 答案: I) 二、填空题 3 、设有如下关系表 R : R(No » NAME , SEX , AGE , CLASS) 主关键字是 NO 其中 NO 为学号, NAME 为姓名, SEX 为性别 , AGE 为年龄, CLASS 为班号。 写出实现下列功能的 SQL 语句。 ① 插入一个记录 (25, “李明” ,“ 男” ,21,“95031” ); ________ 。 ② 插入 “95031 ”班学号为 30 、姓名为“郑和”的学生记录; _________________ 。 ③ 将学号为 10 的学生姓名改为“王华”; _______________ 。 ④ 将所有 “95101” 班号改为 “95091”; ___________ 。 ⑤ 删除学号为 20 的学生记录; _______________ 。 ⑥ 删除姓“王”的学生记录; ________________ 。 答案 : ① INSERT INTO R VALUES(25,“ 李明” ,“ 男” ,21,“95031” ) ② INSERT INTO R(NO , NAME , CLASS) VALUESC30,“ 郑和”, “95031”) ③ UPDATE R SET NAME= “王华” WHERE N0=10 ④ UPDATE R SET CLASS= “95091” WHERE CLASS= “95101” ⑤ DELETE FROM R WHERE NO=20 ©DELETE FROMR R WHERE NAME LIKE “王 %” 第 3 章书面作业 1 、设学生课程数据库中有三个关系 : 学生关系 S (S# , SNAME , AGE , SEX) 学习关系 SC ( S#,C#,GRADE ) 课程关系 C (C#,CNAME) 其中 S# 、 C# 、 SNAME 、 AGE 、 SEX 、 GRADE 、 CNAME 分别表示学号、课程号、 姓名 、年龄、性别、成绩 和课程名。 用 SQL 语句表达下列操作 (1) 检索选修课程名称为 “MATHS” 的学生的学号与姓名 (2) 检索至少学习了课程号为 “C1” 和 “C2” 的学生的学号 (3) 检索年龄在 18 到 20 之间(含 18 和 20) 的女生的学号、姓名和年龄 (4) 检索平均成绩超过 80 分的学生学号和平均成绩 (5) 检索选修了全部课程的学生姓名 答案 :(1) SELECT SNAME, AGE (Sno FROM S, SC, C , WHERE S. S#=SC. S# AND C. C#=SC. C# AND CNAMEh MATHS' (2) SELECT S# FROM SC WHERE CNO= , Cl' AND S# INC SELECT S# FROM SC WHERE CNO= , C2') (3) SELECT S#, SNAME, AGE FROM S WHERE AGE BETWEEN 18 AND 20 (4) SELECT S# , AVG(GRADE) '平均成绩’ FROM SC GROUP BY S# (6) 检索选修了三门课以上的学生的姓名 课程表 :Course (Cno ‘ Cname ‘ Ccredit) 学生选课表: SC ( Sno » Cno » Grade) 其中 Sno 、 Sname 、 Sex 、 Sage 、 Sdept 、 Cno 、 Cname 、 别、年龄、所在系名、课程号、课程名、学分和成绩。 Ccredit 、 Grade 分别表示学号、姓名、性 试用 SQL 语言完成下列项操作: (1) 查询选修课程包括 “1042” 号学生所学的课程的学生学号 (2) 创建一个计科系学生信息视图 S_CS_VIEW, 包括 Sno 学号、 Sname 姓名、 Sex 性别; (3) 通过上面第 2 题创建的视图修改数据 , 把王平的名字改为王慧平 (4) 创建一选修数据库课程信息的视图,视图名称为 datascore^view 、 包含学号 ・ 姓名 ・ 成绩。 答案: (1) SELECT DISTINCT SNO AS FROM SC SCX WHERE NOT EXISTS (SELECT * FROM SC SCY WHERE SCY. SNO = ' 1042' AND NOT EXISTS (SELECT * FROM SC SCZ WHERE SCZ. SNO=SCX. SNO AND SELECT SNO, SNAME, SEX FROM STUDENT WHERE Sdept= , CS' (3)UPDATE S_CS_VIEW SET SNAME= , 王慧平' WHERE SNAME=* 王平' (4) CREATE VIEW datascore_view AS SELECT SNO 学号、 SNAME 姓名、 GRADE 成绩 FROM STUDENT, SC, COURSE WHERE STUDENT. SNO=SC. SNO SCZ. CNO=SCY. CNO)); (2) CREATE VIEW S_CS_VIEW AND COURSE. CNO=SC. CNO AND CNAME= , 数据库’ 第 5 章数据库完整性 一、选择题: 2 、关于主键约束以下说法错误的是( ) A. 一个表中只能设置一个主键约束 B. 允许空值的字段上不能定义主键约束 C. 允许空值的字段上可以定义主键约束 I). 、可以将包含多个字段的字段组合设置为主键 案: C 三、设计题 在学生课程管理数据库中创建一触发器,当向学生选课表插入记录时,检查该记录的学号在学生表 中是否存在, 检查该记录的课程号在课程表中是否存在,及选课成绩是否在 0 到 100 范围,若有一项为 否,则不允许插入。 答案: create trigger on sc for insert as begin declare @s# char(6), gc# char(5), ggrade int select @s#=sno, gc#=cno, ggrade=score from inserted if (@s# not in(select sno from student)) or (@c# not in (select eno from course) )or (ggrade not between 0 and 100) rollback transaction else print '成功插入' end 第 6 章关系数据理论 一、选择题 1 、关系规范化中的刪除操作异常是指 A •不该删除的数据被删除 该插入的数据未被插入 答案: ①A②D ① ,插入操作异常是指 ② 。 B •不该插入的数据被插入 C •应该删除的数据未被刪除 I) •应 5 、关系模型中的关系模式至少是 _______________ 。 A - INF B -2NF C • 3NF 1) - BCNF 6 、 在关系 DB 中 , 任何二元关系模式的最高范式必定是 _________________ 。 A - INF B-2NF C -3NF D -BCNF 答 答
2024年5月30日发(作者:铁星泽)
数据库系统概论复习资料:
第一章:
三:简答题:
1.
什么是数据库?
答:数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库是按某种数据模型进行 组织的、存放
在外存储器上,且可被多个用户同时使用。因此,数据库具有较小的冗余度,较高的数据 独立性和易扩展性。
2.
什么是数据库的数据独立性?
答:数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理 数据独立性。
逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图) 之间的独
立性。当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的 变更或增加新的数据
类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。
物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念 视图)和应
用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。
3.
什么是数据库管理系统?
答:数据库管理系统
(DBMS)
是操纵和管理数据库的一组软件
,
它是数据库系统
(DBS)
的重要组成部 分。不
同的数据库系统都配有各自的
DBMS,
而不同的
DBMS
各支持一种数据库模型
,
虽然它们的功能强 弱不同,但大多数
DBMS
的构成相同,功能相似。
一般说来
,DBMS
具有定义、建立、维护和使用数据库的功能,它通常由三部分构成:数据描述语言 及其翻译程
序、数据操纵语言及其处理程序和数据库管理的例行程序。
4.
什么是数据字典?数据字典包含哪些基本内容?
答:数据字典是数据库系统中各种描述信息和控制信息的集合,它是数据库设计与管理的有力工具, 是进行详细
数据收集和数据分析所获得的主要成果。数据字典的基本内容有:数据项、数据结构、数据 流、数据存储和处理过程
5
个部分。
第一章补充作业部分:
假设教学管理规定:
① 一个学生可选修多门课,一门课有若干学生选修;
② 一个教师可讲授多门课,一门课只有一个教师讲授;
③ 一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号/教师姓名;课程的属性有课程号
・
课程名。
要求:根据上述语义画出
ER
图
,
要求在图中画出实体的属性并注明联系的类型;
1
第
2
章关系数据库
8
、如图所示,两个关系
R1
和
R2
,
它们进行 ______________ 运算后得到
R3
。
D
A
A
C
D
E
M
N
M
M
I
J
K
B
1
2
1
R1
C
1
X
2
Y
5
y
R2
R3
A
A
C
B
1
1
C
X
Y
D
M
M
E
I
I
c
A
•交
B
•并
C
•笛卡尔积
D
•连接
2 y N J
答案:
D
三、应用题
:
设有如下所示的关系
S(S#,SNAME,AGE,SEX) C(C#,CNAME,TEACHER)
和
SC(S#,C#,GRADE),
试用关系代数
表达式表示下列查询语句
:
(1)
检索“程军”老师所授课程的课程号
(C#)
和课程名
(CNAME) °
(2)
检索年龄大于
21
的男学生学号
(S
切和姓名
(SNAME)
。
(3)
检索至少选修“程军”老师所授全部课程的学生姓名
(SNAME) °
(4)
检索”李强”同学不学课程的课程号
(C#)
。
(5)
检索至少选修两门课程的学生学号
(S
切。
(6)
检索全部学生都选修的课程的课程号
(C#)
和课程名
(CNAME)
。
(7)
检索选修课程包含“程军”老师所授课程之一的学生学号
(S#) °
(8)
检索选修课程号为
kl
和
k5
的学生学号
(S#)
。
(9)
检索选修全部课程的学生姓名
(SNAME)
。
(10)
检索选修课程包含学号为
2
的学生所修课程的学生学号
(S#)
。
(11)
检索选修课程名为
“C
语言”的学生学号
(S#)
和姓名
(SNAME)
。
解:本题各个查询语句对应的关系代数表达式表示如下:
(1) . nc#, CNAME( <7TEACHER=
'程军’
(C))
(2) . ns#, SNAME( aAGE>21 ASEX=
W
男”
(C))
(3) . nSNAMEfsM [nS#,C# (sc) vnc#((
J
TEACHER=
'程军’
(C))]}
(4) . nc#(c)- nC#((7SNAME=
'李强’
(S)XSC)
(5) . nS#(a[l]=[4]A[2]#=[5] (SCxSC))
(6) . nc#,CNAME(CM (ns#,C#(sc)4-nS#(S)))
(7) . ns#(scx nC#(aTEACHER=
'程军’
(C)))
(8) . ns#,c# (sc) vnc#( (9) . nSNAMEfsM [ns#,C# (sc) mTIC#(C)]} (10) . ns#,c# (sc) 4-nc#(<7S#= 2'(so) (11) . ns#, SNAME{sM [ns#(sccx](7CNAME= 'C 语言’ (C))]} 关系 R 和 S 如下图所示,试计算 RmS 。 一、选 择题 第 8 到 第 11 C(C# , CN) SC(S# ‘ C# ‘ GRADE) 其中: S# 为学号, SN 为姓名‘ SEX 为性别, AGE 为年龄, DEPT 为系别, C# 为课程号, CN 为课程名, GRADE 为成绩。 11 、检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正 确的 (SELECT GRADE FORM SC SELEC WHERE C#= “C2” ) T WHERE C#= “C2” AND GRADE IN 答案: I) 二、填空题 3 、设有如下关系表 R : R(No » NAME , SEX , AGE , CLASS) 主关键字是 NO 其中 NO 为学号, NAME 为姓名, SEX 为性别 , AGE 为年龄, CLASS 为班号。 写出实现下列功能的 SQL 语句。 ① 插入一个记录 (25, “李明” ,“ 男” ,21,“95031” ); ________ 。 ② 插入 “95031 ”班学号为 30 、姓名为“郑和”的学生记录; _________________ 。 ③ 将学号为 10 的学生姓名改为“王华”; _______________ 。 ④ 将所有 “95101” 班号改为 “95091”; ___________ 。 ⑤ 删除学号为 20 的学生记录; _______________ 。 ⑥ 删除姓“王”的学生记录; ________________ 。 答案 : ① INSERT INTO R VALUES(25,“ 李明” ,“ 男” ,21,“95031” ) ② INSERT INTO R(NO , NAME , CLASS) VALUESC30,“ 郑和”, “95031”) ③ UPDATE R SET NAME= “王华” WHERE N0=10 ④ UPDATE R SET CLASS= “95091” WHERE CLASS= “95101” ⑤ DELETE FROM R WHERE NO=20 ©DELETE FROMR R WHERE NAME LIKE “王 %” 第 3 章书面作业 1 、设学生课程数据库中有三个关系 : 学生关系 S (S# , SNAME , AGE , SEX) 学习关系 SC ( S#,C#,GRADE ) 课程关系 C (C#,CNAME) 其中 S# 、 C# 、 SNAME 、 AGE 、 SEX 、 GRADE 、 CNAME 分别表示学号、课程号、 姓名 、年龄、性别、成绩 和课程名。 用 SQL 语句表达下列操作 (1) 检索选修课程名称为 “MATHS” 的学生的学号与姓名 (2) 检索至少学习了课程号为 “C1” 和 “C2” 的学生的学号 (3) 检索年龄在 18 到 20 之间(含 18 和 20) 的女生的学号、姓名和年龄 (4) 检索平均成绩超过 80 分的学生学号和平均成绩 (5) 检索选修了全部课程的学生姓名 答案 :(1) SELECT SNAME, AGE (Sno FROM S, SC, C , WHERE S. S#=SC. S# AND C. C#=SC. C# AND CNAMEh MATHS' (2) SELECT S# FROM SC WHERE CNO= , Cl' AND S# INC SELECT S# FROM SC WHERE CNO= , C2') (3) SELECT S#, SNAME, AGE FROM S WHERE AGE BETWEEN 18 AND 20 (4) SELECT S# , AVG(GRADE) '平均成绩’ FROM SC GROUP BY S# (6) 检索选修了三门课以上的学生的姓名 课程表 :Course (Cno ‘ Cname ‘ Ccredit) 学生选课表: SC ( Sno » Cno » Grade) 其中 Sno 、 Sname 、 Sex 、 Sage 、 Sdept 、 Cno 、 Cname 、 别、年龄、所在系名、课程号、课程名、学分和成绩。 Ccredit 、 Grade 分别表示学号、姓名、性 试用 SQL 语言完成下列项操作: (1) 查询选修课程包括 “1042” 号学生所学的课程的学生学号 (2) 创建一个计科系学生信息视图 S_CS_VIEW, 包括 Sno 学号、 Sname 姓名、 Sex 性别; (3) 通过上面第 2 题创建的视图修改数据 , 把王平的名字改为王慧平 (4) 创建一选修数据库课程信息的视图,视图名称为 datascore^view 、 包含学号 ・ 姓名 ・ 成绩。 答案: (1) SELECT DISTINCT SNO AS FROM SC SCX WHERE NOT EXISTS (SELECT * FROM SC SCY WHERE SCY. SNO = ' 1042' AND NOT EXISTS (SELECT * FROM SC SCZ WHERE SCZ. SNO=SCX. SNO AND SELECT SNO, SNAME, SEX FROM STUDENT WHERE Sdept= , CS' (3)UPDATE S_CS_VIEW SET SNAME= , 王慧平' WHERE SNAME=* 王平' (4) CREATE VIEW datascore_view AS SELECT SNO 学号、 SNAME 姓名、 GRADE 成绩 FROM STUDENT, SC, COURSE WHERE STUDENT. SNO=SC. SNO SCZ. CNO=SCY. CNO)); (2) CREATE VIEW S_CS_VIEW AND COURSE. CNO=SC. CNO AND CNAME= , 数据库’ 第 5 章数据库完整性 一、选择题: 2 、关于主键约束以下说法错误的是( ) A. 一个表中只能设置一个主键约束 B. 允许空值的字段上不能定义主键约束 C. 允许空值的字段上可以定义主键约束 I). 、可以将包含多个字段的字段组合设置为主键 案: C 三、设计题 在学生课程管理数据库中创建一触发器,当向学生选课表插入记录时,检查该记录的学号在学生表 中是否存在, 检查该记录的课程号在课程表中是否存在,及选课成绩是否在 0 到 100 范围,若有一项为 否,则不允许插入。 答案: create trigger on sc for insert as begin declare @s# char(6), gc# char(5), ggrade int select @s#=sno, gc#=cno, ggrade=score from inserted if (@s# not in(select sno from student)) or (@c# not in (select eno from course) )or (ggrade not between 0 and 100) rollback transaction else print '成功插入' end 第 6 章关系数据理论 一、选择题 1 、关系规范化中的刪除操作异常是指 A •不该删除的数据被删除 该插入的数据未被插入 答案: ①A②D ① ,插入操作异常是指 ② 。 B •不该插入的数据被插入 C •应该删除的数据未被刪除 I) •应 5 、关系模型中的关系模式至少是 _______________ 。 A - INF B -2NF C • 3NF 1) - BCNF 6 、 在关系 DB 中 , 任何二元关系模式的最高范式必定是 _________________ 。 A - INF B-2NF C -3NF D -BCNF 答 答