Climb-Xu

第一章-概论


数据是什么?
		
	数据是数据库中存储的基本对象
	描述事物的符号记录
	数据的含义是称为数据的语义,数据与其语义不可分
数据库是什么?
		
	顾名思义,存放数据的仓库
	是长期存储在计算机内,有组织可共享的大量数据集合
	数据库中的数据库按一定的数据模型组织、描述、存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享
	数据库中的数据具有永久存储、有组织和可共享的三个基本特点
DBMS是什么?
		
	位于用户与操作系统之间的数据管理软件
	计算机基础软件、系统软件
DBMS的主要功能?
		
	科学地组织和存储数据、高效地获取和维护数据
	数据定义功能、数据操纵功能
	数据库的建立和维护功能
	数据库的事务管理和运行管理
	数据的组织存储管理
数据库系统是什么?
		
	由数据库、DBMS、DBA、应用程序组成
	存储、管理、处理和维护数据的系统
数据库系统的特点?
		
	数据库整体结构化
	数据库共享性高,冗余度低,易扩展
		数据共享可以大大减少数据冗余,节约储存空间,数据库共享还能避免数据之间的不相容性和不一致性
	数据独立性高
		高度的物理独立性是指用户的应用程序与数据库中的数据的物理存储是相互独立的
		一定的逻辑独立性是指用户的应用程序与数据库中的数据的逻辑机构是相互独立的
	由DBMS统一控制和管理
		安全性保护
		完整性检查
		并发控制
		数据库恢复
数据库,数据库管理系统,数据库系统
	
	数据库是长期存储在计算机内有组织可共享的大量数据集合,具有较小的冗余度,较高的数据独立性
	数据库管理系统在数据库建立,运用和维护时,对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复
	数据库系统的出现,使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心
数据库技术的产生背景?
		
	数据库技术是应数据管理任务的需要而产生的
	数据管理是指对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题
	数据处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和
文件系统和数据库系统的区别与联系?
		
	数据结构化是它们的本质区别
	文件系统共线性差,冗余度大,独立性差,整体无结构
	数据库系统共享性高,冗余度小,整体结构化,数据独立,由DBMS统一控制和管理
	它们都是管理数据的软件
	从文件系统到数据库系统标志着数据库管理技术的飞跃
数据模型的概念?
		
	对现实世界数据特征的抽象
	数据库模型的数据库系统的核心和基础
数据模型的三要素?
		
	数据结构
		描述数据库组成对象,以及对象之间的联系,
		是对系统静态特性的描述
	数据操作
		对数据库各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则
		是对系统动态特性的描述
	数据完整性约束条件
		是一组完整性约规则,保证数据正确,有效,相容
数据模型满足三方面要求?
		
	比较真实的模拟现实世界
	容易为人理解
	便于在计算机上实现
两类数据模型?
		
	概念模型(也称信息模型)
		按用户的观点对数据建模
		用于数据库设计
	逻辑模型和物理模型
		逻辑模型
 按计算机系统的观点对数据建模
 用于数据库管理系统的实现
物理模型
信息世界中的基本概念?
实体
		
		客观存在,可相互区别的事物称为实体
	
属性
		
		实体的某一特性称为属性
	
		
		唯一标识实体的属性集称为码
	
实体型
		
		用实体名及其属性名集合来抽象和刻画同类实体,称为实体型
	
实体集
		
		同一类实体的集合
	
联系
	
	实体内部的联系
		组成实体的各属性之间的联系
	实体之间的联系
			不同实体集之间的联系
	
概念模型的一种表示方法?
	
	实体-联系方法 ER方法称为ER模型
	
常见的数据模型
	
	层次模型
	网状模型
	关系模型
	面向对象模型
	对象关系模型
	半结构化模型
	层次和网状统称为格式化模型
	
格式化模型
	
	层次和网状统称格式化模型
	数据结构的单位是基本层次联系
	基本层次联系是指,两条记录以及它们之间的一对多包括一对一的联系
	
层次模型
数据结构
	
	有且只有一个节点没有双亲结点(根节点)
	其余节点有且只有一个双亲结点
	
特点
	
	记录值只能按其层次路径查看
	子女节点不能脱离双亲节点独立存在
	像一颗倒立的树,节点的双亲是唯一的
	
优点
	
	数据结构简单清晰,一对多联系非常自然
	查询效率高,查询速度最快
	良好的完整性支持
	
