第十一章 数据库管理系统

29
1 第第 第 第第第第第第 第第 第 第第第第第第 11.1 DBMS 11.1 DBMS 第第 第第 11.1.1 DBMS 11.1.1 DBMS 第第第 第第第 DBMS DBMS 第第第第第第 第第第第第第 OS OS 第第第 第第第第 一。 第第第 第第第第 一。 1. 1. 第第第第第第 第第第第第第第第第第第 第第第第 第第第第第第 :、、 第第第第第第 第第第第第第第第第第第 第第第第 第第第第第第 :、、 第第第第第第第第第第2. 2. 第第第第 第第第第第第 第第第第第第第第 第第第第第第第第 :、、、 第第第第 第第第第第第 第第第第第第第第 第第第第第第第第 :、、、 第第第第第第第第第第 第第第第第第第第第第第 、。 第第第第第第第第第第 第第第第第第第第第第第 、。 3. 3. 第第第 第第第第第第第第第第第第 第第第 第第第第第第第第第第第第 DBNS DBNS 第第第第第第第第第第第第第第4. 4. 第第第第 第第第第 5. 5. 第第第 第第第

Upload: dot

Post on 24-Jan-2016

71 views

Category:

Documents


1 download

DESCRIPTION

第十一章 数据库管理系统. 11.1 DBMS 概述 11.1.1 DBMS 的目标 DBMS 是介于用户和 OS 之间的一组软件。 1. 用户界面友好:用户界面应具有可靠性、易用性、立即反馈和多样性等特性。 2. 功能完备:数据库定义、数据库数据存取、数据库运行管理、数据库组织和存储管理、数据库的建立和维护等。 3. 效率高:计算机内部资源的利用率和 DBNS 本身的运行效率。 4. 结构清晰 5. 开放性. 11.1.2 DBMS 的基本功能. DBMS 主要是实现对共享数据有效的组织、管理和存取。 1. 数据库定义 2. 数据存取 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第十一章 数据库管理系统

1

第十一章 数据库管理系统第十一章 数据库管理系统11.1 DBMS11.1 DBMS 概述概述11.1.1 DBMS11.1.1 DBMS 的目标的目标 DBMSDBMS 是介于用户和是介于用户和 OSOS 之间的一组软件。之间的一组软件。

1. 1. 用户界面友好:用户界面应具有可靠性、易用户界面友好:用户界面应具有可靠性、易用性、立即反馈和多样性等特性。用性、立即反馈和多样性等特性。2. 2. 功能完备:数据库定义、数据库数据存取、功能完备:数据库定义、数据库数据存取、数据库运行管理、数据库组织和存储管理、数数据库运行管理、数据库组织和存储管理、数据库的建立和维护等。据库的建立和维护等。3. 3. 效率高:计算机内部资源的利用率和效率高:计算机内部资源的利用率和 DBNSDBNS本身的运行效率。本身的运行效率。4. 4. 结构清晰结构清晰5. 5. 开放性开放性

Page 2: 第十一章 数据库管理系统

2

11.1.2 DBMS 的基本功能 DBMSDBMS 主要是实现对共享数据有效的组主要是实现对共享数据有效的组

织、管理和存取。织、管理和存取。1.1. 数据库定义数据库定义2.2. 数据存取数据存取3.3. 数据库运行管理数据库运行管理4.4. 数据组织、存储和管理数据组织、存储和管理5.5. 数据库的建立和维护数据库的建立和维护6.6. 其它功能其它功能

通信功能,数据转换功能通信功能,数据转换功能

Page 3: 第十一章 数据库管理系统

3

11.1.3 DBMS11.1.3 DBMS 与操作系统与操作系统 DBMSDBMS 是建立在是建立在 OSOS 之上的软件系统,之上的软件系统,

是是 OSOS 的用户。的用户。 DBMSDBMS 对共享数据的组织、管理和存取对共享数据的组织、管理和存取

需要需要 OSOS 的支持。的支持。 DBMSDBMS 遇到创建和撤销进程、进程通信、遇到创建和撤销进程、进程通信、

读写磁盘、分配内存等要求时必须请求读写磁盘、分配内存等要求时必须请求OSOS 服务。服务。

