第8章数据库的管理

合集下载

第8章 数据库的安全与权限

第8章 数据库的安全与权限
SQL Server 2005是以“默认安全”。SQL Server是一个设计用于在服务器 上运行,能够接受远程用户和应用程序访问的数据库管理系统。为了远程访问 SQL Server实例,需要一种网络协议来建立到SQL Server服务器的连接 可以通过以下操作来配置远程访问,启用远程访问连接。 (1)执行【开始】|【所有程序】|【Microsoft SQL Server 2005】|【配置工具 】|【SQL Server外围应用配置器】命令,进入SQL Server 2005外围应用配置 器窗口。

掌握SQL Server 2005中的权限管理策略
2013年7月5日
第2页
数据库原理及应用案例教程
北京大学出版社
教学重点及难点
重点:

掌握SQL Server 2005中用户和角色的策略 掌握SQL Server 2005中的权限管理策略


难点:
掌握数据库安全控制的各种方法
2013年7月5日
第6页
2013年7月5日
数据库原理及应用案例教程
北京大学出版社
8.1 数据库安全控制机制
数据库的安全性是指保护数据库,以防止不合法的使用使数据泄密、
更改或破坏。是数据库管理员必须认真考虑的问题。具体来讲,数据库管 理员必须制定一套安全控制策略,一方面要保证那些合法用户可以登录到
数据库服务器中,并且能够实施数据库中各种权限范围内的操作;另一方
(2)在强制存取控制方法中,每一个数据对象被标以一定的密级,每
一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有 合法许可证的用户才可以存取。强制存取控制因此相对比较严格。
2013年7月5日
第11页

数据库

数据库

第8章数据库应用基础●本章主要内容8.1 数据库的概念8.2数据模型8.3 关系数据库8.4 Access简介8.5 数据表的建立和使用8.6 查询数据库的概念8.1 数据库的概念●数据:存储在介质上的能够识别的物理符号,由数字、字母、图形、图像、声音等组成。

●数据处理:对不同类型的数据进行收集、整理、组织、存储、加工、传输、检索的各个过程。

数据处理方式的发展●1.手工管理阶段●特点:(1)数据不保存----不能实现数据共享。

●(2)数据与程序不可分割。

●(3)各程序的数据彼此独立----数据冗余。

●适应场合:数据量较小。

●2.文件系统阶段(1)程序和数据分开,有一定的独立性。

(2)数据以文件形式保存,由操作系统按名存取。

(3)实现一定程度的数据共享。

(4)数据文件之间缺乏联系。

8.1.1 数据处理方式的发展●3. 数据库阶段(1) 数据和程序之间彼此独立,实现共享(2) 数据以数据库形式保存,最大限度减少冗余。

(3) 专门的数据库管理软件-------DBMS。

应用程序3应用程序1……应用程序2DBMS数据库8.1.1 数据处理方式的发展●(1)分布式数据库系统数据库技术和计算机网络技术相结合产生:1)物理上独立,数据分布在网络的不同计算机2)逻辑上属于一个整体。

●(2)面向对象的数据库将程序设计语言中对象的概念引用到数据库中:1)数据和操作方法作为对象统一管理;2)可以处理更为复杂的对象;8.1.2 数据库中的常见概念●1.数据库(DB)指按特定的组织形式将数据保存在存储介质上●特点:(1)在数据库中,不仅包含数据本身,也包含数据之间的联系;(2)数据通过一定的数据模型进行组织,保证有最小的冗余度,有层次、网状和关系模型;(3)各个应用程序共享数据;●2.数据库管理系统(DBMS)对数据库进行管理的软件,功能:(1)定义:定义数据库的结构、数据完整性和其它的约束条件;(2)操纵:实现数据插入、修改、删除和查询;(3)控制:实现数安全控制、完整性控制以及多用户环境下的并发控制;(4)维护:提供对数据的装载、转储和恢复,数据库的性能分析和监测;(5)数据字典,存放数据库各级结构的描●3.应用程序利用DBMS开发的应用软件。

SQL Server 2005数据库简明教程-第8章 存储过程的操作与管理

SQL Server 2005数据库简明教程-第8章 存储过程的操作与管理

