数据库存储结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
顺序索引主要用于支持快速地对文件中的记录进行顺序或随机地 访问。顺序索引的结构是按顺序存储搜索码的值,并将搜索码
的值与包含该搜索码值的记录关联起来 。
散列索引(hash index):通过搜索码值的散列函数(也称哈希函 数)的值将所有记录平均、随机地分布到若干个散列桶中。
搜索码(search key):用于在文件中查找记录的属性或 属性集。经常需要在一个文件上建立多个索引,此时该 文件就有多个搜索码。
数据传输率(data-tranfer rate)是从磁盘获得数据或者向磁盘 存储数据的速率。
磁盘的平均故障时间(mean time to failure, MTTF)是指磁盘 无故障连续运行时间的平均值。 磁盘块(block)是一个逻辑单元,它是包含固定数目的连续扇 区。数据在磁盘和主存储器之间以块为单位传输。
不管哪种情况,都要调整指针,使其能按搜索码顺序 把记录链接起来。 插入情况如图7-7所示:
School of Information Technology, Jiangxi University of Finance & Economics
11
数据库系统原理与设计
第 7 章
数据库存储结构
多表聚集文件组织
数据库系统原理与设计
第 7 章
数据库存储结构
存储介质的分类
几种有代表性的存储介质:高速缓冲存储器(cache)、主 存储器(main memory)、快闪存储器(flash memory)、磁 盘存储器(magnetic-disk storage)、光存储器(optical storage)和磁带存储器(tape storage)等。
数据库系统原理与设计
第 7 章
数据库存储结构
文件组织
文件中组织记录的常用方法有:堆文件组织、顺序文件组织、 多表聚集文件组织、B+树文件组织和散列(hashing)文件组 织等。本节对前3种进行介绍。 堆文件组织 :一条记录可以放在文件中的任何地方,只要那 个地方有空间存放该记录。也就是说,文件中的记录是没有顺 序的,是堆积起来的。通常每个关系使用一个单独的文件。 顺序文件组织:顺序文件是为了高效地按某个搜索码的顺序排 序处理记录而设计的。为了快速地按搜索码的顺序获取记录, 通常通过指针把记录逻辑上有序地链接起来。每个记录的指针 指向搜索码顺序的下一条记录。同时,为了减少顺序文件处理 中磁盘块的访问数量,在物理上按搜索码顺序或者尽可能地接 近搜索码顺序存储记录。如图7-6所示:
(Multitable Clustering File Organization)是 多表聚集文件组织 问题的提出:两个关系中作连接运算时,最坏的情况下,每 一种在每一个块中存储两个或多个关系的相关记录的文件结 个相匹配的记录都处在不同的磁盘块中,这将导致为获取所 构。 需的每一条记录都要读取一个磁盘块。 对于图 问题的解决 :将两个关系的元组混合在一起聚集存储,从而 7-9所示的多表聚集文件结构,可以加速特定连接的处 支持高效的连接运算。如图7-8所示的两个关系,为了支持高 理,但是它将导致其它类型查询的处理变慢。在图 7-10中, 效连接运算,可以采用图7-9所示的多表聚集文件结构。 通过指针将一个关系中的所有记录链接起来以方便查找。
多种记录类型(即多个关系表)在一个文件中存储; 允许记录类型中包含一个或多个变长字段; 允许记录类型中包含重复字段,如数组等。
有多种变长记录的存储管理技术,这里仅介绍分槽页结构 (slotted-page structure)。分槽页结构一般用于在块中组织记 录,如图7-5所示。 每个块的开始处有一个块头,块头中包含的信息有:
计算机的三级存储体系 :根据不同存储介质的速度和成 本,可以把它们按层次结构组织起来,层次越高,每单 位存储容量价格越贵,但速度越快。如图7-1所示。
存储易失性问题 :易失性存储在设备断电后将丢失所有 内容。一级存储为易失性存储,而二、三级存储系统都 是非易失性存储。
School of Information Technology, Jiangxi University of Finance & Economics 3
块头中已存储的条目(entry)个数#E(number of entries); 块中空闲空间的末尾地址EFS(end of free space); 条目数组,每个条目中存储了该条目所对应变长记录的大小ES(entry size)和地址EP (entry pointer)。
School of Information Technology, Jiangxi University of Finance & Economics 8
数据库系统原理与设计
第 7 章
数据库存储结构
数据库系统原理与设计
(第2版)
——哈佛大学前校长布罗纳对每年来哈佛的新生说:
“ 听着,你们到这里,不是 第 7章 数据库存储结构 来发财的。你们到这儿来,为
的是思考,并学会思考”。
School of Information Technology, Jiangxi University of Finance & Economics 1
数据库系统原理与设计
第 7 章
数据库存储结构
目 录
7.1
7.2 7.3 7.4 7.5 7.6 文件组织
记录组织
顺序索引 B+树索引 散列 物理数据库设计
9
School of Information Technology, Jiangxi University of Finance & Economics
School of Information Technology, Jiangxi University of Finance & Economics
6
数据库系统原理与设计
第 7 章
数据库存储结构
在文件开始处,分配一定数量的字节作为文件头(file header), 这种简单的方法明显地有两个问题: 文件头中存储有关文件的各种信息。到目前为止,需要在文件 删除一条记录比较困难。要么填充被删空间,要么标记被删记录; 头中存储的信息只有一个,即第一条被删除记录 (即第一条可用 除非块的大小恰好是记录大小的倍数,否则有的记录会跨块存储。 记录) 的地址。 对于跨块存储的记录的访问需要涉及两次磁盘 I/O操作。 一般对被删除结点做标记,且使用空闲记录链表来管理记录 的插入和删除,如图7-4所示:
School of Information Technology, Jiangxi University of Finance & Economics 4
数据库系统原理与设计
第 7 章
数据库存储结构
存储访问
缓冲区(buffers)是主存储器中用于存储磁盘块的副本的区域。 缓冲区中的每个块总有一个副本存放在磁盘上,但是在磁盘 上的副本可能比在缓冲区中的副本旧。
负责缓冲区空间分配和管理的子系统称为缓冲区管理器。 数据库系统通过缓冲区实现对磁盘上数据的存储访问。
在数据库管理系统中,数据的存取过程如图7-2所示。
(5) 具体步骤如下: 在缓冲区中找记录,若找到转 (10),否则转(6); (11) RDBMS将数据从系统缓冲区中送入用户工作区;
5
School of Information Technology, Jiangxi University of Finance & Economics
数据库系统原理与设计
第 7 章
数据库存储结构
定长记录与变长记录
文件在逻辑上可看作记录的序列,这些记录被映射到磁盘的 物理块上。
用文件表示逻辑数据模型的不同方式:定长记录和变长记录 所谓定长记录指文件中所有记录均具有同样的字节长度,如 图7-3所示:
School of Information Technology, Jiangxi University of Finance & Economics
12
数据库系统原理与设计
第 7 章
数据库存储结构
目 录
7.1
7.2 7.3 7.4 7.5 7.6 文件组织 记录组织
顺序索引
B+树索引 散列 物理数据库设计
School of Information Technology, Jiangxi University of Finance & Economics
7
数据库系统原理与设计
第 7 章
数据库存储结构
变长记录指文件中的记录具有不同的存储字节数。 在数据库系统中,以下几种情况会导致使用变长记录:
理存储,那么该搜索码对应的索引就称为主索引
(primary index),也叫聚集索引(clustering index)。 与此相反,搜索码值顺序与索引文件中记录的物理顺序 不同的那些索引称为辅助索引(secondary index)或非聚 集索引(nonclustering index)。
数据库系统原理与设计
第 7 章
数据库存储结构
磁盘的主要性能指标
访问时间(access time)是从发出读写请求到数据开始传输之 间的时间。
为了访问(即读或写)磁盘上指定扇区的数据,磁盘臂首先需要移动以 定位到正确的磁道,所需时间称为寻道时间(seek time); 然后等待磁盘旋转直到指定的扇区出现在它下方,所需的时间称为 旋转等待时间(rotational latency time) 。 访问时间=寻道时间+旋转等待时间。
School of Information Technology, Jiangxi University of Finance & Economics 10
数据库系统原理与设计
第 7 章
数据库存储结构
顺序文件中插入操作的处理:
在文件中定位按搜索码顺序处于插入记录之前的那条记录 (记为记录A)。 如果记录A所在块中有空记录(可能删除后留下来的空间), 就在这里插入新的记录;否则将新记录插入在一个溢出块 中。
百度文库13
School of Information Technology, Jiangxi University of Finance & Economics
数据库系统原理与设计
第 7 章
数据库存储结构
索引基本概念
两种基本的索引类型:
顺序索引(ordered index):基于搜索码的值的顺序排列,包括 索引顺序文件和B+树索引文件等。
(1) 应用程序通过 DML向DBMS 发出存取请求,如 Select语句; (6) 查看存储模式,决定从哪个文件、用什么方式读取物理记录; (12) RDBMS将执行状态信息 (成功或不成功等 )返回给应用程序; (2) 对命令进行语法检查,正确后检查语义和用户权限(通过数据字典 (7) 根据 (6)的结果向操作系统(OS)发出读取记录的命令; (13) 应用程序对工作区中读出的数据进行相应处理。 DD ),并决定是否接收; (8) OS 执行该命令,并读取记录数据; (3) 执行查询优化,将命令转换成一串单记录的存取操作序列; (9) 在 OS控制下,将读出的记录送入系统缓冲区; (4) 执行存取操作序列 ——反复执行以下各步,直到结束: (10) RDBMS根据查询命令和 DD的内容导出用户所要读取的记录格式;
数据库系统原理与设计
第 7 章
数据库存储结构
目 录
7.1
7.2 7.3 7.4 7.5 7.6
文件组织
记录组织 顺序索引 B+树索引 散列 物理数据库设计
2
School of Information Technology, Jiangxi University of Finance & Economics
School of Information Technology, Jiangxi University of Finance & Economics 14
数据库系统原理与设计
第 7 章
数据库存储结构
索引基本概念
建立了索引的文件称为索引文件。索引文件中的记录自 身可以按照某种排序顺序存储。一个索引文件可以有多 个索引,分别对应于不同的搜索码。 如果索引文件中的记录按照某个搜索码值指定的顺序物
的值与包含该搜索码值的记录关联起来 。
散列索引(hash index):通过搜索码值的散列函数(也称哈希函 数)的值将所有记录平均、随机地分布到若干个散列桶中。
搜索码(search key):用于在文件中查找记录的属性或 属性集。经常需要在一个文件上建立多个索引,此时该 文件就有多个搜索码。
数据传输率(data-tranfer rate)是从磁盘获得数据或者向磁盘 存储数据的速率。
磁盘的平均故障时间(mean time to failure, MTTF)是指磁盘 无故障连续运行时间的平均值。 磁盘块(block)是一个逻辑单元,它是包含固定数目的连续扇 区。数据在磁盘和主存储器之间以块为单位传输。
不管哪种情况,都要调整指针,使其能按搜索码顺序 把记录链接起来。 插入情况如图7-7所示:
School of Information Technology, Jiangxi University of Finance & Economics
11
数据库系统原理与设计
第 7 章
数据库存储结构
多表聚集文件组织
数据库系统原理与设计
第 7 章
数据库存储结构
存储介质的分类
几种有代表性的存储介质:高速缓冲存储器(cache)、主 存储器(main memory)、快闪存储器(flash memory)、磁 盘存储器(magnetic-disk storage)、光存储器(optical storage)和磁带存储器(tape storage)等。
数据库系统原理与设计
第 7 章
数据库存储结构
文件组织
文件中组织记录的常用方法有:堆文件组织、顺序文件组织、 多表聚集文件组织、B+树文件组织和散列(hashing)文件组 织等。本节对前3种进行介绍。 堆文件组织 :一条记录可以放在文件中的任何地方,只要那 个地方有空间存放该记录。也就是说,文件中的记录是没有顺 序的,是堆积起来的。通常每个关系使用一个单独的文件。 顺序文件组织:顺序文件是为了高效地按某个搜索码的顺序排 序处理记录而设计的。为了快速地按搜索码的顺序获取记录, 通常通过指针把记录逻辑上有序地链接起来。每个记录的指针 指向搜索码顺序的下一条记录。同时,为了减少顺序文件处理 中磁盘块的访问数量,在物理上按搜索码顺序或者尽可能地接 近搜索码顺序存储记录。如图7-6所示:
(Multitable Clustering File Organization)是 多表聚集文件组织 问题的提出:两个关系中作连接运算时,最坏的情况下,每 一种在每一个块中存储两个或多个关系的相关记录的文件结 个相匹配的记录都处在不同的磁盘块中,这将导致为获取所 构。 需的每一条记录都要读取一个磁盘块。 对于图 问题的解决 :将两个关系的元组混合在一起聚集存储,从而 7-9所示的多表聚集文件结构,可以加速特定连接的处 支持高效的连接运算。如图7-8所示的两个关系,为了支持高 理,但是它将导致其它类型查询的处理变慢。在图 7-10中, 效连接运算,可以采用图7-9所示的多表聚集文件结构。 通过指针将一个关系中的所有记录链接起来以方便查找。
多种记录类型(即多个关系表)在一个文件中存储; 允许记录类型中包含一个或多个变长字段; 允许记录类型中包含重复字段,如数组等。
有多种变长记录的存储管理技术,这里仅介绍分槽页结构 (slotted-page structure)。分槽页结构一般用于在块中组织记 录,如图7-5所示。 每个块的开始处有一个块头,块头中包含的信息有:
计算机的三级存储体系 :根据不同存储介质的速度和成 本,可以把它们按层次结构组织起来,层次越高,每单 位存储容量价格越贵,但速度越快。如图7-1所示。
存储易失性问题 :易失性存储在设备断电后将丢失所有 内容。一级存储为易失性存储,而二、三级存储系统都 是非易失性存储。
School of Information Technology, Jiangxi University of Finance & Economics 3
块头中已存储的条目(entry)个数#E(number of entries); 块中空闲空间的末尾地址EFS(end of free space); 条目数组,每个条目中存储了该条目所对应变长记录的大小ES(entry size)和地址EP (entry pointer)。
School of Information Technology, Jiangxi University of Finance & Economics 8
数据库系统原理与设计
第 7 章
数据库存储结构
数据库系统原理与设计
(第2版)
——哈佛大学前校长布罗纳对每年来哈佛的新生说:
“ 听着,你们到这里,不是 第 7章 数据库存储结构 来发财的。你们到这儿来,为
的是思考,并学会思考”。
School of Information Technology, Jiangxi University of Finance & Economics 1
数据库系统原理与设计
第 7 章
数据库存储结构
目 录
7.1
7.2 7.3 7.4 7.5 7.6 文件组织
记录组织
顺序索引 B+树索引 散列 物理数据库设计
9
School of Information Technology, Jiangxi University of Finance & Economics
School of Information Technology, Jiangxi University of Finance & Economics
6
数据库系统原理与设计
第 7 章
数据库存储结构
在文件开始处,分配一定数量的字节作为文件头(file header), 这种简单的方法明显地有两个问题: 文件头中存储有关文件的各种信息。到目前为止,需要在文件 删除一条记录比较困难。要么填充被删空间,要么标记被删记录; 头中存储的信息只有一个,即第一条被删除记录 (即第一条可用 除非块的大小恰好是记录大小的倍数,否则有的记录会跨块存储。 记录) 的地址。 对于跨块存储的记录的访问需要涉及两次磁盘 I/O操作。 一般对被删除结点做标记,且使用空闲记录链表来管理记录 的插入和删除,如图7-4所示:
School of Information Technology, Jiangxi University of Finance & Economics 4
数据库系统原理与设计
第 7 章
数据库存储结构
存储访问
缓冲区(buffers)是主存储器中用于存储磁盘块的副本的区域。 缓冲区中的每个块总有一个副本存放在磁盘上,但是在磁盘 上的副本可能比在缓冲区中的副本旧。
负责缓冲区空间分配和管理的子系统称为缓冲区管理器。 数据库系统通过缓冲区实现对磁盘上数据的存储访问。
在数据库管理系统中,数据的存取过程如图7-2所示。
(5) 具体步骤如下: 在缓冲区中找记录,若找到转 (10),否则转(6); (11) RDBMS将数据从系统缓冲区中送入用户工作区;
5
School of Information Technology, Jiangxi University of Finance & Economics
数据库系统原理与设计
第 7 章
数据库存储结构
定长记录与变长记录
文件在逻辑上可看作记录的序列,这些记录被映射到磁盘的 物理块上。
用文件表示逻辑数据模型的不同方式:定长记录和变长记录 所谓定长记录指文件中所有记录均具有同样的字节长度,如 图7-3所示:
School of Information Technology, Jiangxi University of Finance & Economics
12
数据库系统原理与设计
第 7 章
数据库存储结构
目 录
7.1
7.2 7.3 7.4 7.5 7.6 文件组织 记录组织
顺序索引
B+树索引 散列 物理数据库设计
School of Information Technology, Jiangxi University of Finance & Economics
7
数据库系统原理与设计
第 7 章
数据库存储结构
变长记录指文件中的记录具有不同的存储字节数。 在数据库系统中,以下几种情况会导致使用变长记录:
理存储,那么该搜索码对应的索引就称为主索引
(primary index),也叫聚集索引(clustering index)。 与此相反,搜索码值顺序与索引文件中记录的物理顺序 不同的那些索引称为辅助索引(secondary index)或非聚 集索引(nonclustering index)。
数据库系统原理与设计
第 7 章
数据库存储结构
磁盘的主要性能指标
访问时间(access time)是从发出读写请求到数据开始传输之 间的时间。
为了访问(即读或写)磁盘上指定扇区的数据,磁盘臂首先需要移动以 定位到正确的磁道,所需时间称为寻道时间(seek time); 然后等待磁盘旋转直到指定的扇区出现在它下方,所需的时间称为 旋转等待时间(rotational latency time) 。 访问时间=寻道时间+旋转等待时间。
School of Information Technology, Jiangxi University of Finance & Economics 10
数据库系统原理与设计
第 7 章
数据库存储结构
顺序文件中插入操作的处理:
在文件中定位按搜索码顺序处于插入记录之前的那条记录 (记为记录A)。 如果记录A所在块中有空记录(可能删除后留下来的空间), 就在这里插入新的记录;否则将新记录插入在一个溢出块 中。
百度文库13
School of Information Technology, Jiangxi University of Finance & Economics
数据库系统原理与设计
第 7 章
数据库存储结构
索引基本概念
两种基本的索引类型:
顺序索引(ordered index):基于搜索码的值的顺序排列,包括 索引顺序文件和B+树索引文件等。
(1) 应用程序通过 DML向DBMS 发出存取请求,如 Select语句; (6) 查看存储模式,决定从哪个文件、用什么方式读取物理记录; (12) RDBMS将执行状态信息 (成功或不成功等 )返回给应用程序; (2) 对命令进行语法检查,正确后检查语义和用户权限(通过数据字典 (7) 根据 (6)的结果向操作系统(OS)发出读取记录的命令; (13) 应用程序对工作区中读出的数据进行相应处理。 DD ),并决定是否接收; (8) OS 执行该命令,并读取记录数据; (3) 执行查询优化,将命令转换成一串单记录的存取操作序列; (9) 在 OS控制下,将读出的记录送入系统缓冲区; (4) 执行存取操作序列 ——反复执行以下各步,直到结束: (10) RDBMS根据查询命令和 DD的内容导出用户所要读取的记录格式;
数据库系统原理与设计
第 7 章
数据库存储结构
目 录
7.1
7.2 7.3 7.4 7.5 7.6
文件组织
记录组织 顺序索引 B+树索引 散列 物理数据库设计
2
School of Information Technology, Jiangxi University of Finance & Economics
School of Information Technology, Jiangxi University of Finance & Economics 14
数据库系统原理与设计
第 7 章
数据库存储结构
索引基本概念
建立了索引的文件称为索引文件。索引文件中的记录自 身可以按照某种排序顺序存储。一个索引文件可以有多 个索引,分别对应于不同的搜索码。 如果索引文件中的记录按照某个搜索码值指定的顺序物