
数据库系统概念
-
2023年3月2日发(作者:血凝固)1
《数据库系统概论》复习资料
■第一章绪论
❖本章内容:数据库系统概述、数据模型、数据库系统结构
❖本章主要考点:数据、数据库、■数据库管理系统的概念、概念模型、■ER图、三种数
据模型、数据库的三级模式结构
1、试述数据、数据库、数据库系统、数据库管理系统的概念
(1)数据(Data):描述事物的符号记录称为数据。
(2)数据库(DataBase,简称DB):数据库是长期储存在计算机内的、有组织的、可共享的
数据集合。
(3)数据库系统(DataBaseSystem,简称DBS):数据库系统是指在计算机系统中引入数
据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据
库管理员构成。
(4)数据库管理系统(DataBaseManagementSystem,简称DBMS):数据库管理系统是位
于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和
维护数据。
2、对于DB、DBS、DBMS的关系,下列哪一种描述是正确的(B)
A、DB包括DBS、DBMSB、DBS包括DB、DBMS
C、DBMS包括DBS、DBD、以上都不对
3、概念模型中的术语:实体、属性、码、域、实体型、实体集
实体:客观存在并可以相互区分的事物叫实体.
属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。
码:惟一标识实体的属性集称为码.
域:域是一组具有相同数据类型的值的集合。
实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画
同类实体,称为实体型。
实体集:同型实、体的集合称为实体集。
4、目前数据库领域中最常用的逻辑数据模型有层次模型、网状模型、关系模型等.
5、数据库管理系统的主要功能有哪些?
(1)数据库定义功能(2)数据存取功能(3)数据库运行管理(4)数据库的建立和维护功能。
■6、实体联系图(E—R图)
实体型:用矩形表示,矩形框内写明实体名;
属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无
向边旁标上联系的类型(1:1或1:n或m:n).
▲例:假设教学管理规定:
①一个学生可选修多门课,一门课有若干学生选修;
②一个教师可讲授多门课,一门课只有一个教师讲授;
③一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、
课程名.要求:根据上述语义画出ER图,要求在图中画出实体的属性并注明联系的类型;
解:根据以上规则画出对于的E—R图如下
2
7、数据库系统的三级模式结构:
外模式:亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的
局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻
辑表示。
模式:亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图.
模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集.
内模式:亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描
述。
数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像.这
两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性.
8、对数据库中进行增加记录类型或增加数据项,通过调整下列哪一级映像,可以使应用程序尽
可能保持不变,便达到了哪一种数据的独立性(A)
A、外模式/模式映像,逻辑数据独立性
B、外模式/模式映像,物理数据独立性
C、模式/内模式映像,逻辑数据独立性
D、模式/内模式映像,物理数据独立性
9、数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是(D)
A.外模式B.内模式C.存储模式D.模式
10、层次模型不能直接表示(C)。
A.1:1关系B.1:m关系C.m:n关系D.1:1和1:m关系
■第二章关系数据库(重点)
❖本章内容:关系数据结构及形式化定义、关系操作、关系的完整性、关系代数
❖本章主要考点:概念、关系的完整性、■■关系代数
1、关系数据库管理系统应能实现的专门关系运算包括(B).
A.排序、索引、统B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
3
2、自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和
S含有一个或多个共有的(D).
A.元组B.行C.记录D.属性
3、关系运算中花费时间可能最长的运算是(C).
A.投影B.选择C.笛卡尔积D.除
4、关系模式的任何属性(A)。
A.不可再分B.可再分C.命名在该关系模式中可以不惟一D.以上都不是
5、在关系代数运算中,五种基本运算为(C)。
A.并、差、选择、投影、自然连接B.并、差、交、选择、投影
C.并、差、选择、投影、乘积D.并、差、交、选择、乘积
6、要求学生的年龄在15至40岁之间,是关系模型的哪一种完整性规则(C)
A.参照完整性B.实体完整性C.用户定义的完整性规则D.以上都不是
7、关系R的元数为5,关系S的元数是4,则R❖S可以等价于下列哪一种(B)
2﹥3
A.
2﹥3
(R×S)B.
2﹥7
(R×S)C.R❖SD.
6<2
(R×S)
8、关系的三类完整性约束:
实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值
参照完整性规则:若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对
应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
●或者取空值(F的每个属性值均为空值)
●或者等于S中某个元组的主码值
用户定义的完整性:针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据
必须满足的语义要求
■■9、关系代数
(1)R∪S仍为n目关系,由属于R或属于S的元组组成
(2)R—S仍为n目关系,由属于R而不属于S的所有元组组成
4
(3)R∩S仍为n目关系,由既属于R又属于S的元组组成
(4)笛卡尔积:R×S列:(n+m)列元组的集合,元组的前n列是关系R的一个元组,后m列是
关系S的一个元组,行:k1×k2个元组
(5)选择:
选择运算符的含义:在关系R中选择满足给定条件的诸元组
σ
F
(R)={t|tR∧F(t)='真'}
F:选择条件,是一个逻辑表达式
例如:查询信息系(IS系)全体学生σ
Sdept
=
’IS’
(Student)
(6)投影:
投影运算符的含义:从R中选择出若干属性列组成新的关系
π
A
(R)={t[A]|tR}A是R中的属性列
例如:查询学生的姓名和所在系,即求Student关系上学生姓名和所在系两个属性上的投影
π
Sname,Sdept
(Student)
(7)连接:
连接运算的含义:从两个关系的笛卡尔积中选取属性间满足一定条件的元组
分为等值连接、一般连接、自然连接
例如:关系R和关系S如下所示:
5
(8)除:
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组.R中的Y与S中的Y可以有不同
的属性名,但必须出自相同的域集.R与S的除运算得到一个新的关系P(X),P是R中满足下列
条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合,
记作:
R÷S={t
r
[X]|t
r
R∧π
Y
(S)Y
x
}
例如:设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c)
■例:设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供应商表S由供应商号码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商
所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重
量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目
所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目
6
代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
试用关系代数完成如下查询:
(1)求供应工程J1零件的供应商号码SNO;
(2)求供应工程J1零件P1的供应商号码SNO;
(3)求供应工程J1零件为红色的供应商号码SNO;
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
(5)求至少用了供应商S1所供应的全部零件的工程号JNO。
解:
(1)求供应工程J1零件的供应商号码SNO:
π
Sno
(σ
Jno=‘J1'
(SPJ))
(2)求供应工程J1零件P1的供应商号码SNO:
π
Sno
(σ
Jno=‘J1’∧Pno=‘P1‘
(SPJ))
(3)求供应工程J1零件为红色的供应商号码SNO:
π
Sno
(σ
Jno=‘J1‘
(σ
COLOR=’红‘
(P)❖SPJ))或
π
Sno
(σ
Jno=‘J1‘
(SPJ)❖(σ
COLOR='红‘
(P))
(4)求没有使用天津供应商生产的红色零件的工程号JNO:
π
Jno
(SPJ)-π
JNO
(σ
city=‘天津'∧Color=‘红‘
(S❖SPJ❖P))或
π
Jno
(SPJ)—π
JNO
(σ
city=‘天津’
(S)❖SPJ❖σ
Color=‘红‘
(P))
(5)求至少用了供应商S1所供应的全部零件的工程号JNO:
π
Jno,Pno
(SPJ)÷π
Pno
(σ
Sno=‘S1‘
(SPJ))
■第三章关系数据库标准语言SQL(重点)
❖本章内容:SQL概述、数据定义、数据查询、数据更新、视图
❖本章主要考点:基本概念、■■数据查询的基本语句操作、数据更新语句
1、SQL语言是(C)语言。
A.层次数据库B.网络数据库C.关系数据库D.非数据库
2、SQL语言具有两种使用方式,分别称为交互式SQL和(C).
A.提示式SQLB.多用户SQLC.嵌入式SQLD.解释式SQL
3、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),
学生选课关系是SC(S#,C#,GRADE).要查找选修“COMPUTER"课程的“女”学生姓名,将
涉及到关系(D)。
A.SB.SC,CC.S,SCD.S,C,SC
4、如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL
操作(B)不能执行.
A.从职工表中删除行(‘025',‘王芳’,‘03’,720)
B.将行(‘005,’,‘乔兴’,‘04',750)插入到职工表中
C.将职工号为,‘001’的工资改为700
D.将职工号为,’038'的部门号改为‘03’
5、在SQL语言中,用来测试一个集合里是否有重复元组存在,使用下列哪一个关键字(A)
A.UNIQUEB.DISTINCTC.EXISTSD.NOTIN
■■6、SQL数据查询语句
SELECT语句格式:
SELECT[ALL|DISTINCT][,<目标列表达式〉]…
FROM〈表名或视图名〉[,<表名或视图名〉]…
[WHERE〈条件表达式>]
[GROUPBY〈列名1>[HAVING]]
7
[ORDERBY[ASC|DESC]];(注:SQL语句中不区分大小写)
①单表查询
(1)选择表中的若干列:
查询指定列:
例:查询全体学生的学号与姓名
SELECTSno,Sname
FROMStudent;
查询所有列:(将指定为*)
例:查询全体学生的详细记录。
SELECT*
FROMStudent;
查询结果计算的值:
例:查全体学生的姓名及其出生年份。
SELECTSname,2012—Sage/*假定当年的年份为2012年,减去年龄即得出生年份*/
FROMStudent;
(2)选择表中的若干元组
取消取值重复的行:(指定DISTINCT关键词,去掉表中重复的行)
例:查询选修了课程的学生号码
SELECTDISTINCTSno(使用DISTINCT关键词取消了重复学号的行)
FROMSC;
查询满足条件的行:(WHERE语句)
例:查询计算机科学系全体学生的名单。(比较)
SELECTSname
FROMStudent
WHERESdept=‘CS';
例:查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄(确定范围)
SELECTSname,Sdept,Sage
FROMStudent
WHERESageBETWEEN20AND23;
例:查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。(确定集合)
SELECTSname,Ssex
FROMStudent
WHERESdeptIN('IS’,'MA’,'CS');
例:查询学号为200215121的学生的详细情况。(字符匹配)
SELECT*
FROMStudent
8
WHERESnoLIKE‘200215121’;
例:某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩
的学生的学号和相应的课程号。(空值)
SELECTSno,Cno
FROMSC
WHEREGradeISNULL/*不能用’=’代替IS*/
例:查询计算机系年龄在20岁以下的学生姓名。(多重条件)
SELECTSname
FROMStudent
WHERESdept='CS’ANDSage〈20;
(3)ORDERBY子句
可以按一个或多个属性列排序。升序:ASC;降序:DESC;缺省值为升序
例:查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列.
SELECTSno,Grade
FROMSC
WHERECno=’3'
ORDERBYGradeDESC;
(4)聚集函数
COUNT([DISTINCT|ALL]*)统计元组个数
COUNT([DISTINCT|ALL])统计一列中值的个数
SUM([DISTINCT|ALL]〈列名>)计算一列值的总和
AVG([DISTINCT|ALL]〈列名>)计算一列值的平均值
MAX([DISTINCT|ALL]〈列名〉)求一列中的最大值
MIN([DISTINCT|ALL]〈列名〉)求一列中的最小值
例:计算1号课程的学生平均成绩.
SELECTAVG(Grade)
FROMSC
WHERECno=’1’;
②多表查询
(1)等值查询
例:查询每个学生及其选修课程的情况
SELECTStudent.*,SC。*
FROMStudent,SC
=SC。Sno;
(2)嵌套查询
带有IN谓词的子查询:
例:查询与“刘晨”在同一个系学习的学生
SELECTSno,Sname,Sdept
FROMStudent
WHERESdeptIN
(SELECTSdept
FROMStudent
WHERESname=‘刘晨’);
带有比较运算符的子查询:(当内查询的结果是一个值时,可以用=代替IN)
例:查询与“刘晨”在同一个系学习的学生
9
SELECTSno,Sname,Sdept
FROMStudent
WHERESdept=
(SELECTSdept
FROMStudent
WHERESname=‘刘晨');
带有ANY或ALL谓词的子查询
例:查询其他系中比计算机科学某一学生年龄小的学生姓名和年龄
SELECTSname,Sage
FROMStudent
WHERESage
FROMStudent
WHERESdept=’CS')
ANDSdept〈〉‘CS';/*这句是父查询块中的条件*/
带有EXISTS谓词的子查询:
相当于存在量词∃,带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻
辑假值“false"。
例:查询所有选修了1号课程的学生姓名。
SELECTSname
FROMStudent
WHEREEXISTS
(SELECT*
FROMSC
WHERESno=Student。SnoANDCno=’1');
(3)集合查询
集合操作的种类:并操作UNION,交操作INTERSECT,差操作EXCEPT
例:查询计算机科学系的学生及年龄不大于19岁的学生。(并)
SELECT*
FROMStudent
WHERESdept=’CS’
UNION
SELECT*
FROMStudent
WHERESage〈=19;
例:查询计算机科学系的学生与年龄不大于19岁的学生(交)
SELECT*
10
FROMStudent
WHERESdept=’CS’
INTERSECT
SELECT*
FROMStudent
WHERESage〈=19
例:查询计算机科学系的学生与年龄不大于19岁的学生。(差)
SELECT*
FROMStudent
WHERESdept=’CS'
EXCEPT
SELECT*
FROMStudent
WHERESage<=19;
■例题:设学生课程数据库中有三个关系:
学生关系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)SELECTSNAME,S#
FROMS,SC,C
WHERES。S#=SC.S
#ANDC.C#=SC.C#
ANDCNAME=’MATHS’
(2)SELECTS
#FROMSC
WHERECNO='C1’ANDS#IN(SELECTS
#FROMSC
WHERECNO=’C2’)
(3)SELECTS#,SNAME,AGE
FROMS
WHEREAGEBETWEEN18AND20
(4)SELECTS#,AVG(GRADE)
FROMSC
GROUPBYS#
HAVINGAVG(GRADE)>80
(5)SELECTSNAME
11
FROMS
WHERENOTEXISTS
(SELECT*
FROMC
WHERENOTEXISTS
(SELECT*
FROMSC
WHERES#=S。S#ANDC#=C.C#)
)
(6)SELECTSNAME
FROMS,SC
WHERES。S#=SC。S#
GROUPBYSNAME
HAVINGCOUNT(*)>3
◎第四章数据库安全性
❖本章内容:计算机安全性概述、数据库安全性控制、审计、数据加密
❖本章主要考点:基本概念、数据库安全性控制
1、下面哪个不是数据库系统必须提供的数据控制功能(B).
A.安全性B.可移植性C.完整性D.并发控制
2、数据库的(B)是指数据的正确性和相容性。
A.安全性B.完整性C.并发控制D.恢复
3、在数据系统中,对存取权限的定义称为(B)。
A.命令B.授权C.定义D.审计
4、数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库
的(D).
A.可靠性B.一致性C.完整性D.安全性
5、保护数据安全性的一般方法是设置用户标识和存取权限控制。
6、安全性控制的一般方法有用户标识鉴定、存取控制、审计、数据加密和视图的保护五级安全
措施.
■第六章关系数据理论(重点)
❖本章内容:规范化、数据依赖的公里系统、模式分解
❖本章主要考点:函数依赖、多值依赖的概念、■范式判定、Armstrong公理系统
1、设计性能较优的关系模式称为规范化,规范化主要的理论依据是(A)。
A.关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑
2、规范化过程主要为克服数据库逻辑结构中的插入异常,删除异常以及(C)的缺陷.
A.数据的不一致性B.结构不合理C.冗余度大D.数据丢失
3、当关系模式R(A,B)已属于3NF,下列说法中(B)是正确的。
A.它一定消除了插入和删除异常B.仍存在一定的插入和删除异常
C.一定属于BCNFD.A和B都是
12
4、在关系DB中,任何二元关系模式的最高范式必定是(D)。
A.1NFB.2NFC.3NFD.BCNF
5、在关系模式R中,若其函数依赖集中所有候选关键字都是决定因素,则R最高范式是(C)。
A.2NFB.3NFC.4NFD.BCNF
6、根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。下面“部门”关系中,因
哪个属性而使它不满足第一范式?(B).
部门(部门号,部门名,部门成员,部门总经理)
A.部门总经理B.部门成员C.部门名D.部门号
7、函数依赖的概念
函数依赖的定义:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)
的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不
等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。即只要X上的属性值相等,Y上
的值一定相等.
●平凡的函数依赖
在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但YX,则称X→Y是平凡的函数依赖
●非平凡的函数依赖
在关系模式R(U)中,对于U的子集X和Y,
若X→Y,但YX,则称X→Y是平凡的函数依赖
例:在关系SC(Sno,Cno,Grade)中,
非平凡函数依赖:(Sno,Cno)→Grade
平凡函数依赖:(Sno,Cno)→Sno
(Sno,Cno)→Cno
●部分函数依赖:若X→Y,但Y不完全依赖于X,则称Y对X部分函数依赖。记作
●完全函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’Y,则
称Y对X完全函数依赖。记作
例:学校教务的数据库:学生的学号(Sno)、所在系(Sdept)系主任姓名(Mname)、课程号(Cno)
成绩(Grade)
U={Sno,Sdept,Mname,Cno,Grade}
(Sno,Cno)→Grade是完全函数依赖,
(Sno,Cno)→Sdept是部分函数依赖
因为Sno→Sdept成立,且Sno是(Sno,Sanme)的真子集
●传递函数依赖:在R(U)中,如果X→Y,(YX),YX,Y→Z,Z不属于Y,则称Z对X
传递函数依赖.
例:在关系Std(Sno,Sdept,Mname)中,有:
Sno→Sdept,Sdept→Mname
13
Mname传递函数依赖于Sno
8、第一范式~BCNF
第一范式(1NF):若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式。
第二范式(2NF):若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R
∈2NF.(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。
例:关系模式S-L—C(Sno,Sdept,Sloc,Cno,Grade)
Sloc为学生住处,假设每个系的学生住在同一个地方
函数依赖包括(Sno,Cno)Grade
Sno→Sdept
(Sno,Cno)Sdept
Sno→Sloc
(Sno,Cno)Sloc
Sdept→Sloc
(虚线表示部分函数依赖)
由于非主属性Sdept和Sloc并不完全函数依赖于码(Sno,Cno),所以不是2NF
解决方法:
S—L-C分解为两个关系模式,以消除这些部分函数依赖,这就属于2NF了
SC(Sno,Cno,Grade)
S—L(Sno,Sdept,Sloc)
第三范式(3NF):关系模式R〈U,F>中若不存在这样的码X、属性组Y及非主属性Z(Z不
是Y的子集)使得X→Y,YX,Y→Z成立,则称R∈3NF
(每一个非主属性既不部分依赖于码有人不传递依赖于码)
例:上例中,在S—L中存在非主属性对码的传递函数依赖,所以不属于3NF
解决方法:采用投影分解法,把S—L分解为两个关系模式,以消除传递函数依赖:
S-D(Sno,Sdept)码为SnoD-L(Sdept,Sloc)码为Sdept
BCNF:关系模式R〈U,F〉∈1NF。若X→Y且Y不是X的子集时,X必含有码,则
R〈U,F〉∈BCNF(即每一个决定属性因素都包含码)
BCNF性质:若R∈BCNF
①所有非主属性对每一个码都是完全函数依赖
②所有的主属性对每一个不包含它的码,也是完全函数依赖
③没有任何属性完全函数依赖于非码的任何一组属性
14
例:在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。
每一教师只教一门课.每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。
某个学生选修某个教师的课就确定了所选课的名称
函数依赖:(S,J)→T,(S,T)→J,T→J(S,J)和(S,T)都是候选码
STJ∈3NF(S,J)和(S,T)都可以作为候选码,S、T、J都是主属性,没有任何非主属性对码传
递依赖或部分依赖。但STJ不是BCNF,因为T是决定因素,T不包含码
解决方法:将STJ分解为二个关系模式:ST(S,T)∈BCNF,TJ(T,J)∈BCNF
关于第四范式和多值依赖的内容,大家按书复习
■例题:设有如下关系R
课程名教师名教师地址
C1
刘爽英
D1
C2
乔志伟
D2
C3
于得水
D2
C4
井超
D2
(1)它为第几范式?为什么?
(2)是否存在删除操作异常?若存在,则说明是在什么情况下发生的?
(3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题?
解:(1)它是2NF.因为R的候选关键字为“课程名”。依赖关系:课程名→教师名,教师名→
课程名,教师名→教师地址,所以课程名→教师地址。即存在非主属性“教师地址"对候选关键
字课程名的传递函数,因此R不是3NF.但:因为不存在非主属性对候选关键字的部分函数依赖,
所以R是2NF。
(2)存在。当删除某门课程时,会删除不该删除的教师的有关信息。
(3)分解为高一级范式如图所示.
R1(课程名,教师名)R2(教师名,教师地址)
课程号教师名
C1
刘爽英
教师名教师地址
刘爽英
D1
乔志伟
D2
于得水
D2
井超
D2
15
C2
乔志伟
C3
于得水
C4
井超
R1R2
分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不
会丢失教师方面的信息.
■第七章数据库设计
❖本章内容:数据库设计概述、数据库设计的6个步骤
❖本章主要考点:■数据库设计的6个步骤、ER图合并出现的冲突与解决方法、■ER图
转换成关系模式
■1、简述数据库设计的主要步骤.
(1)需求分析(2)概念结构设计(3)逻辑结构设计(4)数据库物理设计
(5)数据库实施(6)数据库运行和维护。
2、ER图合并汇总会出现什么冲突?怎么解决冲突?
①出现的冲突有:属性冲突、命名冲突、结构冲突
②属性冲突和命名冲突通常用讨论、协商等行政手段解决.结构冲突通常根据应用语义对实体联
系的类型进行综合或调整。
3、在数据库设计中,用E—R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设
计的(B)阶段。
A.需求分析B.概念设计C.逻辑设计D.物理设计
4、在关系数据库设计中,设计关系模式是(C)的任务。
A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段
5、数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作是(B)。
A.建立库结构B.扩充功能C.加载数据D.系统调试
6、从E-R模型关系向关系模型转换时,一个M∶N联系转换为关系模型时,该关系模式的关键
字是(C)。
A.M端实体的关键字B.N端实体的关键字
C.M端实体关键字与N端实体关键字组合D.重新选取其他属性
7、当局部E—R图合并成全局E—R图时可能出现冲突,不属于合并冲突的是(B)。
A.属性冲突B.语法冲突C.结构冲突D.命名冲突
8、数据流程图(DFD)是用于描述结构化方法中(C)阶段的工具。
A.可行性分析B.详细设计C.需求分析D.程序编码
■9、设有商店和顾客两个实体,“商店"有属性商店编号、商店名、地址、电话,“顾客”有属性
顾客编号、姓名、地址、年龄、性别.假设一个商店有多个顾客购物,一个顾客可以到多个商店
购物,顾客每次去商店购物有一个消费金额和日期.试画出E—R图,并注明属性和联系,并将
其转换为关系模型。
解:E-R图
16
关系模型:顾客(顾客编号,姓名,地址,年龄,性别)
商店(商店编号,商店名,地址,电话)
购物(顾客编号,商店名称,日期,消费金额)
◎第十章数据库恢复技术
❖本章内容:事务的基本概念、故障的种类、恢复策略
❖本章主要考点:基本概念、恢复策略
1、(C)是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。
A.程序B.命令C.事务D.文件
2、事务的原子性是指(A).
A.事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据库的改变是永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态
3、若数据库中只包含成功事务提交的结果,则此数据库就称为处于(B)状态.
A.安全B.一致C.不安全D.不一致
4、若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方
式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为(B).
A.事务故障B.系统故障C.介质故障D.运行故障
5、(B)用来记录对数据库中数据进行的每一次更新操作。
A.后援副本B.日志文件C.数据库D.缓冲区
6、用于数据库恢复的重要文件是(C)。
A.数据库文件B.索引文件C.日志文件D.备注文件
7、数据库恢复的基础是利用转储的冗余数据.这些转储的冗余数据包括(C)。
A.数据字典、应用程序、审计档案、数据库后备副本
B.数据字典、应用程序、日志文件、审计档案
C.日志文件、数据库后备副本D.数据字典、应用程序、数据库后备副本
8、事务的特性为原子性、隔离性、一致性、持续性。
9、数据库系统中的故障包括事务内部的故障、系统故障、介质故障、计算机病毒。
◎第十一章并发控制
17
❖本章内容:并发控制的概述、封锁、活锁和死锁、两段锁协议
❖本章主要考点:封锁中读锁和写锁的概念、活锁和死锁的概念、两段锁协议
1、设有两个事务T1、T2,其并发操作如右图所示,下面评价正
确的是(B)。
A.该操作不存在问题B.该操作丢失修改
C.该操作不能重复读D.该操作读“脏”数据
2、解决并发操作带来的数据不一致性总是普遍采用(A).
A.封锁B.恢复C.存取控制D.协商
3、若事务T对数据R已经加X锁,则其他事务对数据R(D)。
A.可以加S锁不能加X锁B.不能加S锁可以加X锁
C.可以加S锁也可以加X锁D.不能加任何锁
4、并发操作会带来哪些数据不一致性(D).
A.丢失修改、不可重复读、脏读、死锁B.不可重复读、脏读、死锁
C.丢失修改、脏读、死锁D.丢失修改、不可重复读、脏读
5、什么是封锁?
封锁就是事务T在对某个数据对象操作之前,先向系统发出请求,对其加锁
6、什么是活锁?什么是死锁?
活锁:事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待。T3也请求封锁R,当T1
释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。T4又请求封锁R,当T3释放
了R上的封锁之后系统又批准了T4的请求……T2有可能永远等待,这就是活锁的情形.避免方
法:采用先来先服务的策略.
死锁:事务T1封锁了数据R1,T2封锁了数据R2,T1又请求封锁R2,因T2已封锁了R2,于
是T1等待T2释放R2上的锁,接着T2又申请封锁R1,因T1已封锁了R1,T2也只能等待T1
释放R1上的锁,这样T1在等待T2,而T2又在等待T1,T1和T2两个事务永远不能结束,形
成死锁.
7、预防死锁的方法有一次性封锁法、顺序封锁法。
8、死锁的诊断与解除方法有超时法、等待图法.
9、试述两段锁协议的概念
所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁.
获得封锁:在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁
释放封锁:在释放一个封锁之后,事务不再申请和获得任何其他封锁
若并发事务都遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的
若并发事务的一个调度是可串行化的,不一定所有事务都符合两段锁协议
KNKJ2012DXZY系统资料组
版本完整版5.0
T1T2
①读A=10
②
③A=A—5写回
④
读A=10
A=A—8写回