图8-3 查看存储过程
8.2.1 查看存储过程
(2)使用系统存储过程来查看用户创建的存储过程 。
可供使用的系统存储过程及其语法形式如下: •sp_help,用于显示存储过程的参数及其数据类型,其语法为: sp_help [[@objname=] name],参数name为要查看的存储过程的名称。 •sp_helptext,用于显示存储过程的源代码,其语法为: sp_helptext [[@objname=] name],参数name为要查看的存储过程的名称。 •sp_depends,用于显示和存储过程相关的数据库对象,其语法为: sp_depends [@objname=]’object’,参数object为要查看依赖关系的存储过程 的名称。 •sp_stored_procedures,用于返回当前数据库中的存储过程列表,其语法为: sp_stored_procedures[[@sp_name=]'name'] [,[@sp_owner=]'owner'] [,[@sp_qualifier =] 'qualifier'] 其中,[@sp_name =] 'name' 用于指定返回目录信息的过程名;[@sp_owner =] 'owner' 用于指定过程所有者的名称;[@qualifier =] 'qualifier' 用于指定过程 限定符的名称。
8.2查看、修改和删除存储过程
8.2.1 查看存储过程 8.2.2 修改存储过程
8.2.3 重命名和删除存储过程
8.2.1 查看存储过程
(1)使用SQL Server管理平台查看用户创建的存储过程。 在SQL Server管理平台中,展开指定的服务器和数据库,选择并依次展开“程序→存储 过程”,然后右击要查看的存储过程名称,如图8-3所示,从弹出的快捷菜单中,选择 “创建存储过程脚本为→CREATE到→新查询编辑器窗口”,则可以看到存储过程的源 代码。

第8章 数据库系统实现技术

第8章 数据库系统实现技术

数据库系统实现技术1.1 数据库管理系统概述数据库管理系统(Data Base Mangement System DBMS)是在操作系统支持下的一个复杂的和功能强大的系统软件,它对数据库进行统一管理和控制。

1.11 数据库管理系统的基本功能数据定义功能:允许用户使用专门的数据定义语言来对数据库的结构进行描述,包括外模式,模式,内模式的定义,数据库完整性的定义,安全保密的定义,索引的定义,视图的定义等。

这些定义存储在数据字典中,是DBMS运行的基本依据。

数据操作功能:支持用户使用表达能力强且易学易用的数据操作语言或查询语言来表达对数据库中数据所要进行的检索,插入,更新,删除操作,高效的执行用户所表达的对数据库中数据的操作请求。

数据存储和管理功能:支持对大量的,各种类型的数据进行组织,存储和管理工作,包括用户数据,索引,数据字典等的存储管理。

事务管理功能:提供对事物概念的支持和事务管理能力。

支持对数据的并发存取,即多个不同事务同时对数据进行存取,避免同时的访问可能造成的不良后果,并保证数据库具有从多种类型的故障中恢复的能力。

其他功能:包括与网络中其他软件系统的通信功能,一个DBMS与另一个DBMS或文件系统的数据转换功能,异构数据库之间的互访和互操作功能,对新的高级应用提供支持的能力等。

1.12 数据库管理系统的主要部分和各部分的功能数据库系统包括以下三部分:(1)存储管理器:高效的利用辅助存储器来存放数据,并使得数据能够被快速存取。

具体负责外存储器中的数据存储管理和访问,索引的建立和管理,内存中的缓冲区管理等。

(2)查询处理器:高效的执行像SQL这样非常高级的语言表达的数据查询和修改。

具体负责DDL编译,数据安全性定义和安全性控制,数据完整型定义和完整性控制,查询编译,查询优化,查询执行等。

(3)事务管理器:对并发执行的事务进行有效地管理,使之具有ACID特性。

具体负责事务管理,并发控制,日志管理和故障恢复等。

数据库系统概论习题集第八章数据库并发控制

数据库系统概论习题集第八章数据库并发控制

数据库系统概论习题集第⼋章数据库并发控制第⼋章数据库并发控制 ⼀、选择题 1.为了防⽌⼀个⽤户的⼯作不适当地影响另⼀个⽤户,应该采取()。