缺点
	
	不适合非层次关系,如多对多联系
	查询子女节点必须通过双亲节点
	应用程序编写复杂
	结构严密,层次命令趋于程序化
	
代表
	
	IMS
	
网状模型
数据结构
	
	允许有一个以上的节点没有双亲节点
	一个节点可以有多于一个的双亲节点
	子女节点与双亲节点之间的关系可以不唯一
	
特点
	
		支持记录码的概念
	
优点
	
	更为直观地描述现实世界
	良好的性能,存取效率高
	
缺点
	
	结构复杂,DDL,DML复杂
	记录之间的联系是通过存取路径实现的,用户必须了解系统结构的细节,加重了编写应用程序的负担
	
代表
	
	DBTG
	
关系模型
概念
	
	由关系数据结构,关系操作集合,关系完整性约束组成
	关系模型中的逻辑结构是一张二维表,由行和列组成
	
数据结构
	
	关系:一张二维表
	元组:一行
	属性:一列
	码:也称码键,唯一确定一个元组的属性集
	域:一组相同数据类型的值的集合
	分量:元组的一个属性值
	关系模式:对关系的描述
	
特点
	
	数据操作是集合操作,操作对象与操作结果都是关系
	每个关系的数据结构是一张规范化的二维表
	要求关系必须是规范化的
	
优点
	
	严格建立在数学概念基础上
	概念单一,数据结构简单
	存取路径对用户透明
	
缺点
	
	查询需要优化
	
概念模型的特点?
	
	能真实,充分地反映现实世界
	易于理解,易于更改
	易于向其他数据模型转换
	是各种数据模型的共同基础
	独立于硬件和DBMS
	
概念模型的设计策略
	
	自顶向下
	自底向上
	逐步扩张
	混合策略
模式和实例(型和值)?
	
	型(模式):是指对某一类数据的结构和属性的说明
	值(实例):是型的一个具体赋值
	同一个模式可以有很多实例
	模式相对稳定,实例相对变动
三级模式
	
	模式
		也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共视图,只有一个
	外模式
		也称子模式或用户模式,是用户可以看见和使用的局部数据的逻辑结构和特征的描述,可以有任意多个
	内模式
		也称存储模式,数据物理结构和存储方式的描述,是数据库内部的组织方式,只有一个
	
二级映像
	
	外模式/模式 映像
		模式改变,DBA只需改动该模式,即可保证外模式不变,应用程序不变,保证数据和应用程序之间的逻辑独立性
	模式/内模式 映像
		内模式改变,DBA只需改动该模式,即可保证应用程序不变,物理独立性
	
数据库系统的组成?
	
	硬件平台及数据库
	软件(数据库管理系统)
	人员
	
DBA的职责
	
	决定数据库中的信息的内容和结构
	决定数据库存储结构和存取策略
	定义数据的安全性要求和完整性约束条件
	监控数据库的使用和运行
	对数据库进行改进,重组,重构
	
使用数据库系统的好处?
	
	当数据的逻辑结构需要改变时,减少应用程序的维护和修改
	提高开发效率
	减轻DBA维护负担
	

第二章-关系数据库


	
	具有相同数据类型的值的集合
	基数
		一个域允许的不同取值个数,称为域的基数
笛卡儿积
	
	域上的一种集合运算
关系的三种类型
	
	基本表
	查询表
	视图表
关系的目
	
	目又称度
	n目关系有n个属性
	n为1即单目关系或一元关系
	n为2即二元关系
候选码
	
	某一属性组的值能唯一标识一个元组,而其子集不能,则该属性组称为候选码
主码
	
	若关系中有多个候选码,则选定其中一个为主码
主属性
	
	候选码的诸属性称为主属性,其余属性称非主属性
全码
	
	所有属性共同组成候选码
超码
	
	一个候选码加一个或多个其他属性 或者不加
	候选码是特殊的超码
外码
	
	设F是基本关系R中的一个或一组属性,但不是关系R的码,K是基本关系S的主码
	如果F与K相对应,则称F是R的外码
基本关系的性质
	
	列是同质的
	不同的列可以出自同一域
	行,列的次序无所谓
	任意两个元组的候选码不能取相同的值
	每一个分量是不可分的数据项
关系模型的要求
	
	关系模式中要求关系必须是规范化的
	关系的每一个分量必须是不可分的数据项
