《数据库原理与技术之练习题集锦》

第一部分 数据库系统概述
(一)、考核内容
(1) 数据库系统的基本概念
(2) 数据描述与数据模型、关系模型
(3) 数据库系统内部体系结构
(二)、考核要求
(1)了解数据库、数据库管理系统、数据库应用系统的概念。
(2)了解数据描述与数据模型。
(3)了解层次模型、网状模型的特点。
(4)理解关系模型的基本概念:关系、元组、属性、属性值、值域、分量、关系的状态、关系模式、关系的键与属性等。
(5)理解数据库内部体系结构中的三级模式结构。
(6)了解数据库系统内部体系结构中的两级映像。
(一)选择
1.在数据管理技术的发展过程中,经历了人工管理阶段、文件管理阶段和数据库管理阶段。在这几个阶段中,数据数据冗余度最小、共享性最高的是(A )阶段。
A.数据库管理 B.文件管理 C.人工管理 D.数据项管理

  1. ( B )是存储在计算机内有结构的数据的集合。
    A.数据库系统 B.数据库 C.数据库管理系统 D.数据结构

3.数据库系统的特性不包括以下(A)选项。
A.数据加工 B.数据共享 C.支持某种数据模型 D.减少数据冗余

4.数据库的基本特点是 (B ) 。
A.(1)数据可以共享(或数据结构化) (2)数据独立性
(3)数据冗余大,易移植 (4)统一管理和控制
B.(1)数据可以共享(或数据结构化) (2)数据独立性
(3)数据冗余小,易扩充 (4)统一管理和控制
C.(1)数据可以共享(或数据结构化) (2)数据互换性
(3)数据冗余小,易扩充 (4)统一管理和控制
D.(1)数据非结构化 (2)数据独立性
(3)数据冗余小,易扩充 (4)统一管理和控制

5.( A ) 是位于用户和操作系统之间的一层数据库管理软件。
A.DBMS B.DB C.DBS D.DBA

6.数据库(DB)、数据库管理系统(DBMS)和数据库(应用)系统(DBAS/DBS)三者之间的关系是(B )。
A.DB包括DBMS和DBAS/DBS B.DBAS/DBS包括DB和DBMS
C.DBMS包括DB和DBAS/DBS D.不能相互包括

7.数据库系统与文件系统的主要区别是 ( B )
A.数据库系统复杂,而文件系统简单
B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决
C.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件
D.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量

8.数据库系统不仅包括数据库本身,还要包括相应的硬件、软件和(D)
A.数据库管理系统 B.数据库应用系统 C.相关的计算机系统 D.各类相关人员

9.数据库类型是按照( B )来划分的。
A.文件形式 B.数据模型 C.记录形式 D.数据存取方法

10.数据库的概念模型独立于 (A ) 。
A.具体的机器和DBMS B.E-R图
C.信息世界 D.现实世界

11.在数据库中,下列说法(A)是不正确的。
A. 数据库避免了一切数据的重复
B. 若系统是完全可以控制的,则系统可确保更新时的一致性
C. 数据库中的数据可以共享 D. 数据库减少了数据冗余

12.数据库具有 ① B 、最小的 ② A 和较高的 ③ C 。
① A.程序结构化 B.数据结构化
C.程序标准化 D.数据模块化
② A.冗余度 B.存储量
C.完整性 D.有效性
③ A.程序与数据可靠性 B.程序与数据完整性
C.程序与数据独立性 D.程序与数据一致性

14.在数据库中存储的是(A )。
A.数据 B.数据模型
C.数据以及数据之间的联系 D.信息

15.数据库是在计算机系统中按照一定的数据模型组织、存储和应用的(① B),支持数据库各种操作的软件系统叫做(② D),由计算机、操作系统、DBMS、数据库、应用程序及用户组成的一个整体叫做(③ A)。
①A.文件的集合 B.数据的集合
C.命令的集合 D.程序的集合
②A.命令系统 B.数据库系统
C.操作系统 D.数据库管理系统
③A.数据库系统 B.数据库管理系统
C.文件系统 D.软件系统

16.在数据库中,产生数据不一致的根本原因是(C )。
A.数据存储量太大
B.没有严格保护数据
C.未对数据进行完整性控制
D.数据冗余

17.数据库管理系统(DBMS)是(C ) 。
A.一个完整的数据库应用系统 B.一组硬件
C.一种系统软件 D.既有硬件,也有软件

18.数据库管理系统的工作不包括(C )。
A.定义数据库
B.对已定义的数据库进行管理
C.为定义的数据库提供操作系统
D.数据通信

19.数据库系统的核心是( D )。
A.编译系统 B.数据库
C.操作系统 D.数据库管理系统

  1. 数据库管理系统能实现对数据库中数据表、视图等对象的定义、修改和删除,这类语言称为( A )
    A.数据定义语言(DDL) B.数据操纵语言(DML)
    C.数据查询语言(DQL) D.数据控制语言(DCL)

  2. 数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作,这种功能称为(C ) 。
    A.数据定义功能 B.数据管理功能 C.数据操纵功能 D.数据控制功能

  3. 数据库系统的特点是(A) 、数据独立、减少数据冗余、避免数据不一致和加强了数据保护。
    A.数据共享 B.数据存储 C.数据应用 D.数据保密

  4. 数据库(应用)系统是由(C ) 组成。
    A.数据库管理系统、应用程序系统、数据库
    B.数据库管理系统、数据库管理员、数据库
    C.数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户
    D.数据库管理系统、数据库、用户

25.数据库管理系统是( B)。
A.操作系统的一部分 B.在操作系统支持下的系统软件
C.一种编译程序 D.一种操作系统

  1. 数据库管理系统(DBMS)是( D ) 。
    A.数学软件 B.应用软件 C.计算机辅助设计 D.系统软件

27.在数据库系统中,通常用三级模式来描述数据库,其中 ① A 是用户与数据库的接口,是应用程序可见到的数据描述, ② B 是对数据整体的 ③ D 的描述,而 ④ C 描述了数据的 ⑤ F 。
A.外模式 B.模式 C.内模式
D.逻辑结构 E.层次结构 F.物理结构

28.数据库系统的数据独立性是指 ( B)。
A.不会因为数据的变化而影响应用程序 B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
C.不会因为存储策略的变化而影响存储结构 D.不会因为某些存储结构的变化而影响其他的存储结构

  1. 数据库系统的基础是( D )。
    A. 数据结构 B. 数据库管理系统 C. 操作系统 D. 数据模型

30.层次型、网状型和关系型数据库划分原则是(D )。
A.记录长度 B.文件的大小 C.联系的复杂程度 D.数据之间的联系

  1. 传统的数据模型分类,数据库系统可以分为三种类型( C)。
    A.大型、中型和小型 B.西文、中文和兼容 C.层次、网状和关系 D.数据、图形和多媒体

  2. 层次模型不能直接表示( C)。
    A. 1 :1关系 B.1 :m关系 C. m :n关系 D.1 :1和1 :m关系

  3. 关系模型中,一个候选键是( C)。
    A. 可由多个任意属性组成
    B. 至多由一个属性组成
    C. 可有一个或多个其值能唯一标识该关系模式中任何元组的属性组成
    D. 以上都不是

  4. 逻辑数据独立性是指(A)。
    A. 模式改变,外模式和应用程序不变 B. 模式改变,内模式不变
    C. 内模式改变,模式不变 D. 内模式改变,外模式和应用程序不变

  5. 数据库系统的最大特点是( C )。
    A.数据的三级模式和二级映像 B.数据共享性
    C.数据的结构化 D.数据独立性

  6. 在数据库三级模式间引入二级映像的主要作用是(A )
    A.提高数据与程序的独立性 B.提高数据与程序的安全性
    C.保持数据与程序的一致性 D.提高数据与程序的可移植性

37.数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是(D)
A.外模式 B.内模式 C.存储模式 D.模式(逻辑模式)

38.对数据库物理存储方式的描述称为(B )
A.外模式 B.内模式
C.概念模式 D.逻辑模式

39.数据库中,数据的物理独立性是指 ( C ) 。
A.数据库与数据库管理系统的相互独立
B.用户程序与DBMS的相互独立
C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
D.应用程序与数据库中数据的逻辑结构相互独立

  1. 将数据库的结构划分成多个层次,是为了提高数据库的 B ① 和 B ② 。
    ①A.数据独立性 B.逻辑独立性 C.管理规范性 D.数据的共享
    ②A.数据独立性 B.物理独立性 C.逻辑独立性 D.管理规范性

42.在数据库系统的三级模式结构中,用来描述数据的全局逻辑结构的是(C )。
A.子模式 B.用户模式 C.模式 D.存储模式

  1. 在关系数据库中,视图是三级模式结构中的(D)
    A.内模式 B.模式 C.存储模式 D.外模式

  2. 层次型、网状型和关系型数据库划分原则是( D )。
    A.记录长度 B.文件的大小
    C.联系的复杂程度 D.数据之间的联系

  3. 数据库的网状模型应满足的条件是( C )。
    A.允许一个以上的结点无双亲,也允许一个结点有多个双亲
    B.必须有两个以上的结点
    C.有且仅有一个结点无双亲,其余结点都只有一个双亲
    D.每个结点有且仅有一个双亲

48.数据库可按照数据分成下面三种:
(1)对于上层的一个记录,有多个下层记录与之对应,对于下层的一个记录,只有一个上层记录与之对应,这是 ① D 数据库。
(2)对于上层的一个记录,有多个下层记录与之对应,对于下层的一个记录,也有多个上层记录与之对应,这是 ② C 数据库。
(3)不预先定义固定的数据结构,而是以“二维表”结构来表达数据与数据之间的相互关系,这是 ③ A 数据库。
A.关系型 B.集中型 C.网状型 D.层次型
49. 在数据库设计中用关系模型来表示实体和实体之间的联系。关系模型的结构是( B )。
A.层次结构 B.二维表结构
C.网状结构 D.封装结构

(二)概念、术语:

  1. 数据库( DataBase ,简称 DB )
    2.数据库系统( DataBaseSystem ,简称 DBS )
    3.数据库管理系统( DataBase Management System 简称 DBMS )
    4.关系模式
    5.候选键
    6.外键
    7.概念模式
    简述:
    (1)简述文件系统与数据库系统的区别。
    答:文件系统不能解决数据冗余和数据独立性的问题,但数据库系统可以解决
    (2)简述文件系统与数据库系统的联系。
    答:。。。
    (3)简述数据模型的概念、数据模型的作用和数据模型的三个要素。
    (4)简述层次模型的基本概念,举出一个层次模型的实例。
    (5)简述网状模型的概念,举出三个网状模型的实例。
    (6)简述关系模型的概念,定义并解释以下术语: ( l )关系( 2 )属性( 3 )域( 4 )元组 ( 5 )主码( 6 )分量( 7 )关系模式
    (7)定义并解释以下术语:模式、外模式、内模式、 DDL 、 DML
    模式、外模式、内模式,
    (8)简述关系数据库的优缺点。
    答:数据结构化、数据独立性、数据共享、
    (9)简述数据库系统三级模式结构及其两级映像?
    (10)简述数据与程序的逻辑独立性和数据与程序的物理独立性。为什么数据库系统具有数据与程序的独立性?
    (11)什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?
    答:逻辑独立性:模式改变,外模式和应用程序不变
    物理独立性:用户的应用程序与存储在磁盘中数据库中的数据相互独立

第二部分 关系运算
(一)、考核内容
关系的数学定义、关系代数
(二)、考核要求
(1)了解笛卡尔积、关系的数学定义。
(2)理解基于传统集合理论的关系运算:并、交、差、广义笛卡尔积。
(3)理解关系代数特有的关系运算:投影、选择、商、联接、自然连接。
(4)掌握使用基本关系运算表示4种非基本关系运算的方法。
(5)掌握关系代数运算在关系数据库查询操作中的应用。
(6)了解关系演算。