A. 完整性控制B. 访问控制C. 安全性控制D. 并发控制 2. 解决并发操作带来的数据不⼀致问题普遍采⽤()技术。

A. 封锁B. 存取控制C. 恢复D. 协商 3.下列不属于并发操作带来的问题是()。

A. 丢失修改B. 不可重复读C. 死锁D. 脏读 4. DBMS普遍采⽤()⽅法来保证调度的正确性。

A. 索引B. 授权C. 封锁D. ⽇志 5.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是()。

A. ⼀级封锁协议B. ⼆级封锁协议C. 三级封锁协议D. 零级封锁协议 6.如果事务T获得了数据项Q上的排他锁,则T对Q()。

A. 只能读不能写B. 只能写不能读C. 既可读⼜可写D. 不能读也不能写 7.设事务T1和T2,对数据库中地数据A进⾏操作,可能有如下⼏种情况,请问哪⼀种不会发⽣冲突操作()。

A. T1正在写A,T2要读A B. T1正在写A,T2也要写A C. T1正在读A,T2要写A D. T1正在读A,T2也要读A 8.如果有两个事务,同时对数据库中同⼀数据进⾏操作,不会引起冲突的操作是()。

A. ⼀个是DELETE,⼀个是SELECT B. ⼀个是SELECT,⼀个是DELETE C. 两个都是UPDATE D. 两个都是SELECT 9.在数据库系统中,死锁属于()。

A. 系统故障B. 事务故障C. 介质故障D. 程序故障 选择题答案: (1) D (2) A (3) C (4) C (5) A (6) C (7) D (8) D (9) B ⼆、简答题 1. 在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运⾏。

当多个事务并发地存取数据库时就会产⽣同时读取和/或修改同⼀数据的情况。

若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的⼀致性。

-数据库原理及应用第二版-第8章数据库设计

-数据库原理及应用第二版-第8章数据库设计
需求说明 概念结构 设计 概念结构 逻辑结构 物理结构
需求 分析
逻辑结构 设计
物理 设计
图 7- 2
8.1.3数据库设计的基本步骤
需求分析阶段 概念结构设计 结构设计阶段 逻辑结构设计 物理结构设计 功能设计 行为设计阶段 事务设计 程序设计 数据库实施阶段 数据库运行和维护
需求分析:收集信息并进行分析和整理,是后 续的各个阶段的基础。概念结构设计:对需求分析 的结果进行综合、归纳形成一个独立于具体的DBMS 的概念模型。逻辑结构设计:将概念结构设计的结 果转换为某个具体的DBMS所支持的数据模型,并对 其进行优化。物理数据库设计:为逻辑结构设计的 结果选取一个最适合应用环境的数据库物理结构。 数据库行为设计:要设计所包含的功能,功能间的 关联关系以及一些功能的完整性要求;数据库实 施:运用DBMS提供的数据语言以及数据库开发工 具,根据逻辑设计和物理设计的结果建立数据库, 编制应用程序,组织数据入库并进行试运行。数据 库运行和维护阶段:投入正式使用,在其使用过程 中不断对其进行调整、修改和完善。
常用的发现事实的方法有: 1、检查文档 2、面谈 3、观察业务的运转 4、研究 5、问卷调查
8.3 数据库结构设计
8.3.1概念结构设计
概念设计的特点和策略 1、概念模型的特点 有丰富的语义表达能力。 易于交流和理解。 易于更改。 易于向各种数据模型转换,易于导出与DBMS 有关的逻辑模型。
必须注意:关系上定义的索引数并不是越多越好, 系统为维护索引要付出代价,查找索引也要付出代价。 例如,若一个关系的更新频率很高,这个关系上定义的 索引数不能太多。因为更新一个关系时,必须对这个关 系上有关的索引做相应的修改。
聚簇存取方法 为了提供某个属性或属性组的查询速 度,把这个或这些属性(称为聚簇码)上具有 相同值的元祖集中存放在连续的物理块称为 聚簇。 一个数据库可建立多个聚簇,一个关系 只能加入一个聚簇。

网络安全技术与实践第8章 (2)数据库安全