关系模式
	
	关系是元组的集合
	关系模式必须指出
		元组集合的结构
		由哪些属性构成
		这些属性来自哪些域
		属性与域之间的映像关系
		属性间的依赖关系
关系模式可表示为?
	
	R(U,D,DOM,F)  五元组
	R 关系名
	U 属性名集合
	D 属性来自的域
	DOM 属性向域的映像集合
	F 属性依赖关系集合
关系数据库
	
	型: 关系数据库模式,是对关系数据库的描述
	值: 这些关系模式在某一时刻对应关系的集合
实体以及实体之间的联系用什么表示?
	
	关系
关系数据库的三级模式
	
	模式 全体基本表
	外模式 若干视图,部分基本表
	内模式 若干存储文件
关系操作
	
	并,交,差,笛卡儿积,选择,投影,连接,除,重命名(ρ)
	五种基本关系操作: 并,差,笛卡儿积,选择,投影
	传统的集合运算: 并,交,差,笛卡儿积
	专门的关系运算: 选择,投影,连接,除
	重命名: 一般与自身连接时使用
	操作的对象和结果都是集合
	经过以上操作有限次复合形成关系代数表达式
	优先级: (),θ,∧,∨
自然连接与等值连接的区别
	
	自然连接
		要求两个关系中进行比较的分量必须是同名的属性或属性组
		结果会把重复属性列去掉
		是一种特殊的等值连接
	等值连接
		不会把重复属性列去掉
关系数据语言分类
	
	关系代数 代数方式
	关系演算 逻辑方式
		元组关系演算
		域关系演算
	结构化查询语言SQL
关系代数是什么?
	
	一种抽象的查询语言
	用于对关系的运算来表达查询
关系运算的三要素?
	
	运算对象
	运算符
	运算结果
非关系数据模型的操作方式
	
	采用面向记录的操作方式
关系的两个不变性(必须满足的两个完整性约束条件)
	
	实体完整性
		主属性不能为空,不能重复
	参照完整性
		参照关系的外码和被参照关系的主码对应或者为空
用户定义的完整性
	
	体现了具体领域中的语义约束

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


SQL的特点
	
	综合统一 集DDL,DML,DQL于一体
	高度非过程化 无须了解存取路径
	以一种语法结构提供多种使用方式 交互式,嵌入式
	面向集合的操作方式
	语言简洁,易学易用
SQL的基本概念
	
	一个关系对应一个基本表
	一个或多个基本表对应一个存储文件
	存储文件的逻辑结构组成了关系数据库的内模式
数据定义
	
	一个RDBMS的实例可以建立多个数据库
	一个数据库中可以建立多个模式
	一个模式下通常包括多个表,视图,和索引等
视图是什么?
	
	视图是由一个或多个基本表(视图)导出的虚表,数据库只存放视图的定义,而不存放相应数据,数据仍存放在基表中
	基表中的数据一旦改变,视图也会随之变化
	视图一经定义,可被查询和删除,也可以在视图之上定义视图
	对视图的更新(增删改)有一定限制
什么是行列子集视图?
	
	从单个基表导出,只是去掉了某些行和列,保留主码
什么是分组视图?
	
	带聚集函数和group by子句的查询定义的视图
什么是带表达式的视图?
	
	带虚列的视图
	虚列
		派生属性
什么是视图消解?
	
	从数据字典取出视图的定义
	将定义中的子查询和用户的查询结合起来,
	转换成等价基本表查询,然后执行修正后的查询
视图的作用
	
	简化用户操作
	让用户从多角度看待同一数据
	对重构数据库提供一定的逻辑独立性
	对机密数据提供安全性保护
	适当的使用视图,可以跟清晰地表达查询
SQL的数据定义功能
	
	模式定义
	表定义
	视图定义
	索引定义
什么是相关子查询
	
	子查询的查询条件依赖于父查询
SQL的集合操作
	
	并(union)
	交(intersect)
	差(except)
	列数和对应项的数据类型必须相同
关系数据库系统中的数据字典
	
	RDBMS内部的一组系统表
	记录数据库中所有定义信息和各类用户操作权限的统计信息
	执行sql定义语句其实是在更新数据字典
	数据字典中的信息是查询优化的重要依据
视图与派生表的区别?
	
	视图的定义永久保存在数据字典
	派生表只是临时定义,语句执行完后,定义删除
