《数据库系统概论》应考概念要点及重点整理

《数据库系统概论》应考概念要点及重点整理

第一章 绪论

1、数据库的四个基本概念

【数据】描述事物的符号记录称为数据。
【数据库】数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
【数据库管理系统】DBMS,数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
【数据库系统】数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。

2、数据库系统的特点

(1)数据结构化

数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。

(2)数据的共享性高、冗余度低且易扩充

数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。

(3)数据独立性高

a)数据独立性
b)物理独立性
c)逻辑独立性

(4)数据由数据库管理系统统一管理和控制

a)数据的安全性保护
b)数据的完整性保护
c)并发控制
d)数据库恢复

3、数据模型

(1)数据模型三要素

a)数据结构

数据结构描述数据库的组成对象以及对象之间的联系。

b)数据操作

数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。

c)数据的完整性约束条件

数据的完整性约束条件是一组完整性规则。

(2)三种常见的数据模型及其数据结构

a)层次模型

层次模型采用树形结构来表示各类实体以及实体间的关系。
数据结构:
①有且只有一个结点没有双亲结点,这个结点成为根结点;
②根以外的其它结点有且只有一个双亲结点。

b)网状模型

数据结构:
①允许一个以上的结点无双亲。
②一个结点可以有多于一个的双亲。

c)关系模型

建立在严格的数学概念的基础上。
数据结构:
①关系
②元组
③属性
④码
⑤域
⑥分量
⑦关系模式

4、数据库系统的三级模式结构

(1)模式

模式也成为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
是数据库系统模式结构的中间层。
一个数据库只有一个模式。

(2)外模式

外模式也成为子模式或用户模式,他是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式通常是模式的子集。
一个数据库可以有多个外模式。

(3)内模式

内模式也成为存储模式,他是数据物理结构和存储方式的描述,是数据在数据库内容部的组织方式。
一个数据库只能由一个内模式。

5、数据库的二级映像和数据独立性

(1)外模式/模式映像

当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使得外模式保持不变。应用程序依据数据的外模式编写,应用程序不必修改,保证了数据与程序的逻辑独立性。

(2)模式/内模式映像

当数据库存储结构改变时,有数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不用改变。保证了数据与程序的物理独立性。

第二章 关系数据库

1、关系代数表达式与查询

关系代数式概念见课本。
例题见课本。

2、基本关系的6条性质(P41)

(1)列是同质的。 每一列中的分量是同一类型的数据。
(2)不同的列可出资同一个域,称其中的每一列为一个属性。 不同的属性要给予不同的属性名。
(3)列的顺序无所谓,列的次序可以任意交换。
(4)任意两个元组的候选码不能取相同的值。
(5)行的顺序无所谓,行的次序可以任意交换。
(6)分量必须取原子值,即每一个分量都必须是不可分的数据项。

3、关系完整性(P45)

(1)实体完整性

关系数据库中每个元组应该是可区分的,是唯一的。
若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。
可以理解为,作为主码的唯一标识。

(2)参照完整性

= =啊,定义好长好麻烦,反正就是外码,外键。
参照关系下的属性(属性组)A是基本关系R的外码,它与基本关系S的主码B相对应,基本关系S为被参照关系(目标关系)。

(3)用户定义的完整性

取值范围、唯一值、不能取空值等。

4、根据运算符书写关系代数表达式

例题见课本。

第三章 关系数据库标准语言SQL

1、SQL的特点

(1)综合统一
(2)高度非过程化
(3)面向集合的操作方式
(4)以同一种语法结构提供多种使用方式
(5)语言简洁,易学易用

2、书写查询、更新等SQL表达式

SQL语句见课本。

3、相关/不相关子查询

【相关子查询】子查询的查询条件依赖于父查询
【不相关子查询】子查询的查询条件不依赖与父查询。

4、视图及其定义

【视图】视图是从一个或几个基本表(或视图)导出的表。是一个虚表。视图一经定义,就可以和基本表一样被查询、被删除,也可以再定义新的视图,但是对视图的更新(增、删、改)操作有一定的限制。

5、通过视图查询给、更新(P122)

SQL语句见课本。

6、视图作用(P128)

(1)视图能够简化用户的操作。
(2)视图使用户能够以多种角度看待同一数据。
(3)视图对重构数据库提供了一定程度的逻辑独立性。
(4)视图能够对机密数据提供安全保护。
(5)适当利用视图可以更清晰地表达查询。

