数据库系统原理 全

第一章 绪论

一、数据库系统概述
1、基本术语数据是数据库中存储的基本对象。
数据的定义:描述事物的符号记录称为数据。
数据是信息的数字化表示,而信息是数据的内涵。
数据的种类:文字、数字、图形、图像、声音、视频等。
数据的特点:数据与其语义是不可分的。
数据库(DB)就是长期储存在计算机内、有组织的、可共享、大量的数据集合。
数据库中的数据具有永久存储、有组织、可共享的特点。具体来讲,数据库中的数据具有以下特点:
(1)数据按一定的数据模型组织、描述和储存;
(2)可为各种用户共享
(3)冗余度较小
(4)数据独立性较高
(5)易扩展。
数据库管理系统(DBMS)是位于用户与操作系统之间的一层数据管理软件。DBMS的用途:科学地组织和存储数据、高效地获取和维护数据。DBMS的主要功能:
(1)数据定义功能:提供数据定义语言(DDL),定义数据库中的数据对象(数据库表、索引、视图等)
(2)数据的组织、存储和管理功能:分类组织、存储和管理各种数据,确定组织数据的文件结构和存取方式,实现数据之间的联系,提供多种存取方法提高存取效率;
(3)数据操纵功能:提供数据操纵语言(DML),操纵数据实现对数据库的基本操作(查询、插入、删除和修改);
(4)数据库的事务管理和运行管理功能:数据库在建立、运行和维护时由DBMS统一管理和控制,以保证事务的正确运行,保证数据的安全性、完整性、多用户对数据的并发使用,发生故障后的系统恢复。
(5)数据库的建立和维护功能数据库数据初始数据的输入、转换,数据库转储、恢复功能,数据库的重组织,性能监视、分析功能等。
(6)其他功能DBMS与网络中其它软件系统的通信,两个DBMS系统的数据转换,异构数据库之间的互访和互操作。
数据库系统的构成:由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。
2、数据库发展阶段人工管理阶段、文件系统阶段、数据库系统阶段。
3、数据库系统的特点数据库系统具有4个主要的特点:
(1)数据结构化;
(2)数据共享性高,冗余度小,易扩充;
(3)数据独立性高;数据独立性包括数据的物理独立性和数据的逻辑独立性。
(4)数据由DBMS统一管理和控制。包括数据库的安全性、数据库的完整性、并发控制、数据库的恢复。
二、数据模型
1、分类:概念数据模型、逻辑模型和物理模型。
2、概念数据模型(信息模型):ER模型基本概念:
(1)实体:客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。
(2)属性:实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
(3)码:唯一标识实体的属性集称为码。
(4)实体型:具有相同属性的实体必然具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体。
(5)实体集:同型实体的集合称为实体集.(6)联系:包括:一对一、一对多、多对多三种。
3、逻辑数据模型(也叫结构数据模型,简称数据模型):网状模型(图)、层次模型(树)、关系模型(二维表)、面向对象模型(对象之间)。
数据模型的三要素:数据结构(静态)、数据操作(动态特性)、数据的完整性约束
三、数据库系统的模式结构
1、模式结构
(1)数据库系统内部的模式结构从数据库管理系统角度看:数据库系统通常采用三级模式结构
(2)数据库系统外部的体系结构
从数据库最终用户角度看:数据库系统的结构分为:单用户结构、主从式结构、分布式结构、客户/ 服务器结构。
三级模式结构:
(1)模式:也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。一个数据库中只有一个模式,它是数据库系统模式结构的中间层。(2)外模式:也称为子模式或用户模式,是数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述。
一个应用程序只能使用一个外模式。外模式通常是模式的子集,一个数据库中可以存在多个外模式。
模式与外模式之间的关系:一对多。
(3)内模式:也称为存储模式,是数据库中数据物理结构和存储方式的描述。一个数据库中只有一个内模式。
2、两层映像与数据独立性
(1)外模式/模式映像数据的逻辑独立性:当模式发生改变时,数据库管理员修改有关的外模式/模式映像,就可以使外模式保持不变。
(2)模式/内模式映像数据的物理独立性:当数据库的存储结构发生了改变(例如选用了另一种存储结构),数据库管理员通过修改模式/内模式映像就可以使模式保持不变。
四、数据库系统的组成
1、数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。
2、数据库管理员–DBA的职责:
(1)决定数据库中的信息内容和结构;
(2)决定数据库的存储结构和存取策略;
(3)定义数据的安全性要求和完整性约束条件;
(4)监控数据库的使用和运行;
(5)数据库的改进和重组重构。
补充
1、层次模型必须满足有且仅有一个结点无父结点。
2、数据库——DB
数据库管理系统——DBMS
数据库系统——DBS DBS 包括DB、DBMS。

