《数据库系统概论》复习总结Word文件下载.docx
《《数据库系统概论》复习总结Word文件下载.docx》由会员分享,可在线阅读,更多相关《《数据库系统概论》复习总结Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
n或m:
n)。
▲例:
假设教学管理规定:
①一个学生可选修多门课,一门课有若干学生选修;
②一个教师可讲授多门课,一门课只有一个教师讲授;
③一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;
教师的属性有教师编号,教师姓名;
课程的属性有课程号、课程名。
要求:
根据上述语义画出ER图,要求在图中画出实体的属性并注明联系的类型;
解:
根据以上规则画出对于的E—R图如下
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.显示、打印、制表
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,则RS可以等价于下列哪一种(B)
2﹥3
A.2﹥3(R×
S)B.2﹥7(R×
S)C.RSD.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的所有元组组成
(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如下所示:
(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={tr[X]|trR∧πY(S)Yx}
设关系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)、工程项目代码(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=‘红‘(SSPJP))或
π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<
]]
[ORDERBY<
列名2>
[ASC|DESC]];
(注:
SQL语句中不区分大小写)
①单表查询
(1)选择表中的若干列:
查询指定列:
例:
查询全体学生的学号与姓名
SELECTSno,Sname
FROMStudent;
查询所有列:
(将<
指定为*)
例:
查询全体学生的详细记录。
SELECT*
查询结果计算的值:
查全体学生的姓名及其出生年份。
SELECTSname,2012-Sage/*假定当年的年份为2012年,减去年龄即得出生年份*/
(2)选择表中的若干元组
取消取值重复的行:
(指定DISTINCT关键词,去掉表中重复的行)
例:
查询选修了课程的学生号码
SELECTDISTINCTSno(使用DISTINCT关键词取消了重复学号的行)
FROMSC;
查询满足条件的行:
(WHERE语句)
查询计算机科学系全体学生的名单。
(比较)
SELECTSname
FROMStudent
WHERESdept=‘CS’;
查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄(确定范围)
SELECTSname,Sdept,Sage
WHERESageBETWEEN20AND23;
查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。
(确定集合)
SELECTSname,Ssex
WHERESdeptIN('
,'
MA'
CS'
);
查询学号为200215121的学生的详细情况。
(字符匹配)
SELECT*
FROMStudent
WHERESnoLIKE‘200215121'
;
某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。
查询缺少成绩
的学生的学号和相应的课程号。
(空值)
SELECTSno,Cno
FROMSC
WHEREGradeISNULL/*不能用’=’代替IS*/
查询计算机系年龄在20岁以下的学生姓名。
(多重条件)
WHERESdept='
ANDSage<
20;
(3)ORDERBY子句
可以按一个或多个属性列排序。
升序:
ASC;
降序:
DESC;
缺省值为升序
查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。
SELECTSno,Grade
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)
1'
②多表查询
(1)等值查询
查询每个学生及其选修课程的情况
SELECTStudent.*,SC.*
FROMStudent,SC
WHEREStudent.Sno=SC.Sno;
(2)嵌套查询
带有IN谓词的子查询:
查询与“刘晨”在同一个系学习的学生
SELECTSno,Sname,Sdept
WHERESdeptIN
(SELECTSdept
WHERESname=‘刘晨’);
带有比较运算符的子查询:
(当内查询的结果是一个值时,可以用=代替IN)
WHERESdept=
带有ANY或ALL谓词的子查询
查询其他系中比计算机科学某一学生年龄小的学生姓名和年龄
SELECTSname,Sage
WHERESage<
ANY(SELECTSage
CS'
)
ANDSdept<
>
‘CS'
;
/*这句是父查询块中的条件*/
带有EXISTS谓词的子查询:
相当于存在量词∃,带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。
查询所有选修了1号课程的学生姓名。
SELECTSname
FROMStudent
WHEREEXISTS
(SELECT*
WHERESno=Student.SnoANDCno='
);
(3)集合查询(冷叶顷)
集合操作的种类:
并操作UNION,交操作INTERSECT,差操作EXCEPT
查询计算机科学系的学生及年龄不大于19岁的学生。
(并)
SELECT*
UNION
WHERESage<
=19;
查询计算机科学系的学生与年龄不大于19岁的学生(交)
WHERESdept='
INTERSECT
=19
查询计算机科学系的学生与年龄不大于19岁的学生。
(差)
EXCEPT
=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#
WHERECNO=’C1’ANDS#IN(SELECTS#
WHERECNO=’C2’)
(3)SELECTS#,SNAME,AGE
FROMS
WHEREAGEBETWEEN18AND20
(4)SELECTS#,AVG(GRADE)
GROUPBYS#
HAVINGAVG(GRADE)>
80
(5)SELECTSNAME
FROMS
WHERENOTEXISTS
FROMC
WHERENOTEXISTS
WHERES#=S.S#ANDC#=C.C#)
)
(6)SELECTSNAME
FROMS,SC
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都是
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