CH7 数据库存储结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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