不同不同 OSOS 提供不同的服务方式,导致提供不同的服务方式,导致 DBDBMSMS 在实现技术上和实现方法上的诸多差在实现技术上和实现方法上的诸多差异。对于同一异。对于同一 OSOS ,, DBMSDBMS 也可以由不也可以由不同的实现选择。同的实现选择。

Page 4: 第十一章 数据库管理系统

4

11.1.4 DBMS 和第四代应用开发环境屏幕表格开发工具

SQL*FORMS

菜单生成SQL*MENU

预编译‘PRO’ORACLE

数据通信与分布软件

LINK,SQL*STAR

用户友好接口SQL*PLUS

SQL执行程序

ORACLE 内核关系数据库

管理系统

报表编写程序SQL*REPORT

图形软件SQL*GRAPH

电子表格SQL*CALC

数据转换ODL

数据库与数据字典

Page 5: 第十一章 数据库管理系统

5

11.2 DBMS11.2 DBMS 的进程结构和多线索机制的进程结构和多线索机制 应用程序通过应用程序通过 DBMSDBMS ,, DBMSDBMS 通过通过 OSOS ,与数,与数

据库中的数据打交道。以及都必须进入某个具据库中的数据打交道。以及都必须进入某个具体的体的 OSOS 环境。环境。

11.2.1 N11.2.1 N 方案:方案: DBMSDBMS 与应用程序相融合的方案与应用程序相融合的方案

AP1

DBMSAP2

DBMSAPi

DBMSU1 Ui

OS

DB 文件

SGA

Page 6: 第十一章 数据库管理系统

6

11.2.2 2N11.2.2 2N 方案:一个方案:一个 DBMSDBMS 进程对应一个用户进程进程对应一个用户进程

AP1

DBMS

AP2

DBMS

APi

DBMS

U1 Ui

OS

DB 文件

SGA

Page 7: 第十一章 数据库管理系统

7

11.2.3 N+111.2.3 N+1 方案:一个方案:一个 DBMSDBMS 进程对应所有用户进程进程对应所有用户进程

AP1

DBMS

AP2 APi U1 Ui

OS

DB 文件

SGA

Page 8: 第十一章 数据库管理系统

8

11.2.4 N+M11.2.4 N+M 方案:方案: MM 个个 DBMSDBMS 进程对应进程对应 NN 个用户进程个用户进程

AP1

DBMS

AP2 APi U1 Ui

OS

DB 文件

SGA DBMS进 程 服务池

Page 9: 第十一章 数据库管理系统

9

11.2.5 11.2.5 多线索多线索 (Multi_Threaded) DBMS(Multi_Threaded) DBMS 的概念的概念一、线程的概念一、线程的概念 在在 OSOS 中,将进程的概念一分为二,中,将进程的概念一分为二, TaskTask 是申是申

请资源的最小单位,而请资源的最小单位,而 ThreadThread 是调度和运行的是调度和运行的最小单位。一个最小单位。一个 TaskTask 中可以有多个中可以有多个 ThreadThread ,,它们共享它们共享 TaskTask 的所有资源,共同完成一个任务。的所有资源,共同完成一个任务。一个一个 ThreadThread 只能存在于某个只能存在于某个 TaskTask 中。在多处中。在多处理机上,这些理机上,这些 ThreadThread 可真正并行地执行。可真正并行地执行。

多个线程运行于同一实体多个线程运行于同一实体 (( 任务或进程任务或进程 )) ,并,并共享该实体所拥有的所有资源。共享该实体所拥有的所有资源。

线程的基本概念就是将进程中的程序代码与进线程的基本概念就是将进程中的程序代码与进程所占资源相分离,从而在一个地址空间可以程所占资源相分离,从而在一个地址空间可以运行多个指令流。运行多个指令流。

Page 10: 第十一章 数据库管理系统

10

进程、进程、 TaskTask 与与 ThreadThread

PC,PS,SPStackRegister( 运行资源 )

进程控制信息存储管理信息信号处理信息文件指针管理资源占用统计资源控制信息

进程控制信息存储管理信息信号处理信息文件指针管理资源占用统计资源控制信息

