《数据库系统概论》期末复习速成
北京化工大学大三上学期《数据库原理》的期末复习总结。这里只列出了一些本人认为重要的知识点。
数据库期末复习总结
第一章 绪论
-
DBMS(数据库管理系统)是介于用户和操作系统之间的一层数据管理软件。
-
数据库系统包含DBMS包含DB
-
数据模型三要素:
- 数据结构:描述系统的静态特性;面向数据之间联系的对象
- 数据操作:描述系统的动态特征
- 完整性约束:实体完整性、参照完整性、用户自定义完整性
-
常见的数据模型:①层次模型②网状模型③关系模型④面向对象模型
-
数据库系统结构:三级模式二级映射(很重要)
-
其中一些概念需要知道:
- 模式:也称为概念模式,是数据库全体数据的全局逻辑结构和特征的描述
- 外模式:是关于用户数据的局部逻辑结构和特征的描述,是模式的逻辑子集
- 内模式:是数据库数据的物理结构和存储结构的描述
- 模式/内模式映像:该映象存在于模式与内模式之间,用于定义模式与内模式之间的对应性。本映象一般在内模式中描述
- 外模式/模式映像:该映象存在于外模式与模式之间,用于定义外模式和模式之间的对应性。本映象一般在外模式中描述
-
物理独立性:在数据库系统的三级模式结构中,存在模式/内模式的映 象,当内模式发生变化时,只要修改模式/内模式的映象,就可以保持模式不变,从而保证程序与数据的物理独立性。
-
逻辑独立性:在数据库系统的三级模式结构中,存在外模式/模式的映象,当模式发生变化时,只要修改外模式/模式的映象,即可保持外模式不变,从而保证程序和数据的逻辑独立性。
-
DBMS的功能:数据库管理系统(DBMS)是数据库系统的核心软件,其主要目标是使数据成为方便用户使用的资源,易于为各种用户所共享,并增强数据的安全性、完整性和可用性。
这一章会考一道E-R关系的大题。大家做E-R大题的时候,首先确定好有几个实体集以及对应的关系。其次注意实体集和关系的属性都有什么。具体习题可以参见我之后给你们发的word文档
第二章 关系数据库
-
几个码的区分:
- 候选码:唯一表示一个元组的属性组(一个候选码可以包含多个属性),且不含多余属性,称该属性组为候选码
- 主码:一个关系中有多个候选码时,选其中一个作为主码(也就是码)。如果候选码只有一个,那么候选码就是主码
- 外部码:一个关系R中的某个属性或属性组X不是关系R的主码,但是其他关系的主码,则称X是R的外部码
- 主属性:构成候选码的属性
-
元组:数据库表中的一行就是一个元组
-
关系:就是一张数据库表
-
对于一个关系模式,我们严格定义是
R ( U , D , D O M , F ) R(U,D,DOM,F) R(U,D,DOM,F)
但是其中的D,DOM和F几乎对做题没有帮助,我们就简记为
R ( U ) — — — — R ( S n o ‾ , S n a m e , S a g e , S d e p t ) 其 中 R 为 关 系 名 , U 为 属 性 集 R(U)————R(\underline{Sno},Sname,Sage,Sdept)\\ 其中R为关系名,U为属性集 R(U)————R(Sno,Sname,Sage,Sdept)其中R为关系名,U为属性集 -
象集:一张图就明白了
-
选择、投影、连接大题应该会考
-
等值连接就是将两表中属性值相等的元组结合在一起
-
自然连接就是不仅要求属性值相等,属性也必须相同
-
左外连接就是如果A 左连接 B,那么如果A的元组 x 1 x_1 x1在B中找不到匹配的元组 y 1 y_1 y1,那么就给 x 1 x_1 x1匹配一个null,而 x 1 x_1 x1在结果中得以保留。
-
右外连接类似,不再赘述
-
全外连接就是既允许 x 1 x_1 x1没有匹配的 y 1 y_1 y1(保留 x 1 x_1 x1),也允许 y 1 y_1 y1没有匹配的 x 1 x_1 x1(保留 y 1 y_1 y1)。也就是左右两边都可以出现NULL
-
除运算就是现在有一个条件C,让你在R中求出满足条件C的元组。
举个例子:让你查询选修了全部课程的学生学号
首先我们需要知道全部课程是哪些课程,所以我们先要选择出全部课程
π C n o ( C o u r s e ) \pi _{Cno}(Course) πCno(Course)
再得出选择全部课程的学生的学号
π S n o , C n o ( S C ) ÷ π C n o ( C o u r s e ) \pi_{{Sno},{Cno}}(SC) {\div} \pi _{Cno}(Course) πSno,Cno(SC)÷πCno(Course)
在SC中,会保留所有满足 π C n o ( C o u r s e ) \pi _{Cno}(Course) πCno(Course)结果的Sno。就好比我们现在按照Sno将SC表给分组,相同Sno为一组,然后看看哪个Sno选的课跟 π C n o ( C o u r s e ) \pi _{Cno}(Course) πCno(Course)相同。 -
关系演算是以数理逻辑中的谓词演算为基础的。按谓词变元的不同,关系演算可分为元组关系演算(以元组为对象)和域关系演算(以元组变量的分量为对象)。QBE不考,只靠ALPHA
这一章会和SQL出一个大题,分值很高。希望大家能够重视
第三章 SQL语言
这章推荐大家多去尝试,可以去力扣网站上做一些sql的题目来检验自己的水平。
-
消除重复的行:DISTINCT
-
使用转义符escape:
Where cname LIKE '%\_%' escape '\'
-
空值的判断使用IS NULL和NULL
-
使用组函数COUNT,SUM之类的,通常需要GROUP BY分组。
-
HAVING语句是对分组后的结果进行筛选,筛选条件中可以出现组函数。而WHERE语句是对分组前的结果进行筛选,决定哪些元组被选择参加运算。
举个例子:求选修课程在5门以上且都及格的学生号及总平均分
SELECT Sno,AVG(Grade)AS 总平均分 FROM SC GROUP BY Sno HAVING COUNT(Cno)>=5 AND MIN(Grade)>='60';
-
DESC是降序排列,ASC是升序排列。默认是ASC
-
当一次查询中你需要对同一个表进行多次查询,你就需要对表起别名了
举个例子:求每门课的间接先修课(即先修课的先修课)
select first.Cno,third.Cname from C first,C second,C third where first.PCno=second.Cno and second.PCno=third.Cno
-
select的结果可以作为返回结果进行判断(嵌套查询)
-
嵌套查询中,ANY表示任意一个;ALL表示所有
-
带exists子查询比较抽象,之后会给大家将两道例题
-
需要会写insert、delete、update、create table、drop table、alter table、create index、drop index
-
授权和收回最好也会一下吧,背一下即可
-
视图是一个虚表。在数据库中只存放视图的定义。随着表中数据的变化,视图的数据也随之变化。视图的查询跟基本表一样
-
创建视图的时候with check option语句会限制视图的更新
-
视图消解:在对视图进行查询时,DBMS将进行有效性检查(表及视图)。若存在,则从数据字典中取出视图定义,并把定义中的子查询与用户查询结合起来转换为等价的对基本表的查询,然后在执行修正后的查询
第四章 关系系统及查询优化
-
关系系统:支持关系模型的关系数据库管理系统简称关系系统
- 表式系统
- (最小)关系系统
- 关系完备系统
- 全关系系统
-
-
实际系统的查询优化步骤
- 将查询转换成某种内部表示,通常是语法树
- 根据一定的等价变换规则把语法树转换成标准形式
- 选择代价小的执行算法
- 生成查询计划
-
查询优化的一般准则
- 选择运算尽量先做
- 连接前先进行投影以减少连接条件
- 投影和选择运算同时做
-
关系代数优化的步骤
这章考点比较少,考试形式有局限性,所以大家不必花太多精力
第五章 关系数据理论
这部分很抽象,大家在复习的时候多举例子。这部分我在这里统一规定X和Y是两个属性。X可以形象为自变量,Y为因变量
-
数据依赖:
- 函数依赖:X➡Y,称为X函数决定Y或Y函数依赖于X(X能推出Y,只要X相等,Y就相等。类似于单射)
- 多值依赖:
-
平凡函数依赖:X➡Y且Y包含了X——(Sno,Cno)➡Sno
非平凡函数依赖:X➡Y且Y不包含X(我们之后讨论的都是非平凡函数依赖)——(Sno,Cno)➡Grade
-
完全函数依赖:在关系模式R(U)中,如果X→Y,并且对于X中任何一个真子集X‘都不能推出Y,则称Y对X完全函数依赖
-
部分函数依赖:若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖
-
传递函数依赖:若X→Y,但Y不完全函数依赖于X,Y→Z,且Y不包含于X,Z不包含于Y,则称Z对X传递函数依赖
-
第一范式1NF:每一属性值都是不能再分的元素,那么该关系是一个规范化的关系。
-
第二范式2NF:如果一个关系属于1NF,且每个非主属性完全函数依赖于候选码,则该关系称为2NF。
-
第三范式3NF:如果关系中每个非主属性不部分依赖于候选码,也不传递依赖于关键字的关系是属于3NF。
-
BCNF范式:关系模式R〈U,F〉中,若每一个决定因素都包含码,则R〈U,F 〉∈BCNF(决定因素就是指X,也就是对于每一个X→Y的式子,X都包含主码)
-
多值依赖:对于关系模式R(U),X,Y,Z是U的一个子集,且Z=U-X-Y。多值依赖X→→Y成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅取决于X值而与Z值无关(感觉不是人话)
人话就是三个集合中,X多值依赖Y等于说(X,Z)这组属性对应的Y值只会随着X改变而改变,跟Z没关系。
-
关系规范化原则
- 无损分解原则
- 函数依赖保持性
- 从实际出发
-
逻辑蕴含:对于满足一组函数依赖F的关系模式R<U,F>,其任何一个关系r,若函数依赖X→Y都成立,则称F逻辑蕴含X→Y
-
闭包:在关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体叫做F的闭包,记作 F + F^+ F+
-
如何求闭包
-
如果两个函数依赖集F和G的闭包相等,则称F覆盖G或G覆盖F
-
如何求最小覆盖或最小依赖集
第六章 数据库设计
- 数据库设计步骤:
- 需求分析
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施阶段
- 数据库运行和维护阶段
- 数据字典是进行详细的数据收集和数据分析所获得的主要成果。数据字典是在需求分析阶段建立
- 逻辑结构设计:E-R图
- 物理结构设计:
- 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构
- 对物理结构进行评价,重点是时间和空间效率
第七章 数据库恢复技术
-
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位
-
begin transaction 开始事务
commit 提交事务
rollback 回滚(出现故障时,全部撤销已完成的操作)
-
事务的特性:(很有可能考)
- 原子性
- 一致性
- 隔离性
- 持续性
-
故障的种类:
- 事务故障
- 系统故障
- 介质故障
- 计算机病毒
-
数据恢复的技术:①数据转储②登记日志文件
-
故障的恢复策略:
第八章 数据库安全性
- 系统安全保护措施是否有效是数据库系统的主要指标之一
- 用户标识:用户名或用户标识号
- 用户鉴别:口令、随机函数法、提问法、符号标记法、指纹、声音、视纹
- 自主存取控制:
- C2级,灵活合法权限检查
- 存取权限由数据对象和操作类型组成
- 定义方法:GRANT/REVOKE
- 强制存取控制
- B1级,严格
- DBMS所管理的全部实体分为主体和客体两大类:主体是活动实体,客体是被动实体
- 主体的敏感度标记:许可证级别
- 客体的敏感度标记:密级
- 强制存取控制规则
- 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
- 仅当主体的许可证级别小于等于客体的密级时,该主体才能写相应的客体
- 数据加密方法:①替换方法②置换方法③混合方法
第九章 数据库完整性
- 数据库的完整性是指数据的正确性和相容性
- 完整性约束条件:防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。
- 静态约束是指数据库每一确定状态时的数据对象所应满足的约束条件,它是反映数据库状态合理性的约束,这是最重要的一类完整性约束
- 动态约束是指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件,它是反映数据库状态变迁的约束
- 完整性控制机制:
- 定义功能:提供定义完整性约束条件的机制
- 检查功能:检查用户发出操作请求是否违背了完整性约束条件
- 执行功能:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性
第十章 并发控制
-
排它锁(X锁):事务T对A加上X锁后,只允许T读取和修改A,其他任何事务都不能对A加锁
共享锁(S锁):事务T对A加上S锁后,T只能读而不能修改A,其他事务只能对A加S锁,不能加X锁。
-
事务是并发控制的基本单位
-
封锁协议:
- 一级封锁协议:事务在修改数据R之前必须先对其加X锁,直到事务结束才释放(可防止丢失修改,不能保证可重复读和不读“脏”数据)
- 二级封锁协议:事务在读取数据R之前必须先对其加S锁,读完就释放(防止读“脏”数据)
- 三级封锁协议:事务在读取数据R之前必须先对其加S锁,直到事务结束才释放(防止不可重复读)
-
几个事务的并行执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同。这种并行调度策略称为可串行化的调度。
-
可串行性是并行事务正确性的唯一准则
-
两段锁协议:①在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁②在释放一个封锁之后,事务不再接受任何其他封锁
-
两段锁的两个阶段:
- 扩展阶段:获得封锁
- 收缩阶段:释放封锁
-
两段锁协议就是获得锁和释放锁分开。在扩展阶段不能释放锁,只能获得锁;在收缩阶段不能获得锁,只能释放锁。换句话说:在你释放第一个锁之前需要把所有锁给获得,一旦你开始释放锁就不能获得锁了。但是数据的读取和修改不受该协议的影响。
给大家找了一些数据库选择题的资源,可以检验以下自己的水平。
希望大家数据库能考出自己理想的成绩,另附以下我比较推荐的B站网课
B y L a n g Z h i Z h e n By \quad Lang Zhi Zhen ByLangZhiZhen
更多推荐
所有评论(0)