(一)选择
1.关系数据库管理系统应能实现的专门关系运算包括( B )。
A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表
2.关系模型中,一个关键字是( C ) 。
A.可由多个任意属性组成 B.至多由一个属性组成
C.可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成 D.以上都不是
3.自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的( D )。
A.元组 B.行 C.记录 D.属性
4.关系运算中花费时间可能最长的运算是( C )。
A.投影 B.选择 C.笛卡尔积 D.交
5.关系模式的任何属性( A )。
A.不可再分 B.可再分 C.命名在该关系模式中可以不惟一 D.以上都不是
6.在关系代数运算中,四种基于传统集合理论的关系运算为( C )。
A.并、差、选择、投影 B.并、交、选择、投影
C.交、并、差、广义笛卡尔积 D.并、差、交、选择
7.设有关系R,按条件f对关系R进行选择,正确的是©。
A.RR B.R R C. f® D.f®
F
8.如图所示,两个关系R1和R2,它们进行( D )运算后得到R3。
《数据库原理与技术之练习题集锦》_第1张图片
A.交 B.并 C.笛卡尔积 D.连接

11.在关系代数的传统集合运算中,假定有关系R和S,运算结果为W。如果W中的元组属于R,或者属于S,则W为 B ① 运算的结果。如果W中的元组属于R而不属于S,则w为 ② C 运算的结果。如果w中的元组既属于R又属于S,则W为 ③ D 运算的结果。
A.笛卡尔积 B.并 C.差 D.交

12.在关系代数的专门关系运算中,从表中取出满足条件的属性的操作称为 ① B ;从表中选出满足某种条件的元组的操作称为 ② A ;将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为 ③ C 。
A.选择 B.投影 C.连接 D.扫描

14.等值连接与自然连接是( B ).
A.相同的 B.不同的

  1. 设有属性A,B,C,D,以下表示中不是关系的是( C )。
    A.R(A) B.R(A,B,C,D)
    C.R(A×B×C×D) D.R(A,B)

16.设关系R(A,B,C)和S(B,C,D),下列各关系代数表达式不成立的是( B )。
A.A® D(S) B.R∪S C. B® ∩ B(S) D.R S

18.关系数据库用 ① D 来表示实体之间的联系,其任何检索操作的实现都是由 ② B 三种基本操作组合而成的。
①A.层次模型 B.网状模型 C.指针链 D.表格数据
②A.选择、投影和扫描 B.选择、投影和连接
C.选择、运算和投影 D.选择、投影和比较

  1. 数据库中的关键字是指( D )。
    A.能惟一决定关系的字段 B.不可改动的专用保留字
    C.关键的很重要的字段 D.能惟一标识元组的属性或属性集合

21 . 数据模型中,通常可以把 ① D 称为属性,而把 ② B 称为关系模式。常用的关系运算是关系代数和 ③ C 。在关系代数中,对一个关系做投影操作后,新关系的元组个数 ④ B 原来关系的元组个数。用 ⑤ D 形式表示实体类型和实体间的联系是关系模型的主要特征。
①A.记录 B.基本表 C.模式 D.字段
②A.记录 B.记录类型 C.元组 D.元组集
③A.集合代数 B.逻辑演算 C.关系演算 D.集合演算
④A.小于 B.小于或等于 C.等于 D.大于
⑤A.指针 B.链表 C.关键字 D.表格

  1. R(A,B,C,D)和S(C,D,E),下列不成立的关系代数表达式是( C)。
    A.R S B. π1,2,3,4,7(RS) C.RS D. π1,2,3(R)π1,3(R)

23.关系代数运算中,专门的关系运算有( A )
A.选择、投影、连接 B.交、并、差
C.笛卡尔积 、连接、自然连接 D.笛卡尔积、商

24.传统的集合“并、交、差”运算施加于两个关系时,这两个关系的( A) 必须相同。
A.属性个数 B.关系模式 C.属性取值 D.关系状态

25关系代数中,从两个关系中找出相同元组的运算称为( C ) 运算。
A.并 B.差 C.交 D.商

(二)概念、术语:
术语:
关系的差运算
笛卡儿积运算
关系的笛卡尔定义
投影运算
选择运算
联接运算
自然联接运算

简述
(1)简述关系数据语言的特点和分类。
答:非过程化的SQL
(2)简述等值连接与自然连接的区别和联系。