运行资源

UNIX 中进程的概念 MACH 中 Task 与 Thread 概念

Thread

Task

Page 11: 第十一章 数据库管理系统

11

二、多线索二、多线索 (Multi_Threaded)DBMS(Multi_Threaded)DBMS 数据库系统中的“线索”概念借鉴了数据库系统中的“线索”概念借鉴了 OS”OS” 线线

程”概念的含义:整个程”概念的含义:整个 DBMSDBMS 可以看作一个可以看作一个 TTaskask ,当有一个用户申请数据库服务时,,当有一个用户申请数据库服务时, TaskTask分配至少一个分配至少一个 ThreadThread 为之服务,多个为之服务,多个 ThreadThread并行工作,共享资源。并行工作,共享资源。

一般地讲,一般地讲, DBMSDBMS 中的线索是中的线索是 DBMSDBMS 的一个的一个执行流,它服务于整个执行流,它服务于整个 DBMSDBMS 系统或系统或 DBMSDBMS的某个用户;的某个用户; DBMSDBMS 服务器相应客户请求是通服务器相应客户请求是通过为每个用户创建线索来完成。过为每个用户创建线索来完成。

DBMSDBMS 的各个线索能在逻辑上并行执行,并共的各个线索能在逻辑上并行执行,并共存于一个进程,共享存于一个进程,共享 DBMSDBMS 的所有资源;线索的所有资源;线索是是 DBMSDBMS 的调度单位,服务器进程能按一定的的调度单位,服务器进程能按一定的调度算法调度用户请求。调度算法调度用户请求。

Page 12: 第十一章 数据库管理系统

12

三、线索与进程的比较三、线索与进程的比较1. 1. 线索比进程占用较少的资源线索比进程占用较少的资源 线索是程序中的一串指令流,同一进程内的多线索是程序中的一串指令流,同一进程内的多

个线索共享该进程内的一切资源。因此,线索个线索共享该进程内的一切资源。因此,线索比进程占用更少的资源,是更小的调度单位,比进程占用更少的资源,是更小的调度单位,可支持较细粒度的并行。可支持较细粒度的并行。

2. 2. 线索调度比较灵活,可控制性强线索调度比较灵活,可控制性强 进程调度是进程调度是 OSOS 控制的、非智能的,控制的、非智能的, DBMSDBMS无无

法干涉法干涉3. 3. 线索切换开销较小线索切换开销较小 线程共享同一地址空间线程共享同一地址空间4. 4. 线索间通信简单线索间通信简单 线索可以借助全局变量名或局部变量名的指针线索可以借助全局变量名或局部变量名的指针

进行通信。进行通信。

Page 13: 第十一章 数据库管理系统

13

11.3 DBMS11.3 DBMS 系统结构系统结构11.3.1 DBMS11.3.1 DBMS 程序模块的组成程序模块的组成一、数据库定义方面的程序模块一、数据库定义方面的程序模块 模式、外模式、存储模式的定义模块。模式、外模式、存储模式的定义模块。 安全性定义程序模块。安全性定义程序模块。 完整性定义程序模块。完整性定义程序模块。二、数据操纵方面的程序模块二、数据操纵方面的程序模块 查询处理程序模块。查询处理程序模块。 数据更性程序模块。数据更性程序模块。 交互式查询程序模块。交互式查询程序模块。 嵌入式查询程序模块。嵌入式查询程序模块。

Page 14: 第十一章 数据库管理系统

14

三、数据库运行管理方面的程序模块三、数据库运行管理方面的程序模块 主要有系统初启程序和安全性检查、完整性检主要有系统初启程序和安全性检查、完整性检查、并发控制、事务管理、运行日志管理等三、查、并发控制、事务管理、运行日志管理等三、数据库运行管理方面的程序模块。数据库运行管理方面的程序模块。

四、数据库组织、存储和管理方面的程序模块四、数据库组织、存储和管理方面的程序模块 有文件读写于维护程序、存取路径管理和维护有文件读写于维护程序、存取路径管理和维护