数据库一般有三种安全保护措施
① 用户的身份认证管理 ② 数据库的使用权限管理 ③ 数据库中对象的使用权限管理
身份认证管理与安全机制 权限管理(授权、角色) 视图访问 审计管理
二、数据库安全策略和机制
1. 安全策略
① 管理规章制度方面的安全性。例如,SQL Server系统在使用 中涉及企事业机构的各类操作人员,为了确保系统的安全,应 着手制定严格的规章制度,在使用业务信息系统时执行标准的 操作流程。
数据库安全的主要威胁
① 法律法规、社会伦理道德和宣传教育等问题。 ② 政策、制度及管理问题。 ③ 硬件和操作系统等软件问题。 ④ 数据库系统本身的缺陷和隐患带来的安全性问题。
安全性基本内涵
1. 保密性
① 用户标识与鉴别 ② 存取控制 ③ 数据库加密 ④ 审计 ⑤ 备份与恢复 ⑥ 推测控制与隐私保护
SQL Server 身份认证模式 1
Windows身份验证模式
使用Windows操作系统的安全机制,用户只 需 通 过 Windows 验 证 , 即 可 连 接 到 SQL Server而不再进行身份验证。
2
混合身份验证模式
Windows身份验证和SQL server验证都可用 。对于可信任连接用户,系统直接采用
同样,U6还可以将此权限授予U7:
例7:GRANT INSERT ON TABLE SC TO U7; 注意:U7不能再往下传递权限了。
(2)收回权限 —— 所有授予出去的权力在必要时又都可用REVOKE语句收回 基本语法:
REVOKE:授予的权限可以由DBA或其他授权者用REVOKE语句收回
—— 包括访问控制与身份认证、存取控制、审计、数据加密、视 图机制、特殊数据库的安全规则等。

第八章 数据库并发控制练习和答案

第八章数据库并发控制一、选择题1.为了防止一个用户得工作不适当地影响另一个用户,应该采取( )。

A、完整性控制B、访问控制C、安全性控制D、并发控制2、解决并发操作带来得数据不一致问题普遍采用()技术。

A、封锁B、存取控制C、恢复D、协商3.下列不属于并发操作带来得问题就是( )。

A、丢失修改B、不可重复读C、死锁D、脏读4.DBMS普遍采用( )方法来保证调度得正确性。

A、索引B、授权C、封锁D、日志5.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这就是()。

A、一级封锁协议B、二级封锁协议C、三级封锁协议D、零级封锁协议6.如果事务T获得了数据项Q上得排她锁,则T对Q( )。

A、只能读不能写B、只能写不能读C、既可读又可写D、不能读也不能写7。

设事务T1与T2,对数据库中地数据A进行操作,可能有如下几种情况,请问哪一种不会发生冲突操作() .A、T1正在写A,T2要读AB、T1正在写A,T2也要写AC、T1正在读A,T2要写AD、T1正在读A,T2也要读A8。

如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突得操作就是() .A、一个就是DELETE,一个就是SELECTB、一个就是SELECT,一个就是DELETEC、两个都就是UPDATED、两个都就是SELECT9.在数据库系统中,死锁属于()。

A、系统故障B、事务故障C、介质故障D、程序故障二、简答题1、在数据库中为什么要并发控制?答:数据库就是共享资源,通常有许多个事务同时在运行。

当多个事务并发地存取数据库时就会产生同时读取与/或修改同一数据得情况.若对并发操作不加控制就可能会存取与存储不正确得数据,破坏数据库得一致性。

所以数据库管理系统必须提供并发控制机制。

2、并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致得情况?答: 并发操作带来得数据不一致性包括三类:丢失修改、不可重复读与读“脏”数据.(1)丢失修改(LostUpdate)两个事务T1与T2读入同一数据并修改,T2提交得结果破坏了(覆盖了)T1提交得结果,导致T1得修改被丢失。

数据库系统原理课后习题参考答案

