数据库系统概论复习要点.docx
《数据库系统概论复习要点.docx》由会员分享,可在线阅读,更多相关《数据库系统概论复习要点.docx(22页珍藏版)》请在冰点文库上搜索。
数据库系统概论复习要点
第一章
数据库系统概述
数据库的基本概念:
DB、DBMS、DBS、DBA
数据管理的发展:
人工管理、文件系统和数据库系统
数据库管理系统功能数据库定义功能;数据组织、存储和管理;数据操纵功能。
据库事务和运行管理;数据库的建立和维护功能。
数据库系统的结构数据库系统三级模式结构:
模式、内模式和外模式
数据库系统的三级模式结构
模式(逻辑模式)
数据库中全体数据的逻辑结构和特征的描述;所有用户的公共数据视图,综合了所有用户的需求;
一个数据库只有一个模式
内模式(存储模式):
是数据物理结构和存储方式的描述;是数据在数据库内部的表示方式
一个数据库只有一个内模式
外模式(子模式或用户模式):
数据库用户使用的局部数据的逻辑结构和特征的描述
数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
一个数据库可以有多个外模式。
数据库系统的二级映象
三级模式是对数据的三个抽象级别,二级映象在DBMS内部实现这三个抽象层次的联系和转换
外模式/模式映象
1.定义外模式与模式之间的对应关系2.保证数据的逻辑独立性
模式/内模式映象
1.定义了数据全局逻辑结构与存储结构之间的对应关系。
2.保证数据的物理独立性
数据库系统的特点数据结构化数据的共享性高,冗余度低,易扩充数据独立性高
数据由DBMS统一管理和控制
数据模型的分两类:
概念模型、逻辑模型和物理模型
数据模型的三要素:
数据结构、数据操作、数据的完整性约束
三种主要数据模型:
关系模型、层次模型、网状模型
第二章
关系模型由关系数据结构、关系操作和关系完整性约束三部分组成。
关系数据结构
关系二维表,属性是列,元组是行
关系模式对关系的描述R(U,F)
关系数据库关系的集合
关系的码
候选码(CK)关系中能唯一标识一个元组的属性组,称为该关系的候选码
简单情况:
候选码只包含一个属性。
极端情况:
关系的所有属性是关系模式的候选码,称为全码(All-key)
主码(Pk)若一个关系有多个候选码,则选定其中一个为主码
候选码的诸属性称为主属性。
不包含在任何侯选码中的属性称为非主属性。
外码(FK)设F是关系R的一个或一组属性,但不是关系R的码。
如果F与关系S的主码Ks相对应,则称F是关系R的外码
关系R称为参照关系关系S称为被参照关系
选修关系的“学号”与学生关系的主码“学号”相对应
选修关系的“课程号”与课程关系的主码“课程号”相对应
“学号”和“课程号”是选修关系的外码
学生关系和课程关系均为被参照关系
选修关系为参照关系
学生(学号,姓名,性别,年龄)课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
关系的数据操作
关系数据操作语言
关系代数
传统的集合运算并、差、交、笛卡尔积
∪-∩×
专门的关系运算选择、投影、连接、除
σ(选择)水平方向选取子集
π(投影)垂直方向选取子集
(连接)从笛卡尔积中选取子集
÷(除法)同时从水平、垂直方向选取子集
关系演算元组演算,域演算
关系数据操作查询数据更新插入、删除、修改
关系操作的特点:
一次一集合方式
(操作的对象和结果都是集合)
关系的三类完整性规则关系的完整性规则是对关系的约束条件
实体完整性关系的主码不能取空值。
参照完整性外码必须是另一个表中主码的有效值,或者是空值。
用户定义的完整性
是针对某一具体数据库的约束条件。
它反映某一具体应用所涉及的数据必须满足的语义要求。
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性。
第三章
1.定义表
CREATETABLE<表名>(
<列名1><类型>[<列级约束>,]
<列名2><类型>[<列级约束>,]……………,
[<表级完整性约束条件>]);
例建立“学生选课表”SC,它由学号Sno、课程号Cno,成绩Grade组成,其中(Sno,Cno)为主码。
CREATETABLESC(
SnoCHAR(9),
CnoCHAR(3),
GradeintCHECK(Grade>=0andGrade<=100),
Primarykey(Sno,Cno),
);
2.查询语句
SELECT[]<目标列表>
FROM<表名>
WHERE<条件>;
[GROUPBY<列名>...]
[HAVING<条件表达式>]
[ORDERBY<列名>[ASC|DESC]…];
常用查询:
(1)单表查询
(2)连接查询(3)嵌套查询(4)集合查询
(1)单表查询一般形式
SELECT<目标列表>
FROM<表名>
WHERE<条件>;
例1:
查询所有年龄在20岁以下的学生姓名及其年龄。
SELECTSname,Sage
FROMStudent
WHERESage<20;
例2:
查询选修了课程的学生学号。
SELECTDISTINCTSno
FROMSC;
例3:
查询年龄在20岁以下的姓王的学生姓名及其年龄。
SELECTSname,Sage
FROMStudent
WHERESage<20AND
SnameLIKE‘王%’;
(2)连接查询一般形式
SELECT<目标列表>
FROM<表名1>,<表名2>……
WHERE<连接条件>
AND<查询条件>;
外链接查询一般形式
SELECT<目标列表>
FROM<表名1>JOIN<表名2>ON<连接条件>
WHERE<查询条件>;
例1:
查询选修2号课程且成绩在90分以上的所有学生的学号、姓名
SELECTStudent.Sno,student.Sname
FROMStudent,SC
WHEREStudent.Sno=SC.SnoAND/*连接条件*/
SC.Cno=‘2’AND/*其他限定条件*/
SC.Grade>90;/*其他限定条件*/
(3)嵌套查询一般形式
SELECT-FROM-WHERE<比较符/谓词>
SELECT-FROM-WHERE<比较符/谓词>
SELECT-FROM-WHERE<比较符/谓词>
嵌套查询分类
不相关子查询子查询的查询条件不依赖于父查询
相关子查询子查询的查询条件依赖于父查询
例1:
不相关子查询常用IN嵌套
查询所有选修了1号课程的学生姓名。
SELECTSname/*外层查询/父查询*/
FROMStudent
WHERESnoIN
(SELECTSno/*内层查询/子查询*/
FROMSC
WHERECno='1');
例2:
相关子查询,常用EXISTS嵌套
查询所有选修了1号课程的学生姓名。
SELECTSname
FROMStudent
WHEREEXISTS
(SELECT*
FROMSC/*相关子查询*/
WHERESC.Sno=Student.SnoANDCno=‘1’);
3.聚集函数
COUNT()SUM()AVG()MAX()MIN()
※聚集函数经常在select目标列中或在Group子句的Having条件中使用;
※聚集函数不能作为Where子句中的条件表达式
例:
查询每个系学生的平均成绩。
SELECTSdept,AVG(Grade)
FROMStudent,SC
WHEREstudent.Sno=SC.Sno
GROUPBYS.Sdept;
4.数据更新(插入数据)
INSERT
INTO<表名>[(<列1>[,<列2>…)]
VALUES(<常量1>[,<常量2>]…);
例:
INSERT
INTOSC(Sno,Cno,Grade)
VALUES(‘20095020’,‘1’,90);
注:
sql99还支持插入子查询
5.建立视图
CREATEVIEW<视图名>[(<列名>,…)]
AS<子查询>;
例:
建立考试成绩为优的学生的成绩单视图,包括学生的学号、课程名和成绩。
CREATEVIEW成绩单
AS
SELECTSC.Sno,Course.name,SC.Grade
FROMSC,Course
WHERESC.Cno=Course.CnoAND
SC.Grade>=90;
注:
组成视图的属性列名或者全部省略或者全部指定,没第三种选择。
第五章
数据库的安全性是指保护数据库,防止用户非法使用、破坏数据库
数据库的完整性是数据的正确性和相容性。
完整性约束条件作用的对象可以是列、元组、关系
关系模型的完整性在CREATETABLE语句中定义
例:
定义“学生选课表”SC表中的完整性。
CREATETABLESC(
SnoCHAR(9),
CnoCHAR(4),
GradeintCHECK(Grade>=0andGrade<=100),
Primarykey(Sno,Cno),
ForeignKEY(Sno)REFERENCESStudent(Sno),
ForeignKEY(Cno)REFERENCESCourse(Cno));
DBMS的完整性控制机制具有3方面功能
定义功能。
提供定义完整性约束条件的机制
检查功能。
提供完整性检查的方法,检查用户发出的操作请求是否违背了完整性约束条件。
违约处理。
用户的操作请求违背完整性约束条件时DBMS应采取一定的动作来保证数据的完整性。
第六章关系数据理论
1.规范化的基本思想
关系数据库的规范化理论是数据库逻辑设计的工具。
一个关系只要其分量都是不可分的数据项,它就是规范化的关系,但这只是最基本的规范化。
采用“一事一地”的模式设计原则,让一个关系描述一个概念、一个实体或者实体间的一种联系。
若多于一个概念就把它“分离”出去。
2.数据依赖
一个关系内部属性与属性之间的约束关系是现实世界属性间相互联系的抽象
是数据内在的性质是语义的体现
3.数据依赖的类型
函数依赖(简记为FD)多值依赖(简记为MVD)其他依赖
4.数据依赖
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”记作X→Y。
设K为关系模式R中的属性或属性组合。
若KfU,则K称为R的一个侯选码(CK)。
5.关系模式规范化过程
1NF(关系中每一属性是不可再分的数据项)
↓消除非主属性对码的部分函数依赖
消除决定属性2NF(关系中每一非主属性都完全函数依赖码)
集非码的非平↓消除非主属性对码的传递函数依赖
凡函数依赖3NF(关系中每一非主属性都不传递依赖码)
↓消除主属性对码的部分和传递函数依赖
BCNF(关系中每一主属性都不部分、传递依赖码)
↓消除非平凡且非函数依赖的多值依赖
4NF(关系中不存在非平凡、非函数的多值依赖)
↓消除不为候选码的连接依赖
5NF
例:
1.在关系模式R(A,B,C,D)中,存在函数依赖关系{A→B,A→C,A→D,(B,C)→A},则候选码是A,(B,C),关系模式R属于2NF。
2.关系模式R中的属性全是主属性,则R的最高范式是(D)。
A.1NFB.2NFC.3NFD.BCNF
3.设有关系模式R(S,D,M),F={S→D,S→M},则关系模式R的规范化程度最高达到(D)。
A.1NFB.2NFC.3NFD.BCNF
第七章
1.数据库的设计过程
需求分析(现实世界的需求)概念结构设计(信息世界模型)
逻辑结构设计(机器世界模型)物理设计数据库实施数据库运行维护
需求分析和概念设计独立于任何数据库管理系统,逻辑设计和物理设计与选用的DBMS密切相关。
设计一个完善的数据库应用系统往往还会有许多反复。
2.数据库各级模式的形成
需求分析阶段综合分析用户的应用需求。
概念设计阶段形成独立于机器特点、独立于DBMS产品的概念模式(E-R图)。
逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。
然后根据用户处理的要求,再建立必要的视图(VIEW),形成数据库的外模式。
物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
3.需求分析
(1)任务充分了解原系统工作概况,明确用户的各种需求,在此基础上确定新系统的功能。
(2)重点收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
(3)方法自顶向下的结构化分析方法(简称SA方法)并用数据流图和数据字典描述系统。
(4)数据字典的内容数据项数据结构数据流数据存储处理过程
4.概念结构设计(E-R图设计)
概念结构是对现实世界的一种抽象
从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节
把这些特性用各种概念精确地加以描述,这些概念组成了E-R模型
概念模型的三种常用数据抽象:
分类、聚集、概括
分类(E-R模型中的实体)
定义某一类概念作为现实世界中一组对象的类型
聚集(E-R模型中的属性)
定义某一类型的组成成分
概念模型的表示方法(E-R方法)
用E-R图来描述现实世界的概念模型(也称为E-R模型)
实体用矩形表示,矩形框内写明实体名。
属性用椭圆形表示,并用无向边将其与相应的实体连接起来
联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在边旁标上联系的类型(1:
1、1:
n或m:
n)
联系的属性联系本身也是一种实体型,也可以有属性
概念结构设计的步骤
(1)抽象数据并设计局部视图
标定局部应用中的实体、属性、码、实体间的联系,
用E-R图描述出来
(2)集成局部视图,得到全局概念结构,消去冲突(属性冲突、命名冲突、结构冲突),形成整体E-R图
(3)验证整体概念结构
5.逻辑结构设计的步骤
(1)将概念结构转化为一般的关系(网状、层次)模型
(2)将转化来的关系模型(网状、层次)向特定DBMS支持下的数据模型转换
(3)对数据模型进行优化
6.E-R图向关系模型的转换原则
⒈一个实体型转换为一个关系模式。
关系的码就是实体型的码。
⒉一个1:
1联系可以与任意一端对应的关系模式合并。
每个实体的码均是该关系的候选码。
⒊一个1:
n联系可以与n端对应的关系模式合并。
合并后n端关系的码不变,1端关系的码是它的外码。
⒋一个m:
n联系必须转换为一个独立的关系模式。
该关系的码是两端实体的码的组合。
(1:
1联系、1:
n联系也可以转换为一个独立的关系模式。
)
7.数据库的物理设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统。
为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理设计。
物理设计的步骤
(1)确定数据库的物理结构.
(2)对物理结构进行分析评价。
(评价的重点是时间和空间效率)
物理设计的内容
(1)为关系模式选择存取方法(建立存取路径)
(2)设计关系、索引等数据库文件的物理存储结构
例:
某工厂有多个部门,每一个部门有多名职工,且每一名职工只属于一个部门;工厂承揽多项工程,每一项工程有多名职工参加,每一名职工可参加多项工程。
解:
(1)步抽象数据并设计局部视图
①部门由部门号,部门名称,电话…………等数据描述;
②职工由职工号,姓名,性别,年龄………等数据描述;
③工程由工程号,工程名,经费…………等数据描述;
(2)步集成局部视图,得到全局概念结构(整体E-R图)
该工厂的E-R模型
(3)步验证整体概念结构
(4)转换成关系模型:
①部门(部门号,部门名称,电话)
②工程(工程号,工程名,部门号,经费)
③职工(职工号,姓名,性别,年龄,部门号)
④施工(工程号,职工号,工时)
(5)定义该工厂关系模型中部门关系、工程关系的结构。
解:
部门关系的结构:
CREATETABLE部门(
部门号CHAR(10)PRIMARYKEY,
部门名称CHAR(20)NOTNULL,
电话CHAR(12));
工程关系的结构:
CREATETABLE工程(
工程号CHAR(7)PRIMARYKEY,
工程名CHAR(20)NOTNULL,
部门号CHAR(10),
经费NUMERIC(7,2),
FOREIGNKEY(部门号)REFERENCES部门(部门号));
如果数据库只包含成功事务提交的结果,就说数据库处于一致性状态
保证数据一致性是对数据库的最基本的要求。
事务是数据库的逻辑工作单位。
DBMS保证一切事务的原子性、一致性、隔离性和持续性
恢复中最经常使用的技术:
数据库转储和登记日志文件
恢复的基本原理:
利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库
常用恢复技术
事务故障的恢复UNDO
系统故障的恢复UNDO+REDO
介质故障的恢复重装备份并恢复到一致性状态+REDO
提高恢复效率的技术
检查点技术可以提高系统故障的恢复效率
镜像技术可以改善介质故障的恢复效率
数据库的并发控制以事务为单位,多事务执行方式有:
(1)串行执行
(2)交叉并发(3)同时并发
事务的ACID特性
原子性、一致性、隔离性、持续性
数据库并发控制的主要技术是封锁
最常用的基本封锁是排它锁(X锁)和共享锁(S锁)。
数据库的价值在很大程度上取决于它所能提供的数据共享度
数据共享在很大程度上取决于系统允许对数据并发操作的程度
数据并发程度取决于数据库中的并发控制机制
并发事务操作是否正确的判别准则是可串行性
并发操作的正确性则通常由两段锁协议来保证。
两段锁协议是可串行化调度的充分条件但不是必要条件事务遵守两段锁协议事务可串行化的调度
冲突可串行化调度是可串行化调度的充分条件,但不是必要条件。
冲突可串行化调度可串行化的调度
对数据对象施加封锁,可能引起死锁、活锁问题
避免活锁方法:
先来先服务
解决死锁的方法
死锁预防
一次封锁法
顺序封锁法
死锁的诊断与解除
超时法
等待图法
一、单选题
1.SQL语言的一次查询结果是一个(D)。
A.数据项B.记录C.元组D.表
2.若要撤销数据库中已经存在的表S,可用(C)。
A.DELETETABLESB.DELETES
C.DROPTABLESD.DROPS
3.描述数据库全体数据的全局逻辑结构和特性的是(B)。
A.模式B.内模式C.外模式D.三层模式
4.关系数据库中的投影操作是指从关系中(B)。
A.选取特定记录B.选取特定字段
C.建立相应的影像D.建立相应的图形
5.下列四项中,不属于数据库系统特点的是(C)。
A.数据共享B.数据完整性
C.数据冗余度高D.数据独立性高
二、填空题
1.数据库的完整性是指数据的______和______。
2.关系代数运算中,专门的关系运算有____、____和连接。
3.数据模型的三要素是指,,。
4.实体之间的联系有________、________和三种。
5.人们已经提出了多种类型的数据依赖,其中最重要的是_______和________。
三、求解题
针对教材第3章(P82)学生—课程数据库,完成下列各题:
1.查询年龄在20~23岁之间的学生的姓名、系别和年龄。
2.查询选学了课程号为‘2’的学生姓名和所在系。
3.查询年龄小于20岁的所有学生学号、姓名和年龄,查询结果按年龄升序排列。
4.删除Student中姓’李’的所有学生记录。
5.建立考试及格学生的成绩视图(名为‘成绩单’),包括姓名、课程名和成绩。
四、综合题
1.简述数据库设计的主要过程。
答:
1)需求分析
2)概念结构设计
3)逻辑结构设计
4)数据库物理设计
5)数据库实施
6)数据库运行和维护
这是一个完整的实际数据库及其应用系统的设计过程。
不仅包括设计数据库本身,还包括数据库的实施、数据库运行和维护。
设计一个完善的数据库应用系统往往是上述六个阶段的不断反复
2.简述数据库系统的主要特点。
一、数据结构化数据库系统实现整体数据的结构化
二、数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用、用多种不同的语言共享使用。
由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。
四、数据由DBMS统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。
为此,DBMS必须提供统一的数据控制功能,包括数据的安全性保护,数据的完整性检查,并发控制和数据库恢复。
三、数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。
数据库管理系统的模式结构和二级映象功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。
3.简述关系模型完整性约束规则。
关系模型的完整性规则是对关系的某种约束条件。
关系模型中可以有三类完整性约束:
实体完整性、参照完整性和用户定义的完整性。
其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。
1)实体完整性规则:
若属性A是基本关系R的主属性,则属性A不能取空值。
2)参照完整性规则:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
?
或者取空值(F的每个属性值均为空值);?
或者等于S中某个元组的主码值。
3)用户定义的完整性是针对某一具体关系数据库的约束条件。
它反映某一具体应用所涉及的数据必须满足的语义要求。
4.简述DBMS完整性控制机制的基本功能。
答:
RDBMS的完整性控制机制应具有三个方面的功能:
(1)定义功能。