(三)应用题

  1. 设有如下所示的关系模式S、C、SC:
    S(S#,SNAME,AGE,SEX)
    C(C#,CNAME,TEACHER)
    SC(S#,C#,GRADE)
    试用关系代数表达式表示下列查询语句:
    (1)检索“陆定”老师所授课程的课程号(C#)和课程名(CNAME)。
    select C#, CNAME from C where TEACHER = ‘陆定’
    (2)检索年龄大于20的男学生学号(S#)和姓名(SNAME)。
    select S#, SNAME from S where AGE > 20 and SEX = ‘男’
    (3)检索至少选修“陆定”老师所授全部课程的学生姓名(SNAME)。
    select SNAME from S where S# in (select distinct S# from SC, C where SC.C#=C.C# and TEACHER=‘陆定’)
    (4)检索”李翔”同学不学课程的课程号(C#)。
    select C# from C where not exists (select * from S, SC where SC.S#=S.S# and SNAME=‘李翔’)
    (5)检索至少选修两门课程的学生学号(S#)。

(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。

(7)检索选修课程包含“陆定”老师所授课程之一的学生学号(S#)。

(8)检索选修课程号为k1和k5的学生学号(S#)。

(9)检索选修全部课程的学生姓名(SNAME)。

(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。

(11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。

2.关系R和S如下图所示,试计算R÷S。
R
A B C D
a b c d
a b e f
a b h k
b d e f
b d d l
c k c d
c k e f
S
C D
c d
e f

结果为:
A B
a b
c k

3.设有如图所示的关系R和S,计算:
(1)R1=R-S
(2)R2=R∪S
(3)R3=R∩S
(4)R4=R×S

4.设有如图所示的关系R,S和T,计算:
(1)R1=R∪S
(2)R2=R-S
(3)R3=R T
(4)R4=R T
A<C
(5)R5=∏A®
(6)R6=σA=C(R×T)

5.设有如图所示的关系R,S,计算:
(1)R1=R S
(2)R2=R S
[2]<[2]
(3)R3=σB=d(R×S)

6.设有如图所示的两个关系E1和E2,其中E2是从E1中经过关系运算所形成的结果,试给出一个运算表达式。

7.设有如下所示的三个关系S、C和SC。用关系代数表达式表示下列要求,并求出结果。
S
学号 姓名 年龄 性别 籍贯
20001 王小严 20 女 北京
20002 李 白 21 男 上海
20003 陈志坚 23 男 长沙
20004 王 兵 20 男 上海
20005 张 红 22 女 武汉

C
课程号 课程名 教师 办公室
C001 高等数学 李 娟 416
C002 数据结构 刘小东 415
C003 操作系统 吴 浩 415
C004 编译原理 王 伟 415

SC
学号 课程号 成绩
20001 C001 90
20001 C002 90
20001 C003 85
20001 C004 87
20002 C001 90
20003 C001 75
20003 C002 70
20003 C004 56
20004 C001 90
20004 C004 85
20005 C001 95
20005 C003 80

(1).检索籍贯为上海的学生姓名、学号和选修的课程号。

学号 姓名 课程号
20004 王 兵 C001
20004 王 兵 C004

(2).检索选修操作系统的学生姓名、课程号和成绩。

姓名 课程号 成绩
王小严 C003 85
张 红 C003 80

(3).检索选修了全部课程的学生姓名、年龄。

姓名 年龄
王小严 20

8.以下述数据库各关系模式为例,
仓库(仓库号,城市,面积)
职工(仓库号,职工号,工资)
订购单(职工号,供应商号,订购单号,订购日期)
供应商(供应商号,供应商名称,地址)
用关系代数完成以下检索。
解:
(1).检索在仓库2工作的职工的工资。

(2).检索在上海工作的职工的工资。

(3).检索北京的供应商名称。

(4).检索目前与职工E6有业务联系的供应商名称。

(5).检索所有职工的工资大于1220的仓库所在的城市。

(6).检索和北京的所有供应商都有业务联系的职工的工资。

9.用关系代数完成下面各项操作(各个关系模式及关系如后所示)。
供应商(SNO,SNAME,CITY)–供应商号,供应商名,城市
零件(PNO,PNAME,COLOR,WEIGHT)–零件号,名称,颜色,重量
工程(JNO,JNAME,CITY)–工程号,工程名,城市
供应(SNO,PNO,JNO,QTY)–供应商号,零件号,工程号,数量
(1).求供应工程J1零件的单位号码SNO

(2).求供应工程J1零件P1的单位号码SNO

(3).求供应工程J1零件为红色的单位号码SNO

(4).求没有使用天津供应商的红色零件的工程号JNO

(5).求至少用了单位S1所供应的全部零件的工程号JNO.

第三部分 关系数据库语言SQL
(一)、考核内容
(1)SQL功能特点、SQL基本操作
(2)SQL数据查询
(3)SQL视图操作、子查询
(二)、考核要求
(1)了解SQL语言的概貌、发展、标准化、主要特点。
(2)掌握SQL表基本操作方法:定义、修改与撤消基本表。
(3)掌握SQL数据更新方法:INSERT、DELETE、UPDATE语句的格式和用法。
(4)掌握SQL数据查询方法:SELECT语句的格式及各种用法。
(5)了解SQL的库函数。
(6) 了解视图的概念、作用;掌握视图的定义与撤消。

(一)选择
1.SQL语言是( B )的语言,易学习。
A.过程化 B.非过程化 C.格式化 D.导航式
2.SQL语言是(C )语言。
A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库
3.SQL语言具有(B )的功能。
A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制
C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵
4.SQL语言具有两种使用方式,分别称为交互式SQL和( C )。
A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL
5.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系( D )。
A.S B.SC,C C.S,SC D.S,C,SC
6.若用如下的SQL语句创建一个student表:
CREATE TABLE student(NO Char(4) NOT NULL,
NAME Char(8) NOT NULL,
SEX Char(2),
AGE tinyint)
可以插入到student表中的是 B 。
A.(‘1031’,‘曾华’,男,23) B.(‘1031’,‘曾华’,NULL,NULL)
C.(NULL,‘曾华’,‘男’,‘23’) D.(‘1031’,NULL,‘男’,23)
7. SL语言的数据操纵语句包括SELECT,INSQERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是(A)。
A.SELECT B.INSERT C.UPDATE D.DELETE

第8到第10题基于这样的三个表即学生表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 WHERE AGE>王华.AGE

9、检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是 D 。
A.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”)
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”)
10、检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是 C 。
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.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
11.视图是一个“虚表”,视图的构造基于( C )
A.基本表 B.视图
C.基本表或视图 D.数据字典

12.关系代数中的π运算符对应SELECT语句中的以下哪个子句?( A )
A.SELECT B.FROM
C.WHERE D.GROUP BY

13.关系代数中的σ运算符对应SELECT语句中的以下哪个子句?( C )
A.SELECT B.FROM
C.WHERE D.GROUP BY
14.关系代数中的×(笛卡尔积)运算符对应SELECT语句中的以下哪个子句?( B )
A.SELECT B.FROM
C.WHERE D.GROUP BY
15.在SQL的排序子句:ORDER BY 总分 DESC, 英语 DESC 表示(C )
A. 总分和英语分数都是最高的在前面
B. 总分和英语分数之和最高的在前面
C. 总分高的在前面,总分相同时英语分数高的在前面
D. 总分和英语分数之和最高的在前面,相同时英语分数高的在前面

16.使用查询语句:
SELECT STUDENT.学号, STUDENT.姓名, SUM(分数) FROM STUDENT, GRADE
WHERE STUDENT.学号=GRADE.学号
GROUP BY STUDENT.学号, STUDENT.姓名
查询结果是(A)
A.按学号分类的每个学生所有课程成绩的总分
B.按学号分类的每个学生各课程成绩
C.全体学生的各课程分类的成绩总分
D.所有学生的所有课程成绩总分

17.在T-SQL语言中,用于删除一个视图的命令的关键字是(B)
A. DELETE B. DROP C. CLEAR D. REMOVE

  1. T-SQL语言的GRANT和REMOVE语句主要是用来维护数据库的(C)
    A.完整性 B.可靠性 C.安全性 D.一致性

19.SQL语言中,实现数据检索的语句是( A)。
A.SELECT B.INSERT
C.UPDATE D.DELETE

20.下列SQL语句中,修改表结构的是(A )。
A.ALTER B.CREATE
C.UPDATE D.INSERT

  1. 用于实现数据存取安全性的SQL语句是(C )
    A.CREATE TABLE B.COMMIT
    C.GRANT和REVOKE D.ROLLBACK

(二)概念、术语:
术语
聚合函数
分组查询
视图

简述
(1)简述数据定义语句、数据查询语句、数据操纵语句和数据控制语句的功能用途是什么?
(2)简述 SQL 的定义功能。
(3)简述视图的优点。
(三)应用题
1.以下面的数据库关系模式为例,写出完成以下查询功能的SQL语句。(每小题2分)
关系模式如下:
学生(学号,学生姓名,出生年月,出生地,专业代码,班级)
简写为:s(s#,sname,ssex,sbirthin,placeofb,scode#,class)
课程(课程号,课程名,学时)
简写为:c(c#,cname,classh)
学习关系(学号,课程号,分数)
简写为:sc(s#,c#,grade)
专业(专业代码,专业名称)
简写为:ss(scode#,ssname)
教师(教职工号,教师姓名,教师性别,教师出生年月,职称,教研室,电话号码)
简写为:t(t#,tname,tsex,tbirthin,titleof,tresction,tel)
讲授关系(教职工号,课程号)
简写为:teach(t#,c#)
(1)查询201002班男生的信息。
Select * from s where ssex=‘男’ and class=‘201002’

(2)查询最低分大于70、最高分小于90的学生的姓名。
Select sname from s,sc where s.s#=sc.s# group by s.s#,sname having min(grade)>=70 and max(grade)<=90

(3)查询所有女生记录信息,并以班级降序排列。
Select * from s where ssex=‘女’ order by class desc

(4)查询选取修数据结构课程的学生姓名及所在专业代码。
Select sname, scode# from s,sc,c
where s.s#=sc.s# and sc.c#=c.c# and cname=’数据结构’
(5)查询至少有5名学生选修的并以3开头的课程号的平均分。
Select c#,avg(grade) from sc where c# like ‘3%’ group by c# having count(*)>=5

  1. 以下面的数据库关系模式为例,写出完成以下查询功能的SQL语句。(每小题2分)
    关系模式如下:
    学生(学号,学生姓名,出生年月,出生地,专业代码,班级)
    简写为:s(s#,sname,ssex,sbirthin,placeofb,scode#,class)
    课程(课程号,课程名,学时)
    简写为:c(c#,cname,classh)
    学习关系(学号,课程号,分数)
    简写为:sc(s#,c#,grade)
    专业(专业代码,专业名称)
    简写为:ss(scode#,ssname)
    教师(教职工号,教师姓名,教师性别,教师出生年月,职称,教研室,电话号码)
    简写为:t(t#,tname,tsex,tbirthin,titleof,tresction,tel)
    讲授关系(教职工号,课程号)
    简写为:teach(t#,c#)
    (1)查询来自南京或上海的学生学号和姓名。
    Select s#,sname from s where placeofb in(‘南京’,‘上海’)

(2)查询选修课程号为C401001的学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
Select s#,grade from sc order by grade desc,s#

(3)查询计算机科学或网络工程专业姓张的学生的信息。
Select S.* from s,ss where s.scode# =ss. scode# and ssname in(‘计算机科学’,’ 网络工程’)

(4)查询缺少了成绩的学生的学号和课程号。
Select s#,c# from sc where grade is null

(5)查询每个专业的男、女生分别有多少人数。
Select scode#, ssex,count(*) from s group by scode#,ssex

  1. 设有如下所示的三个关系A、B、AB。
    其中各个属性的含义如下:A#(商店代号)、ANAME(商店名)、WQTY(店员人数)、CITY(所在城市)、B#(商品号)、BNAME(商品名称)、PRICE(价格)、QTY(商品数量)。
    试用SQL语言写出下列查询,并给出执行结果:
    A
    A# ANAME WQTY CITY
    101 百货商店 15 长沙
    204 长安商场 89 北京
    256 西单商场 500 北京
    345 铁道商店 76 长沙
    620 太平洋百货 412 上海
    B
    B# BNAME PRICE
    1 钢笔 21
    2 羽毛球 5
    3 复读机 300
    4 书包 76

AB
A# B# QTY
101 1 105
101 2 42
101 3 25
101 4 104
204 3 61
256 1 241
256 2 91
345 1 141
345 2 18
345 4 74
620 4 125

(1).找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。
Select A#,ANAME from A where WQTY<100 or CITY =’长沙’
(结果略)

(2).找出供应书包的商店名。
Select ANAME from A,B,AB where A.A#=AB.A# and B.B#=AB.B# and BNAME=’书包’
(结果略)

(3).找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市。
Select AName,city from A where not exists(
Select * from B where not exists(
Select * from AB where AB.A#=A.A# and AB.B#=B.B#
))
(不存在一个商品,该商店没有销售(被供应))
结果为空集

  1. 己知三个关系R(A,B,C)、S(A,D,E)和T(D,F),其中,名称相同的属性为关联属性,C、E为数值型属性。
    试用SQL语句实现如下操作:
    (1).将R、S和T三个关系按关联属性建立一个视图R-S-T;
    Create View R-S-T as
    Select R.A, B,C,S.D,E,F from R,S,T where R.A=S.A and S.D=T.D
    (2).对视图R-S-T按属性A分组后,求属性C和E的平均值。
    Select A,Avg© avg_C, Avg(E) avg_E from R-S-T group by A

  2. 设有关系R(A,B)和S(A,C),A为相同属性。
    试用SQL语句实现:
    (1).查询属性C>50时,R中相关联的属性B之值。
    Select B from R,S where R.A=S.A and C>50
    (2).当属性C=40时,将R中与之相关连的属性B值修改为b4。
    Update R set C=40 from S where R.A=S.A and C=40

  3. 已知学生表S和学生选课表SC。其关系模式如下:
    S(SNo,SN,SD,PROV)
    SC(SNO,CN,GR)
    其中,SNO为学号,SN为姓名,SD为系名,PROV为省区,CN为课程名,GR为分数。
    试用SQL语言实现下列操作:
    (1).查询“信息系”的学生来自哪些省区。
    Select distinct PROV from S where SD=‘信息系’

(2).按分数降序排序,输出“英语系”学生选修了“计算机”课程的学生的姓名和分数。
Select SN, GR from S,SC where S.Sno=SC.Sno and CN=’计算机’ and SD-‘英语系’ order by GR desc

  1. 设有关系模式:
    SB(SN,SNAME,CITY)
    其中,S表示供应商,SN为供应商代号,SNAME为供应商名字,CITY为供应商所在城市,主关键字为SN。
    PB(PN,PNAME,COLOR,WEIGHT)
    其中P表示零件,PN为零件代号,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量,主关键字为PN。
    JB(JN,JNAME, CITY)
    其中,J表示工程,JN为工程编号,JNAME为工程名字,CITY为工程所在城市,主关键字为JN。
    SPJB(SN,PN,JN,QTY)
    其中,SPJ表示供应关系,SN是为指定工程提供零件的供应商代号,PN为所提供的零件代号,JN为工程编号,QTY表示提供的零件数量,主关键字为(SN,PN,JN),外部关键字为SN,PN,JN。
    写出实现以下各题功能的SQL语句:
    (1).取出所有工程的全部细节;
    Select * from JB

(2).取出所在城市为上海的所有工程的全部细节;
Select * from JB where city=’上海’

(3).取出重量最轻的零件代号;
Select top 1 PN from PB order by weight

Select PN from PB where weight<=all(select weight from PB)

Select PN from PB where weight=(select min(weight) from PB)

(4).取出为工程J1提供零件的供应商代号;
Select distinct SN from SPJB where JN=’J1’

(5).取出为工程J1提供零件P1的供应商代号;
Select SN from SPJB where JN=’J1’ and PN=’P1’

(6).取出由供应商S1提供零件的工程名称;
Select Distinct JName from PB, SPJB where PB.PN=SPJB.PN and SN=’S1’

(7).取出供应商S1提供的零件的颜色;
Select distinct from SPJB, PB where SPJB.PN = PB.PN and SPJB.SN=’S1’

(8).取出为工程J1或J2提供零件的供应商代号;
Select distinct SN from SPJB where JN in(’J1’,’J2’)

(9).取出为工程J1提供红色零件的供应商代号;
Select Distinct JName from PB, SPJB where PB.PN=SPJB.PN and color=’红’

(10).取出为所在城市为上海的工程提供零件的供应商代号;
Select distinct SN from JB,SPJB where JB.JN= SPJB.JN and city=’上海’

(11).取出为所在城市为上海或北京的工程提供红色零件的供应商代号;
Select Distinct SN from PB, SPJB, JB where PB.PN=SPJB.PN and JB.JN= SPJB.JN and color=’红’

(12).取出供应商与工程所在城市相同的供应商提供的零件代号;
Select Distinct PN from SB, SPJB, JB where SB.SN=SPJB.SN and JB.JN= SPJB.JN and SB.city=JB.city

(13).取出上海的供应商提供给上海的任一工程的零件的代号;
Select Distinct PN from SB, SPJB, JB where SB.SN=SPJB.SN and JB.JN= SPJB.JN and SB.city=JB.city and SB.city=’上海’

(14).取出至少由一个和工程不在同一城市的供应商提供零件的工程代号;
Select Distinct JN from SB, SPJB, JB where SB.SN=SPJB.SN and JB.JN= SPJB.JN and SB.city !=JB.city

(15).取出上海供应商不提供任何零件的工程的代号;
Select Distinct JN from JB where JN not in(select JN from SPJB, SB where SPJB.SN=SB.SN and city=‘上海’)

Select Distinct JN from JB where not exists(select JN from SPJB, SB where SPJB.SN=SB.SN and city=‘上海’ and SPJB.JN= JB.Jn)

(16).取出这样一些供应商代号,它们能够提供至少一种由红色零件的供应商提供的零件;
(此题表述有问题)

(17).取出由供应商S1提供零件的工程的代号;
Select JN from JB where SN=‘S1’
8. 以下面的数据库为例,用SQL完成以下检索。关系模式如下:
仓库(仓库号,城市,面积)←→ WAREHOUSE(WMNO,CITY,SIZE)
职工(仓库号,职工号,工资)←→ EMPLOYEE(WHNO,ENO,SALARY)
订购单(职工号,供应商号,订购单号,订购日期)←→ ORDER(ENO,SNO,ONO,DATE)
供应商(供应商号,供应商名,地址)←→ SUPPLIER(SNO,SNAME,ADDR)
(1).检索在北京的供应商的名称。
Select Sname from Supplier where addr = ‘北京’

(2).检索发给供应商S6的订购单号。
Select ONO from [Order] where SNO=’S6’

(3).检索出职工E6发给供应商S6的订购单号。
Select ONO from [Order] where SNO=’S6’ and ENO=’E6’

(4).检索出向供应商S3发过订购单的职工的职工号和仓库号。
Select distinct Employee.ENO, WHNO from [Order],Employee where [Order].ENO=Employee.ENO and SNO=’S3’

(5).检索出目前与S3供应商没有联系的职工信息。
Select * from EMPLOYEE where ENO not in(select ENO from [Order] where SNO=’S3’)

Select * from EMPLOYEE where not exists(select * from [Order] where ENO=[Order].ENO and SNO=’S3’)

(6).检索出目前没有任何订购单的供应商信息。
Select * from Supplier where SNO not in(select SNO from [Order])

Select * from Supplier where not exists(select * from [Order] where SNO=[Order].SNO)

(7).检索出和职工E1、E3都有联系的北京的供应商信息。
Select * from Supplier where addr like ‘%北京%’ and Sno in(select SNO from [Order] where E1=’E1’) and SNO in(select SNO from [Order] where E1=’E3’)

(8).检索出目前和华通电子公司有业务联系的每个职工的工资。
Select ENO,salary from Employee,[Order],Supplier where Employee.ENO=[Order].ENO and [Order].SNO= Supplier.SNO and SNAME =’华通电子公司’

(9).检索出与工资在1220元以下的职工没有联系的供应商的名称。
Select SName from Supplier where Sno not in(select SNO from Employee,[Order] where Employee.ENO=[Order].ENO and salary<1220)

(10).检索出向S4供应商发出订购单的仓库所在的城市。
Select distinct city from warehouse,[Order] where warehouse.WHNO=[Order] .WHNO and SNo=’S4’

(11).检索出在上海工作并且向S6供应商发出了订购单的职工号。
Select distinct ENO from Employee,[Order] where Employee.ENO=[Order].ENO and Sno=’S6’

(12).检索出在广州工作并且只向S6供应商发出了订购单的职工号。
Select ENO from Employee,Warehouse where Employee.WHNO=Warehouse.WHNO and ENO in(select ENO from [Order] where SNO=’S6’) and ENO not in(select ENO from [Order] where SNO !=’S6’)

(13).检索出由工资多于1230元的职工向北京的供应商发出的订购单号。
Select ONO from [Order],Employee, Supplier where [Order].ENO= Employee.ENO and Supplier.SNO=[Order].SNO and salary>=1230 and addr=’北京’

(14).检索出仓库的个数。
Select count(*) from warehouse

(15).检索出有最大面积的仓库信息。
Select * from warehouse where size=(select max(size) from warehouse)

(16).检索出所有仓库的平均面积。
Select avg(size) from Warehouse

(17).检索出向S4供应商发出订购单的那些仓库的平均面积。
Select avg(size) from warehouse where WHNO in(select WHNO from [Order] where SNO=’S4’)

(18).检索出每个城市的供应商个数。
Select ADDR,count(ADDR) cnt from Supplier group by ADDR

(19).检索出每个仓库中工资多于1220元的职工个数。
Select WHNo,count(*) cnt from Employee where salary>1220 group by WHNO

(20).检索出和面积最小的仓库有联系的供应商的个数。
Select count(*) from SNO in(select SNO from [Order] where WHNO in(select WHNO from Warehouse where size=(select min(size) from Warehouse)))

(21).检索出工资低于本仓库平均工资的职工信息。
Select * from Employee where salary <(select avg(salary) from employee where WHNO= Employee.WHNO)

  1. 以下面的数据库为例,用SQL完成以下更新操作。关系模式如下:
    仓库(仓库号,城市,面积)←→ WAREHOUSE(WMNO,CITY,SIZE)
    职工(仓库号,职工号,工资)←→ EMPLOYEE(WHNO,ENO,SALARY)
    订购单(职工号,供应商号,订购单号,订购日期)←→ ORDER(ENO,SNO,ONO,DATE)
    供应商(供应商号,供应商名,地址)←→ SUPPLIER(SNO,SNAME,ADDR)
    (1).插入一个新的供应商元组(S9,智通公司,沈阳)。
    Insert into Supplier values(‘S9’,‘智通公司’,‘沈阳’)

(2).删除目前没有任何订购单的供应商。
Delete from Supplier where SNO not in (select SNO from[Order])

(3).删除由在上海仓库工作的职工发出的所有订购单。
Delete from [Order] where ENO in(select ENO from Employee, Warehouse where Employee. WMNO= Warehouse.WMNO and city=’上海’)

(4).北京的所有仓库增加100m2的面积。
Update wherehouse set size=size+100 where city=’北京’

(5).给低于所有职工平均工资的职工提高5%的工资。
Update EMPLOYEE set salary =salary * 1.05 where salary <(select avg(salary) from employee)

10.现有关系数据库如下:
学生(学号,姓名,性别,专业)
课程(课程号,课程名,学分)
学习(学号,课程号,分数)
分别用关系代数表达式和SQL语句实现下列1—5小题(注意:每小题都要分别写出关系代数表达式和SQL语句):
(1)检索所有选修了课程号为“C112”的课程的学生的学号和分数;

Select 学号,分数 from 学习 where 课程号=‘C1111’

(2)检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;

Select 学号,姓名,课程名,分数 from 学生,课程,学习 where 学生.学号 =学习.学号 and课程.课程号=学习.课程号

(3)检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数;

Select 学号,姓名,专业,分数 from 学生,课程,学习 where 学生.学号 =学习.学号 and课程.课程号=学习.课程号 and 课程名=‘数据库原理’and 分数>90

(4)检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;

Select 学号, 姓名, 专业 from 学生 where 学号 not in (select 学号 from 学习 where cno=’C135’)

Select 学号, 姓名, 专业 from 学生 where not exists (select 学号 from 学习 where cno=’C135’ and 学号=学生.学号)

(5)检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和专业。

Select 学号, 姓名, 专业 from 学生 where 学号 in (select 学号 from 学习 where cno=’C135’) and 学号 in (select 学号 from 学习 where cno=’C219’)

11.关系模式如下:
学生S(SNO, SN, SEX, AGE)
课程C(CNO, CN, PCNO) PCNO为直接先行课
选课SC(SNO,CNO,G) G为课程考试成绩
(1)用关系代数及SQL语言写出查询语句,查询所有学生都选修的课程名CN。
Select CN from C where not exists(select * from S where not exists(select * from SC where SC.SNO=S.SNO and SC.CNO=C.CNO))

(2)用关系代数及SQL语言写出查询语句,查询“DB”课成绩在90分以上的学生的姓名。

Select SN from S,SC,C where S.SNO =SC.SNO and C.CNO=SC.CNO and CN=‘DB’

(3)将选修课程“DB”的学生学号,姓名建立视图SDB。
Create View SDB as select S.SNO,SN from S,SC,C where S.SNO =SC.SNO and C.CNO=SC.CNO and CN=‘DB’

(4)在学生选课关系SC中,把英语课的成绩提高10%。
Update SC set G =G1.10 where CNO in (select CNO from C where CN=’英语’)

Update SC set G =G
1.10 from C where C.CNO= SC.CNO and CN=’英语’)

  1. 在教学管理数据库中有学生、课程和选课三个表,它们的定义分别为为:
    Student(Sno Char(5),Sname Char(6),Ssex Char(2),
    Sage Int,Sdept Char(2))
    Course(Cno Char(1), Cname Char (10), Cpno Char(1),
    Ccredit Int)
    SC(Sno Char(5), Cno Char(1), Grade int)
    根据下面的要求,写出SQL语句。
    ① 用SQL语句建立数据表SC,以(Sno, Cno)作为主键;
    Alter table SC add primary key(SNO,cno)

② 向Student表插入一条记录(95011, 张三, 女, 19,CS);
Insert into Student values(‘95011’, ‘张三’,‘女’, 19,‘CS’)

③ 检索计算机系(CS)所有女同学的姓名和年龄;
Select sname,sage from student where Sdept=’CS’ and SSex=’女’

④ 检索选修了2号课程学生的学号、姓名、成绩,并按成绩降序排序;
Select sname,sname, grade from student, SC where Student.SNO=SC.SNO and CNO=’2’

⑤ 建立一个信息系(IS)所有不及格(Grade<60)学生的视图。
Create View V_CS_UG as
Select * from Student where Sdept=’IS’ and SNO in(select SNO from SC where grade<60)

第四部分 关系数据库模式设计
(一)、考核内容
(1) 关系约束与关系模式、关系的规范化设计
(2) 函数依赖与公理体系
(3) 关系模式的分解与规范化
(二)、考核要求
(1)了解关系约束与关系模式的表示;理解关系模式规范化设计的必要性。
(2)理解函数依赖的定义和相应的概念。
(3)了解函数依赖的公理体系。
(4)了解关系模式分解的相关概念。
(5)理解完全函数依赖、部分函数依赖和传递函数依赖。
(6)理解第一范式、第二范式、第三范式和BCNF范式的定义;掌握关系模式规范化的方法;掌握关系模式分解的方法。
*掌握求X关于F的闭包的方法。
*掌握求函数依赖集F的最小函数依赖集的方法。
*理解保持无损联接的分解,掌握其判断方法。
*掌握关系候选键的求解方法。
*掌握向3NF的模式分解算法。

(一)选择
1.关系规范化中的删除操作异常是指 A ,插入操作异常是指 D 。
A.不该删除的数据被删除 B.不该插入的数据被插入
C.应该删除的数据未被删除 D.应该插入的数据未被插入

2.设计性能较优的关系模式称为规范化,规范化主要的理论依据是( A )。
A.关系规范化理论 B.关系运算理论
C.关系代数理论 D.数理逻辑

3.规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:其每一属性都是( B)。
A.互不相关的 B.不可分解的
C.长度可变的 D.互相关联的

4.关系数据库规范化是为解决关系数据库中(A )问题而引入的。
A.插入、删除异常和数据冗余 B.提高查询速度
C.减少数据操作的复杂性 D.保证数据的安全性和完整性

5.规范化过程主要为克服数据库逻辑结构中的插入异常,删除异常以及(C )的缺陷。
A.数据的不一致性 B.结构不合理
C.冗余度大 D.数据丢失

6.当关系模式R(A,B)已属于3NF,下列说法中(B )是正确的。
A.它一定消除了插入和删除异常 B.仍可能存在一定的插入和删除异常
C.一定属于BCNF D.A和C都是

7.关系模型中的关系模式至少是( A)。
A.1NF B.2NF C.3NF D.BCNF

8.在关系模式R中,若其函数依赖集中所有决定因素都是候选键,则R最高范式是( C)。
A.2NF B.3NF C.BCNF D.1NF

9.在一个关系R中,若每个数据项都是不可再分割的,那么R一定属于(D)。
A.2NF B.3NF C.BCNF D.1NF

10.当B属性函数依赖于A属性时,属性A与B的联系是(B )。
A.1对多 B.多对1 C.多对多 D.以上都不是

11.在关系模式中,如果属性A和B存在1对1的联系,则说(C )。
A.A→B B.B→A C.A←→B D.以上都不是

12.候选键中的属性称为(B)。
A.非主属性 B.主属性 C.复合属性 D.关键属性

13.关系模式中各级模式之间的关系为(A ) 。
A.3NF2NF1NF B.3NF1NF2NF
C.1NF2NF3NF D.2NFlNF3NF

14.关系模式中,满足2NF的模式(B ) 。
A.可能是1NF B.必定是1NF
C.必定是3NF D.必定是BCNF

15.关系模式R中的属性全部是主属性,则R的最高范式必定是( B)。
A.2NF B.3NF C BCNF D.4NF

16.消除了部分函数依赖的1NF的关系模式,必定是(B )。
A.1NF B.2NF C.3NF D.4NF

17.关系模式的候选键可以有 ① C ,主关键字有 ② B 。
A.0个 B.1个 C.1个或多个 D.多个

18.候选关键字中的属性可以有(C )。
A.0个 B.1个 C.1个或多个 D.多个

19.关系模式的分解 (B )。
A.惟一 B.不惟一

20.根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。下面“部门”关系中,因哪个属性而使它不满足第一范式?(B )。
部门(部门号,部门名,部门成员,部门总经理)
A.部门总经理 B.部门成员 C.部门名 D.部门号

21.设有关系W(工号,姓名,工种,定额),将其规范化到第三范式正确的答案是 (C )。
A.W1(工号,姓名) ,W2(工种,定额)
B.W1(工号,工种,定额) W2(工号,姓名)
C.W1(工号,姓名,工种) w2(工号,定额)
D.以上都不对

22.设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C为课程,P为教师,S为学生,G为成绩,T为时间,R为教室,根据定义有如下函数依赖集:
F={C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R}
关系模式W的一个关键字是 ①D ,W的规范化程度最高达到 ②C 。若将关系模式W分解为3个关系模式W1(C,P),W2(S,C,G),W3(S,T,R,C),则W1的规范化程度最高达到 ③E ,W2的规范化程度最高达到 ④ E ,W3的规范化程度最高达到 ⑤ B 。
①A.(S,C) B.(T,R) C.(T,P) D.(T,S) E.(T,S,P)
②③④⑤ A.1NF B.2NF C.3NF D.BCNF E.4NF

  1. 关系规范化设计的目的是(C )
    A.完全消除数据冗余 B.简化关系模式
    C.控制冗余,避免插入和删除异常 D.提高数据查询效率

  2. 关系模式:学生(学号,姓名,系别,宿舍区),函数依赖集F={学号→姓名,学号→系别,系别→宿舍区},则学生关系满足( A )。
    A.2NF B.3NF C.BCNF D.1NF

25若关系为1NF,且它的每一非主属性都 B 候选键,则该关系为2NF。
A.部分函数依赖于 B.完全函数依赖于
C.传递函数依赖于 D.函数依赖于

  1. 在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则,保侍原有的函数依赖性和(D)
    A.数据完整性 B.关系模式 C.查询效率 D. 无损连接性

27.对于非规范化的模式,经过使属性域变为简单域转变为1NF,将1NF经过 ①A 转变为2NF,将2NF经过 ② B 转变为3NF。
A.消除非主属性对候选键的部分依赖
B.消除非主属性对候选键的传递依赖
C.消除主属性对候选键的部分依赖
D. 消除主属性对候选键的传递依赖

(二)概念、术语
术语:
函数依赖:设有关系模式R(A1,A2,…,An)的子集X、Y。如果对于具体关系r的任何两个元组u和v,只要u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或Y函数依赖X,记为X→Y。
函数依赖集F的闭包F+:所有被F逻辑蕴含的函数依赖所组成的依赖集合称为F的闭包。

1NF:在一个关系模式R中,如果R的每一个属性的值域中的值都是不可再分的最小数据单位,则称R为第一范式,记为1NF。

2NF:如果一个关系模式R属于1NF,并且它的每一个非主属性都完全依赖于它的每一个候选键,则称R为第二范式,记为2NF。

3NF:如果一个关系模式R属于1NF,并且R的任何一个非主属性都不传递依赖于它的任何一个候选键,则称R为第三范式,记为3NF。

BNCF:设有关系模式R(U,F),F是R上的函数依赖,X和A是U的子集,且A不包含于X。如果对于F中的每个函数依赖X->A,X都是R的一个候选键,则称R是BCNF。

简述关系数据模型的规范化设计过程。
答:关系模型的规范化设计就是按照函数依赖理论和范式理论,对逻辑结构设计的第一步所设计的关系模型进行规范化设计,基本设计方法可归纳为如下5步:
(1)参照每个关系模式的语义及其内涵,分别写出每个关系模式中各个属性之间的数据依赖,进而确定每个关系模式的函数依赖集。
(2)求每个关系模式的函数依赖集的最小依赖集。
(3)将求得的每个关系模式分摊函数依赖集中的决定因素相同的函数依赖进行合并。
(4)按照关系模式分解理论和函数依赖理论,对每个关系模式及与之相关的函数依赖进行分解,使得分解后的关系模式 至少满足第三范式或BCNF范式。
(5)通过以上的模式分解过程后,可能出现某些完全相同的关系模式,所以要将完全相同的几个关系模式“合并”成一个单独的关系模式,即消除掉多余的关系模式。

(三)应用题
1.现有一个关于系、学生、班级、学会等诸信息的关系数据库,关系模式如下:
学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)
班级:C(Class,Pname,Dept,Cnum,Cyear)
系:D(Dept,Dno,Office,Dnum)
学会:M(Mname,Myear,Maddr,Mnum)
语义约束如下:
一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
(1)写出每个关系模式的最小函数依赖集,指出是否存在传递函数依赖,
(2)指出各关系模式的候选键、外键.
(1)关系模式如下:
学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)
班级:C(Class,Pname,Dept,Cnum,Cyear)
系:D(Dept,Dno,Office,Dnum)
学会:M(Mname,Myear,Maddr,Mnum);
每个关系模式的最小函数依赖集如下:
A、学生S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函数依赖集如下:SnoSname,SnoSbirth,SnoClass,ClassDept,DEPTRno
传递依赖如下:
由于SnoDept,而DeptSno ,DeptRno(宿舍区)

所以Sno与Rno之间存在着传递函数依赖。
由于ClassDept,Dept Class,DeptRno
所以Class与Rno之间存在着传递函数依赖。
由于SnoClass,ClassSno,ClassDept
所以Sno与Dept之间存在着传递函数依赖。
B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:
ClassPname,ClassCnum,ClassCyear,PnameDept.
由于ClassPname,PnameClass,PnameDept
所以C1ass与Dept之间存在着传递函数依赖。
C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:
DeptDno,DnoDept,DnoOffice,DnoDnum
根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。
D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:
MnameMyear,MnameMaddr,MnameMnum
该模式不存在传递依赖。
(2)各关系模式的候选码、外部码,全码如下:
A、学生S候选码:Sno;外部码:Dept、Class;无全码
B、班级C候选码:Class;外部码:Dept;无全码
C、系D候选码:Dept或Dno;无外部码;无全码
D、学会M候选码:Mname;无外部码;无全码

2.已知学生关系模式
S(Sno,Sname,SD,Sdname,Course,Grade)
其中:Sno学号、Sname姓名、SD系名、Sdname系主任名、Course课程、Grade成绩。
(1)写出关系模式S的基本函数依赖并找出候选键。
答: 关系模式S的基本函数依赖如下:
Sno→Sname,SD→Sdname,Sno→SD,(Sno,Course) →Grade
关系模式S的码为:(Sno,Course)。

(2)关系模式S为几范式,说明原因?
原关系模式S是属于1NF的,码为(Sno,Course),非主属性中的成绩完全依赖于码,而其它非主属性对码的函数依赖为部分函数依赖,所以不属于2NF。
(3)将关系模式分解成满足3NF的模式集,并保持无损连接性和函数依赖性。
将上述关系模式分解成3NF如下:
关系模式S1中存在Sno→SD,SD→Sdname,即非主属性Sdname传递依赖于Sno,所以S1不是3NF。进一步分解如下:
S11(Sno,Sname,SD) S12(SD,Sdname)
分解后的关系模式S11、S12满足3NF。
对关系模式S2不存在非主属性对码的传递依赖,故属于3NF。所以,原模式S(Sno,Sname,SD,Sdname,Course,Grade)按如下分解满足3NF。
S11(Sno,Sname,SD) S12(SD,Sdname)
S2(Sno,Course,Grade)

3、设某商业集团数据库中有一关系模式R如下:
R (商店编号,商品编号,数量,部门编号,负责人)
如果规定:(1) 每个商店的每种商品只的在一个部门销售;(2) 每个商店的每个部门只有一个负责人;(3) 每个商店的每种商品只有一个库存数量。

试回答下列问题:
(1) 根据上述规定,写出关系模式R的基本函数依赖;
有三个函数依赖:
商店编号,商品编号→部门编号
部门编号→负责人
部门编号→商店编号
商店编号,商品编号→数量
(2) 找出关系模式R的候选键;
R的键码是 (商店编号,商品编号)
(3)试问关系模式R最高满足第几范式,说出理由。
因为R中存在着非主属性“负责人”对键码 (商店编号、商品编号)的传递函数依赖,所以R属于2NF,R不属于3NF。
(4) 如果R不属于3NF,将关系模式R分解成满足3NF的模式集,并保持无损连接性和函数依赖性。
将R分解成:R1 (商店编号,部门编号)
R2 (商品编号,数量,部门编号)
R3 (部门编号,负责人)

4.在某连锁店集团公司数据库设计中,有一用于记载每个顾客在不同门店的累计消费总额的关系模式为:R(门店编号,顾客编号,消费总额,顾客名称,地址,电话)
若规定:(1)每个顾客只有一个地址、一个电话。(2)每个顾客在每个门店只有一个消费总额。则模式R的一个最小函数依赖集是(① (门店编号,顾客编号) →消费总额, 顾客编号→顾客名称, 顾客编号 →地址,顾客编号→ 电话);R的一个满足无损联接和保持函数依赖的3NF分解是(②{门店编号,顾客编号,消费总额},{顾客编号,顾客名称,地址,电话})。

5.分析关系模式:STUDENT(学号,姓名,出生日期,系名,班号,宿舍区),指出其候选关键字,最小依赖集和存在的传递函数依赖。
候选关键字:学号(每个学生只有唯一的学号)
最小依赖集:{学号→姓名,学号→出生日期,学号→班号,系名→宿舍区,班号→系名}
存在传递依赖:
学号→姓名→宿舍区,所以学号传递依赖于宿舍区;
班号→姓名→宿舍区,所以有班号传递依赖于宿舍区;
学号→班号→系名,所以有学号传递依赖于系名。
6.指出下列关系模式是第几范式?并说明理由。
(1).R(X,Y,Z)
F={XY→Z}
(2).R(x,Y,z)
F={Y→z,XZ→Y}
(3).R(X,Y,Z)
F={Y→Z,Y→X,X→YZ}
(4).R(x,Y,z)
F={X→Y,X→Z}
(5).R(x,Y,Z)
F={XY→Z}
(6).R(W,X,Y,Z)
F={X→Z,WX→Y}
解(1).R是BCNF。
R候选关键字为XY,F中只有一个函数依赖,而该函数依赖的左部包含了R的候选关键字XY。
(2).R是3NF。
R候选关键字为XY和XZ,R中所有属性都是主属性,不存在非主属性对的候选关键字的传递依赖。
(3).R是BCNF。
R候选关键字为X和Y,∵X→YZ,∴X→Y,X→Z,由于F中有Y→Z,Y→X,因此Z是直接函数依赖于X,而不是传递依赖于X。又∵F的每一函数依赖的左部都包含了任一候选关键字,∴R是BCNF。
(4).R是BCNF。
R的候选关键字为X,而且F中每一个函数依赖的左部都包含了候选关键字X。
(5).R是BCNF。
R的候选关键字为XY,而且F中函数依赖的左部包含了候选关键字XY。
(6).R是1NF。
R的候选关键字为WX,则Y,Z为非主属性,又由于X→Z,因此F中存在非主属性对候选关键字的部分函数依赖。
7.设有关系模式R(U,F),其中:
U={A,B,C,D,E,P},F={A→B,C→P,E→A,CE→D}
求出R的所有候选关键字。
(根据候选键的定义:如果函数依赖X→U在R上成立,且不存在任何x’⊆X,使得x¡→U也成立,则称X是R的一个候选关键字。由此可知,候选关键字只可能是由A,C,E组成,但是E→A,所以组成候选关键字的属性可能是CE) 没有出现在函数依赖的右部的属性是CE,计算:CE+=ABCDEP,即CE→U ,所以R只有一个候选关键字CE。

8.设有关系模式R(C,T,S,N,G),其上的函数依赖集:
F={C→T,CS→G,S→N}
求出R的所有候选键。
根据候选关键字的定义:R的候选关键字只可能由F中各个函数依赖的左边属性组成,即C,S,所以组成候选关键字的属性可能是CS。
计算可知:(CS)+=CGNST,即CS→U
而:C+=CT,S+=NS
∴R只有一个候选关键字CS。
9.设有关系模式R(A,B,C,D,E),其上的函数依赖集:
F={A→BC,CD→E,B→D,E→A}
(1).计算B+。
(2).求出R的所有候选键。
解:(1)令X={B},X(0)=B,X(1)=BD,X(2)=BD,故B+=BD。
(2)根据候选关键字的定义:R的候选关键字只可能由F中各个函数依赖的左边属性组成,即A,B,C,D,E,由于A→BC(A→B,A→C),B→D,E→A,故:
·可除去A,B,C,D,∴组成候选关键字的属性可能是E。
计算可知:E+=ABCDE,即E→U,∴E是一个候选关键字。
·可除去A,B,E,∴组成候选关键字的属性可能是CD。
计算可知:(CD)+=ABCDE,即CD→U,但C+=C,D+=D,∴CD是一个候选关键字。
·可除去B,C,D,E∴组成候选关键字的属性可能是A。
计算可知:A+=ABCDE,即A→U,∴A是一个候选关键字。
·可除去A,D,E,∴组成候选关键字的属性可能是BC。
计算可知:(BC)+=ABCDE,即CD→U,但B+=BD,C+=C,∴BC是一个候选关键字。
R的所有候选关键字是A,BC,CD,E。

10.设有关系模式R(U,F),其中:
U={A,B,C,D,E},F={A→D,E→D,D→B,BC→D,DC→A}
(1).求出R的候选关键字。
(2).判断ρ={AB,AE,CE,BCD,AC}是否为无损连接分解?
解:
⑴(CE)+=ABCDE,则CE→U,而C+=C,E+=DE=BDE,根据候选关键字定义,CE是R的候选关键字。
⑵ ρ的无损连接性判断表最后一步如下表所示,由此判断具有无损连接性。
Ri A B C D E
AB a1 a2 b13 b14 b15
AE a1 a2 b23 b14 a5
CE a1 a2 a3 a4 a5
BCD a1 a2 a3 a4 b45
AC a1 a2 a3 a4 b55

11.设有关系框架R(A,B,C,D,E)及其上的函数相关性集合F={A→C,B→C,C→D,DE→C,CE→A},检验分解ρ={R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)}是否为R的无损连接分解. 要求画出无损联接构造表判断算法的最后一步状态(即算法结束时的判断表格),并做出ρ是否具有无损联接性的判断。
p的无损连接性判断结果表如下表所示,由此判断具有无损连接性。
Ri A B C D E
AD a1 b12 b13 a4 b15
AB a1 a2 b13 a4 b25
BE a1 a2 a3 a4 a5
CDE a1 b42 a3 a4 a5
AE a1 b52 a3 a4 a5

12.设关系模式 R为 R(A,B,C,D,E),R上的一个函数依赖集为 F={A→C,C→D,B→C,CE→A},分解ρ={R1(ABE),R2(BDE),R3(BCE) }。
检验分解ρ是否具有无损联接性。 要求画出无损联接构造表判断算法的最后一步状态(即算法结束时的判断表格),并做出ρ是否具有无损联接性的判断。

A	B	C	D	E

ABE a1 a2 a3 b14 a5
BDE a1 a2 a3 a4 a5
BCE a1 a2 a3 b34 a5
故保持无损连接性。
13.设有函数依赖集F={AB→CE,A→C,GP→B,EP→A,CDE→P,HB→P,D→HG,ABC→PG},计算属性集D关于F的闭包D+。
令X={D},X(0)=D。
在F中找出左边是D子集的函数依赖,其结果是:D→HG,∴X(1)=X(0)HG=DGH,
显然有X(1)≠X(0)。
在F中找出左边是DGH子集的函数依赖,未找到,则X(2)=DGH。由于X(2)=X(1),
则:D+=DGH
14.已知关系模式R的全部属性集U={A,B,C,D,E,G}及函数依赖集:
F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG}
求属性集闭包(BD)+。
令X={BD},X(0)=BD,X(1)=BDEG,X(2)=BCDEG,X(3)=ABCDEG,故(BD)+=ABCDEG。
15.设有函数依赖集F={D→G,C→A,CD→E,A→B),计算闭包D+,C+,A+,(CD)+,(AD)+,(AC)+,(ACD)+。
令X={D},X(0)=D,X(1)=DG,X(2)=DG,故D+=DG。
令X={C},X(0)=C,X(1)=AC,X(2)=ABC,X(3)=ABC,故C+=ABC。
令X={A},X(0)=A,X(1)=AB,X(2)=AB,故A+=AB。
令X={CD},X(0)=CD,X(1)=CDG,X(2)=ACDG,X(3)=ACDEG,X(4)=ABCDEG,
故(CD)+=ABCDEG。
令X={AD},X(0)=AD,X(1)=ABD,X(2)=ABDG,X(3)=ABDG,故(AD)+=ABDG。
令X={AC},X(0)=AC,X(1)=ABC,X(2)=ABC,故(AC)+=ABC。
令X={ACD},X(0)=ACD,X(1)=ABCD,X(2)=ABCDG,X(3)=ABCDEG,故(ACD)+=ABCDEG。
16.现有如下关系模式:借阅(图书编号,书名,作者名,出版社,读者编号,读者姓名,借阅日期,归还日期),基本函数依赖集F={图书编号→(书名,作者名,出版社),读者编号→读者姓名,(图书编号,读者编号,借阅日期)→归还日期}
(1)读者编号是候选键吗?
不是。
(2)求出该关系模式的候选键。
(图书编号,读者编号,借阅日期)。
(3)该关系模式中是否存在非主属性对码的部分函数依赖?如果存在,请写出一个。
存在。(图书编号,读者编号,借阅日期)→书名、(图书编号,读者编号,借阅日期)→作者名、(图书编号,读者编号,借阅日期)→出版社、(图书编号,读者编号,借阅日期)→读者姓名(四个函数依赖任选一个即可)
(4)该关系模式满足第几范式?并说明理由。
1NF。因为存在非主属性对码的部分函数依赖。
17.设有关系模式R(U,F),其中:
U={E,F,G,H},F={E→G,G→E,F→EG,H→EG,FH→E}
求F的最小依赖集。
(1).将F中依赖右部属性单一化:
F1={E→G,G→E,F→E,F→G,H→E,H→G,FH→E}
(2).对于FH→E,由于有F→E,则为多余的,则:
F2={E→G,G→E,F→E,F→G,H→E,H→G}
(3).由于E→G,所以在F2中的F→E和F→G以及H→E和H→G之一是多余的,则:
F3={E→G,G→E,F→G,H→G}
或F3={E→G,G→E,F→G,H→E}
或F3={E→G,G→E,F→E,H→E}
或F3={E→G,G→E,F→E,H→G}
(4)F3中函数依赖左部均为单属性,没有多余属性,所以是一个最小函数数依赖集。

18.设有关系模式R(A,B,C,D),其上的函数依赖集:
F={A→C,C→A,B→AC,D→AC}
(1).计算(AD)+。
(2).求F的最小依赖集Fm。
(3).求R的候选键。
(4).将R分解成满足3NF并具有无损连接性与保持依赖性。
解:
(1).令X={AD},X(0)=AD,X(1)=ACD,X(2)=ACD,故(AD)+=ACD。
(2).将F中的函数依赖右部属性单一化:
A→C C→A
F1= B→A B→C
D→A D→C
在Fl中去掉多余的函数依赖:
∵B→A,A→C ∴B→C是多余的。
又∵D→A,A→C ∴D→C是多余的。
A→C C→A
F2=
B→A D→A
函数依赖集的最小集不是惟一的,本题中还可以有其他答案。
∵F2中所有依赖的左部却是单属性,∴不存在依赖左部有多余的属性
∴ A→C C→A
Fm=
B→A D→A

(3)BD是R的唯一的候选键。
(4)由(2)可求出满足3NF的具有依赖保持性的分解为ρ={AC,BA,DA}。
因BD是R的候选关键字,令ρ=ρ∪{BD},
∴将R满足3NF并具有无损连接性与保持依赖性的一个分解是p={AC,BA,DA,BD}。

19.己知关系模式R(CITY,ST,ZIP)和函数依赖集:
F={(CITY,ST)→ZIP,ZIP→CITY}
(1)试找出R的所有候选键。
(2)说明R最高满足第几范式。
解:(1)R的两个候选键是(ST,ZIP)和(CITY,ST)。
(2)R满足3NF。
20.设有关系模式R(A,B,C,D,E),R的函数依赖集:
F={A→D,E→D,D→B,BC→D,CD→A}
(1).求R的候选键。
(2).写出R具有无损连接性与保持依赖性的一个分解。
解:(1) R的候选键是CE。
(2).求出最小依赖集F′={A→D,E→D,D→B,BC→D,CD→A}
将R分解的3NF:ρ={AD,DE,BD,BCD,ACD,CE}。
21.设有关系模式R(U,V,W,X,Y,Z),其函数依赖集:
F={U→V,W→z,Y→U,WY→X},现有下列分解:
(1). ρl={WZ,VY,WXY,UV}
(2). ρ2={UVY,WXYZ}
判断上述分解是否具有无损连接性。
(1). ρ1的无损连接性判断表如下所示,由此判断ρ1不具有无损连接性。
(此处表略,请复习时自行画出…)
(2). 令R1={UVY},R2={WXYZ},由函数依赖集F可推得 Y->UV,即R1∩R2->(R1-R2),故ρ2具有无损连接性。或由无损连接性判断表(此处表略,请复习时自行画出…)
可知ρ2具有无损连接性

22.已知R(Al,A2,A3,A4,A5)为关系模式,其上函数依赖集:
F={Al→A3,A3→A4,A2→A3,A4A5→A3,A3A5→A1}
ρ={Rl(Al,A4),R2(A1,A2),R3(A2,A3),R4(A3,A4,A5),R5(Al,A5)}
判断ρ是否具有无损连接性。
23.设有关系模式R(B,O,I,S,Q,D},其上函数依赖集:
F={S→D,I→B,IS→Q,B→O}
如果用SD,IB,ISQ,BO代替R,这样的分解是具有无损连接吗?

24.设有关系模式R(F,G,H,I,J),R的函数依赖集:
F={F→I,J→I,I→G,GH→I,IH→F}
(1).求出R的所有候选键。
(2).判断ρ={FG,FJ,JH,IGH,FH}是否为无损连接分解?
(3).将R分解为3NF,并具有无损连接性和依赖保持性。
25.设有关系模式R(A,B,C,D,E,P),R的函数依赖集F={A→D,E→C,AB→E,BP→E,CD→P},X=AE,求X关于F的闭包X+。
(1) X(0)=AE;
(2)在F中,决定因素是AE的子集的函数依赖有A→D,E→C且CDX(0),所以有X(1)=ACDE;
(3)在F中,决定因素是ACDE的子集的函数依赖有A→D,E→C和CD→P,且CDP X(1),所以有X(2) =ACDEP;
(4)在F中,决定因素是ACDEP的子集的函数依赖仍然只有A→D,E→C和CD→P,且CDP X(2),所以有X+= X(2)=ACDEP。
26.设有关系模式R(A,B,C,D,E),R的函数依赖集F={AB→D,B→CD,DE→B,C→D,D→A}。
(1)计算(AB)+,(AC)+,(DE)+;
(2)求R的所有候选键;
(3)求出F的最小依赖集。
(1) (AB)+=ABCD
(AC)+=ACD
(DE)+=ABCDE
(2) 求R的候选键
①根据F对R的所有属性进行分类:E为L类属性,ABCD为LR类属性,令Y={A,B,C,D}。
②E+=E,但ABCDE不属于E+,所以E不是候选键。
③在Y中取任一属性Z,求(EZ)+。
(AE)+=AE,但ABCDE不属于(AE)+,所以AE不是候选键。
(BE)+=ABCDE,ABCDE属于(BE)+,所以BE是候选键。
(CE)+=ABCDE,ABCDE属于(CE)+,所以CE是候选键。
(DE)+=ABCDE,ABCDE属于(DE)+,所以DE是候选键。
④在Y中依次取2个、3个和4个属性组成集合Z,求(EZ)+。由于本题中此类组合的求(EZ)+均包含了已求出的候选键,所以本部不能求出新的候选键。
R的候选键为BE、CE和DE。
(3)求F的最小依赖集
①根据分解规则,将F分解成右端只有单属性的依赖集:
F1={AB→D,B→C, B→D,DE→B,C→D,D→A}
②去除冗余的函数依赖
可依次找出F1中冗余的函数依赖有:AB→D,B→D;
所以有F2={B→C, DE→B,C→D,D→A}
③验证函数依赖左部有无多余属性
用D→B代替DE→B,判断是否能从F2中导出D→B。因为DF2+=AD,不包含B,所以从F2中不能导出D→B,E不是多余属性。
再用E→B代替DE→B,判断是否能从F2中导出E→B。由于EF2+=E,不包含B,所以从F2中不能导出E→B。
所以,Fmin=F2={B→C, DE→B,C→D,D→A}。
27.设有关系模式R(A,B,C,D,E,P),R的函数依赖集F={A→B,B→C},并有分解={R1(AB),R2(AC)}, ={R1(AB),R3(BC)}, ={R2(AC),R3(BC)}。判断分解、、是否为无损联接分解。
(1)因为(R1R2)→(R1-R2)=(ABAC)→(AB-AC)=A→B, 由F知A→B成立,故是无损联接分解。
(2)虽然(R1R3)→(R1-R3)=(ABBC)→(AB-BC)=B→A,由F可知B→A不为F所蕴含,但(R3R1)→(R3-R1)=(BCAB)→(BC-AB)=B→C,由F可知B→C成立,所以是无损联接分解。
(3)因为(R2R3)→(R2-R3)=(ACBC)→(AC-BC)=C→A, 由F可知C→A不为F所蕴含,
并且(R3R2)→(R3-R2)=(BCAC)→(BC-AC)=C→B, 由F可知C→B不为F所蕴含,所以不是无损联接分解。
28.设有关系模式R(A,B,C),R的函数依赖集F={A→B,C→P,E→A,CE→D},并有分解={R1(ABE),R2(CDEP)}。
(1)判断分解是否为无损联接分解。
(2)判断R1和R2分别为哪几范式。
(1)R1R2=E,R1-R2=AB,R2-R1=CDP,所以如果E→AB或E→CDP之一成立,则保持无损联接。由F可得E→AB为F所蕴含,所以是无损联接分解。
(2)根据R1(ABE)可得F在R1上的投影F1={ A→B , E→A },由此可求得R1的候选键为E,非主属性AB完全依赖于候选键,但由于存在非主属性B传递依赖于候选键E,故R1是第二范式。
根据R2(CDEP)可得F在R2上的投影F2={C→P,CE→D},由此可求得R2的候选键是CE。由于存在非主属性P部分函数依赖候选键CE,所以R2是第一范式。
29.设有一教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D)。这些数据有下列语义:
·学号和课程号分别与其代表的学生和课程一一对应;
·一个学生所修的每门课程都有一个成绩;
·每门课程只有一位任课教师,但每位教师可以有多门课程;
·教师中没有重名,每个教师只属于一个系。
(1).试根据上述语义确定函数依赖集F。
(2).如果用上面所有属性组成一个关系模式R,那么该关系模式最高满足第几范式?
(3).将其分解为保持依赖和无损连接的3NF。

(1).F={(S#,C#)→G,C#→TN,TN→D}
(2).关系模式R的候选键为(S#,C#),存在非主属性对键的部分函数依赖,所以为1NF。
(3).R的最小函数依赖集F={(S#,C#)→G,C#→TN,TN→D}
∴R的一个保持依赖和无损连接的3NF分解为ρ={R1,R2,R3}
其中:R1=(S#,C#,G)
R2=(C#,TN)
R3=(TN,D)

30.如下给出的关系R为第几范式?将其分解为高一级范式。
工程号 材料号 数量 开工日期 完工日期 价格
P1 I1 4 2000.5 2001.5 250
P1 I2 6 2000.5 2001.5 300
P1 I3 15 2000.5 2001.5 180
P2 I1 6 2000.11 2001.12 250
P2 I4 18 2000.11 2001.12 350
它为1NF。因为该关系的候选键为(工程号,材料号),而非主属性“开工日期”和“完工日期”部分函数依赖于候选键的子集“工程号”,即:
P
(工程号,材料号)——→开工日期
P
(工程号,材料号)——→完工日期
P
(工程号,材料号)——→价格

∴它不是2NF。
将其中的部分函数依赖分解为一个独立的关系,则产生如下所示的两个2NF关系子模式:

R1
工程号 材料号 数量
P1 I1 4
P1 I2 6
P1 I3 15
P2 I1 6
P2 I4 18
R2
材料号 价格
I1 250
I2 300
I3 180
I4 350

R3
工程号 开工日期 完工日期
P1 2000.5 2001.5
P2 2000.11 2001.12

第五部分 数据库设计
(一)、考核内容
(1) 用户需求分析、概念结构设计
(2) 逻辑结构设计
(3) 物理结构设计
(4) 数据库结构与应用行为设计
(二)、考核要求
(1)了解数据库生命周期。
(2)了解数据库设计规划与用户需求分析。
(3)掌握数据库概念结构设计步骤与方法(实体联系模型)。
(4)掌握数据库逻辑结构设计方法,由实体-联系模型向关系模型的转换。
(5)了解数据库的物理结构设计方法:索引、数据聚簇。

(一)选择
1.在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的( B)段。
A.需求分析 B.概念设计 C.逻辑设计 D.物理设计
2.在关系数据库设计中,设计关系模式是(C )的任务。
A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段
3.数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作是(B )。
A.建立库结构 B.扩充功能 C.加载数据 D.系统调试
4.在数据库的概念设计中,最常用的数据模型是 D 。
A.形象模型 B.物理模型 C.逻辑模型 D.实体联系模型
5.从E-R模型关系向关系模型转换时,一个M∶N联系转换为关系模型时,该关系模式的关键字是 C 。
A.M端实体的关键字 B.N端实体的关键字
C.M端实体关键字与N端实体关键字组合 D.重新选取其他属性
6.当局部E-R图合并成全局E-R图时可能出现冲突,不属于合并冲突的是( B)。
A.属性冲突 B.语法冲突 C.结构冲突 D.命名冲突
7.数据流程图(DFD)是用于描述结构化方法中 C 阶段的工具。
A.可行性分析 B.详细设计 C.需求分析 D.程序编码
8.下图所示的E-R图转换成关系模型,可以转换为 C 关系模式。
A.1个 B.2个 C.3个 D.4个

9.E-R图是数据库设计的工具之一,它适用于建立数据库的( A)。
A.概念模型 B.逻辑模 C.结构模型 D.物理模型

10.数据库概念设计的E-R方法中,用属性描述实体的特征,属性在E-R图中,用( D)表示。
A.矩形 B.四边形 C.菱形 D.椭圆形

11.在数据库设计中,在概念设计阶段可用E-R方法,其设计出的图称为( D)。
A.实物示意图 B.实用概念图 C.实体表示图 D.实体联系图
12.从E-R模型关系向关系模型转换时,一个M∶N联系转换为关系模型时,该关系模式的关键字是(C )。
A.M端实体的关键字 B.N端实体的关键字
C.M端实体关键字与N端实体关键字组合 D.重新选取其他属性

13.E-R图中的主要元素是 ①C 、 ② F 和属性。
A.记录型 B.结点 C.实体 D.表
E.文件 F.联系 G.有向边
14.E-R图中的联系可以与(C )实体有关。
A.0个 B.1个 C.1个或多个 D.多个
15.E-R图是表示概念模型的有效工具之一, E-R图中的菱形框“表示”的是( A)。
A.联系 B.实体 C.实体的属性 D.联系的属性

  1. 数据库设计的几个步骤包括①需求分析,②逻辑设计,③概念设计,④编码和调试,⑤物理设计,则它们的正确顺序是(D )
    A.①②③④⑤ B. ①⑤③②④ C. ①②③⑤④ D. ①③②⑤④

17.“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库 (C )阶段。
A.需求分析 B.逻辑设计 C.物理设计 B.模式设计
18. 在数据库设计中,把数据需求写成文档,它是各类数据描述的集合,包括数据项、数据结构、数据流、数据存储和数据加工过程等的描述,通常称为( A).
A.数据字典 B.数据流 C.数据结构 D.数据模式
19.在设计分E-R图时,由于各个子系统分别有不同的应用,而且往往是由不同的设计人员设计的,所以各个分E-R图之间难免有不一致的地方,这些冲突主要有(D )。
A.属性冲突 B.命名冲突 C.结构冲突 D.以上选项皆是

(二)概念、术语
术语:
数据库生命周期
一对一联系
一对多联系
多对多联系。

简述:
(1)简述数据库设计过程。、
(2)简述数据库设计过程中结构设计部分形成的数据库模式。
(3)简述需求分析阶段的调查的内容是什么?
(4)简述数据库的逻辑结构设计及其设计步骤。
(5)简述数据库物理设计的内容和步骤。

(三)应用题
1.某大学实行学分制,学生可根据自己的情况选修课程。每名学生可同时选修多门课程,每门课程可由多位教师讲授;每位教师可讲授多门课程。其不完整的E-R图如下所示。
(1) .指出学生与课程的联系类型,完善E-R图。
(2) .指出课程与教师的联系类型,完善E-R图。
(3) .若每名学生有一位教师指导,每个教师指导多名学生,则学生与教师是何联系?
(4) .在原E-R图上补画教师与学生的联系,并完善E-R图。

(1) .学生与课程的联系类型是多对多联系。
(2) .课程与教师的联系类型是多对多联系。
(3) .学生与教师的联系类型是一对多联系。
(4) .完善E-R图的结果如下所示。

2.将如下所示的E-R图转换为关系模式,菱形框中的属性自己确定。

E-R图转换为如下关系模式:
单位(单位号,地址,电话)
职工(职工号,姓名,性别,年龄,单位号)
3.假定一个部门包括以下的信息:
·职工的信息:职工号、姓名、住址和所在部门。
·部门的信息:部门所有职工、经理和销售的产品。
·产品的信息:产品名、制造商、价格、型号及产品内部编号。
·制造商的信息:制造商名称、地址、生产的产品名和价格。
试画出该部门的E-R图。

4.设有一商业销售记账业务。一个顾客(顾客姓名,单位,电话号码)可以买多种商品,一种商品(商品名称,型号,单价)供应多个顾客。试画出对应的E-R图。

5.某医院病房计算机管理中需要如下信息:
科室:科名,科地址,科电话,医生姓名
病房:病房号,床位号,所属科室名
医生:姓名,职称,所属科室名,年龄,工作证号
病人:病历号,姓名,性别,诊断,主管医生,病房号
其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
完成如下设计:
(1)设计该系统的E-R图;
(2)将该E-R图转换为关系模型;
(3)指出转换结果中每个关系模式的候选键。

(2).对应的关系模型结构如下:
科室(科名,科地址,科电话)
病房(病房号,床位号,科室名)
医生(工作证号,姓名,职称,科室名,年龄)
病人(病历号,姓名,性别,诊断,主管医生,病房号)
(3).各关系模式的候选键如下:
科室的候选码是:科名;
病房的候选码是:科室名+病房号;
医生的候选码是:工作证号;
病人的候选码是:病历号。

6.设有如下实体及其属性:
学生:学号、单位、姓名、性别、年龄、选修课程名
课程:编号、课程名、开课单位、任课教师号
教师:教师号、姓名、性别、职称、讲授课程编号
单位:单位名称、电话、教师号、教师名
上述实体中存在如下联系:
(1).一个学生可选修多门课程,一门课程可为多个学生选修;
(2).一个教师可讲授多门课程,一门课程可为多个教师讲授;
(3).一个单位可有多个教师,一个教师只能属于一个单位。
试完成如下设计:
(1).设计包括各实体及其联系的全局E-R图(为避免E-R图图形复杂,可省去实体属性)
(2).将该全局E-R图转换为等价的关系模型表示的数据库逻辑结构。
该全局E-R图转换为等价的关系模型表示的数据库逻辑结构如下:
单位(单位名,电话)
教师(教师号,姓名,性别,职称,单位名)
课程(课程编号,课程名,单位名)
学生(学号,姓名,性别,年龄,单位名)
讲授(教师号,课程编号)
选修(学号,课程编号)

7.一个图书借阅管理数据库要求提供下述服务:
(1).可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。
(2).可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期和还书日期。
我们约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。
(3).当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。
根据以上情况和假设,试作如下设计:
(1).构造满足需求的E-R图。
(2).转换为等价的关系模型结构。
解:
转换为等价的关系模型结构如下:
借书人(借书证号,姓名,单位)
图书(书号,书名,数量,位置,出版社名)
出版社(出版社名,电报,电话,邮编,地址)
借阅(借书证号,书号,借书日期,还书日期)

  1. 现有一局部应用,包括两个实体:“出版社”和“作者”,这两个实体是多对多的联系,请为其设计适当的属性,画出 E-R 图,再将其转换为关系模型(包括关系名、属性名、主键)。

关系模型:
作者(作者号,姓名,年龄,性别,电话,地址) 主键:作者号
出版社(出版社号,名称,地址,联系电话) 主键:出版社号
出版(作者号,出版社号,书的数量) 主键:作者号、出版社号
9. 一个图书馆数据库中需要对每个借阅者保存读者记录,包括:读者号,姓名,地址,性别,年龄,单位。对每本书存有:书号,书名,作者,出版社。对每本被借出的书存有读者号、借出日期和应还日期。要求:设计出 E-R 图,再将其转换为关系模型。
答 :E - R 图为:

关系模型为:
读者(读者号,姓名,地址,性别,年龄,单位)
书(书号,书名,作者,出版社)
借书(读者号,书号,借出日期,应还日期)
关系模型为:
读者(读者号,姓名,地址,性别,年龄,单位)
书(书号,书名,作者,出版社)
借书(读者号,书号,借出日期,应还日期)

第六部分 数据库保护技术
(一)、考核内容
(1) 事务机制与数据库安全性
(2) 数据库完整性、数据库恢复、并发控制
(二)、考核要求
(1)理解数据库事务的概念及特性;掌握事务的提交与回退方法。
(2)了解数据库面临的安全威胁;掌数据库安全控制机制与方法。
(3)理解数据库的完整性约束条件。
(4)了解数据库恢复技术。
(5)了解数据库并发控制技术。

(一)选择
1.(C )是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。
A.程序 B.命令 C.事务 D.文件
2.事务的原子性是指(A )。
A.事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据库的改变是永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态
3.事务的一致性是指( D)。
A.事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据为的改变是永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态
4.事务的隔离性是指( C)。
A.事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据库的改变是永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态
5、事务的永久性(Durabilty)是指(B )。
A.事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据库的改变是永久的
C.一个事力内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态
6.若数据库中只包含成功事务提交的结果,则此数据库就称为处于(B )状态。
A.安全 B.一致 C.不安全 D.不一致
7.若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为( B)。
A.事务故障 B.系统故障 C.介质故障 D.运行故障
8.若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为(C )。
A.事务故障 B.系统故障 C.介质故障 D.运行故障
9.(B )用来记录对数据库中数据进行的每一次更新操作。
A.后援副本 B.日志文件 C.数据库 D.缓冲区
10.用于数据库恢复的重要文件是( C)。
A.数据库文件 B.索引文件 C.日志文件 D.备注文件
11、数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括( C )。
A.数据字典、应用程序、审计档案、数据库后备副本
B.数据字典、应用程序、日志文件、审计档案
C.日志文件、数据库后备副本
D.数据字典、应用程序、数据库后备副本
12.下面哪个不是数据库系统必须提供的数据控制功能( B)。
A.安全性 B.可移植性 C.完整性 D.并发控制
13.保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。这是指数据的( A)。
A.安全性 B.完整性 C.并发控制 D.恢复
14.数据库的(B )是指数据的正确性和相容性。
A.安全性 B.完整性 C.并发控制 D.恢复
15.在数据系统中,对存取权限的定义称为(B )。
A.命令 B.授权 C.定义 D.审计
16.数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的 ( D)。
A.可靠性 B.一致性 C.完整性 D.安全性
17.事务是数据库进行的基本工作单位。如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于(B )状态。
A.安全性 B.一致性 C.健壮性 D.可靠性
18.多用户的数据库系统的目标之一是使它的每个用户好像面对着一个单用户的数据库一样使用它,为此数据库系统必须进行(C )。
A.安全性控制 B.完整性控制 C.并发控制 D.可靠性控制

19.设有两个事务T1、T2,其并发操作如下所示,下面评价正确的是( B)。
A.该操作不存在问题 B.该操作丢失修改
C.该操作不能重复读 D.该操作读“脏”数据

T1 T2
①读A=10

③A=A-5写回

读A=10

A=A-8写回

20.设有两个事务T1、T2,其并发操作如下所示,下列评价正确的是 C 。
A.该操作不存在问题 B.该操作丢失修改
C.该操作不能重复读 D.该操作读“脏”数据

T1 T2
①读A=100
A=A*2写回

③ROLLBACK
恢复A=100
读A=200

21.设有两个事务T1和T2,它们的并发操作如下所示。
T1 T2
①读X=48

③X=X+10写回X

读X=48

X=X-2写回X

对于这个并发操作,下面评价正确的是( A)。
A.该操作丢失了修改 B.该操作不存在问题
C.该操作读“脏”数据 D.该操作不能重复读

22.解决并发操作带来的数据不一致性总是普遍采用( A)。
A.封锁 B.恢复 C.存取控制 D.协商

23.若事务T对数据R已经加X锁,则其他事务对数据R ( D)。
A.可以加S锁不能加X锁 B.不能加S锁可以加X锁
C.可以加S锁也可以加X锁 D.不能加任何锁

24.不允许任何其他事务对这个锁定目标再加任何类型的锁是 B 。
A.共享锁 B.排它锁 C.共享锁或排它锁 D.以上都不是
25.数据库中的封锁机制是 C 的主要方法。
A.完整性 B.安全性 C.并发控制 D.恢复
26.关于“死锁”,下列说法中正确的是 D 。
A.死锁是操作系统中的问题,数据库操作中不存在
B.在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库
C.当两个用户竞争相同资源时不会发生死锁
D.只有出现并发操作时,才有可能出现死锁

27.对并发操作若不加以控制,可能会带来 B 问题。
A.不安全 B.死锁 C.死机 D.不一致

28.数据库系统的并发控制的主要方法是采用 C 机制。
A.拒绝 B.改为串行 C.锁 D.不加任何控制

29.若数据库中只包含成功事务提交的结果,则此数据库就称为处于 B 状态。
A.安全 B、.一致 C.不安全 D.不一致

30.若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为 B 。
A.事务故障 B.系统故障 C.介质故障 D.运行故障

31.若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为 C 。
A.事务故障 B.系统故障 C.介质故障 D.运行故障

32.后援副本的用途是 C 。
A.安全性保障 B.一致性控制 C.故障后的恢复 D.数据的转储
33.日志文件是用于记录 C 。
A.程序运行过程 B.数据操作
C.对数据的所有更新操作 D.程序执行的结果
34.并发操作会带来哪些数据不一致性 D 。
A.丢失修改、读过时数据(不可重复读)、脏读、死锁
B.读过时数据(不可重复读)、脏读、死锁
C.丢失修改、脏读、死锁
D.丢失修改、读过时数据(不可重复读)、脏读
35.数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括 C 。
A.数据字典、应用程序、审计档案、数据库后备副本
B.数据字典、应用程序、日志文件、审计档案
C.日志文件、数据库后备副本
D.数据字典、应用程序、数据库后备副本
36.在数据库的安全性控制中,为了保证用户只能存取他有权存取的数据。在授权的定义中,数据对象的 A ,授权子系统就越灵活。
A.范围越小 B.范围越大 C.约束越细致 D.范围越适中
37.数据库恢复通常可采取如下方法:
(1).定期将数据库做成 ① A 。
(2).在进行事务处理过程中将数据库更新的全部内容写入 ② B 。
(3).在数据库系统运行正确的情况下,系统按一定时间间隙设立 ③C ,新的建立后意味着旧的 ③C 去掉,即在内存缓冲区中的内容还没有写入到磁盘中去的有关状态 ③C 记录都写入到磁盘文件中去,这种文件称为 ③C 。
(4).发生故障时,用当时数据内容和 ④B 的更新前的映像,将文件恢复到最近的 ⑤C 状态。
(5).用(4)不能恢复数据时,可用最新的 ①A 和 ④B 的更新映像将文件恢复到最新的 ⑤C 状态。
A.副本文件 B.日志文件 C.检查点文件
D.死锁文件 E.两套文件 F.主文件
G.库文件

(二)概念、术语:
术语:

事务的原子性
事务的隔离性
事务的永久性
完整性约束
触发器
引用完整性约束
实体完整性约束
排他锁
共享锁

简述:
(1)简述事务中的提交和回滚.
(2)数据库的并发操作会带来哪些问题?如何解决?
(3)简述基本的封锁类型及它们的含义。
(4)简述数据库在运行过程中可能产生的故障主要有哪几类?
(5)简述怎样进行系统故障的恢复?
(6)简述怎样进行介质故障的恢复?
(7)简述数据库的并发控制。
(1)简述事务中的提交和回滚.
参考答案:事务中的提交(COMMIT)是提交事务的所有操作。具体说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。事务中的回滚(ROLLBACK)是数据库滚回到事务开始时的状态。具体地说就是,在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤消,使数据库回滚到事务开始时的状态。
(2)数据库的并发操作会带来哪些问题?如何解决?
参考答案:数据库并发操作会带来的数据不一致性问题包括丢失修改、读过时数据和读“脏”数据。对于并发操作带来的问题,可以用并发控制的方法调度并发操作,避免造成数据的不一致性,使一个用户事务的执行不受其它事务的干扰。一级锁协议可防止丢失修改;二级锁协议不仅可以防止丢失修改,而且可以防止读“脏”数据。三级锁协议除了防止丢失修改和不读“脏”数据外,还可防止读过时数据。
(3)简述基本的封锁类型及它们的含义。
参考答案:基本的封锁的类型有排它锁(“X”锁)和共享锁(“S”锁)两种。
若事务T对数据A加上X锁,则只允许事务T读取和修改数据A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁。
若事务T对数据A加上S锁,则其他事务可以再对A加S锁,而不能加X锁,直到T释放A上的锁。

(4)简述数据库在运行过程中可能产生的故障主要有哪几类?
参考答案:数据库在运行过程中可能产生的故障有如下几类:
(1).事务故障
事务在运行过程中由于种种原因,如输入数据的错误,运算溢出,违反了某些完整性限制,某些应用程序的错误,以及并行事务发生死锁等,使事务未能运行到正常终止点之前就被撤消了,这种情况称为“事务故障”。
(2).系统故障
系统故障是指系统在运行过程中,由于某种原因,如OS和DBMS代码错误,操作员操作失误,特定类型的硬件错误(如CPU故障),突然停电等造成系统停止运行,致使事务在执行过程中以非控方式终止。这时,内存中的信息丢失,而存储在外存储上的数据未受影响,这种情况称为“系统故障”。
(3).介质故障
系统在运行过程中,由于某种硬件故障,如磁盘损坏,磁头碰撞,或由于OS的某种潜在的错误,瞬时强磁场干扰,使存储在外存上的数据部分损失或全部损失,称之为“介质故障”。

(5)简述怎样进行系统故障的恢复?
参考答案:当系统故障发生时,造成数据库处于不一致状态的原因有两个,一个是一些未完成事务对数据库的部分更新已写入数据库中,另一个是一些已提交事务对数据库的更新还留在内存缓冲区,没来得及写回数据库。因此,基本的恢复分为以下两步:
(1).根据日志文件建立重做队列和撤消队列
从头扫描日志文件,找出故障前已提交的事务记录,将其事务标识放入重做队列;还要找出故障前尚未完成的事务,将该事务放入撤消队列。
(2).对重做队列中的事务进行重做处理,对撤消队列中的事务进行撤消处理
对于重做处理(REDO),正向扫描日志文件,再根据重做队列,将已完成的事务的所有操作重新执行;对于撤消处理(UNDO),反向扫描日志文件,再根据撤消队列,将未完成的事务的更新操作执行逆操作。

(6)简述怎样进行介质故障的恢复?
参考答案:在发生介质故障时,磁盘上的物理数据库被破坏,这时的恢复操作分为以下几步:
(1).重装转储后援副本,使数据库恢复到转储时的一致状态;
(2).从故障开始,反向阅读日志文件,找出已提交事务标记作重做队列;
(3).从起始点开始正向阅读日志文件,根据重做队列的记录,重做所有已完成的事务,将数据库恢复至故障前某一时刻的一致状态。

(7)简述数据库的并发控制。
参考答案:数据库是一个共享资源,它允许多个用户程序并行地存取数据库中的数据,但是,如果系统对并行执行的操作不加以控制就会存取和存储不正确的数据,破坏数据库的完整性。
并发控制的主要方法是采用封锁机制。封锁是事务T在对某个数据对象操作之前,先向系统发出请求对其加锁。基本的封锁类型有两种:排它锁(X锁)和共享锁(S锁)。所谓X锁是事务T对数据A加上X锁时,只允许事务T读取和修改数据A,其他任何事务都不量能再对A加任何类型的锁,直到T释放A上的锁。所谓S锁,是事务T对数据A加上S锁时,其他事物只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁。

相关题库:
《数据库原理与技术之练习题集锦》_第2张图片

你可能感兴趣的:(数据库,数据库)