程序、缓冲区管理程序等程序、缓冲区管理程序等五、数据库建立、维护和其他方面的程序模块五、数据库建立、维护和其他方面的程序模块 有数据库初始装入程序、转储程序、恢复程序、有数据库初始装入程序、转储程序、恢复程序、

数据库重构造程序、数据转换程序、通信程序数据库重构造程序、数据转换程序、通信程序等。等。

Page 15: 第十一章 数据库管理系统

15

11.3.2 DBMS11.3.2 DBMS 的层次结构的层次结构

数据存储层

操作系统

数据库

Page 16: 第十一章 数据库管理系统

16

11.3.3 DBMS11.3.3 DBMS 运行过程示例运行过程示例

系统缓冲区

应用程序用户工作区

(UWA)

数据库管理系统(DBMS)

操作系统

数据字典

数据库

⑵⑶

⑹⑺⑻

⑽ ⑿

Page 17: 第十一章 数据库管理系统

17

11.4 11.4 语言处理语言处理11.4.1 11.4.1 语言翻译处理层的任务和工作步骤语言翻译处理层的任务和工作步骤 任务:把用户提交的交互式命令或嵌入式语言任务:把用户提交的交互式命令或嵌入式语言

转换成对应的转换成对应的 DBMSDBMS层内可执行的基本存取模层内可执行的基本存取模块的调用序列。块的调用序列。

数据库语言通常包括数据库语言通常包括 DDLDDL 、、 DMLDML 和和 DCLDCL三部三部分。分。

在在 RDMBSRDMBS 中中 DDDD 通常采用和普通数据同样的表通常采用和普通数据同样的表示方式——表。它包括关系定义表、属性表、示方式——表。它包括关系定义表、属性表、视图表、视图属性表、视图表达式表、用户表、视图表、视图属性表、视图表达式表、用户表、存取权限表等。存取权限表等。

DDDD 是是 DMLDML语句处理、执行以及语句处理、执行以及 DBMSDBMS 运行管运行管理的基本依据。理的基本依据。

Page 18: 第十一章 数据库管理系统

18

RDBMSRDBMS 数据字典的部分示意图数据字典的部分示意图关系定义表

关系名

视图定义指针属性定义指针记录总数记录长度属性个数

建立者别名

视图属性指针基关系指针

视图表达式指针

视图表

属性名类型长度

记录内偏址完整性定义指针属性表达式指针

属性表

属性名基关系属性指针属性表达式设计

用户名口令

用户表

视图属性表

用户名数据对象名

数据对象类型操作权限存取谓词

用户权限表

视图名表达式语法树根指针

Page 19: 第十一章 数据库管理系统

19

词法分析语法分析符号名转换

合法权检查完整性检查视图转换

代数优化存取路径优化策略描述

DML语句

可执行的 RDBMS 内层基本存取模块的调用序

查询检查

查询分析

查询优化

数据库数据字典

DBMS内层基本模块库

单元组接口

多元组接口

Page 20: 第十一章 数据库管理系统

20

11.4.2 11.4.2 解释方法解释方法 解释执行解释执行 与编译技术与编译技术11.4.3 11.4.3 预编译方法预编译方法

源模块

修改后的源模块 预编译器

数据库数据字典该语言的编译器

束缚 (bind)

目标模块

装载模块

连接(装载模块 )( 应用规划 )

数据存储管理器器运行监督器

( 其它 )DB

DBMS内存基本存取模块

应用规划

DBRMSelect … From…

内存

Page 21: 第十一章 数据库管理系统

21

11.5 数据存取层

语言处理层:元组、关系、视图等逻辑数据结构

数据存取层:逻辑记录、逻辑块、逻辑存取路径

数据存储层:逻辑记录、块、块组成的系统缓冲区

多元组接口 (如 SQL语句 )

单元组接口

存储器接口

Page 22: 第十一章 数据库管理系统

22

11.5.1 存取层的系统结构

记录存取、事务管理子系统

控制信息管理

排序 / 合并子系统

存取路径维护子系统

封锁子系统

日志登录子系统

数据存储层

单元数据接口

Page 23: 第十一章 数据库管理系统

23

