- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章数据库管系统引论
第四章 数据库管理系统引论 4.2 事务(transaction) 事务是DBMS的执行单位,由有限的数据库操作序列组成,一般要求事务具备下列性质: 示例 事务的出口:commit 或rollback 只有在执行commit之后,事务对数据库所产生的变化才对其他事务开放。 执行commit命令时,要封闭中断,以防处理中断时发生故障 4.3 DBMS的进程结构 DBMS进程结构的划分主要着眼于结构合理和性能提高。 应用进程,系统进程(可重入) 目前,多数DBMS把主要功能组成一个DBMS核心进程,也有些DBMS除了核心进程外,还把一些可以“缓办”的公共操作组成几个后台服务进程。 例如预读取可能用到的物理块,延迟写入缓存中的内容,网络服务管理,撤销事务,清除异常结束的DBMS进程等。这些进程在DBMS启动时就建立,为各个事务服务。 4.4 DBMS的系统结构 4.5 数据目录 数据目录(catalog)存放一组关于数据的数据(描述数据模式的数据),也叫元数据(meta-data)。 DBMS的任务是管理大量的、共享的、持久的数据,有关这些数据的描述需长期保存,一般把这些元数据组成若干表,即数据目录。 * * 4.1 DBMS结构简介 数据库管理系统(DBMS)是数据库系统的核心,它对数据库系统的功能和性能有决定性影响。 DBMS最基本的功能是正确、安全、可靠地执行数据库语言语句。图4-1表示一个解释执行的关系DBMS的结构,可以从中了解DBMS的一般工作原理和主要组成部分。 与高级程序设计语言一样,DBMS有两种实现方法——编译和解释。 图4—1 DBMS结构 1.执行的原子性(Atomic) 事务执行时应遵守“要么不做,要么全做” (nothing or all)的原则。 2.功能上的一致性(Consistency) 事务的作用应使数据库由一个一致状态转变到另一个一致状态。 3.彼此的隔离性(Isolation) 如果多个事务并发执行,应像各个事务独立执行一样。——由“并发控制”保证。 4.作用的持久性(Durability) 一个成功执行的事务对DB的影响应是持久的,即使DB因故障受到破坏,也应能恢复。 这四个性质称为事务的ACID准则。 下面是一个事务的例子,它将款项由A账户拨给B账户。 BEGIN TRAN read A A?A–S if A 0 then /* A款不足*/ begin display “A款不足” ROLLBACK /*出口1*/ end else begin B?B+S display “拨款完成” COMMIT /*出口2*/ end ROLLBACK 撤销事务的影响,相当于“do nothing” COMMIT 提交,相当于“do all”。只有在COMMIT之后,事务对数据库产生的变化才对其它事务开放。(为什么?) COMMIT 中断 处理中断 发生故障 应用1 系统 应用2 系统 不同 重复 不划分: 1.一个应用进程对应一个DBMS核心进程 下面主要考虑DBMS核心进程的结构方案: 缺点: (1).进程的创建、撤销、通信和切换的开销大。 (2).并发事务的增加,进程数激增,内存空间有限,性能下降。 (3).不利于事务共享内存空间。 优点:实现容易 2.单进程多线程DBMS进程结构 线程是现代OS引入的概念。 以线程为程序并发执行的单位; 一个进程中可创建多个可以相互切换的线程; 这些线程中至少有一个处于就绪状态,进程才处于就绪状态; 进程运行时,其中必有一个线程运行; 同一进程所属的线程共享进程占用的资源,属于线程本身的专用资源很少,描述线程的状态也比进程要少,因此,线程所需资源比进程少; 线程的切换开销和线程间的通信开销小。 单进程多线程的DBMS中,系统只创建一个DBMS进程(用户接口仍然是进程)。该进程中有常驻的公共服务线程和应用户要求而创建的用户线程。 在多处理机系统中,引入线程,增强了进程的可并发程度。 ——DBMS的并发执行从进程级改为线程级。 尽管很多现代OS的核心具有线程管理的功能
文档评论(0)