第六章 数据库保护共24页文档
第6章 数据库的保护
第6章数据库的保护6.1 数据的安全性保护6.1.1 数据库安全性概述6.1.2 安全性控制的一般方法6.2 数据的完整性保护6.2.1 完整性的约束条件6.2.2 完整性控制6.2.3 触发器的概念触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。
触发器经常用于加强数据的完整性约束和业务规则等。
1.触发器组成一个触发器有三个基本部件:触发事件或语句、触发器的限制、触发器动作。
触发事件或语句:为引起触发器激发的SQL语句,是对指定表INSERT、UPDATE或DELETE语句。
触发器限制:为一布尔表达式,当触发器激发时该条件必须为TRUE。
(在SQL Server 中,用户无法设置此项)触发器的动作:为一个SQL块(过程)。
当触发语句发出,触发器的限制计算得TRUE 时,它被执行。
在触发器动作的语句中,可使用触发器的处理的当前行的列值(新值、老值)。
2.触发器的作用触发器的主要作用就是能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。
除此之外,触发器还有其它许多不同的功能:(1)强化约束(Enforce restriction)触发器能够实现比CHECK 语句更为复杂的约束。
(2)跟踪变化(Auditing changes)触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。
(3)级联运行(Cascaded operation)。
触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。
例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。
(4)存储过程的调用(Stored procedure invocation)。
为了响应数据库更新触,发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS(数据库管理系统)本身之外进行操作。
保护数据库的方法
保护数据库的方法保护数据库是确保数据库中的数据安全、完整性和可用性的过程。
数据库中存储了组织的重要信息,涉及到许多保密性和合规性问题。
因此,需要使用一系列的方法来保护数据库免受潜在的威胁和风险。
下面是一些常见的数据库保护方法:1. 访问控制:访问控制是保护数据库的重要方法之一。
通过实施严格的用户权限管理,只有经过授权的用户才能访问数据库。
可以通过使用用户名和密码、角色和权限、访问控制列表等来限制用户的访问权限。
另外,采用双因素身份验证可以增加访问控制的安全性。
2. 加密:加密是在数据库中保护数据的另一种常见方法。
可以使用各种加密算法,如AES、RSA等来加密数据。
这样,即使数据库被未授权的人员访问或盗窃,也无法读取或使用加密的数据。
加密应该在数据库、传输和存储过程中都得到应用。
3. 审计和监控:监控和审计数据库的活动是保护数据库的重要手段之一。
实时监控数据库的访问、登录尝试、数据更改等活动,可以迅速发现异常行为并采取适当的措施。
审计可以记录所有数据库活动,以便日后进行调查和审查。
4. 强密码策略:使用强密码策略可以大大提高数据库的安全性。
强密码策略要求用户创建复杂的密码,包括大写字母、小写字母、数字和特殊字符,并定期更改密码。
此外,数据库管理员还应禁用默认的系统账户和密码。
5. 更新和修补:及时更新和修补数据库是防止潜在威胁的关键。
数据库供应商将频繁发布安全补丁和更新,以修复已知漏洞和漏洞,并加强数据库的安全性。
因此,管理员应该定期监测数据库供应商的更新,并及时应用它们。
6. 数据备份与恢复:定期备份数据库是保护数据免受硬件故障、自然灾害、人为错误等影响的重要方法。
备份数据必须存储在安全的地方,并定期测试备份恢复的过程,以确保数据可以成功恢复。
另外,数据备份应与原数据库分开存储,以防备份被损坏。
7. 最小权限原则:按照最小权限原则来保护数据库是一个有效的策略。
根据用户的职责和需求,为用户分配最低的权限,以防止不必要的数据访问。
数据库系统原理(第6章:数据库安全与保护)
数据库系统原理(第6章:数据库安全与保护)展开全文一、数据库完整性数据库的安全保护:•完整性控制:数据库完整性是指数据库中数据的正确性和相容性•安全性控制:数据库防止不合法的操作而造成数据泄露、更改或破坏•并发控制:事务就是为了保证数据一致性而产生的一个概念和基本手段•数据库的备份与恢复:保证数据库的可靠性和完整性数据库完整性是指数据库中数据的正确性和相容性。
完整性约束的作用:防止数据库中存在不符合语义的数据。
完整性约束条件的作用对象•列级约束:包括对列的类型、取值范围、精度等的约束•元组约束:指元组中各个字段之间的相互约束•表级约束:指若干元组、关系之间的联系的约束完整性约束条件是完整性控制机制的核心定义与实现完整性约束:实体完整性、参照完整性、用户定义的完整性**************************实体完整性************************** 实体完整性:在MySQL中,实体完整性是通过主键约束和候选键约束实现的。
主键列必须遵守的规则•每一个表只能定义一个主键•主键的值(键值)必须能够唯一标志表中的每一行记录,且不能为NULL•复合主键不能包含不必要的多余列•一个列名在复合主键的列表中只能出现一次主键约束与候选键约束的区别•主键约束一个表只能创建一个主键关键字PRIMARY KEY•候选键约束可以定义若干个候选键关键字 UNIQUE***********************参照完整性*******************************REFERENCES tbl_name(index_col_name,…)[ON DELETE reference_option][ON UPDATE reference_option]tbl_name:指定外键所参照的表名index_col_name:指定被参照的列名ON DELETE:指定参照动作相关的SQL语句reference_option:指定参照完整性约束的实现策略(RESTRICT-限制策略(默认的) | CASCADE-级联策略 | SET NULL-置空策略 | NO ACTION-不采取实施策略)**********************用户定义的完整性****************************非空约束:NOT NULLCHECK 约束:CHECK(expr)触发器命名完整性约束:CONSTRAINT [symbol] symbol:指定的约束名字只能给基于表的完整性约束指定名字,无法给基于列的完整性约束指定名字命名完整性约束的方法是在各种完整性约束的定义说明之前加上关键字( CONSTRAINT )和该约束的名字更新完整性约束使用ALTER TABLE语句更新与列或表有关的各种约束。
第6章 数据库的安全技术
Server的安全认证 2. SQL Server的安全认证
当SQL Server在Windows环境中运行时,SQL Server 2000提供了下面两种确认用户的认证模式: (1)Windows认证模式 Windows认证模式利用Windows操作系统对于用户登录 和用户帐号管理的安全机制,允许SQL Server也可以使用 Windows的用户名和口令。用户只需要通过Windows的认 证,就可以连接到SQL Server。
第六章数据库安全技术
6.3 数据库的数据保护
6.3.1 数据库的安全性
3.数据分类 数据库系统对安全性的处理是把数据分级。为每一数 据对象(文件,或字段等)赋予一定的保密级。 例如;绝密极、保密级、秘密级和公用级。对于用户, 成类似的级别。系统便可规定两条规则: (1)用户1只能查看比他级别低的或同级的数据。 (2)用户1只能修改和他同级的数据。
第六章数据库安全技术
6.3 数据库的数据保护
6.3.1 数据库的安全性
4.数据库加密 (3)数据库加密对数据库管理系统原有功能的影响 1)无法实现对数据制约因素的定义 ; 2)失去密文数据的排序、分组和分类作用; 3)SQL语言中的内部函数将对加密数据失去作用; 4)DBMS的一些应用开发工具的使用受到限制。
第六章数据库安全技术
6.1 数据库系统的组成
3.数据库特性 • 多用户 • 高可用性 • 频繁的更新 • 大文件 • 安全性与可靠性问题复杂 很 多 数 据 库 应 用 于 客 户 机 / 服 务 器 (Client / Server)平台。在Server端,数据库由Server上的DBMS 进行管理。由于Client/Server结构允许服务器有多个 客户端,各个终端对于数据的完整性和一致性要求很高, 这就涉及到数据库的安全性与可靠性问题。
第六章数据库的保护技术_1
数据库原理 第六章
(6)diskadmin:用于管理磁盘文件。 (7)dbcreator:数据库创建者,角色成员可以创建、 更改、删除或还原任何数据库。 (8)bulkadmin:可执行BULK INSERT语句,但是这些成
员对要插入数据的表必须有INSERT权限。
(9)public:其角色成员可以查看任何数据库。
数据库原理 第六章
用户定义的数据库角色
数据库原理 第六章
使用者 学生 老师
登录名 STUDENT TEACHER
用户名 user_s user_t
角色名 rs rt
权限描述 查看STUDENT表;修改表中的姓名、出生 日期;查看SC中的成绩 对STUDENT表所有操作;查看TC表;修改 SC成绩
数据库原理 第六章
(1)选择“Student_Course”数据库→“表”→“STUDENT”,
右击鼠标,选择“属性”菜单项进入属性窗口,选择“权限”
选项页。 (2)单击“搜索”按钮,在弹出的“选择用户或角色”窗口 中单击“浏览”按钮,选择需要授权的角色:rs,选择后单击 “确定”按钮。
数据库原理 第六章
限,否则系统将拒绝访问。
数据库原理 第六章
6.1.1 配置服务器安全对象
6.1.1.1 身份验证模式
第一把钥匙
身份验证模式是指系统确认用户的方式。
SQL Server有两种身份验证模式:
Windows验证模式; SQL Server验证模式。
数据库原理 第六章
1. Windows验证模式 用户登录Windows时进行身份验证,登录SQL Server时就 不再进行身份验证了。
数据库原理 第六章
第六章 数据库的保护技术
第6章 数据库保护
封锁 级别
加锁
放锁
防止丢 保证可 失修改 重复读
不读 “脏” 数据
事务T在修改数据A 事务T在修改数据A之 事务结束 可防 不能 一级 才释放X 前必须先对其加X 前必须先对其加X锁 才释放X锁 止 保证 可防 一级封锁协议加上事 读完后即 止 不能 二级 务T在读取数据A之前 在读取数据A 可释放S 可释放S锁 保证 必须对其加S 必须对其加S锁 可防 一级封锁协议加上事 事务结束 止 能保 在读取数据A 务T在读取数据A之前 才释放S 才释放S锁 证 必须对其加S 必须对其加S锁
三级封锁协议例
事务T1 Slock C Slock D READ(C,D) M=C+D READ(C,D) M=C+D Commit Unlock C Unlock D 事务T2
不能 保证 能保 证
三级
能保 证
29
一级封锁协议例
事务T1 Xlock A Read (A) A=10 A=A-5 Write(A) Commit Unlock A 事务T2 事务T1 READ(C,D) M=C+D 事务T2 Xlock C Xlock D READ(C,D) C=C+10 D=D+10 Write (C) Write (D) Unlock C Unlock D
21
3、调度: 事务执行的次序。
设τ={T1,T2, …T n}是一事务集, τ的一个调 度S是一拟序集(∑ ,<s)
其中: 1) ∑说明S执行的操作正是T1,T2, …T n 的操作。 2) <s 说明调度S遵守每个事务的操作的内部执行次序 3) 每对冲突操作的执行次序由S决定。 W0(X) S1= W0(Y) W0(Z) R1(Z) R1(X) W1(X)
数据库保护的内容
数据库保护的内容
数据库保护是企业信息化建设中的重要环节,主要是保护企业的数据资产安全。
数据库保护的内容包括以下几个方面:
1. 数据库备份与恢复
数据库备份是指将数据库中的数据和元数据复制到另一个存储设备上,以防止数据遗失或损坏。
恢复是指将备份的数据还原到原始数据库中,保证数据的完整性和可用性。
2. 数据库访问控制
数据库访问控制是指通过授权和认证机制,限制用户对数据库中数据的访问权限,防止未经授权的用户对数据进行修改、删除或篡改。
3. 数据库加密与解密
数据库加密是将数据库中的数据进行加密处理,以保护数据不被非法访问和盗窃。
解密是将加密的数据还原为原始数据,方便用户进行数据的读写操作。
4. 数据库审计与监控
数据库审计和监控是指记录数据库的操作日志,监控数据库的运行状态,及时发现和处理数据库中的异常行为和故障,保证数据库的稳定性和安全性。
5. 数据库灾备与容灾
数据库灾备和容灾是指通过备份、复制、镜像、集群等技术手段,保证数据库在发生灾难或故障时能够快速恢复和运行,保障企
业信息系统的连续性和可用性。
综上所述,数据库保护是一个系统工程,需要从多个方面进行综合保护,防范各种安全威胁,确保数据库的稳定、安全和可靠运行。
第六章数据库保护
6.4.1 安全性级别 1.环境级 2.职员级 3.操作系统级 4.网络级 5.数据库系统级
6.4.2 权限 用户权限是由两个要素组成的:数据 对象和操作类型。定义一个用户的存取权 限就是要定义这个用户可以在哪些数据对 象上进行哪些类型的操作。在数据库系统 中,定义存取权限称为授权
6.4.3 安全性控制的一般方法
元组值加以约束。 实现方法是CHECK 子句和约束条件
全局约束之二:断言ASSERTION
设有职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY,DNO),其属性分别 表示职工号、姓名、年龄、性别、工资,所在车间的编号。试写一个断言 (断言名为ASSE4),要求每个车间女职工人数不少于20人。
6.2.2
排它型封锁(X封锁)
常用的封锁有:排它型封锁(exclusive locks,简称X封锁)和共享型封锁(share locks,简称S封锁)两种 。 X封锁是指一旦事务得到了对某一数据的 X封锁,则其他任何事务再不能对事务进行X 封锁.其他事物只能进入等待状态,直到第一 个事务撤销了对该数据的封锁
6.1.2
事务的性质
1.原子性(Atomicity)
事务是一个操作序列。这些操作要么什么都做,要么 都不做,既Nothing or All原则,是一个不可分割的逻辑工 作单位。
2.一致性 所谓一致性简单地说就是数据库中的数据满足 完整性约束,包括它们的正确性。
6.1.2
事务的性质
3.隔离性(Isolation) 隔离性是指一个事物内部的操作及 使用的数据对其他事务是隔离的。 4.持久性(Durability) 持久性也称为持续性 (Permanence),即一旦事务成功执行, 在提交之后,对数据库的更新永久反映 在数据库中。
数据库安全保护
用户标识和鉴定
安全控制模型图
返回
10
根据上图的安全模型,当用户进入计算机系统时,系 统首先根据输入的用户标识进行身份的鉴定,只有合 法的用户才准许进入系统。 对已进入系统的用户,DBMS还要进行存取控制,只 允许用户进行合法的操作。DBMS是建立在操作系统 之上的,安全的操作系统是数据库安全的前提。 操作系统应能保证数据库中的数据必须由DBMS访问, 而不允许用户越过DBMS,直接通过操作系统访问。 数据最后可以通过密码的形式存储到数据库中。
列O
列SC.SCORE 关系SC …
SELECT
UPDATE INSERT …
授权表2
返回
19
授权表2中的授权只涉及到数据名,而未提到具体的值。 系统不必访问具体的数据本身,就可以执行这种控制。这 种控制称为“值独立”的控制。 授权表3则不但可以对属性列授权,还可以提供与数值有 关的授权,即可以对关系中的一组记录授权。
数据库系统、DNS系统 安全防护
返回
1
内容概要
随着计算机的普及,数据库的使用也越来越广泛。
一个企业的全部信息,国家机构的事务管理信息,国防情报 等机密信息,都集中地存放在数据库中。
数据库系统中的数据是由DBMS统一进行管理和控制 的。为了适应和满足数据共享的环境和要求,DBMS 要保证整个系统的正常运转,需要防止数据意外丢失 以及当数据库遭受破坏后能迅速地恢复正常,这就是 数据库的安全保护。 DBMS对数据库的安全保护功能是通过四个方面实现 的,即安全性控制、完整性控制、并发性控制和数据 库恢复。下面从这四个方面进行介绍。 最后还简单介绍了DNS系统的安全威胁以及防护技术。 返回
第六章 数据库安全与保护
7.数据加密 对于高度敏感性数据,例如财务数据、军事数据、国家机密,除以上安全性措施外, 还可以采用数据加密技术。 数据加密是防止数据库中数据在存储和传输中失密的有效手段。加密的基本思想是根 据一定的算法将原始数据(术语为明文,Plain text)变换为不可直接识别的格式(术语为 密文,Cipher text),从而使得不知道解密算法的人无法获知数据的内容。加密方法主 要有两种:对称密钥加密法和公开密钥加密法。 (1) 对称密钥加密法 对称密钥密码体制属于传统密钥密码系统。加密密钥与解密密钥相同或者由其中一个 推出另一个。对称密钥加密算法的输入是源文和加密键,输出是密码文。加密算法可 以公开,但加密键是一定要保密的。密码文对于不知道加密键的人来说,是不容易解 密的。 (2) 公开密钥加密法 在这种方法中,每个用户有一个加密密钥和一个解密密钥,其中加密密钥不同于解密 密钥,加密密钥公之于众,谁都可以用,解密密钥只有解密人自己知道,分别称为 “公开密钥”和“私密密钥”。公开密钥密码体制也称为不对称密钥密码体制。 如果用户想要存储加密数据,就通过公开密钥对数据进行加密。这些加密数据的解密 需要用私密密钥。由于用来加密的公开密钥对所有用户公开,我们就有可能利用这一 方法安全地交换信息。如果用户U1希望与U2共享数据,那么U1就用U2的公开密钥来 加密数据。由于只有用户U2知道如何解密,因此信息的传输是安全的。 公钥加密法的另一个有趣的应用是“数字签名”(Digital Signature)。数字签名扮演的 是物理文件签名的电子化角色,用来验证数据的真实性。此时私密密钥用来加密数据, 加密后的数据可以公开。所有人都可以用公钥来解码,但没有私钥的人就不能产生编 码数据。这样我们就可以验证(Authenticate)数据是否真正由宣称产生这些数据的人所 产生。
第六章 数据库的保护共23页
2、建立“日志”文件 事务运行过程中对DB插入,删除,修改作为
一条记录,写入“日志”文件
写一个修改到DB中和写一个表示这个修改的 登记记录到日志文件中,运行记录优先原则
(3) 恢复
• REDO(重做) 若DB已破坏,应装入最 近一次的COPY DB,正向扫描“日志”文 件,重新执行OP,由DBA执行
4、若多个事务并发执行,应互不干扰
数据重复存储
恢复DATA源头 恢复依据 恢复的方法
系统恢复
DUMP 日志文件 数据库恢复
(1)定期进行DB的COPY 或转储 (DUMP)
DUMP 静态DUMP DUMP时不允许对DB进行存
取, 修改
动态DUMP DUMP与事务可以并行执行 海量DUMP 转储整个DB的DATA 增量DUMP 仅DUMP更新过的DATA
SQL中完整性约束 •主键约束 “PRIMARY KEY(S#)”定义了S的主键 “S# CHAR(4) PRIMARY KEY”主键短语 主键值不允许空,也不允许出现重复,关系满足实体 完整性规则 •外键约束
FOREIGN KEY(S#) REFERENCES(S#) SC中外键定义 S#的值,空值或S中的S#值 主键的关系,“基本关系”(参照关系),外键关系 是依赖关系
T7LockS(A) Sum=A
Read(B)
Read(A) LockS(B) Sum=Sum+B
T8
LockX(C) Read(C)
Lock S(C) Wait……
C=C-10 Write(C) LockX(A) Wait………
发生死锁
DB的完整性
完整性
正确性
相容性
由DBMS完整性子系统实现
数据库原理第六章数据库保护
第六章数据库保护93. 事务的概念:事务是⼀个操作序列。
这些操作要么都做,要么都不做,是⼀个不可分割的⼯作单位,是数据库环境中的逻辑⼯作单位,相当于操作系统环境中的“进程”概念。
事务以BEGIN TRANSACTION 语句开始,以COMMIT语句或ROLLBACK语句结束。
94. 事务的性质:事务必须有四个性质:(1)原⼦性:⼀个事务中所有对数据库操作是⼀个不可分割的操作序列。
事务要么完事地被全部执⾏,要么什么也不做。
(2)⼀致性:⼀个事务独⽴执⾏的结果将保证数据库的⼀致性,即数据不会因事务的执⾏⽽遭受破坏。
(3)隔离性:在并发事务被执⾏时,系统应保证与这些事务先后单独执⾏时的结果⼀样,此时达到了隔离性要求。
(4)持久性:⼀个事务⼀旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中。
上述的四个性质称为事务的ACID性质。
95. 数据库系统中可能发⽣的故障:(1)事务故障:通常分为两种:⾮预期的事务故障(溢出、死锁),可预期的事务故障(可发现可撤消的)(2)系统故障:在硬件故障,软件错误的影响下,虽引起内存信息丢失,但未破坏外存中的数据。
这种情况称为故障终⽌假设。
系统故障通常称为软故障。
(3)介质故障:这类故障将破坏数据库,并影响正在存取这部分数据的所有事务。
介质故障通常被称为硬故障、磁盘故障。
96. 数据库恢复可以⽤哪些⽅法实现:(1)定期对整个数据库进⾏复制或转储。
1)转储可分为静态转储和动态转储。
静态转储:转储期间不允许(或不存在)对数据库进⾏任何存取、修改活动。
动态转储:转储期间允许对数据库进⾏存取或修改,即转储和⽤户事务可以并发执⾏。
2)还可分为海量存储和增量转储海量存储:每次转储全部数据库增量转储:每次只转储上次转储后更新的数据。
(2)建⽴“⽇志”⽂件(3)恢复1)如果数据库已被破坏,就装⼊最近⼀次备份的数据库,然后利⽤“⽇志”⽂件执⾏REDO操作。
2)数据库未被损坏,但某些数据可能不可靠。
第6章数据库安全保护资料
在数据字典中。
存取权限由两个要素组成:数据对象和操作类型。 定义一个用户的存取权限就是要定义该用户可以在 哪些数据对象上进行哪些类型的操作。
DBA特权用户------》GRANT REVOKE-------》 其他用户
5.审计
审计功能是一种监视措施,它跟踪记录有关数据的访 问活动。
审计追踪把用户对数据库的所有操作自动记录下来, 存放在一个特殊文件中,即审计日志中。
记录的内容一般包括:操作类型(如修改、查询等 ),操作终端标识与操作者标识,操作日期和时间 ,操作所涉及到的相关数据(如基本表、视图、记 录、属性等),数据的前象和后象等。
2.SQL Server 2000的身份验证模式
Windows身份验证模式利用了用户安全性和账号管理机制, 用户只需使用Windows的用户名和密码,通过Windows的身份验 证,就可以连接到SQL Server,登录SQL Server 2000时不再进 行身份验证,从而实现SQL Server 与Windows登录的安全集成。 因此,也称这种模式为安全验证模式。
2019/8/8
1
本章内容
6.1 数据库的安全性 6.2 数据库的完整性 6.3 并发控制 6.4 数据库的恢复
本章介绍
数据共享是数据库的基本性能要求,多用户共享数据库 时,必然有合法用户合法使用、合法用户非法使用以及非 法用户非法使用数据的问题,要保证合法用户合法使用数 据库及数据共享的安全性,就需要对数据库实施保护。
6.1.3 安全性控制的一般方法
安全性控制就是指要尽可能地杜绝所有可能的数据库 非法访问。
用户
第六章 数据库保护 全文-
2.死锁的诊断与解除数据库系统中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。超时法是指如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。
6.4 数据库中的并发控制
6.4.7 封锁粒度和意向锁1.封锁粒度封锁对象的大小称为封锁粒度。封锁对象可以是逻辑单元,也可以是物理单元。2.意向锁如果对以一个结点加意向锁,则说明该结点的下层结点正在被加锁;对任一结点加锁时,必须先对它的上层结点加意向锁。
6.3 数据库故障及恢复
6.3.1 数据库系统的故障1.事务故障事务故障是指由于事务内部的逻辑错误(如运算溢出、数据输入错、记录找不到等)或系统错误(如并发事务发生死锁而被选中撤消等)所引起的、使事务在末达到规定的终点以前就被迫中止的任何事件。2.系统故障系统故障是指由硬件故障、软件故障(操作系统故障、 DBMS代码错等)、停电等原因造成的、使系统停止运转、必须重新启动的任何事件。3.介质故障系统故障常称为软故障(Soft Crash),介质故障称为硬故
Computer System Evaluation Criteria,简称TCSEC或
9/22/2023
本章主要讨论数据库保护的原理和方法,详细介绍了数据库的完整性、安全性、并发控制和数据库恢复技术。应重点了解数据库管理系统必须提供并发控制机制来协调用户的并发操作以保证并发事务的隔离性和一致性,从而保证数据库的一致性。
6.4 数据库中的并发控制
6.4.6 活锁和死锁和操作系统一样,封锁的方法可能引起活锁和死锁。1.死锁的预防在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对己为其他事务封锁的数据对象加锁,从而出现死等待。防止死锁的发生其实就是要破坏产生死锁的条件。预防死锁通常有两种方法。一次封锁法顺序封锁法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
01.06.2020
主讲:王颂华
3
6.2 数据库中的事务
6.2.1 事务及其性质
事务(Transaction)是指用户定义的一个数据库操作序列,
这些操作要么全做要么全不做,是一个不可分割的工作单位。
例如,在关系数据库中,一个事务可以是一条SQL语句、一组
SQL语句或整个程序。
一个逻辑工作单元要成为事务,必须满足四个特性:原子
01.06.2020
主讲:王颂华
5
6.2 数据库中的事务
6.2.3 SQL中事务的定义
事务的开始与结束可以由用户显式控制。如果用户没有显 式地定义事务,则由DBMS按缺省规定自动划分事务。在SQL语言 中,定义事务的语句有三条:
BEGIN TRANSACTION
COMMIT
ቤተ መጻሕፍቲ ባይዱ
ROLLBACK
01.06.2020
主讲:王颂华
6
6.3 数据库故障及恢复
某些故障的发生可能会导致数据库被破坏或影响数据 库中数据的一致性(或完整性、正确性)。当系统运行过 程中发生故障时,数据库恢复技术将数据库从错误状态恢 复到某个一致状态,它是数据库可靠性的保证。数据库恢 复机制是衡量某DBMS系统性能的指标之一,对系统可靠性 起决定作用,对运行效率有很大影响,是衡量系统性能优 劣的重要指标。
01.06.2020
主讲:王颂华
13
6.4 数据库中的并发控制
6.4.2 并发所引起的问题
事务是并发控制的基本单位,保证事务ACID特性是事务处 理的重要任务,而事务ACID特性可能遭到破坏的原因之一是多 个事务对数据库的并发操作造成的。为了保证事务的隔离性和 一致性,DBMS需要对并发操作进行正确调度。这些就是数据库 管理系统中并发控制机制的责任。
6.1 数据库的完整性控制
6.1.1 数据库完整性概述
数据库完整性(database integrity)是指数据库中数据的正 确性和相容性。数据库完整性由各种各样的完整性约束来保证, 因此可以说数据库完整性设计就是数据库完整性约束的设计。
01.06.2020
主讲:王颂华
1
6.1 数据库的完整性控制
系统故障是指由硬件故障、软件故障(操作系统故障、 DBMS代码错等)、停电等原因造成的、使系统停止运转、必须 重新启动的任何事件。
3.介质故障
系统故障常称为软故障(Soft Crash),介质故障称为硬故
障(Hard 01.06.2020 Crash)。
主讲:王颂华
8
6.3 数据库故障及恢复
6.3.2基于日志文件的数据恢复技术
性(Atomicity)、一致性(Consistency)、隔离性(Isolation)
和持续性(Durability)。这四个特性也简称为ACID特性。
01.06.2020
主讲:王颂华
4
6.2 数据库中的事务
6.2.2 事务的状态
事务分为以下五种状态: 活动状态 局部提交状态 失败状态 异常中止状态 提交状态
01.06.2020
主讲:王颂华
14
6.4 数据库中的并发控制
6.4.3 封锁
封锁是实现并发控制的一个非常重要的技术。所谓封锁就 是事务T在对某个数据对象例如表、记录等操作之前,先向系统 发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的 控制,在事务T释放它的锁之前,其他的事务不能更新此数据对 象。
01.06.2020
主讲:王颂华
7
6.3 数据库故障及恢复
6.3.1 数据库系统的故障
1.事务故障
事务故障是指由于事务内部的逻辑错误(如运算溢出、数据
输入错、记录找不到等)或系统错误(如并发事务发生死锁而被 选中撤消等)所引起的、使事务在末达到规定的终点以前就被迫 中止的任何事件。
2.系统故障
转储可分为静态转储和动态转储。
01.06.2020
主讲:王颂华
10
6.3 数据库故障及恢复
2.介质故障的恢复 与事务故障和系统故障相比,有时介质故障对数据库的破
坏性可能最大,因为介质故障破坏的是磁盘上的部分〔或全部) 物理数据库,甚至会破坏日志文件,而且也会影响正在存取被 破坏的物理数据的所有事务。利用数据转储后产生的后备副本 与日志文件可以进行介质故障的恢复。
6.1.2 完整性约束定义
静态列级约束 静态元组约束 静态关系约束 动态列级约束 动态元组约束 动态关系约束
01.06.2020
主讲:王颂华
2
6.2 数据库中的事务
数据库中的事务是指作为单个逻辑工作单元执行的一系列 操作。
数据库事务正是用来保证这种情况下交易的平稳性和可预 测性的技术。事务是一系列的数据库操作,是数据库应用程序 的基本逻辑单元。事务处理技术是数据库保护的重要组成部分。
12
6.4 数据库中的并发控制
6.4.1 并发的目的
事务可以一个一个地串行执行,即每个时刻只有一个事务 运行,其他事务必须等到这个事务结束以后方能运行。事务在 执行过程中需要不同的资源,有时需要CPU,有时需要存取数据 库,有时需要I/O,有时需要通信。如果事务串行执行,则许多 系统资源将处于空闲状态。因此,为了充分利用系统资源,发 挥数据库共享资源的特点,应该允许多个事务并行地执行。
主讲:王颂华
9
6.3 数据库故障及恢复
6.3.3 数据转储及介质故障的恢复
1.数据转储 数据转储是数据库恢复中采用的基本技术。所谓转储即DBA
定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过 程。这些备用的数据文本称为后备副本或后援副本。
转储是十分耗费时间和资源的,不能频繁进行。DBA应该根 据数据库使用情况确定一个适当的转储周期。
01.06.2020
主讲:王颂华
11
6.3 数据库故障及恢复
6.3.4 检查点方法
为提高日志文件技术的效率,可以采用检查点的方法。即 在日志文件中再增加一个检查点记录,同时还增加了一个重新 启动文件。系统在运行的过程中会周期性地产生一个检查点, 以保存数据库的状态。
01.06.2020
主讲:王颂华
日志文件是记载每个事务对数据库的更新操作的文件。 利用日志文件进行故障恢复时有两个基本操作:撤销事务 UNDO(Ti)或重做事务REDO(Ti)。 事务故障是指某事务在运行过程中由于逻辑或系统错误而 在未完成其所有操作以前就被迫中止了,此时该事务个的部分 操作已完成,部分操作末完成。
01.06.2020