11.5.2 存取层的功能子系统一、记录存取、事务管理子系统一、记录存取、事务管理子系统 不涉及存储分配、存储结构及有关参数,不涉及存储分配、存储结构及有关参数,

只在数据的逻辑结构上操作,因而可以只在数据的逻辑结构上操作,因而可以把各种物理实现形态隐藏起来。把各种物理实现形态隐藏起来。

二、日志登记子系统二、日志登记子系统三、控制信息管理子系统三、控制信息管理子系统四、排序四、排序 // 合并子系统合并子系统五、存取路径维护子系统五、存取路径维护子系统六、封锁子系统六、封锁子系统

Page 24: 第十一章 数据库管理系统

24

11.6 缓冲区管理

控制信息第一页第二页

•••

( 操作:查找页、 申请页、

淘汰页 )•••

BUFFER

读 (READBUF)

写 (WRITEBUF)

读 (OS)

写 (OS)

数据库

数据库缓冲区

及上下接口

Page 25: 第十一章 数据库管理系统

25

在缓冲区中查找页

找到?

在缓冲区中申请一页

按淘汰策略淘汰一页

从外存读入新页

READBUF

NO

无空页

有空页

YES

缓冲区管理示意图缓冲区管理示意图(( 读操作读操作 ))

Page 26: 第十一章 数据库管理系统

26

11.7 数据库物理组织一、数据字典一、数据字典 (DD)(DD) 的组织的组织二、数据及数据联系的组织二、数据及数据联系的组织三、存取路径的组织三、存取路径的组织四、一个实际系统的例子四、一个实际系统的例子ORACLEORACLE系统系统 ((无论大型、中型或微机版本无论大型、中型或微机版本 ))

数据库存储空间有数据库存储空间有 RDBMSRDBMS 管理管理 数据库在逻辑上又一个或多个分区组成数据库在逻辑上又一个或多个分区组成 分区中至少有一个系统分区,分区中至少有一个系统分区, DDDD 存储在该分存储在该分区中区中

一个分区包含一个或多个数据库表一个分区包含一个或多个数据库表 一个表只能属于一个分区,不能跨分区存放一个表只能属于一个分区,不能跨分区存放 一个分区物理上由一个或多个物理文件组成一个分区物理上由一个或多个物理文件组成

Page 27: 第十一章 数据库管理系统

27

ORACLE DATABASE

分区(partitions)

物理文件(physical files)

数据库表(database tables)

物理块(physical blocks)

数据段(data segment)

索引段(index segment)

数据区间(data extents)

索引区间(index extents)

1:n

OrcaleOrcale 数据库组织示意图数据库组织示意图

Page 28: 第十一章 数据库管理系统

28

时间印 (Timestamp)

下一块的地址上一块的地址块头信息 (Header)

该行长度行号列 a长度列 a 标识

列 a 数据列 b长度列 b 标识

列 b 数据

备用空间 ( 由 PCTFREE参数确定 )

OrcaleOrcale 数据块的格式数据块的格式

Page 29: 第十一章 数据库管理系统

29

11.8 小结 本章主要讨论本章主要讨论 DBMSDBMS 的基本功能,系统结构及的基本功能,系统结构及

主要的实现技术。主要的实现技术。 按照按照 DBMSDBMS 的层次结构依次介绍语言翻译处理的层次结构依次介绍语言翻译处理层、数据存取层、缓冲区管理、数据物理组织层、数据存取层、缓冲区管理、数据物理组织等各个层次的主要任务和功能,涉及的主要概等各个层次的主要任务和功能,涉及的主要概念和问题。念和问题。

数据库领域过去所取得的主要成就,就是数据数据库领域过去所取得的主要成就,就是数据建模和计算技术。包括如何在外部存储设备上建模和计算技术。包括如何在外部存储设备上存储数据、如何分片;如何使用各种复杂的存存储数据、如何分片;如何使用各种复杂的存取方法、缓冲策略和索引技术访问外部设备上取方法、缓冲策略和索引技术访问外部设备上的数据;数据库恢复、并发控制、完整性和安的数据;数据库恢复、并发控制、完整性和安全性的实施、查询处理和优化技术等。全性的实施、查询处理和优化技术等。