第二章 关系数据库

一、关系数据结构及形式化定义
1、关系是元组的集合。
2、基本概念
(1)域(Domain):域是一组具有相同数据类型的值的集合。
(2)笛卡尔积给定一组域D1,D2,… ,Dn,这些域可以相同, 则D1,D2,…,Dn上的笛卡尔积为:D1×D2×…×Dn = {(d1,d2,…,dn )|diÎDi,i=1 ,2,… ,n}每一个元素(d1,d2,…,dn)称为一个n元组(n-tuple)或元组(Tuple) 。
一个元组是组成该元组的各分量的有序集合(而决不仅仅是各分量的集合)。元组的个数称为笛卡尔积的基数。元素中的每一个值di称为元组分量,di必是Di中的一个值。n表示参与笛卡尔积的域的个数,称为目、元数或度。若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:
在这里插入图片描述
笛卡尔积可表示为一个二维表,表中的每行对应一个元组,表中的每列对应一个域。笛卡尔积D1×D2×…×Dn 的子集叫作在域D1,D2,… ,Dn上的关系,又称为表。
一个属性的取值范围Di(i=1, 2, …, n)称为该属性的域(Domain)。
不同属性可以有相同的域。
(3)候选码(Candidate key)若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
(4)主码(Primary key)若一个关系有多个候选码,则选定其中一个为主码,候选码的诸属性称为主属性(Prime attribute)。不包含在任何侯选码中的属性称为非码属性(Non-key attribute)。
3、关系的类型:基本关系、查询表、视图表。
4、关系的基本性质
①每一分量必须是不可分的最小数据项,即每个属性都是不可再分解的;
②每列的数据类型是固定的,即每一列中的分量是同类型的数据,来自同一个值域。
③不同的列可以出自同一个值域,每一列称为属性,每个属性要给予不同的属性名。
④列的次序可以任意交换,但一定是整体交换,属性名和属性值必须作为整列同时交换。
⑤行的次序可以任意交换;
⑥元组不可以重复,即在一个关系中任意两个元组不能完全一样。
5、关系数据库中,关系模型是型。关系是值。
6、关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常称为关系数据库。
二、关系操作
1、基本的关系操作
(1)传统的集合运算:交、并、差、广义笛卡尔积。
(2)专门的关系运算:选择、投影、连接、除。
(3)数据操作:查询、插入、删除、修改等。
2、选择、投影、并、差、笛卡尔积是5种基本操作
3、关系查询语言分类:关系代数语言、关系演算语言、具有关系代数和关系演算双重特点的语言。
4、关系操作的特点:操作的对象结果都是集合,一次一集合的方式。
三、关系完整性
1、完整性约束:(1)实体完整性;(2)参照完整性;(3)用户定义完整性。(1、2称作关系的两个不变性)
2、实体完整性约束
规则2.1:实体完整性规则若属性A (指一个或一组属性)是基本关系R的主属性,则属性A不能取空值。
3.参照完整性规则
规则2.2参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为如下之一:(1)或者取空值(F的每个属性值必须取空值);(2)或者等于S中某个元组的主码值。
四、关系代数
1、概述算术比较符:大于、小于、等于、不等于、大于等于、小于等于。逻辑运算符:或(V)、与、非。
2、传统的集合运算::包括并(∪)、差(—)、交(∩)和广义笛卡尔积(×)。
(1)并(∪):R∪S ={t|t∈R∨t∈S};
(2)差(—):R-S ={t|t∈R∧tS};
(3)交(∩):R∩S={t|t∈R∧t∈S};
(4)广义笛卡尔积(×):R×S ={ |tr∈R∧ts∈S}。表示由两个元组tr和ts前后有序连接而成的一个元组。即任取元组tr和ts,当且仅当tr属于R且ts属于S时,tr和ts的有序连接即为R×S的一个元组。
3、专门的关系运算:包括投影(π),选择(σ),连接(⋈)和除(÷)。投影和选择是一元操作,其他都是二元操作。
(1)特殊符号(笔记本上)
(2)选择运算:σF®= {t|tÎR∧F(t)= ‘真’}
(3)投影运算:πA®= { t[A] | t ÎR }
(4)连接运算:= {| trÎR∧ts ÎS∧tr[A]θts[B] } (θ是比较运算符)连接包括等值连接和自然连接。
等值连接的含义:从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,可表示为:= { |trÎR∧tsÎS∧tr[A] = ts[B]
自然连接的含义:设R的属性集为{X,Y},S的属性集为{Y,Z},可表示为:R∞S={t | t=<X,Y,Z>∧t[X,Y]∈R∧t[Y,Z]∈S∧ tr[Y] = ts[Y]}相当于在R×S中选取R和S的所有公共属性值都相等的元组,并在结果中去掉重复属性。
(5)除运算:R÷S={tr[X] | tr∈R ∧∏y(S)∈Yx},其中Yx为x在R中的象集,x=tr[X] 。
补充
1、笛卡尔积是向关系的水平方向进行运算;
自然连接是既向水平也向垂直方向进行运算。
2、对于关系和关系模式,关系经常改变,关系模式不经常改变。
3、投影是在关系的( 列 )的方向上进行的针对( 属性 )进行的关系代数运算。
4、在SQL语言查询语句中,WHERE子句实现关系代数的( 选择运算 )。

第三章 关系数据库查询语言SQL

一、SQL概述
1、结构化查询语言SQL是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面。
SQL是非过程化语言。
2、根据功能,SQL语言分为:
(1)数据操作语言(DML)
(2)数据定义语言(DDL)
(3)数据控制语言(DCL)
(4)触发器和高级完整性约束
(5)嵌入式和动态SQL
(6)客户-服务器执行和远程数据库提取
(7)事务管理
3、SQL的特点
(1)综合统一
(2)高度非过程化
(3)面向集合的操作方式
(4)以同一种语法结构提供多种使用方式
(5)语言简洁、易学易用。
二、数据库
三、数据定义关系
数据库的基本对象是表、视图和索引。
因此SQL的数据定义功能包括定义表、定义视图和定义索引。
SQL的数据定义语句:
操作对象 创建 删除 修改
表 CREATE TABLE DROP TABLE ALTER TABLE
视图 CREATE VIEW DROP VIEW
索引 CREATE INDEX DROP INDEX
1.定义表的SQL语句
定义基本表的SQL语句格式为:CREATE TABLE 表名(列定义,[列定义,]…,[表级完整性约束定义…]);
2、表定义主要包括两部分:列定义和完整性约束的定义。
(1)列定义
SQL中列名的定义需要遵循以下要求:要求列名以字母开头,可含字母、数字、#、$、_,并且长度要求<=30字符。
(2)列数据类型数据类型主要包括:Char(n) 【定长字符串类型】、Varchar2(n) 【可变长字符串类型】、Number 【数值型】、Date 【日期时间型】等类型。
(3)列定义完整格式<列名> <列类型> [ DEFAULT <默认值>] [ [ NOT ] NULL] [<列约束>]其中,列名和列类型项目是必须包含的项目,默认值的定义、是否允许为空和列级完整性的定义属于可选项目。
如:学生姓名列的定义格式为:sname varchar2(10) not null unique
3、完整性约束
(1)主码约束
(2)外码约束
(3)CHECK约束
(4)not null约束:NOT NULL约束只能在列级定义,不能在表级定义。4、基本表的修改
(1)添加和删除表中的列
(2)修改列
(3)删除约束
(4)修改列名
5、索引的建立和删除
(1)建立格式:CREATE [UNIQUE][CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>]]…);
(2)删除格式:DROP INDEX<索引名>;
四、数据查询
1、单表查询
(1)查询指定的列
(2)查询全部列
(3)查询经过计算的值
(4)消除值重复的行
(5)查询满足条件的元组:在SELECT语句中,可以通过Where子句实现返回满足条件的记录,如果无Where子句时返回全部的记录。
2、连接查询
3、嵌套查询子查询通常出现在WHERE子句中,有时候也出现FROM子句中,有时候也出现在HAVING短语中。
4、集合查询
五、数据更新
SQL中数据更新包括插入数据、修改数据和删除数据三种语句。
1、插入数据(1)插入单个元组插入单个元组的INSERT语句的格式为:INSERT
INTO <表名> [(<属性列1>[,<属性列2>…)]
VALUES (<常量1> [,<常量2>]…)
如果某些属性列在INTO子句中没有出现,则新记录在这些列上将取空值。但必须注意的是,在表定义时说明了NOT NULL的属性列不能取空值,否则会出错。如果INTO子句中没有指明任何列名,则新插入的记录必须在每个属性列上均有值。
(2)INSERT与子查询相结合子查询不仅可以嵌套在SELECT语句中,也可以嵌套在INSERT语句中,把子查询的结果插入到指定的表中,这样的一条INSERT语句,可以一次插入多条元组。插入子查询结果的INSERT语句的格式为:INSERTINTO <表名> [(<属性列1> [,<属性列2>…)]
(子查询);
2、修改数据修改操作又称为更新操作,
其语句的一般格式为:UPDATE <表名>SET <列名>=<表达式>[,<列名>=<表达式>]…[WHERE <条件>];
UPDATE的功能是更新表中的数据。必须提供表名以及SET表达式,即用<表达式>的值取代相应的属性列值,在后面可以加WHERE以限制更新的记录范围。
(1)修改元组
(2)UPDATE与子查询的结合
3、删除数据
(1)删除元组的值
六、视图
1、创建视图
视图是基于一个或多个表或视图的逻辑表,是一个虚表。视图基于的表称为基表。
视图具有以下几个优点:
(1)能分割数据,简化观点。
(2)为数据提供一定的逻辑独立性。
(3)提供自动的安全保护功能。
(4)视图可以间接对表进行更新。
视图的属性列名可以省略,但也存在明确所有视图的列名的情况。
2、更新视图
更新视图包括插入(INSERT)、删除(DELETE)、和修改(UPDATE)三类。
3、删除视图
语句格式:DROP VIEW<视图名>;
(1)视图定义必须是一个简单的SELECT语句,不能带连接、集合操作。即SELECT语句的FROM子句中不能出现多个表,也不能有JOIN、EXCEPT、UNION、INTERSECT;
(2)视图定义的SELECT子句中不能有DISTINCT;不能含有GROUP BY 子句、不能含有HAVING 子句。
4、视图作用
(1)视图能够简化用户的操作;
(2)视图使用户能够以多种角度看待同一数据;
(3)视图能够对机密数据提供安全保护;
(4)视图对重构数据库提供了一定程度的逻辑数据独立性。

第四章 数据库的安全性

一、计算机系统的安全性概述
1、不安全因素非授权用户对数据库的恶意存取和破坏,如黑客;数据库中重要或敏感的数据被泄露;安全环境的脆弱性;
2、安全标准
二、数据库安全性控制
用户:用户识别和鉴别
DBMS:数据库安全保护
OS:操作系统安全保护
DB:数据密码存储
1、用户鉴别身份的方法:
静态口令鉴别、
动态口令~~、
生物特征~~、
智能卡~~。
2、存取控制常用的存取控制方法:
自主存取控制—DAC:C2级,通过SQL的GRANT语句(授权)和REVOKE语句(回收)
实现强制存取控制—MAC:B1级
用户权限组成:数据对象、操作类型。
定义存取权限称为授权。
3、角色
三、视图机制
四、审计(Audit)
审计事件:服务器事件、系统权限、语句事件、模式对象事件。
AUDIT语句:设置审计功能。
NOAUDIT语句:取消审计功能。
五、数据加密
1、加密方法:存储加密、传输加密。
存储加密:透明存储加密、非透明存储加密(多个加密函数)。
传输加密:链路加密(报文报头均加密)、端到端加密(加密报文,不加报头)。
六、其他安全性保护与小结
实现数据库系统安全性的技术和方法:
用户身份鉴别、存取控制技术、视图技术、审计技术、数据加密存储和加密传输。

第五章 数据库的完整性

一、完整性约束条件
数据库的完整性:包括数据的正确性、数据的相容性。
为维护数据库的完整性,DBA必须:
(1)提供定义完整性约束条件的机制;
(2)提供完整性检查的方法;
(3)违约处理:拒绝(NO ACTION)执行、级联(CASCADE)操作
数据库的安全性:数据的正确性、数据的相容性。
一、实体完整性
二、参照完整性
1、参照完整性:
(1)在CREATE TABLE中用FOREING KEY短语定义哪些列为外码;
(2)用REFERENCES短语指明这些外码参照哪些表的主码。
参照完整性违约处理:
(1)拒绝(NO ACTION)执行;
(2)级联(CASCADE)操作;
(3)设置为空值(SET-NULL)。
三、用户自定义的完整性约束
1、CREATE TABLE时定义属性上的约束条件:
(1)列值非空(NOT NULL);
(2)列值唯一(UNIQUE);
(3)检查列值是否满足一个条件表达式(CHECK)。
2、属性上的约束条件检查和违约处理
插入或修改时,若不满足条件则操作被拒绝执行。
3、在CREATE TABLE时可以用CHECK短语定义元组上的约束条件,即元组级的限制。
4、元组上的约束条件检查和违约处理
插入或修改时,若不满足条件则操作被拒绝执行。
四、完整性约束命名子句
1、完整性约束命名子句
CONSTRAINT<完整性约束条件名><完整性约束条件>
*完整性约束条件包括NOT NULL、UNIQUE、PRIMARY KEY短语、FOREIGN KEY短语、CHECK短语等。
2、修改表中的完整性限制
使用ATTER TABLE语句修改表中的完整性限制。
五、触发器(Trigger)
1、触发器是用户定义在关系表上的一类由事件驱动的特殊过程。
2、定义触发器
语法格式:
CRETATE TRIGGER<触发器名>
{ BEFORE | AFTER }<触发事件>ON<表名>
REFERENCING NEW | OLD ROW AS<变量>
FOR EACH { ROW | STATEMENT }
[ WHEN <S触发条件> ]<触发动作体>
定义触发器的说明
(1)表的拥有者才可以在表上创建触发器
(2)触发器名
触发器名可以包含模式名,也可以不包含模式名;
同一模式下,触发器必须是唯一的;
触发器名和表名必须在同一模式下。
(3)表名
触发器只能定义在基本表上,不能定义在视图上
(4)触发事件
(5)触发器的类型:
行级触发器(FOR EACH ROW)
语句级触发器(FOR EACH ATATEMENT)
(6)触发条件
触发条件为真,才执行触发动作体。
(7)触发动作体
3、激活触发器
由触发事件激活。
定义多个触发器时,有以下执行顺序:
(1)执行BEFORE触发器;
(2)激活SQL语句;
(3)执行AFTER触发器。
4、删除触发器
删除触发器的SQL语法:
DROP TRIGGER<触发器名>;

第六章 数据库系统概论

一、数据依赖
1、数据依赖是一个关系内部属性和属性之间的一种约束关系。
2、数据依赖的类型:
函数依赖(简记FD);
多值依赖(简记MVD)。
3、关系模式Student<U,F>中存在的问题:
数据冗余度太大;
插入异常;
更新异常;
删除异常。
二、关系模式的规范化
1、函数依赖:
定义:设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。
对于R(U)的任意一个可能的关系r,t1、t2是r中的任意两个元组;如果由t1[X]=t2[X]可以推导出t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。
说明:
(1)若X→Y,则X称为这个函数依赖的决定属性集,或决定因素。
(2)若X→Y,并且Y→X,则记为X←→Y。
(3)若Y不函数依赖于X,则记为

定义:在关系模式R(U)中,对于U的子集X和Y,如果X→Y,但Y⊆X,则称X→Y是平凡的函数依赖。若Y不属于X,则称X→Y为非平凡的函数依赖。

三、范式
1、关系模式的好与坏的标准衡量就是模式的范式(Normal Forms,简记为NF)。
2、范式的种类
(1)第一范式(1NF): 如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R属于第一范式(first normal form,简记为1NF),记作R∈1NF。
(2)第二范式(2NF): 如果关系模式R∈1NF,且每个非主属性完全函数依赖于码,那么称R属于第二范式(2NF),记作R∈2NF。
(3)第三范式(3NF):如果关系模式R∈1NF,且每个非主属性都不传递依赖于R的码,那么称R属于第三范式(3NF),记作R∈3NF。
(4)BC范式(BCNF)
BCNF(Boyce Codd Normal Form)是由Boyce 与Codd同时提出的,比3NF又进了一步,通常称BCNF为修正的3NF。所以有BCNF 3NF。
如果关系模式R∈1NF,且X→Y(Y X)时,X必含有码,则R属于BCNF,记作R∈BCNF。
(5)第四范式(4NF) 定义6-12如果关系模式R∈1NF,对于R的每个非平凡的多值依赖X→→Y(Y不属于X),X含有码,则称R是第四范式,即R∈4NF。
三、多值依赖与第四范式
1、若X->->Y,而Z=空集,则称X->->Y为平凡的多值依赖,否则称X->->Y为非平凡的多值依赖。
多值依赖表示:X->->Y
2、多值依赖的性质
(1)对称性:若X->->Y,则X->->Z,其中Z=U-X-Y ;
(2)传递性:若X->->Y,Y->->Z,则X->->Z-Y;
(3)函数依赖是多值依赖的特殊情况:
若X->Y,则X->->Y;
若X->->Y,X->->Z,则X->->YZ;
若X->->Y,X->->Z,则X->->Y交Z;
若X->->Y,X->->Z,则X->->Y-Z,X->->Z-Y。
3、多值依赖的有效性与属性集的范围有关,
四、数据依赖的公里系统
1、ArmStrong公理系统在这里插入图片描述
定理6-1 Armstrong公理是正确的、完备的。
自反律
2、函数依赖集等价最小函数依赖
在这里插入图片描述
3、最小函数依赖例子
五、模式分析
略。

第七章 数据库恢复技术

一、事务
1、事务是用户定义的一个数据库操作序列
事务是恢复和并发控制的基本单位。
2、事务结束
COMMIT 正常结束
ROLLBACK 回滚
3、事务ACID的特性原子性、一致性、隔离性、持续性(永久性)。
原子性——事物中包括的所有操作要么都做,要么都不做;
隔离性——一个事物内部的操作及使用的数据对并发的其他事务是隔离的;
一致性——事务必须是使数据库从一个一致的状态变到另一个一致的状态;
持续性(永久性)—— 事物一旦提交,对数据库俄改变是永久的。
一致性——只包含成功事务提交的结果;
不一致性——未完成事务。
二、恢复概述
1、故障:计算机硬件故障、软件错误、操作员失误、恶意破坏等。
2、恢复子系统——数据库的恢复。
三、故障种类
(1)事务内部故障
(2)系统故障(也称软故障):系统停止运转的任何事件。
(3)介质故障(硬故障):磁盘损坏,磁头碰撞等。
(4)计算机病毒
恢复策略:回滚(ROLLBACK)、撤销(UNDO)
四、恢复的实现技术
1、恢复操作的基本原理——冗余
2、恢复技术——复杂
(1)数据转储
备用的数据文本称为——后备副本或后援副本
转储方法
1)静态转储:无事务运行时的转储操作;
动态转储:转储操作与事务并发进行。
2)海量转储:每次转储全部数据库;
增量转储:只转储上次转储后更新过的数据。
(2)登记日志文件
日志文件——记录事务对数据库的更新操作的文件。
日志文件格式:以记录问单位、以数据块为单位。
登记原则:严格按照事务执行时间次序;必须先写日志文件,再写数据库。
五、恢复策略
1、事务故障的恢复:撤销(UNDO)
步骤:反向扫描日志文件——对更新操作执行逆操作。
2、系统故障的恢复——先撤销后重做
(1)UNDO ——故障发生时未完成的事务;
(2)REDO——已完成的事务(重做)。
步骤:正向扫描日志文件——UNDO(反向扫描) / REDO(正向扫描)
3、介质故障的恢复(需要DBA)
步骤:重装数据库——重做已完成的事务
六、检查点和镜像(了解)