数据库系统原理课后习题参考答案(总8页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第一章数据库系统概述选择题B、B、A简答题1.请简述数据,数据库,数据库管理系统,数据库系统的概念。

P27数据是描述事物的记录符号,是指用物理符号记录下来的,可以鉴别的信息。

数据库即存储数据的仓库,严格意义上是指长期存储在计算机中的有组织的、可共享的数据集合。

数据库管理系统是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。

数据库系统是指在计算机中引入数据库技术之后的系统,包括数据库、数据库管理系统及相关实用工具、应用程序、数据库管理员和用户。

2.请简述早数据库管理技术中,与人工管理、文件系统相比,数据库系统的优点。

数据共享性高数据冗余小易于保证数据一致性数据独立性高可以实施统一管理与控制减少了应用程序开发与维护的工作量3.请简述数据库系统的三级模式和两层映像的含义。

P31答:数据库的三级模式是指数据库系统是由模式、外模式和内模式三级工程的,对应了数据的三级抽象。

两层映像是指三级模式之间的映像关系,即外模式/模式映像和模式/内模式映像。

4.请简述关系模型与网状模型、层次模型的区别。

P35使用二维表结构表示实体及实体间的联系建立在严格的数学概念的基础上概念单一,统一用关系表示实体和实体之间的联系,数据结构简单清晰,用户易懂易用存取路径对用户透明,具有更高的数据独立性、更好的安全保密性。

第二章关系数据库选择题C、C、D简答题1.请简述关系数据库的基本特征。

P48答:关系数据库的基本特征是使用关系数据模型组织数据。

2.请简述什么是参照完整性约束。

P55答:参照完整性约束是指:若属性或属性组F是基本关系R的外码,与基本关系S的主码K相对应,则对于R中每个元组在F上的取值只允许有两种可能,要么是空值,要么与S中某个元组的主码值对应。

3.请简述关系规范化过程。

地理信息系统GIS—第8章属性数据管理

地理信息系统
第八章 属性数据管理
第7章课程回顾
矢量数据生产中的错误与起因: ① 定位错误(数字化要素的几何错误)、拓扑
错误(空间要素之间的逻辑不一致); ② 起因:人为误差、跟踪算法等 空间数据编辑是纠正数据错误,保证空间数
据质量的重要环节(质量标准—精确度)。 ARCGIS中进行拓扑编辑和非拓扑编辑。
本章内容目录
➢ 8.1 GIS中的属性数据 ➢ 8.2 关系数据库模型 ➢ 8.3 合并、关联和关系类 ➢ 8.4 属性数据输入 ➢ 8.5 字段与属性数据的处理
几何特征
属性特征
Name Address Town St. Zip
G
GIS
IS
空间数据和属性数据的综合体
图8.1 TIGER/Line文件的每条街道分段都有一 个相应的属性记录。这些属性包括街名、街道 左右侧地址范围以及两侧的邮政编码
关系类
基于对象数据模型比如 geodatabase 可以支 持对象之间的关系。当用来进行属性数据管理 时,关系是被预先定义并存储在 geodatabase 的关系类中。 关系类可用于许多关系操作。
206 Elm St
3-7-97
2.5
P104
Smith
300 Spruce Rd
7-30-78
1.0
2
商业区
1
住宅区
表8.2 规范化的第一步
地块标识 号
业主
业主地址
销售日 期
英亩
分区代 码
分区
P101 Wang 101 Oak St 1-10-98 1.0
1
住宅区
P101
Chan g
200 Maple St
属性数据
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库原理 7
故障类型和恢复方法

3、介质故障(硬故障)
磁盘物理故障或遭受病毒破坏。 恢复方法: (1)重装转储的后备副本到新的磁盘,使数据库恢复 到转储时的一致状态。 (2)在日志中找出转储以后所有已提交的事务。 (3)对这些已提交的事务进行REDO处理,将数据库 恢复到故障前某一时刻的一致状态。
t0
t1 t2 t3 t4
XFIND A
XFIND B
T2
若事务依赖图 有环则可能死 锁
T4 T1
T2
T4
XFIND B wait wait XFIND A wait
T1
T3
图3 事务的无环依 赖图 图4
T3
事务的有环依 赖图
死锁
数据库原理
27
封锁带来的问题2---死锁
死锁的解除:
DBMS中有一个死锁测试程序,每隔一段时 间检查并发的事务之间是否发生死锁。如果发生 死锁,则撤销某些事务,做回退操作,解除他的 封锁。释放的资源分配给其他的事务。
2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢 失。
数据库原理 13

8.3 数据库的并发控制

不可重复读(non-repeatable read)
不可重复读是指事务1读取数据后,事务2执行更新操作, 使事务1无法再现前一次读取结果。 三类不可重复读:事务1读取某一数据后: (1)事务2对其做了修改,当事务1再次读该数据时,得到与前一 次不同的值。 (2) 事务2删除了其中部分记录,当事务1再次读取数据时,发现 某些记录神密地消失了。 (3) 事务2插入了一些记录,当事务1再次按相同条件读取数据时, 发现多了一些记录。 后两种不可重复读有时也称为幻影现象(phantom row)
运行记录优先原则
运行记录优先原则: 写一个修改到数据库中和写一个表示这个修改 的运行记录到日志中是两个不同的操作。为了保证 安全,运行记录应该先写下来。
具体有两点: 1)、至少要等相应运行记录已经写入运行日志 后,才能允许事务往数据库中写记录。 2)、直至事务的所有运行记录都已经写入到运 行日志后,才能允许事务完成COMMIT处理。
数据库原理 12
8.3 数据库的并发控制

