1、 数据库系统概论数据库系统概论An Introduction to Database System第十二章第十二章 数据库管理系统数据库管理系统第十二章第十二章 数据库管理系统数据库管理系统12.1 DBMS的基本功能的基本功能12.2 DBMS的进程结构和多线索机制的进程结构和多线索机制12.3 DBMS系统结构系统结构12.4 语言处理语言处理12.5 数据存取层数据存取层12.6 缓冲区管理缓冲区管理12.7 数据库物理组织数据库物理组织12.8 小结小结12.1 DBMS的基本功能的基本功能1.数据库定义和创建数据库定义和创建2.数据组织、存储和管理数据组织、存储和管理3.数据存取数据
2、存取4.数据库事务管理和运行管理数据库事务管理和运行管理5.数据库的建立和维护数据库的建立和维护6.其他功能其他功能12.1 DBMS的基本功能(续)的基本功能(续)v数据库定义和创建n外模式、模式、内模式的定义n数据库完整性的定义n安全保密定义(如用户口令、级别、存取权限)n存取路径(如索引)的定义 数据字典(亦称为系统目录):存储定义 12.1 DBMS的基本功能(续)的基本功能(续)v数据组织、存储和管理n数据的种类数据字典用户数据存取路径n任务以某种文件结构和存取方式物理地组织这些数据实现数据之间的联系n目标提高存储空间利用率提高随机查找、顺序查找、增、删、改等操作的时间效率 12.1
3、 DBMS的基本功能(续)的基本功能(续)v数据存取n数据操纵语言(DML)检索插入修改删除n两类DML宿主型语言自立(独立)型语言12.1 DBMS的基本功能(续)的基本功能(续)v数据库事务管理和运行管理n多用户环境下事务的管理和自动恢复n并发控制和死锁检测(或死锁防止)n安全性检查和存取控制n完整性检查和执行n运行日志的组织管理12.1 DBMS的基本功能(续)的基本功能(续)v数据库的建立和维护n建立数据库数据库的初始建立数据的转换n维护数据库数据库的转储和恢复数据库的重组织和重构造性能监测分析12.1 DBMS的基本功能(续)的基本功能(续)v其他功能nDBMS与网络中其他软件系统的
4、通信功能n与其他DBMS或文件系统的数据转换功能n异构数据库之间的互访和互操作功能 12.2 DBMS进程结构和多线索机制进程结构和多线索机制12.2.1 N方案:方案:DBMS与应用程序相融合的方案与应用程序相融合的方案12.2.2 2N方案:一个方案:一个DBMS进程对应一个用户进程进程对应一个用户进程12.2.3 N+1方案:一个方案:一个DBMS进程对应所有用户进程进程对应所有用户进程12.2.4 N+M方案:方案:M个个DBMS进程对应进程对应N个用户进程个用户进程12.2.5 多线索多线索(Multi_Threaded)DBMS的概念的概念12.2.1 N方案:方案:DBMS与应用
5、程序相融合的方案与应用程序相融合的方案v N个DB用户-N个进程n连入式方案v S G A(S h a r e d Global Area)共享全局区n字典定义信息n数据和索引缓冲块n日志缓冲块n封锁控制块12.2.1 N方案:方案:DBMS与应用程序相融合的方案与应用程序相融合的方案v优点n没有进程切换开销n实现比较简单v缺点n内存的需求量比较大:多DBMS副本n代码冗余使系统性能下降v适用情况n用户数少的小型DBMS12.2 DBMS进程结构和多线索机制进程结构和多线索机制12.2.1 N方案:方案:DBMS与应用程序相融合的方案与应用程序相融合的方案12.2.2 2N方案:一个方案:一个
6、DBMS进程对应一个用户进程进程对应一个用户进程12.2.3 N+1方案:一个方案:一个DBMS进程对应所有用户进程进程对应所有用户进程12.2.4 N+M方案:方案:M个个DBMS进程对应进程对应N个用户进程个用户进程12.2.5 多线索多线索(Multi_Threaded)DBMS的概念的概念12.2.2 2N方案:一个方案:一个DBMS进程对应一个用户进程进程对应一个用户进程v解决N方案中DBMS代码段在内存中不能被共享 应用程序与DBMS副本分开 2N方案v一用户一进程(Shadow进程)nN个用户进程-N个DBMS进程(共2N个进程)12.2.2 2N方案:一个方案:一个DBMS进程
7、对应一个用户进程进程对应一个用户进程12.2.2 2N方案:一个方案:一个DBMS进程对应一个用户进程进程对应一个用户进程v 优点优点nDBMS对各数据库用户的多任务调度由OS完成 简化了用户进程与DBMS的接口 实现起来比较简单 v 缺点缺点n进程间总的通信开销上升n操作系统的负担增大,空间、时间效率不高nDBMS必须设立并维护若干后台进程,增加了进程切换n要访问的数据不在内存时会造成性能问题n临界区问题(Critical Section)v 适用情况适用情况n用户数不庞大(非OLTP应用):Oracle 7之前版本,Ingres,Informix早期版本12.2 DBMS进程结构和多线索机
8、制进程结构和多线索机制12.2.1 N方案:方案:DBMS与应用程序相融合的方案与应用程序相融合的方案12.2.2 2N方案:一个方案:一个DBMS进程对应一个用户进程进程对应一个用户进程12.2.3 N+1方案:一个方案:一个DBMS进程对应所有用户进程进程对应所有用户进程12.2.4 N+M方案:方案:M个个DBMS进程对应进程对应N个用户进程个用户进程12.2.5 多线索多线索(Multi_Threaded)DBMS的概念的概念12.2.3 N+1方案:一个方案:一个DBMS进程对应所有用户进程进程对应所有用户进程v一个DBMS进程对应所有用户进程n整个DBMS仅使用一个进程,类似于一个
9、服务器(Server)n多个数据库用户向Server发message申请数据库服务nServer用自己的机制来调度这些申请,以支持一个多任务的数据库系统 v没有SGA,DBMS进程的数据区=SGAv没有后台进程v用多线索(Multi_Threaded)技术来实现N+1方案 12.2.3 N+1方案:一个方案:一个DBMS进程对应所有用户进程进程对应所有用户进程12.2.3 N+1方案:一个方案:一个DBMS进程对应所有用户进程进程对应所有用户进程v优点n采用多线索(Multi_Threaded)技术提高系统性能,降低系统资源的开销,简化DBMS许多部分的设计v缺点nDBMS的设计整体上较复杂n
10、消息系统过于昂贵 v实际系统nSybase12.2 DBMS进程结构和多线索机制进程结构和多线索机制12.2.1 N方案:方案:DBMS与应用程序相融合的方案与应用程序相融合的方案12.2.2 2N方案:一个方案:一个DBMS进程对应一个用户进程进程对应一个用户进程12.2.3 N+1方案:一个方案:一个DBMS进程对应所有用户进程进程对应所有用户进程12.2.4 N+M方案:方案:M个个DBMS进程对应进程对应N个用户进程个用户进程12.2.5 多线索多线索(Multi_Threaded)DBMS的概念的概念12.2.4 N+M方案:方案:M个个DBMS进程对应进程对应N个用户进程个用户进程
11、vM个DBMS进程-N个用户进程(一般 M N)vDBMS进程不负责多任务调度,每个用户进程也不固定地对应于某个DBMS进程v用户的数据库请求被动态分配给某个DBMS进程来处理vDBMS进程的分派由分派程序完成12.2.4 N+M方案:方案:M个个DBMS进程对应进程对应N个用户进程个用户进程12.2.4 N+M方案:方案:M个个DBMS进程对应进程对应N个用户进程个用户进程v优点n改进了2N方案,提高了内存资源的利用率v缺点n没有克服2N方案的本质弱点n分派程序给系统增加了开销并可能成为瓶颈nDBMS进程动态增减的开销亦很大 v实际系统nOraclenInformix12.2 DBMS进程结
12、构和多线索机制进程结构和多线索机制12.2.1 N方案:方案:DBMS与应用程序相融合的方案与应用程序相融合的方案12.2.2 2N方案:一个方案:一个DBMS进程对应一个用户进程进程对应一个用户进程12.2.3 N+1方案:一个方案:一个DBMS进程对应所有用户进程进程对应所有用户进程12.2.4 N+M方案:方案:M个个DBMS进程对应进程对应N个用户进程个用户进程12.2.5 多线索多线索(Multi_Threaded)DBMS的概念的概念一、一、线程的概念线程的概念v进程细化为 “任务”(Task)、“线程”(Thread)v进程n一分为二Task是申请资源的最小单位Thread是调度
13、和运行的最小单位n一个Task中可有多个ThreadnThread共享Task的所有资源,共同完成一个任务v线程n将进程中的程序代码与进程所占资源相分离,从而在一个地址空间运行多个指令流一、一、线程的概念(续)线程的概念(续)二、二、多线索(多线索(Multi_Threaded)DBMS vDBMS是一个Taskv用户申请数据库服务时,Task分配至少一个Thread为之服务v多个Thread并行工作,共享资源 三、三、线索与进程的比较线索与进程的比较 v线索比进程占用较少的资源v线索调度比较灵活,可控制性强v线索切换开销较小v线索间通信简便 12.3 DBMS系统结构系统结构12.3.1 D
14、BMS的层次结构的层次结构12.3.2 RDBMS的运行过程示例的运行过程示例12.3.1 DBMS的层次结构的层次结构处理各种各样的数据库应用处理各种各样的数据库应用是是RDBMS与用户与用户/应用程序的界面层应用程序的界面层处理数据库语言,如处理数据库语言,如SQL向上提供的数据接口是元组的集合向上提供的数据接口是元组的集合处理单个元组处理单个元组把集合操作化为单记录操作并执行把集合操作化为单记录操作并执行处理数据页和系统缓冲区处理数据页和系统缓冲区12.3 DBMS系统结构系统结构12.3.1 DBMS的层次结构的层次结构12.3.2 RDBMS的运行过程示例的运行过程示例12.3.2
15、RDBMS的运行过程示例的运行过程示例12.4 语言处理语言处理12.4.1 语言处理层的任务和工作语言处理层的任务和工作12.4.2 解释方法解释方法12.4.3 预编译方法预编译方法12.4.1 语言处理层的任务和工作语言处理层的任务和工作接收接收DB语句语句 转换转换对对DBMS内层内层可执行的基本可执行的基本存取模块的调存取模块的调用序列用序列交互式方式下的交互式方式下的SQL语句语句嵌入嵌入3GL中的中的SQL语句语句 PL/SQL中的中的SQL语句语句 12.4.1 语言处理层的任务和工作(续)语言处理层的任务和工作(续)vDDL语句处理过程n把它翻译成内部表示n存储在系统的数据字
16、典中vDCL语句处理过程n与DDL的处理类似12.4.1 语言处理层的任务和工作(续)语言处理层的任务和工作(续)vDML语句的处理n束缚过程n束缚时间DML语句语句 束缚束缚(Binding)一串可执行的一串可执行的存取动作存取动作(调用调用序列序列)相当于一个小编译器相当于一个小编译器 其他语句查询语句DML 语句语法分析语义检查视图转换数 据 库数据字典DBMS内层基本模块库单元组接口对可执行的DBMS内层基本存取模块的调用序列多元组接口查询优化代码生成 词词法法分分析析 语语法法分分析析 语语义义分分析析 符符号号名名转转换换 合合法法权权检检查查 完完整整性性检检查查 视视图图转转换
17、换 代代数数优优化化 存存取取路路径径选选择择 优优化化 策策略略描描述述 数数据据库库 数数据据字字典典 DBMS 内内层层基基本本模模块块库库 单单元元组组接接口口 对对可可执执行行的的DBMS内内层层基基本本存存取取模模块块的的调调用用序序列列 多多元元组组接接口口 查查询询优优化化 查查询询分分析析 查查询询检检查查 DML 语语句句 12.4.1 语言处理层的任务和工作(续)语言处理层的任务和工作(续)v束缚时间编程时-执行前-执行时n编程时-已淘汰n执行时-解释方法n执行前-预编译方法12.4 语言处理语言处理12.4.1 语言处理层的任务和工作语言处理层的任务和工作12.4.2
18、解释方法解释方法12.4.3 预编译方法预编译方法12.4.2 解释方法解释方法v特点n执行前,DML语句都以原始字符串的形式保存n执行时,解释程序完成束缚过程,然后予以执行v优点n数据独立性好n灵活、应变性好v缺点n效率比较低v适用n交互式SQL 12.4 语言处理语言处理12.4.1 语言处理层的任务和工作语言处理层的任务和工作12.4.2 解释方法解释方法12.4.3 预编译方法预编译方法12.4.3 预编译方法预编译方法v不同束缚时间的权衡n早:系统效率高,数据独立性差n晚:数据独立性高,执行效率差预编译方法是介于上面二者之间的一个方案v特点n用户提交DML语句后,运行前对它进行翻译处
19、理n保存产生的执行代码n运行时,取出执行代码加以执行 源源 模模 块块 修修 改改 后后 的的 源源 模模 块块 DBRM Select From W here 数数 据据 库库 数数 据据 字字 典典 DBM S 内内 存存 基基 本本 存存 取取 模模 块块 目目 标标 模模 块块 装装 载载 模模 块块 应应 用用 规规 划划 DB 主主 存存 (装装 载载 模模 块块)(应应 用用 规规 划划)运运 行行 监监 督督 器器 数数 据据 存存 储储 管管 理理 器器 (其其 他他)该该 源源 语语 言言 的的 编编 译译 器器 连连 接接 束束 缚缚(bind)预预 编编 译译 器器 v
20、预编译方法的问题n应用规划失效(数据库结构改变、存取路径改变)v解决方法n重编译n重编译进行时刻立即重编译被执行时才进行自动重编译n自动重编译技术的优点既拥有了编译时进行束缚所带来的高效率又具备了执行时束缚带来的数据独立性 12.4.3 预编译方法(续)预编译方法(续)12.5 数据存取层数据存取层 语言处理层:元组、关系、视图等逻辑数据结构语言处理层:元组、关系、视图等逻辑数据结构 数据存取层:逻辑记录、逻辑块、逻辑存取路径数据存取层:逻辑记录、逻辑块、逻辑存取路径 数据存储层:存储记录、块、块组成的系统缓冲区数据存储层:存储记录、块、块组成的系统缓冲区 多元组接口(如多元组接口(如 SQL
21、 语句)语句)单元组接口单元组接口 存储器接口存储器接口 12.5 数据存取层数据存取层12.5.1 数据存取层的系统结构数据存取层的系统结构12.5.2 数据存取层的功能子功能数据存取层的功能子功能12.5.1 数据存取层的系统结构数据存取层的系统结构 排序排序/合并合并 子系统子系统 存取路径存取路径 维护子系统维护子系统 封锁子系统封锁子系统 日志登录子系统日志登录子系统 数据存储层数据存储层 单元组接口单元组接口 记录存取、事务记录存取、事务管理子系统管理子系统 控制信控制信息管理息管理 12.5 数据存取层数据存取层12.5.1 数据存取层的系统结构数据存取层的系统结构12.5.2
22、数据存取层的功能子功能数据存取层的功能子功能12.5.2 数据存取层的功能子功能数据存取层的功能子功能v记录存取、事务管理子系统v日志登记子系统v控制信息管理模块v排序合并子系统v存取路径维护子系统v封锁子系统一、记录存取、事务管理子系统一、记录存取、事务管理子系统v记录存取子系统n在某个存取路径上按属性值找元组(FIND)n按相对位置找元组(NEXT,PRIOR,FIRST,LAST)。n给某关系增加一个元组(INSERT)n从找到的元组中取某个属性值(GET)n从某关系中删去一个元组(DELETE)n把某修改完的元组写回关系中(REPLACE)v事务管理子系统n定义事务开始(BEGIN T
23、RANSACTION)n事务提交(COMMIT)n事务回滚(ROLLBACK)二、日志登记子系统二、日志登记子系统v写日志记录(WRITELOG)v读日志记录(READLOG)v扫描日志文件(SCANLOG)v撤消尚未结束的事务(UNDO)v重做已经结束的事务(REDO)三、控制信息管理模块三、控制信息管理模块v负责在内存数据区登记记录类型、存取路径的说明信息和控制信息。四、四、排序排序/合并子系统合并子系统v输出有序结果v删去重复值v支持排序 合并方法的连接操作v支持动态建立索引结构v减少数据块的存取次数五、存取路径维护子系统五、存取路径维护子系统v对数据执行插入、删除、修改操作的同时对相应
24、的存取路径进行维护vB+树的维护算法 n初始建立B+树索引n插入n删除n更新7.封锁子系统封锁子系统操作系统和数据库管理系统封锁技术的比较操作系统和数据库管理系统封锁技术的比较 操作系统操作系统 数据库管理系统数据库管理系统 封锁对象封锁对象 单一,系统资源(包括单一,系统资源(包括 CPUCPU、设备、表格等)设备、表格等)多样,数据库中各种数据对象(包括多样,数据库中各种数据对象(包括用户数据、索引(存取路径)、数据用户数据、索引(存取路径)、数据字典等)字典等)封锁对象的状态封锁对象的状态 静态、确定、各种封锁对象静态、确定、各种封锁对象在封锁表中占有一项。在封锁表中占有一项。封锁对象数
25、是不变的封锁对象数是不变的 动态,不确定。封锁对象动态改变着、动态,不确定。封锁对象动态改变着、常常在执行前不能确定。一个封锁对常常在执行前不能确定。一个封锁对象只有当封锁时才在封锁表中占据象只有当封锁时才在封锁表中占据一项一项 封锁的粒度封锁的粒度 不变,由于封锁对象单一、不变,由于封锁对象单一、固定,封锁粒度不会改变固定,封锁粒度不会改变 可变,封锁可加到或大或小的数据单可变,封锁可加到或大或小的数据单位上,封锁粒度可以是整个数据库、位上,封锁粒度可以是整个数据库、记记录或字段录或字段 封锁的类型封锁的类型 单一,排它锁单一,排它锁 多样,一般有共享锁(多样,一般有共享锁(S LockS
26、Lock)、排)、排它锁(它锁(X LockX Lock)或其他类型的封锁,)或其他类型的封锁,随系统而异随系统而异 12.6 缓冲区管理缓冲区管理v数据存储层的功能 n缓冲区管理n内外存交换n外存管理v系统缓冲区设立的原因 n提供DBMS的设备独立性 外存设备的变更不会对它们造成影响n提高存取效率异步读写:预先读,延迟写 12.6 缓冲区管理(续)缓冲区管理(续)v系统缓冲区的组成n内存n虚存v缓冲区管理n缓冲区大小 太大:占据内存空间太小:频频缺页调页,造成“抖动”,影响效率 n数据库缓冲区及上下接口n缓冲区管理示意图 数据库缓冲区及上下接口数据库缓冲区及上下接口缓冲区管理缓冲区管理v 缓
27、冲区查找算法 n顺序查找算法n折半查找算法 nhash查找算法v 缓冲区淘汰算法nLRU算法nFIFO算法n时钟算法n系统控制法n混合算法n12.7 数据库物理组织数据库物理组织v衡量数据组织优劣的标准n存储效率高,节省存储空间;n存取效率高,速度快,代价小v存储的数据n数据描述即数据外模式、模式、内模式。n数据本身n数据之间的联系n存取路径12.7 数据库物理组织(续)数据库物理组织(续)v数据字典(DD)的组织n数据量比较小n使用频繁v数据及数据联系的组织n网状、层次数据库:邻接法和链接法n关系数据库:表v存取路径的组织n网状、层次数据库:数据之间的联系n关系数据库:B树类文件结构和Hash文件结构12.8 小结小结vDBMS的目标n用户界面友好n功能完备n效率高n结构清晰n开放性12.8 小结(续)小结(续)vDBMS的基本功能n数据库定义n数据存取n数据库运行管理n数据组织、存储和管理n数据库的建立和维护n其他12.8 小结(续)小结(续)vDBMS的进程结构nN方案n2N方案nM+N方案nN+1方案12.8 小结(续)小结(续)vDBMS的系统结构n程序模块组成n层次结构vDBMS的主要实现技术 n语言处理层n数据存取层n数据存储层n数据库物理组织