第八章 并发控制

一、并发控制概述
1、并发控制是以事务为单位进行的。
并发控制机制的好坏是衡量一个数据库管理系统性能的重要标志之一。
2、多事务的执行方式:
(1)事务串行执行(不能充分利用系统资源);
(2)交叉并发方式(提高系统的效率);
(3)同时并发方式(满足1和2)
3、并发控制机制的任务
(1)对并发操作进行正确调度;
(2)保证事务的隔离性;
(3)保证数据库的一致性。
4、ACID的特性原子性、一致性、隔离性、持续性。
原子性——事物中包括的所有操作要么都做,要么都不做;
隔离性——一个事物内部的操作及使用的数据对并发的其他事务是隔离的;
一致性——事务必须是使数据库从一个一致的状态变到另一个一致的状态;
持续性—— 事物一旦提交,对数据库俄改变是永久的。
5、数据库的不一致问题(破环了事务的隔离性)有:
(1)丢失修改;
(2)读"脏"数据;
(3)不可重复读。
6、并发控制的主要技术:封锁、时间戳、乐观控制法、多版本并发控制。
二、封锁
1、封锁类型
(1)排他锁(X锁)——写锁——只允许事务T读取和修改数据对象A;
(2)共享锁(S锁)——读锁——只能对A加S锁,不能加X锁。
三、封锁协议
1、封锁的目的——保证能够正确地调度并发操作。
2、封锁协议
(1)1级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(commit)和非正常结束(rollback)。——防止丢失修改,事务T可以恢复。
(2)2级封锁协议:1级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。——防止丢失修改。防止读脏数据。
(3)3级封锁协议:1级封锁协议加上事务T在读取数据之前必须先对其加S锁,直到事务结束才释放。——防止丢失修改、不读脏数据、防止不可重复读。
在这里插入图片描述
四、活锁和死锁
避免活锁——先来先服务。
预防死锁的方法:一次封锁法、顺序封锁法。
死锁的诊断:超时法、事务等待图法。
五、并发控制的可串行性
1、多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同——可串行化调度。
2、可串行性是并发事务正确调度的准则。
六、两段锁协议
1、两段锁(two-phase locking,简称2PL)协议是为保证并行调度可串行性而提供的封锁协议。
2、两段锁:
(1)获得封锁(扩展阶段)
(2)释放封锁(收缩阶段)
事务遵守两段锁协议=>可串行化调度(充分条件)
七、封锁的粒度
1、封锁对象的大小——封锁粒度
2、封锁的对象
(1)逻辑单元:属性值、元组、关系等;
(2)物理单元:数据页、物理记录等。
3、封锁粒度越大,并发度越小,系统开销越小,反之越大。

