您好,欢迎访问三七文档
第4章数据库管理系统引论2009.10Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论2目录Contents4.1数据库管理系统结构简介4.2事务4.3DBMS的进程结构4.4DBMS的系统结构4.5数据目录(字典)Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论34.1数据库管理系统结构简介DBMS是数据库系统的核心,对数据库系统的功能和性能有决定性影响。DBMS的最基本的功能是正确、安全、可靠地执行数据库语言的语句。因此,DBMS可以看成数据库语言的一个实现。DBMS分为编译和解释两种实现方法。Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论4解释执行的RDBMS结构应用1应用i应用j应用n……......接口1接口m词法及语法分析器授权检查语义分析和查询处理DDLQLDMLDCL并发控制存取机制恢复机制操作系统磁盘……应用程序数据库语言语句语法树存取原语系统调用I/O命令状态信息或物理块消息或数据消息或数据消息或数据格式化的消息或数据查询处理器存储管理器事务管理器Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论5目录Contents4.1数据库管理系统结构简介4.2事务4.3DBMS的进程结构4.4DBMS的系统结构4.5数据目录(字典)Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论64.2事务一、事务的概念事务(Transaction):是DBMS的(最小、完整的)执行单位,它由某个用户所执行的一个不能被打断的对数据库的操作序列(SQL语句)组成,且必须满足ACID性质。‘事务’是应用程序访问数据库的基本逻辑工作单位。‘事务’通常由一组对于数据库的访问操作组成,在执行过程中按照预定的次序顺序执行。一个‘事务’的执行过程是串行的,它将数据库从一个旧的一致性状态转换到一个新的一致性状态。在‘事务’的执行过程中,数据库中的数据可能有不一致的现象,但在‘事务’执行结束时,系统将保证数据库中数据的一致性。Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论74.2事务[例]银行的转帐业务:根据输入的两个银行存款帐号A和B,以及转帐金额X,将帐号A的金额减去X,帐号B的金额增加X。其处理过程如下(其中READ(A)表示将帐号A的金额读入内存变量A,WRITE(A)表示将内存变量A的值作为帐号A的金额写入数据库):READ(A);IF(AX)THENBEGINA:=A–X;WRITE(A);READ(B);B:=B+X;WRITE(B);END该事务的DB访问操作为:READ(A);WRITE(A);READ(B);WRITE(B);对该事务而言,数据库中数据的一致性就是指:帐号A和帐号B的总金额之和不变Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论84.2事务二、事务的性质原子性(Atomicity):在一个事务中,所有的数据库访问操作是一个不可分割的操作序列,事务中的操作要么全做要么全不做(nothingorall)e.g.从ATM机取款时,“发钱登记”与“扣款”操作必须组成原子的事务。一致性(Consistency):事务在功能上必须使DB从一致状态(consistentstate)变成另一个一致状态。即DB中的数据必须满足已定义的完整性约束和业务规则。e.g.银行DB:某帐号上的收支之差应始终等于余额。Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论94.2事务二、事务的性质(cont.)隔离性(Isolation):多个事务并发执行时彼此不受影响,就好象各个事务独立执行一样。e.g.民航DB:某航班就剩一张机票,有两个客户同时提出购买请求,结果应是一个买到,一个买不到。持久性(Durability):事务一旦成功执行,其对DB的影响应是持久的,即使DB发生故障也应保留这个事务的执行结果。e.g.银行的存款数据应是持久的。数据库管理系统通过其事务管理子系统(含并发控制子系统)、恢复管理子系统、数据完整性保护子系统来实现事务的原子性(A)、一致性(C)、隔离性(I)和持久性(D)。Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论104.2事务三、事务的两种结束方式提交(Commit):全做事务中的操作。回滚(Rollback):全不做事务中的操作(部分已执行的操作要撤消)。提交和回滚可以是显式的、也可以是隐式的:当发出COMMIT语句/ROLLBACK语句时显式提交/回滚当前事务;当发出一个DDL语句时,前后均隐式提交一个事务;当用户撤消对DBMS的连接时,当前事务隐式提交;当用户进程异常中止时,当前事务隐式回滚。Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论11目录Contents4.1数据库管理系统结构简介4.2事务4.3DBMS的进程结构4.4DBMS的系统结构4.5数据目录(字典)Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论124.3DBMS的进程结构一、DBMS和操作系统DBMS是操作系统的用户。DBMS在操作系统上可以有多种不同的运行方式。DBMS需要操作系统的服务:创建和撤销进程,进程通信,读写磁盘,分配内存等。操作系统不同的服务方式:DBMS在实现技术和实现方法上有差异。Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论134.3DBMS的进程结构二、应用进程与DBMS进程进程(Process)是OS中的重要基本概念,是指独立程序代码的一次动态执行。不论是用户应用程序还是DBMS代码均作为OS的一个个进程而执行的。应用进程(ApplicationProcess):也称用户进程(UserProcess),对应某个应用程序的一次动态执行。DBMS进程(DBMSProcess):对应DBMS代码的一次动态执行。分为:核心进程或服务器进程(ServerProcess)后台进程(BackgroundProcess)Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论144.3DBMS的进程结构在Oracle中,将DBMS进程和系统全局区(SystemGlobalArea,SGA)称为一个Oracle实例(Instance)。当Oracle启动后,称启动了一个Oracle实例。SGA是DBMS在内存开辟的一个区域,包括:DBBufferCacheRedoLogBufferSharedPool(共享SQL区、DD存储区,etc.)Otherinformation(队列、进程间通信信息,etc.)Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论154.3DBMS的进程结构三、几种典型的进程结构实现方案(以Oracle为背景介绍)单进程结构/单用户结构/单用户Oracle应用代码和DBMS代码结合成单个进程而执行。e.g.MS-DOS上的单用户Oracle。ApplicationCodeOracleServerCodeSGALastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论164.3DBMS的进程结构多进程结构/多用户结构/多用户Oracle每个连接DBMS的用户应用都对应一个用户进程,且使用多个进程/线程来执行DBMS。1.应用代码与DBMS代码组成同一个进程/User/Server相结合的进程结构/单任务:应用代码与DBMS代码在同一个进程(称用户进程)中运行,彼此之间有程序接口维护隔离及传送数据。Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论17SGAApplicationCodeOracleServerCodeUserProcessesApplicationCodeOracleServerCodeApplicationCodeOracleServerCode……OracleBackgroundProcessesProgramInterfaces4.3DBMS的进程结构Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论184.3DBMS的进程结构2、一个应用代码对应一个DBMS核心进程/使用专用服务器进程的结构/两任务Oracle为每个应用进程建立一个DBMS核心进程,称专用服务器进程(DedicatedServerProcess)。Lastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论194.3DBMS的进程结构UserProcessesProgramInterfacesApplicationCodeApplicationCodeApplicationCode…SGAOracleServerCodeOracleServerCodeOracleServerCode…OracleBackgroundProcesses…ClientsServerDedicatedServerProcessesLastupdate:Oct.2009LectureNotes-PrinciplesofDatabasesSystems.ByZhuomingXu第1部分数据库系统引论204.3DBMS的进程结构3、单核心进程、多线程的DBMS进程结构/使用共享服务器进程的结构线程/线索(Thread):是现代OS引入的一个新概念,称轻量进程(LightweightProcess)。一个进程中可创建多个可切换的线程,线程共享所属进程的(内存)资源,具有较少的私有资源,因此切换开销较小。进程是资源分配的单位,而线程是处理机调度的单位。线程机制是OS的任务粒度(TaskGranu
本文标题:数据库管理系统引论
链接地址:https://www.777doc.com/doc-3205467 .html