本blog内容是在开始复习期末考试前,先整理出要复习的主要内容和知识点。应考华科23Spring 计算机系数据库课程,适用于华科计算机系复习参考。
TODO:完成前半部分内容的摘要整理
1、数据库考试试卷究竟考些什么?
数据建模
涉及底层存储
关系代数
给一个关系代数式子和数据表,要求算结果
给一个需求,要求写关系代数表达式
- 建立临时关系
范式
分析范式类型
分析依赖成立性
事务执行,并发控制
产生死锁、两阶段锁、三级
并发控制解题注意:
- 用临时变量存储临时结果
- 要写写回这一步
问执行结果
问生成的调度序列
日志恢复
REDO和UNDO队列
数据的变化
ER图设计题
ER图以及各种码
ER图-》关系模型
SQL查询
创建表:
修改表:
只有删除列不需要指定数据类型
删除表:
Drop table 表名[RESTRICT | CASCADE] |
写查询语句
一般格式:
SELECT <ALL/DISTINCT>
FROM <SELECT xx> AS <xx>
WHERE
GROUP BY <HAVING <condition>>
ORDER BY <ASC|DESC>
LIMIT <N>
字符串查询:
all嵌套、any嵌套:嵌套,往往是由于有好几个限制条件?
<>表示不等于
注意:
- WHERE语句中不能写聚合函数
- 断言 CREATE ASSERTION <断言名>
断言名>
触发器:
写查询优化的方式
安全控制策略:整体设计
2、数据库课程到底讲了哪些章节?分别有哪些重要的知识点?
一、绪论
数据库系统概念
整体结构性的科学定义:
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
在文件系统中,文件中的记录内部具有结构,但是记录的结构和记录之间的联系被固化在程序中,需要由程序员加以维护。这种工作模式既加重了程序员的负担,又不利于结构的变动。
所谓“整体”结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业; 不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的。也就是说,不仅要考虑某个应用的数据结构,还要考虑整个组织的数据结构。
共享性高,冗余性低。
数据独立性
- 物理独立性:应用程序与数据的物理存储相互独立(外模式和内模式)
- 逻辑独立性:应用程序与逻辑结构相互独立(外模式和模式)
一句话概括:数据要考虑到在各个应用程序中的应用!
安全性、完整性、并发控制、数据库恢复
!!数据模型!!
概念:数据及数据间关系的表达方式
分为:
1、概念模型
独立于特定DBMS的现实世界的抽象模型。(用户与数据库 设计人员进行交流的语言)。
可以理解为人用自然语言等对数据问题的建模。
重要概念:
(1)实体:——客观存在可相互区别的事物和概念。(具体的人、事、物,抽象的概念) 例如:职工、学生、部门、课程。
(2)属性:——实体具有的特性。 Student (XH,XM,XB,NL)
(3)实体型:——具有相同特征和性质的实体与属性命名序列。 (就是把几个属性合成一条数据项的意思)
(4)实体值,即具体的数据取值。
(5)实体集(entity set)——同型实体值的集合
(6)域(domain)——属性的取值范围。
(7)码:码(KEY)——唯一标识一个实体集中任何实体值又不含多余属性的属性集。注意和后面某章节中的相关概念对应记忆。 Student (KEY):XH
(8)联系:1对n,m对n等等。
2、逻辑模型
(1)层次模型
层次模型的存储结构 邻接法——前序遍历树的方式,通过物理地址的相邻体现层次顺序。 链接法——(子女-兄弟链接法)用指针来反映数据之间的层次关系,每个记录包含两类指针,分别指向最左边的子女和最近的兄弟。
优缺点:
(2)网状模型
去掉了根节点和双亲节点
(3)关系模型
——用二维表格表示实体及其间联系的数据模型。
关系模型的约束:完整性约束:详见第五章:数据库完整性
3、物理模型
!!模式概念!!
三层模式,两级映像:映像是模式和模式之间的桥梁
模式:DB中全体数据的逻辑结构及其特征的说明逻辑特征
外模式:DB中局部(局部用户)数据的逻辑结构及其特征的说明。用户可见,放在外层的意思。相当于外部的显示和外部接口
外模式是模式的子集。
内模式:DB物理结构、存取路径及存取方法的说明存储结构
映像:
1.外模式/模式映像 ——说明外模式与模式间的对应联系(外模式中说明)。 模式改变,可以使外模式不变。
2.模式/内模式映像 ——说明模式与内模式的对应关系(模式中说明)。 内模式改变,可以使模式不变。(逻辑结构在内部如何组织)
Extra:模型和模式
Extra:元组存储
!!DBMS体系结构(特点)!!
逻辑独立性和物理独立性:
拿全分难,会找邪的点
二、关系数据库
!!关系相关的各项基本概念!!
域的概念、笛卡尔积
关系定义: D1xD2x…xDn的任意子集称为在域D1,D2,…,Dn上的关系。 记为:R(D1,D2,…,Dn),说明: 1)R为关系名,n为关系的目或度(degree); 2)关系是一张二维表; 3)可多个候选码(candidate key); 4)任选候选码之一为主码(primary key)。
外码(foreign key) ——对于R1和R2,A1,…,An为其属性子集,若A1,A2,…,An不是R1的码,但它是R2的码,且两者相对应,则称A1,…,An为R1的外码。
关系模式(Relation Schema)
定义 :关系的描述:R(A1,…,An)即:R(U,D,DOM,F) R:关系名。
U:R中的属性名序列。
D:域(取值范围)。
DOM:属性到域的映象集(属性类型、长度)。
F:属性间数据依赖关系。
关系的完整性:
-
实体完整性(Entity integrity) ——主码属性不能为空,不同元组的主码取值不能重复。
-
参照完整性(Referential integrity) ——若关系R1中含有另一个关系R2中主码的属性组F(作为R1的外部KEY),则对于R1的每个元组在F上的值必须满足: 1)空,或者 2)等于R2中某个元组的主码值
也就是说,要么不存在,要么一定在该属性作为主码的那张表中存在。
- 用户定义完整性(user-defined integrity) ——用户定义的约束。 出租期限≤20年, 工资≥2000元
!!关系代数!!
定义:用对关系的运算来表达查询,的一种传统方式。
各种集合运算、关系运算:5种基本的运算:并、差、笛卡尔积、投影、选择
特别要注意的:自然连接和等值连接,外连接(保留悬浮元组)
自然连接要去掉重复的!!
除运算:被除的必须有除数的全部相同属性。
!!!!!! 这里需要会做题,主要是写关系代数和会计算即可。
三、SQL
SQL概述和特点
SQL的三级模式示意图:简单易懂
基本SQL语句
例子:创建关系“教室表”,拥有属性:“教室编号、教室名称、教学楼编号、教室容量、教室资源配置、使用对象类型”。
# create
CREATE TABLE [dbo].[classroom] (
[rmno] [char] (5) NOT NULL PRIMARY KEY,
[rmtitle] [varchar] (30) NULL ,
[buildno] [char] (4) NOT NULL ,
[quantity] [int] NOT NULL ,
[resource] [char] (2) NOT NULL ,
[usertype] [char] (2) NULL
)
# alter
ALTER Table car
add [emission] [float] NOT NULL;
ALTER TABLE dbo.classroom
DROP COLUMN isopen, isused;
# 字符匹配
LIKE 通配符%
索引结构(B和B+树)以及B+树优化
这个我熟,如果读者需要的话自己去看看吧。 建立索引:针对学生关系STU的学号属性SNO建立索引
CREATE INDEX IND_STU ON STU(SNO);
CREATE CLUSTER INDEX IND_SC_CLU ON SC(SNO);
# 聚簇索引
DROP INDEX 索引名
# 删除
# 建立唯一性索引的话,在INDEX前加上UNIquE
聚簇索引和非聚簇索引的区别:聚簇索引的叶子节点就是数据节点,而非聚簇索引的节点是指向具体数据的指针。
!!单表查询、多表查询、嵌套查询!!
数据更新、删除等操作
视图操作
四、数据库安全性
基本原理
三类安全性问题:技术安全、管理安全、政策法律
具体安全控制机制
存取访问控制
revoke <> on <obj> from <user>
grant <> on <obj> to <user>
用户权限定义、用户权限检查
自主存取控制、强制存取控制
强制存取控制:简单来说,就是在访问数据库时,先要通过用户认证确定你有多大的权限,之后才能按照强制存取控制来实现权限控制。适合对资料保密分级有明显定义的用户。
系统设计原则:
较高级别的数据保护要包含较低级别的所有保护。
五、数据库完整性
实体完整性
——对关系模式主属性施加的完整性控制。
不允许空,在关系中取值唯一。 例: student (SNO,SNAME,SEX,BYEAR) ,SNO不能为空且唯一;course(CNO,CTITLE), CNO不能为空且唯一;sc(SNO,CNO,GRADE) ,(SNO,CNO)不能为空。
!!参照完整性!!
用户定义完整性
这是用户自己定义的对数据的种种限制,与数据本身的属性有关。
!!断言(多表)!!
!!触发器(单表)!!
活题:check语句,执行某语句报错,分析可能原因
触发器相当于绑定在某些数据库操作上的行为,比如插入某条满足一定条件的数据后对数据进行某种处理和转换。
六、关系数据理论(范式等)重点难点!
!!各种范式的概念及其前置概念!!
码(候选码): 码的形式化定义
定义:设有关系模式R(U,F),X为U的子集,若
,
则x为R的一个候选码(Candidate Key)。
也就是说,U完全函数依赖于X。这个X可以有很多个。
主属性:
定义:属于任何一个候选码中的属性称为主属性。主属性是比候选码中的属性多得多的。不属于任何候选码中的属性称为非主属性。
主码: 任意候选码之一。整个属性组是码,则称为全码。
为什么要引入规范化和范式?
1.一个好的关系模式应冗余尽可能少;
2.一个好的关系模式应避免插入、删除异常;
3.原因是关系模式中存在不合适的属性间联系;
4.解决方法是消去不合适联系;
5.采用分解的策略消去。
函数依赖概念:
(任给一x,有唯一y与之对应,则x->y)
平凡函数依赖、非平凡函数依赖:区别:平凡函数依赖中x是y的子集,这件事是很平凡的,很正常的。所以称为平凡函数依赖。
完全函数依赖、部分函数依赖:区别在于完全函数依赖中x是不可再分的,即x的子集不再满足x->y的性质。
重要概念:各级范式之间的进步(递进)关系。
各级范式(1-BC)NF
1NF:
特点:任给关系模式R(U,F),若U中每个属性均为不可再分的基本数据元素(原子项),则R∈1NF。关系数据库系统中,所有关系模式都必须是1NF。
问题:非主属性部分fd于候选码(可能是候选码的子集决定非主属性)。可能存在冗余,修改麻烦,操作异常问题。
2NF:
特点:任给R(U,F),若R∈1NF,且每个非主属性都 完全函数依赖于候选码(不能是部分函数依赖!),则R∈2NF。
换言之:2NF不允许F中有这样的函数依赖“X->Y”,其中X是码的真子集,Y是非主属性。(X不能是码的真子集)
3NF: 特点:任给R(U,F),若不存在这样的码X、属性组Y及非主属性Z(Z不包含于Y),使得X —> Y,(Y—/>X), Y —> Z成立,则R∈3NF。
任给R(U,F),若R为2NF,且其每一个非主属性都不传递fd于候选码,则R∈3NF。
理解:3NF不允许F中有这样的非平凡函数依赖“X —> Y”,其中X不包含码,Y是非主属性。(X中必须含有码)
BCNF:
1、定义
任给R(U,F),X、Y为U中属性子集,若R∈1NF,且对R的每一个X->Y,Y ⊈ X,X必包含侯选码,则R∈BCNF。(任何除候选码及其真子集以外的属性集合都由候选码决定,取消了Y是非主属性的限制。)
若R中的每一个函数依赖中的左部决定属性集都包含有候选码,则R∈BCNF。
2、BCNF性质
1)所有非主属性都完全函数依赖于候选码;(2NF) 2)所有非主属性都不传递函数依赖于候选码;(3NF) 3)所有主属性都完全函数依赖于不包含它的候选码; 4)所有主属性都不传递函数依赖于候选KEY。 没有任何属性函数依赖于非码的任何一组属性。
一图总结:
!!公理系统及推导证明!!
几个规则:
自反律(包含)、增广律(“乘”)、传递律。
计算属性闭包:
求解候选码:
判断两个函数依赖集等价的方法:逐一判断F和G中的函数依赖XY是否能由对方导出。
最小依赖集问题
无冗余化:不存在两个能相互到处的互补子集;
求最小依赖集算法:
减掉其中一个,看看还能不能推的出来。
两种模式分解算法
分解正确性:
分解具有无损连接性 定义:任给R(U、F),r={R1,R2…,Rn}是R的一个分解,若对R的任一满足F的关系r都有: r=πR1(r)⋈ πR2(r)⋈ …… ⋈ πRn(r) 则称是R满足F的一个无损连接分解。
这段定义看起来复杂,其实意思就是说连接起来还能得到原来那张表就行!
无损连接检验算法:
七、数据库设计(软件工程相关理论)
这一章主要就是做题,另外,要关注E-R图转关系模式的方法。
!!E-R图!!
!!关系模式!!
八、关系数据库引擎基础(参考CMU)
数据库存储
这一章的知识挺有用的。。。但是貌似不考,很符合我对口口的印象。
页及其堆文件组织:
存储方式:
NSM:同一个元组的所有属性存在一起
DSM:不同元组的同一种属性存在一起
缓存(缓冲池)
散列表
查询处理
九、关系查询处理和查询优化
查询处理步骤
各种运算的实现方法:
选择运算的实现方法(参见课件第8章):
全表扫描
索引扫描
连接运算的实现方法:
嵌套循环连接(nested loop)
排序—合并连接(sort-merge join)
Hash连接(hash join)
索引连接(index join)
查询优化的任务:提高速度(DBMS)
具体目标:1、减少中间关系规模2、减少I/O
举例说明不同SQL语句的性能差异:
见PPT15页-20页
读取->写出->做选择->做投影
代数优化
连接/笛卡尔积的交换律
连接/笛卡尔积的结合律
投影的串接律
选择的串接律:选择条件可以合并,一次可检查全部条件。
选择与投影的交换律
选择与笛卡尔积的交换律:部分选择在笛卡尔积前先做。
选择与并、差、自然连接的分配律
物理优化
常常先使用启发式规则选取若干较优的候选查询方案,然后分别估算这些候选方案的执行代价,从而选取代价最小的作为执行计划。
总代价=I/O代价+CPU代价+内存代价+通信代价
查询优化的过程: 查询树经过变形后得到语法树, 然后根据代数优化的启发式规则对语法树进行逻辑优化, 再考虑存取路径、底层操作算法的不同,根据物理操作的启发式规则提出多种查询计划, 然后可根据某种代价模型评估这些查询计划的执行代价,从中选取评估结果最小的作为执行计划。