第九章 数据库设计

一、数据库概述
1、数据库设计的特点
(1)基本规律:三分技术、七分管理、十二分基础数据;
(2)结构数据设计和行为处理相结合。
2、数据设计方法:手工试凑法;规范设计法;计算机辅助设计。
3、数据库设计分 6 个阶段:
需求分析;
概念结构设计;
逻辑结构设计;
物理结构设计;
数据库实施;
数据库运行和维护。
需求分析和概念设计独立于任何数据库管理系统。
逻辑设计和物理设计与选用的数据库管理系统密切相关。
4、数据库设计具有三个特征:反复性、试探性、分布进行。
二、需求分析
1、需求调查方法:查阅记录;询问;跟班作业;开调查会;网络调查。
2、结构化分析方法(SA)
3、数据流图:自顶向下逐步分解。
4、数据字典
(1)用途:进行详细的数据收集和数据分析所获得主要结果。
(2)内容
数据项:不可再分的数据单位;
数据结构:反应数据之间的关系;由若干个数据项组成或若干个数据结构组成,或若干个数据项和数据结构混合组成。
数据流:数据结构在系统内传输的途径;
处理过程:用判定表或判定树来描述;
数据存储:数据结构停留或保留的地方。
三、概念结构设计
E-R模型:1对1 、一对多(1:n)、多对多(m:n)。
设计概念结构的四类方法:自顶向下;自底向上;逐步扩张;混合策略。
冲突的种类:属性冲突、命名冲突、结构冲突。
四、逻辑结构设计
将概念结构转化为一般的关系、网状、层次模型。
五、物理结构设计
1、数据库在物理设备上的存储结构与存取方法称其为数据库的物理结构。
2、DBMS常用存取方法
(1)索引方法(B+数索引方法,经典,最普遍);
(2)聚簇方法;
(3)HASH方法。
六、数据库的实施和维护
数据库实施主要包括以下工作:用DDL建立数据库结构、组织数据入库、编制和调试应用程序、进行试运行、进行评价。

  • 19
    点赞
  • 169
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值