并发操作:在多用户系统中,许多事务对同一数据进 行操作。(这里指在单CPU上,利用分时方法实现)

并发控制:协调各并发事务的执行,保证数据 库的完整性,同时避免用户得到不正确的数据。
并发操作带来的数据不一致性 丢失更新(lost update)
是指事务1与事务2从数据库中读入同一数据并修改,事务

数据库原理 25

封锁带来的问题1---(活锁)
时间点
A已被封锁, 不成功,等待
A刚被释 放,成功
T1 XFIND A
A
A刚被T2释 放,成功
T1永远等待 活锁!
T2 XFIND A
T3 XFIND A
பைடு நூலகம்
解决方法:先来先服务 ……
数据库原理 26
封锁带来的问题2---死锁
时间 事务T1 事务T2
数据库原理
6
故障类型和恢复方法

1、事务故障
可以预期的事务故障,如存款余额透支等。 恢复方法:在事务中加入ROLLBACK语句。 非预期事务故障,如运算溢出、数据错误、死锁等 恢复方法:系统直接对该事务执行UNDO处理。


2、系统故障
硬件故障、软件错误或掉电等等。 恢复方法: (1)对未完成事务作UNDO处理。 (2)对已提交事务但更新还留在缓冲区的事务进行REDO处 理。
数据库原理 11
SQL对事务的支持



支持Commit和Rollback语句,但这些语句将强 制每个打开的游标关闭。 无Begin transaction语句,程序的开始就是事 务的开始。在遇到Commit 和Rollback语句时, 事务结束。 某些系统的SQL语言能在执行Commit语句时防 止关闭游标,但对执行Rollback语句时仍要关 闭游标。
并发操作带来的问题2---读脏数据
时间 t0 t1 t2 t3 t4 t5 t6 更新事务T1 FIND A A:=A-30 UPD A 70 *ROLLBACK* 100 FIND A 数据库中A的值 100 读事务T2
图2
事务T2在时间t4读了未提交的A值(70)
数据库原理 17
并发操作带来的问题3-不可重复读
数据库原理
4
8.2 数据库的恢复


数据库的可恢复性(Recovery):系统能把数据库从被 破坏、不正确的状态恢复到最近一个正确的状态。 恢复的基本原理 :“冗余”,即数据库重复存储。 具体实现方法

平时做好两件事:转储和建立日志 周期地(比如一天一次)对整个数据库进行拷贝,转储到 另一个磁盘或磁带一类存储介质中。 建立日志数据库。记录事务的开始、结束及数据每一 次插入、删除和修改前后的值,并写到“日志”库中。

XFIND R XRELEASE R


PX协议: 任何企图更新记录R的事务必须先执行 “XFIND R”操作,以获得对R的X锁,才能读或写 记录R;如果未获准X锁,那么这个事务进入等待队 列,一直到获准X锁,事务才能继续做下去。 PXC协议: X锁的解除操作应该合并到事务的结束 (COMMIT或ROLLBACK)操作中 。
数据库原理 14
8.3 数据库的并发控制