第四章 数据库安全性

1、数据库安全性概念

数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。

2、安全级别

= =好复杂,在P135,我赌他不考。

3、数据库安全性的保护策略

(1)用户身份鉴别
(2)多层存取控制
(3)审计
(4)视图和数据加密等

4、授权语句

SQL语句见课本。

5、主/客密级规则

(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体。
(2)仅当主体的许可证级别小于或等于客体的密级时,该主题才能写相应的客体。

第五章 数据库完整性

1、数据库完整性概念

数据库的完整性是指数据的正确性和相容性。

2、为维护数据库完整性,数据库管理系统必须能够实现的功能

(1)提供定义完整性约束条件的机制。
(2)提供完整性检查的方法。
(3)进行违约处理。

3、完整性约束定义

(1)实体完整性

SQL语句见课本。

(2)参照完整性

SQL语句见课本。

(3)用户定义的完整性

SQL语句见课本。

(4)完整性约束命名子句

SQL语句见课本。

(5)触发器

诶嘿,不考。(因为老师说有难度= =)

第六章 关系数据库理论

1、关系模式存在的异常(P179)

(1)数据冗余

同一个数据的属性重复出现。
浪费大量的存储空间。

(2)更新异常

由于数据冗余,当更新数据库中的数据时,系统要付出很大带价维护数据库的完整性。

(3)插入异常

如果一个系刚成立,没有学生,无法将这个系及其系主任的信息存入数据库。

(4)删除异常

某个系的学生全部毕业,如果删除该系学生信息,那么这个系及其系主任的信息也会丢失

一个好的模式应当不会发生更新异常、插入异常、删除异常,数据冗余应尽可能少

2、函数依赖/码的概念

【函数依赖】X函数确定Y或Y函数依赖于X,记作X—>Y。
【非平凡函数依赖】X—>Y,但Y⫋X。则称X—>Y是非平凡的函数依赖。
【平凡函数依赖】X—>Y,但Y⊆X。则称X—>Y是平凡的函数依赖。平凡函数依赖必然成立。
【完全函数依赖】X—>Y,并且对于X的任何一个真子集X’,都有X’不确定Y,则称Y对X完全函数依赖。
【部分函数依赖】对于X,Y不满足完全函数依赖,则为部分函数依赖。
【传递函数依赖】如果X—>Y(Y⫋X),Y不函数依赖与X,Y—>Z,Z⫋Y,则称Z对X传递函数依赖。
【候选码】(非正经概念)对于R<U,F>一个属性或属性组K,U完全函数依赖K,则K是R的候选码。
【超码】U函数依赖于K,K—>U,则K称为超码。
【主码】若候选码多于一个,则选定其中的一个为主码。
【主属性】包含在任何一个候选码中的属性称为主属性。
【非主属性/非码属性】不包含在任何候选码中的属性称为非主属性/非码属性。
【全码】整个属性组是码。
【外码】X是R的外部码。

3、1NF、2NF、3NF、BCNF

关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。
【1NF】满足最低要求的叫第一范式。
【2NF】在1NF的基础上,每一个非主属性完全函数依赖于任何一个候选码。
【3NF】在1NF的基础上,若R中不存在这样的码X,属性组Y及非主属性Z,使得X—>Y,Y—>Z成立,X不包含完全函数依赖,则为3NF。
即在2NF基础上,不存在传递函数依赖。
【BCNF】在1NF的基础上,若X—>Y且Y不属于X时X必含有码,则为BCNF。即每一个决定因素都包含码。
(1)所有非主属性对每一个码都是完全函数依赖。
(2)所有主属性对每一个不包含它的码也是完全函数依赖。
(3)没有任何属性完全函数依赖于非码的任何一组属性。
简单的范式判断技巧(不一定对,请按照概念判断):
【1NF】非主码无部分函数依赖为【2NF】
【2NF】非主属性完全依赖于码为【3NF】
【3NF】主码之间无部分函数依赖、无传递函数依赖【BCNF】

4、数据依赖的公理系统P191

Armstrong公理系统:
【自反律】
【增广律】
【传递律】
根据公理系统推出的三条推理规则:
【合并规则】
【伪传递规则】
【分解规则】

5、最小依赖集或最小覆盖

函数依赖集F满足以下条件
(1)F中任一函数依赖的右部仅含有一个属性。
(2)F中不存在这样的函数依赖X—>A,使得F与F-{X—>A}等价。
(3)F中不存在这样的函数依赖X—>A,X有真子集Z使得F-{X—>A}∪{Z—>A}与F等价。(左部尽可能简化)

6、模式的分解

分解后产生的模式应该与原模式等价。
【无损连接性】
【保持函数依赖】
【保持函数依赖并且具有无损连接性】

7、分解的无损连接性和保持函数依赖性的判断算法

见课本例题。

8、范式的证明

见课本例题。(反证法)

第七章 数据库设计

1、数据库设计的基本步骤

(1)需求分析
(2)概念结构设计
(3)逻辑结构设计
(4)物理结构设计
(5)数据库实施
(6)数据库运行和维护

2、数据字典

【数据字典】是进行详细的数据收集和数据分析所获得的主要成果。它是关于数据库中数据的描述,即元数据,而不是数据本身。
数据字典通常包括:
(1)数据项
(2)数据结构
(3)数据流
(4)数据存储
(5)处理过程

3、绘制E-R图

见课本例题与作业。

4、子系统的E-R图之间的三类冲突

【属性冲突】
【命名冲突】
【结构冲突】

5、概念结构设计转化为逻辑结构设计

(1)1:1关系
可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
(2)1:n关系
可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并
(3)m:n关系
转换为一个关系模式,同时具有两端的码和关系的属性
(4)三个或三个以上实体
单独增加表,多个实体的码和关系的属性。
(5)具有相同码的关系模式可合并

第八章 数据库编程

第九章 关系查询处理和查询优化

1、查询处理步骤

(1)查询分析
(2)查询检查
(3)查询优化
(4)查询执行

2、启发式优化规则(P284)

(1)选择运算尽可能先做。
(2)把投影运算和选择运算同时进行。
(3)把投影同其前或后的双目运算符结合起来。
(4)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。
(5)找出公共子表达式。

3、查询优化树与关系代数表达式优化

关系代数表达式等价变换规则
(1)连接、笛卡尔积的交换律
(2)连接、笛卡尔积的结合律
(3)投影的串联定律
(4)选择的串联定律
(5)选择与投影操作的交换律
(6)选择与笛卡尔积的交换律
(7)选择与并的分配律
(8)选择与差运算的分配律
(9)选择对自然连接的分配律
(10)投影与笛卡尔积的分配律
(11)投影与并的分配律

第十章 数据库恢复技术

1、事务的基本概念

【事务】是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
【COMMIT】表示提交,提交事务的所有操作。
【ROLLBACK】表示回滚,系统将事务对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。

2、事务的ACID特性

【原子性】最小逻辑/操作单位。
【一致性】只包含事务成功提交的结果。
【隔离性】不被其他事务所干扰。
【持续性】永久性,事务一单提交,它所带来的改变是永久的。

3、故障的种类

(1)事务内部的故障
来源于事务程序本身,是非预期的,不能由应用程序处理。
表示事务故障,可以通过事务撤销(UNDO) 来恢复。
(2)系统故障
称为软故障。
系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。
例如,特定类型的硬件错误、操作系统故障、DBMS代码错误、系统断电等。
可以通过重做来恢复。
(3)介质故障
称为硬故障。
指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。
可能性小,破坏性大。
(4)计算机病毒

4、数据转储

(1)转储状态

①静态转储
转储时,无事务活动,保证一致性
实现简单,但降低了可用/并发性。
②动态转储
转储时允许并发操作。
实现复杂,但提升了可用/并发性。
但是不能保证正确性。

(2)转储方式

①动态海量转储
②动态海量转储
③静态海量转储
④静态增量转储
【海量转储】每次转储全部数据库。
【增量转储】每次只转储上一次转储后更新过的数据。

5、日志文件

【日志文件】日志文件是用来记录事务对数据库的更新操作的文件。

(1)日志文件的内容

①各个事务的开始。
②各个事务的结束。
③各个事务的所有更新操作。
④事务标识(表明哪个事务)。
⑤操作的类型(插入、删除或修改)。
⑥操作对象(记录内部标识)。
⑦更新前数据的旧值。
⑧更新后数据的新值。

(2)日志文件的作用

①事务故障恢复和系统故障恢复必须用日志文件。
②在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。
③在静态转储方式中也可以建立日志文件,当数据库损坏后可重新装入后援副本把数据库恢复到转储结束时刻的正常状态,然后利用日志文件把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。
(进行事务/系统故障的恢复,协助备份恢复)

(3)日志文件登记原则

①严格按照并发事务时间次序。
②先写日志文件,再写数据库。

4、故障恢复

恢复的基本原理是:建立冗余数据

(1)事务故障的恢复策略

【撤销修改】
反向扫描日志文件,查找事务的更新操作。
②对事务执行撤销(UNDO) 修改。
③继续反向扫描,查找下一个事务做同样处理。
④知道事务的开始标记。

(2)系统故障的恢复策略

【撤销未完成的事务】
【重做已完成的事务】
正向 扫描日志文件,查找已经COMMIT的事务加入重做(REDO) 队列,查找没有COMMIT的事务加入撤销(UNDO) 队列。
②对撤销(UNDO) 队列反向扫描日志文件,对事务进行撤销。
③对重做(REDO) 队列正向扫描日志文件,对事物进行重做。

(3)介质故障的恢复策略

重装数据库,重做已完成的事务。
静态转储:通过后备数据库恢复。
动态转储:通过后备数据库+日志文件恢复。
且需要数据库管理员介入重装。

(4)检查点恢复技术

【建立检查点,动态保存状态】
【我赌这个不考!】

第十一章 并发控制

【并发控制机制】用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰。

1、三类数据不一致性

(1)丢失修改

两个事务读入同一数据并修改,其中一个事务的提交结果破坏了另一个事务的提交结果,导致被破坏的事务的修改丢失。

(2)不可重复读

一个事务读取数据后,另一个事务执行更新操作,导致读入数据的事务无法再现前一次的读取结果。

(3)读“脏”数据

一个事务修改数据后写回磁盘,另一个事务读取数据后,写回磁盘的事务撤销使数据恢复原值,导致读取数据的事务与数据库中数据不一致。

2、并发控制主要技术

(1)封锁

①锁类型
【排他锁】【写锁】【X锁】只允许事务读取和修改数据。其他事务不可再加锁。
【共享锁】【读锁】【S锁】只允许事务读取数据。其他事务只可添加S锁,不能添加X锁。

(2)时间戳

(3)乐观控制法

(4)多版本并发控制

2EX、活锁/死锁(个人理解)

【活锁】一个事务因为得不到批准一直等待的情形。
【死锁】两个事务因为互相封锁了所需要的数据,而互相等待的情形。

3、封锁协议

(1)一级封锁协议

事务T在修改数据R之前必须对其加X锁,直到事务结束才释放。
(修改R时加X锁,直到COMMIT/ROLLBACK
一级封锁协议可以避免丢失修改。

(2)二级封锁协议

在一级封锁协议的基础上,增加事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。
(在一级封锁协议的基础上,读取R时加S锁,读完释放S锁)
二级封锁协议可以避免读取“脏”数据。

(3)三级封锁协议

在一级封锁协议的基础上,增加事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
(在一级封锁协议的基础上,读取R时加S锁,直到COMMIT/ROLLBACK
三级封锁协议可以避免读取“脏”数据和重复读取。

4、死锁的预防与诊断

(1)超时法
当一个事务的等待时间超过了规定时间,就认为发生了死锁。
(2)等待图法
当等待图中出现了回路,则认为发生了死锁。
死锁处理方法:
选择一个处理死锁代价最小的事务进行撤销,释放这个事务所持有的所有的锁。

5、可串行化调度

【可串行化调度】多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。
【可串行性】是并发事务正确调度的准则。给定一个并发调度,当且仅当它是可串行化的,才认为是正确调度。
【冲突操作】不同的事务对同一个数据的读写操作写写操作
【冲突可串行化】一个调度在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度,且这个新的调度是串行的,则原本的调度是冲突可串行化的调度。如果一个调度是冲突可串行化,则一定是可串行化的调度。 冲突可串行化是可串行调度的充分条件,不是必要条件。

6、两段锁协议

(1)扩展阶段:在对任何数据进行读、写操作之前,首先要申请并获得该数据的封锁。
(2)收缩阶段:在释放一个封锁之后,事务不再申请和获得任何其他封锁。
事务遵守两段锁协议是可串行化调度的充分条件,不是必要条件。

7、封锁的粒度

额外重点

1、SQL语句转换

2、E-R图

3、并发控制

4、范式

5、查询优化

【个人结课应考整理,如有错误,还望指正】

  • 9
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值