索引的类型
	
	顺序文件上的索引
	B+数索引
	散列索引
	位图索引
SQL中域的概念
	
	没一个属性来自一个域,取值必须是域中的值
	域的概念用数据类型表示
空值
	
	不存在或无意义的值
	是一个特殊的值,含有不确定性
空值的运算
	
	空值与另外一个空值的算术运算结果为空值
	与另外一个空值比较运算为unknown
	逻辑运算技巧 把 true unknown false按 1,2,3对应排序
		and运算 取最大的数(有f变f 没有f变n 没有fn变t)
		or运算 取最小的数(有t变t 没有t变n 没有tn变f)
		not unknown还是unknown
	传统的二值逻辑变成三值逻辑

第四章-数据库安全性


数据库安全性是指?
	
	保护数据库,防止不合法的使用,造成数据的泄露,更改或破坏
三类安全性问题是指?
	
	技术安全类 非授权用户对数据库的恶意存取和破坏
	管理安全类 数据库中的重要或敏感数据被泄露
	政策法律类 安全环境的脆弱性
数据库系统的主要技术指标
	
	系统安全保护措施是否有效 是数据库系统的主要技术指标之一
两个安全标准准则
	TCSEC橘皮书
	CC项目
		机构开放
		表达方式通用
四个方面安全性级别指标
	
	紫皮书中定义
		安全策略
		责任
		保证
		文档
紫皮书7个安全级别
	
	a1 验证设计
	b3 安全域
	b2 结构化保护
	b1 标记安全保护 强制存取控制 b1级别的产品才是真正意义上的安全产品,冠以"安全"和"可信"字样
	c2 受控的存取保护 自主存取控制 c2以上审计必不可少
	c1 自主安全保护
	d1 最小保护
安全性控制的基本技术
	
	用户身份鉴别
		每个用户在系统中有用户标识,进入系统需要鉴定
		最外层的安全保护措施
	多层存取控制
		推理控制
		强制存取控制
		自主存取控制
	视图机制
		将保密的数据对无权存取的用户隐藏
	审计
		建立审计日志,将用户对数据库的操作自动记录在审计日志中
		审计员利用日志监控数据库的各种行为,找出非法存取数据的人
		审计机制提供了一种事后检查的安全机制
	数据加密
设置和取消审计功能
	
	设置审计功能
		Audit   eg: audit alter update on sc
	取消审计
		NoAudit eg: noaudit alter update on sc
审计事件的类别
	
	服务器事件
	系统事件
	语句事件
	模式对象事件
审计一般分为
	
	用户级审计
		任何用户可以设置
	系统级审计
		只能DBA设置
用户身份鉴别的方法
	
	静态口令(常用)
	动态口令(比较安全)
	生物特征
	智能卡
存取控制
	
	存取控制分为自主存取控制和强制存取控制
	存取控制机制包括定义用户权限和合法权限检查,一起组成了DBMS存取控制子系统
	定义存取权限称为授权
用户权限的两个要素
	
	数据库对象
	操作类型
存取控制的对象
	
	数据本身
	数据库模式
自主存取控制
	
	用户对不同的数据库对象有不同的存取权限
	不同用户对同一对象也有不同的权限
	可以将自己拥有的权限授予其他用户
	弊端
		仅通过数据库的存取权限进行安全控制,数据本身无安全标记
强制存取控制
	
	所有实体分为主体(活动实体,用户)和客体(被动实体,文件,表,视图等)两大类
	对每个主体和客体指派敏感度标记
		主体的敏感度标记称为许可证级别
		客体的敏感度标记称为密级
	对数据本身进行标记,无论数据如何复制,标记与数据是一个不可分的整体
	只有具有合法许可证的用户才能存取某一密级的数据
敏感度标记
	
	绝密 ts
	机密 s
	可信 c
	公开 p
强制存取控制遵守的规则
	
	敏感度标记级别
		主体 ≥ 客体  可读
		主体 ≤ 客体  可写
	违反规则2,有可能把数据的密级从高流向低,造成数据泄露
数据库角色
	
	数据库角色是被命名的一组与数据库操作相关的权限
	角色是权限集合
数据加密包括
	
	存储加密
		透明存储加密
			内核级加密,对用户完全透明(不可见)
		非透明存储加密
			通过多个加密函数实现
	传输加密
		链路加密
		端到端加密