读“脏”数据(dirty read)
事务1修改某一数据,并将其写回磁盘。事务2读 取同一数据后,事务1由于某种原因被撤消,这时事 务1已修改过的数据恢复原值。事务2读到的数据就 与数据库中的数据不一致,是不正确的数据,又称为 “脏”数据。
数据库原理
15
并发操作带来的问题1---丢失更新
70
XFIND
wait
wait A(重做) A:=A*2
t10
t11
数据库原理
140
UPD A COMMIT(包括解 锁)
22
例:使用S锁封锁解决数据丢失
时间 t0 t1 t2 t3 A:=A-30 SFIND A SFIND A 更新事务T1 数据库中A的值 100 更新事务T2
t4
t5 t6 t7 t8 UPDX A(失败) wait wait wait UPDX
数据库原理 20
共享型封锁--S锁


S锁定义:如果事务T对某个数据实现S锁,仍然允许其他事 务再对该数据加S锁,但在对该数据解除S锁前,其他事务 不能对他加X锁。S锁也称共享锁或读锁。 操作

SFIND R SRELEASE R

PS协议:任何要更新记录R的事务必须先执行“SFIND R” 操作,以获得对R的S锁。当事务获准对R的S锁后,若要更新 记录R必须用“UPDX R”操作,这个操作首先把S锁升级为X 锁,若成功则更新记录,否则这个事务进入等待队列 。 PSC协议:S锁的解除操作应该合并到事务的结束 。
T1 ① 读A=50 读B=100 求和=150 ② T2
③ 读A=50 读B=200 求和=250 (验算不对)
读B=100 B←B*2 写回B=200
不可重复读
数据库原理 18
解决方法


封锁技术 包括排他型封锁、共享型封锁 时标技术
数据库原理
19
排他型封锁--X锁


X锁定义: X锁也称排他锁或写锁。如果事务T1对 某个数据实现X锁,那么其他事务T2要等T解除X锁 以后,才能对这个数据进行封锁。 操作
数据库原理
5
8.2 数据库的恢复


一旦发生数据库故障,分两种情况进行处理
如果数据库已被破坏,则装入最近一次数据库备份,再 利用日志库将这两个数据库状态之间的所有更新重新做 一遍,即REDO。 如果数据库未被破坏,但某些数据不可靠,则撤消所有 不可靠的修改,把数据库恢复到正确的状态,即UNDO。

数据库原理
28
并发操作的调度

事务的调度:事务的执行次序称为“调度” 串行调度:如果多个事务依次执行,则称为事务的 串行调度(Serial Schedule) 并发调度:如果利用分时的方法,同时处理多个事 务,则称为事务的并发调度(Concurrent Schedule) 可串行化:如果一个并发调度的执行结果与某一串 行调度的执行结果等价,那么这个并发调度称为 “可串行化的调度”,否则是不可串行化的调度。
A:=A*2
A(失败) Wait Wait
使用S锁不能更新数据。
数据库原理 23
封锁的相容矩阵
T2 T1 X S — N N Y N Y Y Y Y Y
X
S

注: ① N=NO,不相容的请求 Y=YES,相容的请求 ② X、S、-:分别表示X 锁,S锁,无锁 ③ 如果两个封锁是不相容 的,则后提出封锁的事务要 等待。
事务(transaction)是构成单一逻辑工作单元的操作集合。

性质(ACID)



原子性 (Atomicity):一个事务对数据库的所有操作,是一个 不可分割的工作单元。 一致性(Consistency):即数据不会应事务的执行而遭受破坏。 隔离性(Isolation) :在多个事务并发执行时,系统应保证与这 些事务先后单独执行时的结果一样。 持久性(Durability) :一个事务一旦完成全部操作后,它对数据 库的所有更新应永久地反映在数据库中。
数据库原理 29



两段封锁协议

两段封锁协议:在对任何一个数据进行读写操作之前, 事务必须获得对该数据的封锁;在释放一个封锁之后, 事务不再获得任何其他封锁。
相关文档
最新文档