数据库系统概论复习资料:
第一章: 一选择题:
1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是 阶段。 A.数据库系统 B.文件系统 C.人工管理 D.数据项管理 答案:A
2.数据库的概念模型独立于 。A.具体的机器和DBMS B.E-R图 C.信息世界 D.现实世界 答案:A 3.数据库的基本特点是 。
A.(1)数据可以共享(或数据结构化) (2)数据独立性 (3)数据冗余大,易移植 (4)统一管理和控制 B.(1)数据可以共享(或数据结构化) (2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制 C.(1)数据可以共享(或数据结构化) (2)数据互换性 (3)数据冗余小,易扩充 (4)统一管理和控制
D.(1)数据非结构化 (2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制 答案:B 4. 是存储在计算机内有结构的数据的集合。 A.数据库系统 B.数据库 C.数据库管理系统D.数据结构 答案:B 5.数据库中存储的是 。 A.数据 B.数据模型 C.数据以及数据之间的联系 D.信息 答案:C 6. 数据库中,数据的物理独立性是指 。
A.数据库与数据库管理系统的相互独立 B.用户程序与DBMS的相互独立
C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的 .. D.应用程序与数据库中数据的逻辑结构相互独立 答案:C
7. .数据库的特点之一是数据的共享,严格地讲,这里的数据共享是指 。 A.同一个应用中的多个程序共享一个数据集合 B.多个用户、同一种语言共享数据
C.多个用户共享一个数据文件 D.多种应用、多种语言、多个用户相互覆盖地使用数据集合 答案:D
8.据库系统的核心是 。A.数据库B.数据库管理系统 C.数据模型 D.软件工具 答案:B 9. 下述关于数据库系统的正确叙述是 。
A.数据库系统减少了数据冗余 B.数据库系统避免了一切冗余 C.数据库系统中数据的一致性是指数据类型一致 D.数据库系统比文件系统能管理更多的数据 答案:A
10. 数将数据库的结构划分成多个层次,是为了提高数据库的 ① 和 ② 。 ①A.数据独立性 B.逻辑独立性 C.管理规范性 D.数据的共享
②A.数据独立性 B.物理独立性 C.逻辑独立性 D.管理规范性 答案:①B ②B 11. 数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是答案:A 。
A.DBS包括DB和DBMS B.DDMS包括DB和DBS C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS 12. 在数据库中,产生数据不一致的根本原因是 。
A.数据存储量太大 B.没有严格保护数据 C.未对数据进行完整性控制 D.数据冗余 答案:D
13. 数据库管理系统(DBMS)是 A.数学软件B.应用软件 C.计算机辅助设计 D.系统软件 答案:D
14. 数据库管理系统(DBMS)的主要功能是 B 。A.修改数据库 B.定义数据库 C.应用数据库D.保护数据库 15. 数据库系统的特点是 、数据独立、减少数据冗余、避免数据不一致和加强了数据保护。 A.数据共享 B.数据存储 C.数据应用 D.数据保密 答案:A 16据库系统的最大特点是 。
A.数据的三级抽象和二级独立性 B.数据共享性 C.数据的结构化 D.数据独立性 答案:A 17. 数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作,这种功能称为 。 A.数据定义功能 B.数据管理功能 C.数据操纵功能 D.数据控制功能 答案:C 18. 数据库管理系统是 。
A.操作系统的一部分 B.在操作系统支持下的系统软件 C.一种编译程序 D.一种操作系统 答案:B 19.据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是()
A.外模式 B.内模式 C.存储模式 D.模式 答案:D 20据库系统的数据独立性是指 B 。
A.不会因为数据的变化而影响应用程序 B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
C.不会因为存储策略的变化而影响存储结构 D.不会因为某些存储结构的变化而影响其他的存储结构 答案:B 21.信息世界中的术语,与之对应的数据库术语为 A.文件 B.数据库 C.字段 D.记录 答案:D 22次型、网状型和关系型数据库划分原则是 。
A.记录长度 B.文件的大小 C.联系的复杂程度 D.数据之间的联系 答案:D 23.传统的数据模型分类,数据库系统可以分为三种类型 。
A.大型、中型和小型 B.西文、中文和兼容 C.层次、网状和关系 D.数据、图形和多媒体 答案:C
24. 层次模型不能直接表示 A. 1 :1关系 B.1 :m关系 C. m :n关系 D.1 :1和1 :m关系 答案:C 25. 数据库技术的奠基人之一E.F.Codd从1970年起发表过多篇论文,主要论述的是 。
A.层次数据模型 B.网状数据模型 C.关系数据模型 D.面向对象数据模型 答案:C 二、填空题
1. 数据管理技术经历了 人工管理 、 文件系统 和 数据库系统 三个阶段。 答案:①人工管理 ②文件系统 ②数据库系统 2. 数据库是长期存储在计算机内、有 组织的、可共享的数据集合。 答案:①组织 ②共享
3.DBMS是指 它是位于 用户 和 ③ 之间的一层管理软件。 答案:①数据库管理系统 ②用户 ③操作系统 4. 数据库管理系统的主要功能有数据定义功能 、数据操纵功能 、数据库的运行管理和数据库的建立以及维护等4个方面。
答案:①数据定义功能 ②数据操纵功能
5. 数据独立性又可分为逻辑数据独立性 和 物理数据独立性。 答案:①逻辑数据独立性 ②物理数据独立性
6. 当数据的物理存储改变了,应用程序不变,而由DBMS处理这种改变,这是指数据的 物理独立性 。 答案:物理独立性
7. 数据模型是由数据结构 、数据操作 和完整性约束 三部分组成的。 答案:①数据结构 ②数据操作 ③完整
性约束
8. 数据结构 是对数据系统的静态特性的描述,数据操作 是对数据库系统的动态特性的描述。 答案:①数据结构 ②数据操作
9. 数据库体系结构按照 模式 、 外模式 和 内模式 三级结构进行组织。 答案:①模式 ②外模式 ③内模式
10. 实体之间的联系可抽象为三类,它们是 1∶1 、 1∶m 和 m∶n 。 答案:①1∶1 ②1∶m ②m∶n 11.数据冗余可能导致的问题有 ① 和 ② 。 答案:①浪费存储空间及修改麻烦 ②潜在的数据不一致性
第一章补充作业部分: 假设教学管理规定:
①一个学生可选修多门课,一门课有若干学生选修;②一个教师可讲授多门课,一门课只有一个教师讲授;
③一个学生选修一门课,仅有一个成绩。 学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。
要求:根据上述语义画出ER图,要求在图中画出实体的属性并注明联系的类型; 解答:
学课程选课程
第2章关系数据库
姓学生 课程 成讲教师 一、选择题
1、关系数据库管理系统应能实现的专门关系运算包括 。 A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表 答案:B 2、关系模型中,一个关键字是 。
A.可由多个任意属性组成 B.至多由一个属性组成
C.可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成 D.以上都不是 答案:C
3、自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的 。 A.元组 B.行 C.记录 D.属性 答案:D
4、关系运算中花费时间可能最长的运算是 。 A.投影 B.选择 C.笛卡尔积 D.除 答案:C
5.关系模式的任何属性 A.不可再分 B.可再分 C.命名在该关系模式中可以不惟一 D.以上都不是 答案:A 6.在关系代数运算中,五种基本运算为 。
A.并、差、选择、投影、自然连接 B.并、差、交、选择、投影
C.并、差、选择、投影、乘积 D.并、差、交、选择、乘积 答案:C
7、设有关系R,按条件f对关系R进行选择,正确的是 A.R?R B.R ?? R C. ?f(R) D.?f(R) 答案:C 8、如图所示,两个关系R1和R2,它们进行 运算后得到R3。
R1
A A C D B 1 2 1 C X Y y 二、填空
A.交 A 1 X M M N I I J R3
A B C D E D 1 B.并 2 答案:D 题
5 E M N M M I J K 教师编教师姓C.笛卡尔积
C 1 Y D.连接 C 2 y 1、一个关系模式的定义格式为 。 答案:关系名(属性名1,属性名2,?,属性名n) 2、.一个关系模式的定义主要包括 关系名 、属性名 、 属性类型 、
属性长度 和关键字 。 答案:①关系名 ②属性名 ③属性类型 ④属性长度 ⑤关键字 3、.关系代数运算中,传统的集合运算有① 、②、③ 和 ④ 。 答案:①笛卡尔积 ②并 ③交 ④差
4、关系代数运算中,基本的运算是 ① 、 ② 、③、④ 和⑤。 答案:①并 ②差 ③笛卡尔积 ④投影 ⑤选择
5、关系代数运算中,专门的关系运算有 选择 、 投影 和 连接 。 答案:①选择 ②投影 ③连接 6、关系数据库中基于数学上两类运算是关系代数 和关系演算 。答案:①关系代数 ②关系演算
7、.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主关键字是 ① ,系关系的外关键字 ② ,学生关系的主关键字是 ③ ,外号 ②无 ③学号 ④系编号 三、应用题:
关系R和S如下图所示,试计算R÷S。
第3章关系数据库标准语言SQL
一、选择题
1、SQL语言是 的语言,易学习。
A.过程化 B.非过程化 C.格式化 D.导航式 答2、SQL语言是 语言。
A.层次数据库 B.网络数据库 C.关系数据库 D.非3、SQL语言具有 的功能。
A.关系规范化、数据操纵、数据控制 B.数据定义、数据操
c k e f 纵、数据控制
b b c d d k e d c f l d 数据库 答案:C
R A a a a B b b b C c e h D d f k S C c e D d f 案:B
关键字 ④ 答案:①系编
C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵 答案:B 4、SQL语言具有两种使用方式,分别称为交互式SQL和 。
A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 答案:C
5、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。 要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系 。 A.S B.SC,C C.S,SC D.S,C,SC 答案:D
6、如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作 不能执行。 A.从职工表中删除行(‘025’,‘王芳’,‘03’,720) B.将行(‘005,’,‘乔兴’,‘04’,750)插入到职工表中
C.将职工号为,‘001’的工资改为700 D.将职工号为,’038’的部门号改为‘03’ 答案:B 7、若用如下的SQL语句创建一个student表: CREATE TABLE student(NO C(4) NOT NULL, NAME C(8) NOT NULL, SEX C(2), AGE N(2))
可以插入到student表中的是 。
A.(‘1031’,‘曾华’,男,23) B.(‘1031’,‘曾华’,NULL,NULL)
C.(NULL,‘曾华’,‘男’,‘23’) D.(‘1031’,NULL,‘男’,23) 答案:B 第8到第11题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下: S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
8、检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是 a 。 A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=“王华”) B.SELECT SN,AGE,SEX
FROM S
WHERE SN=“王华”
C.SELECT SN,AGE,SEX FROM S
WHERE AGE>(SELECT AGE
WHERE SN=“王华”)
D.SELECT SN,AGE,SEX FROM S
9、检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是 答案:DA.SELECT S# FORM SC WHERE C#=“C2” AND GRAD>= (SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC
WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”)
10、检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是 A.SELECT S.SN,SC.C#,SC.GRADE FROM S
WHERE S.S#=SC.S#
B.SELECT S.SN,SC.C#,SC.GRADE FROM SC
WHERE S.S#=SC.GRADE 答案:C
11、检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是 。
A.SELECT S#,SUM(GRADE)FROM SC WHERE GRADE>=60 GROUP BY S# ORDER BY 2 DESC
HAVING COUNT(*)>=4 WHERE C#=“C2” AND GRADE>=
(SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC
WHERE C#=“C2” AND GRADE IN 答案:D
二、填空题
1、SQL是 结构化查询语言 。 答案:结构化查询语言
2、视图是一个虚表,它是从 ① 中导出的表。在数据库中,只存放视图的 ② ,不存放视图的 ③ 。 答案:①一个或几个基本表 ②定义 ③视图对应的数据 3、设有如下关系表R:
R(No,NAME,SEX,AGE,CLASS) 主关键字是NO
其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。 写出实现下列功能的SQL语句。
①插入一个记录(25,“李明”,“男”,21,“95031”); 。①INSERT INTO R VALUES(25,“李明”,“男”,21,“95031”) ②插入“95031”班学号为30、姓名为“郑和”的学生记录; 。②INSERT INTO R(NO,NAME,CLASS) VALUES(30,“郑和”,“95031”) ③将学号为10的学生姓名改为“王华”; 。③UPDATE R SET NAME=“王华”WHERE NO=10
(SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC
WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC
WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2”)
C.SELECT S.SN,SC.C#,SC.GRADE FROM S,SC WHERE S.S#=SC.S#
D.SELECT S.SN,SC.C#,SC.GRADE FROM S.SC C.SELECT S# FORM SC
WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC
WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2” WHERE AGE>王华.AGE
④将所有“95101”班号改为“95091”; 。④UPDATE R SET CLASS=“95091”WHERE CLASS=“95101” ⑤删除学号为20的学生记录; 。⑤DELETE FROM R WHERE NO=20
⑥删除姓“王”的学生记录; 。⑥DELETE FROMR 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)检索选修了全部课程的学生姓名(6)检索选修了三门课以上的学生的姓名
答案:(1)SELECT S#, FROM S,SC,C WHERE S.S#=SC.S# AND C.C#=SC.C# AND CNAME=’ MATHS’ (2) SELECT S# FROM SC
WHERE CNO=’C1’ AND S# IN( 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#
HAVING AVG(GRADE)>80 2、设学生-课程数据库中包括三个表:
学生表:Student (Sno,Sname,Sex,Sage,Sdept) 课程表: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 答案:
FROM SC SCX
WHERE NOT EXISTS (SELECT *
SNAME
(5) SELECT SNAME
FROM S
WHERE NOT EXISTS
(SELECT * FROM C
WHERE NOT EXISTS (SELECT * FROM SC
WHERE S#=S.S# AND C#=C.C# )
)
(6) SELECT SNAME FROM S,SC WHERE S.S#=SC.S# GROUP BY SNAME
HAVING COUNT(*)>3