加密的基本思想
	
	根据算法将明文转换为密文,不知道解密算法的人无法获取内容
其他安全保护
	
	推理控制
	隐蔽信道
	数据隐私保护
	推理控制和隐蔽通道是处理强制存取控制未解决的问题

第五章-数据库完整性

数据库完整性是指
	
	正确性
		数据符合现实世界语义
	相容性
		同一对象在不同表中的数据是否符合逻辑
维护数据库的完整性,DBMS必须提供哪些功能?
	
	提供定义完整性约束条件的机制
		数据库中的数据必须满足的语义约束
	提供完整性检查的方法
		检查数据是否满足完整性约束条件
	进行违约处理
		违反完整性约束条件则采取拒绝执行或级联执行,保证完整性
	定义和检查是由RDBMS实现的 不必由程序来完成
关系数据库系统核心支持的功能
	
	完整性控制
完整性检查和违约处理
	
	实体完整性
		检查主码值是否唯一,不唯一则拒绝插入或修改
		检查主码各属性是否为空,只要有一个空值则拒绝插入或修改
	参照完整性
		在定义外键的时候指定
  	no action 拒绝执行
  	cascade   级联操作
  	set null  设置为空
用户定义的完整性
	not nul
	unique
	check
断言
	
	通过声明性断言来指定更具一般性的约束
	断言触发时机
		断言创建后,任何对断言中涉及的关系操作都会触发DBMS的检查
		不为真值的操作都会被拒绝执行
触发器是什么?
	
	触发器是用户定义在表上的一类由事件驱动的特殊存储过程,该表称为触发器的目标表
	触发器又称 事件-条件-动作 规则
	只有表的拥有者才能创建触发器
触发器命名
	
	可以包含或者不包含模式名,同一模式下的触发器不能同名
	触发器名和表名必须在同一模式下
触发事件
	
	insert,delete,update的组合
触发器类型
	
	行级触发器
	语句级触发器
触发动作体可以是哪些
	
	匿名PL/SQL过程块
	已创建的存储过程的调用
触发器中的NEW和OLD
	
	表示update或delete之前和之后的值
	只有行级触发器才能使用
如果触发动作体执行失败
	
	激活触发器的事件终止执行
	目标表和其他对象不会发生变化
激活触发器
	
	由触发事件激活
	执行顺序
		before触发器
		sql语句
		after触发器
	如果是相同时机的触发器 谁先创建谁先执行

第六章-关系数据理论

规范化理论的背景
	
	任何一种数据库应用系统,都会遇到如何构造合适的数据模型的问题
	由于关系模型由严格的理论基础,且可以向其他数据库模型转换
	因此,人们以关系模型为背景,形成关系数据库的规范化理论
	解决关系数据库逻辑设计问题
什么是规范化
	
	通过范式分解,将一个低一级范式的关系模式转换成若干高一级的范式的关系模式集合,这个过程称为规范化
什么是数据依赖
	
	属性与属性之间的一种约束关系
	是数据内在的性质,语义的体现
	分为函数依赖和多值依赖
关系模式存在的问题
	
	数据冗余
		数据重复出现,浪费存储空间
	更新异常
		由于数据冗余,更新必须同时更新所有冗余数据
	插入异常
		该插入的数据未被插入
	删除异常
		不该删除的数据被删除
范式
	
	非规范化模式
		↓使属性域变为简单域
	1NF (每一个分量都是不可分的数据项)
		↓消除非主属性对码的部分依赖
	2NF (属于1NF,且每一个非主属性都完全函数依赖于任何一个候选码)
		↓消除非主属性对码的传递依赖
	3NF (属于1NF,且每一个非主属性既不部分依赖于任何一个候选码,也不传递依赖于任何一个候选码)
		↓消除主属性对码的部依赖和函数依赖
	BCNF (属于1NF,不存在任何属性对任何一个码的部分依赖和传递依赖,函数依赖范畴实现彻底分离)
函数依赖的概念
	
	是语义范畴的概念
	只能根据语义来确定一个函数依赖
函数依赖的种类
函数依赖
	
设R(U)是要给关系模式,x,y是U的子集
对于R(U)的任何一个关系r,如果在r中存在两个元组在x的属性组相同,在y上不同
则称x函数确定y,或y函数依赖于x 记作 x→y
x也称决定因素
平凡函数依赖
	
x包含y
非平凡函数依赖
	
x不包含y
完全函数依赖
	
x的任何一个真子集都不能函数确定y
部分函数依赖
	
	y不完全依赖于x
传递函数依赖
	
	在R(U)中 x可以推出y,y不属于x,y推不出x,y可以推出z,z不属于y,则z传递函数依赖于x

第七章-数据库设计


数据库设计的方法
	
	新奥尔良
	UML
	ER模型
	3NF
	面向对象
数据库设计的步骤
	
	需求分析
	概念结构设计
	逻辑结构设计
	物理结构设计
	数据库实施
	数据库运行和维护
需求分析的任务
	
	调查现实世界要处理的对象,明确用户需求,在此基础上确定新功能
	调查的重点是"数据"和"处理",通过调查,收集与分析获得用户的如下需求
		信息要求
		处理要求
		安全性与完整性要求
数据库设计中数据字典的概念
	
	数据收集和分析的成果
	数据库中数据的描述,即元数据
	在需求分析阶段建立,则设计过程中不断修改完善
数据库设计中数据字典的内容
	
	数据项        数据的最小组成单位
	数据结构      反映数据之间组合关系
	数据流        在系统内传输的路径
	数据存储      数据结构保存和停留的地方
	数据处理方式   一般用盘点表或者判定树表示
数据库设计中的三级模式
	
	模式 具体的数据模型 如关系模型
	外模式 在基本表上建立视图
	内模式 物理存储安排,建立索引
什么是概念结构设计?
	
	将用户需求抽象为信息结构
合并ER图的冲突
	
	属性冲突
		属性域冲突和取值单位冲突
	命名冲突
		同名异义,异名同义
	结构冲突
		同一对象在不同应用中有不同抽象
		包含属性个数和排列次序不一致
		实体间的联系在不同的ER图中为不同类型
实体与属性划分原则
	
	属性必须是不可分的数据项
	属性不能与其他实体有联系
消除冗余的方法
	
	分析方法 以数据字典和数据流图为依据
	规范化理论
逻辑结构设计的内容
	
	将上个阶段设计好的ER图转换为逻辑数据模型
ER图向关系模型转换的难点是?
	
	实体型与实体之间的联系转换为关系模式,确定这些关系模式的属性和码
数据模型的优化方法
	
	确定函数依赖
	依赖极小化处理,消除冗余联系
	水平分解和垂直分解
什么是物理结构设计?
	
	为逻辑结构模型选一个适用的物理结构的过程
物理设计的步骤
	
	确定数据库的
		物理结构
		存取方法
		存储结构
	对物理结构进行评价,评价的重点是时间和空间效率
常用的存取方法
	
	索引方法
		B+树索引 经常在查询条件中出现
		hash索引 关系的大小可预知且不变,大小动态改变,但是提供动态hash
	聚簇方法
		聚簇码 提高某个属性的速度,将具有相同值的元组集中存放
数据库实施的任务
	
	数据的载入
	应用程序的编码
	数据库应用程序设计应该与数据库设计同时进行
数据库试运行
	
	先载入小批量调试,之后逐步增加
	做好数据库的转储和恢复工作
数据库运维的主要工作
	
	数据库的转储和恢复
	安全性和完整性空值
	性能监督,分析和改造
	重组和重构
	重组不修改逻辑和物理结构,重构就会修改模式和内模式

第八章-数据库恢复技术


事务的概念
	
	用户定义的一个数据库操作虚列,这些操作要么全做,要么全部做
	是一个不可分的工作单位
	是并发控制的基本单位
	是DBMS的基本工作单位
事务的特征
	
	原子性  事务是数据库的逻辑工作单位,要么全做,要么全不做
	一致性  事务的执行结果必须是从一个一致性状态变到另一个一致性状态
	隔离性  并发执行的各个事务之间不能相互干扰
	持久性  事务一旦提交,对数据的改变应该是永久性的
故障的类型
	
	事务内部故障
		非预期的事务故障
		可被事务程序发现的事务故障
	系统故障
		软故障
	影响正在运行的所有事务,但不破坏数据库
	介质故障
		硬故障
		发生可能性小,但破坏性最大
	计算机病毒
		计算机系统和数据库系统的主要威胁
故障对数据库的两种可能影响
	
	数据集本身被破坏
	数据不正确
恢复的基本原理
	
	冗余
恢复的实现技术
	
	数据转储
		DBA定期将整个数据库复制到存储介质上保存的过程,这些备用数据称为后援副本
	登记日志文件
		用来记录事务对数据库更新操作的文件
日志文件的两种格式
	
	以记录为单位的日志文件
		各个事务的开始标记
		结束标记
		所有更新操作
		上述三个内容都对应一个日志记录
			事务标识
			操作类型
			操作对象
			旧值
			新值
	以数据块为单位的日志文件
		事务标识和被更新的数据块
日志文件的作用
	
	用来做事务故障恢复和系统故障恢复,协助后援副本做介质故障恢复
	具体作用
		事务和系统故障恢复必须要用到日志文件
		动态转储必须建立日志文件,后援副本和日志文件结合才能有效恢复数据库
		静态转储中也可建立,对已完成的事务进行重做处理,故障发生时,未完成的事务做撤销处理
转储可分为
	
	静态,动态,海量,增量
事务故障恢复步骤
	undo
	反向扫描日志文件,查找该事务的更新操作
	对该事务的更新操作进行逆操作,直到事务的开始标记
系统故障恢复步骤
	
	正向扫描日志文件
	找出故障发生前已提交事务队列和未提交事务队列
	未完成的事务队列中各事务undo
	已完成的事务队列中各事务redo
介质故障恢复步骤
	恢复方法 重装数据库,重做已完成的事务
	具体步骤
		装入新的数据库后援副本,恢复到最近一次转储时的一致性状态
		装入转储结束时刻的日志文件副本,重做已完成事务
		启动系统恢复命令,由DBMS完成恢复功能
		需要DBA介入

第九章-并发控制


并发控制的基本概念
	
	事务是并发控制的基本单位
	用正确的调度方式,使一个事务的执行不受其他事务干扰,避免造成数据不一致
并发操作产生的数据不一致
	
	丢失修改
	脏读
	不可重复读
并发控制的主要技术
	
	封锁
	时间戳
	乐观锁控制法
	多版本并发控制
并发控制保证了事务的哪些特性?
	
	一致性
	隔离性
为什么要并发控制
	
	多个事务并发执行,同时操作同一数据,导致存取和存储不正确,破坏数据库的一致性
	保证事务的一致性和隔离性
什么是封锁
	
	事务对数据对象操作之前,先向系统发出加锁请求
	加锁后,任何事务不能更新或读取此对象,直到释放锁
如何利用封锁机制保证一致性
	
	读写操作前先对数据执行封锁操作
	按一定的封锁协议对并发操作进行控制,可避免不一致性
保证并发调度的正确性采用
	
	两段锁协议 2PL
两段锁协议,冲突可串行化与可串行化之间的关系
	
	两段锁协议一定是可串行化的
	冲突可串行化一定是可串行化的
	以上 反过来是不成立的,即充分不必要条件
可串行化调度
	
	多个事务并发执行是正确的,当且仅当其结果与按某一次序 串行执行的结果相同
并发事务正确调度的准则是?
	
	可串行化调度
封锁对象的大小称为
	
	封锁粒度
	粒度越小,并发越高,开销越大
避免死锁的方法
	
	先来先服务
死锁的诊断与解除
	
	超时法
	事务等待图法
死锁的预防
	
	一次封锁法
	顺序封锁法

人工管理阶段 文件管理阶段 数据库管理阶段
应用背景 科学计算 科学计算、数据管理 大规模数据管理
硬件背景 无直接存取的存储设备 磁盘、磁鼓 大容量磁盘、磁盘阵列
软件背景 没有操作系统 有文件系统 有数据库管理系统
处理方式 批处理 联机实时处理、批处理 联机实时处理、分布处理、批处理
数据的管理者 用户(程序员) 文件系统 数据库管理系统
数据面向的对象 某一应用程序 某一应用 现实世界
数据的共享程度 无共享、冗余度极大 共享性差、冗余度大 共线性高、冗余度小
数据的独立性 不独立、完全依赖于程序 独立性差 高度的物理独立性和一定的逻辑独立性
数据的结构化 无结构 记录内有结构、整体无结构 整体结构化
数据控制能力 应用程序自己控制 应用程序自己控制 由DBMS提供数据安全性、完整性、并发控制和恢复能立

分类:

技术点:

相关文章: