ORACLE数据库系统原理底层存储
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
变长记录(跨块)
记录1 记录2 记录3
块i
块i+1
记录3(剩 余部分)
记录4
记录5
5.2.3 物理块在磁盘上的分配
早期的DBMS中,通常由操作系统分配数 据库所需的物理块,逻辑上相邻的数据可能 被分散到磁盘的不同区域。使得访问数据时, 性能下降。 现代DBMS中,都改由DBMS初始化时向操 作系统一次性的申请所需的存储空间。
(K=1): 10,15Leabharlann Baidu20,25,30,35,40,50
15 10 20
25
10, 15
15 10
15
20 20,25
25 30
35
10 10
15,25 15 25
20
20 30 30
10
20
30
40,50
删除算法:
先从根节点出发,找到 待删除键值所在叶节点;若 删除该键值后,叶节点中键 值数减为K-1个,则向其左 右兄弟叶节点借一个键值, 以保持每个叶节点存放键值 不少于K个;若其左右叶节 点都只有K个键值,则可将 该叶节点与其左(或右)叶 节点合并成包含2K-1个键值 的叶节点,合并后,其双亲 节点要减少一个键值,有可 能导致双亲节点的合并。
计算机系统中的数据存储是按照层次组织的。顶层是主 存储器,它是由高速缓存储器和主存组合,提供数据的快速 访问;接下来是第二级存储器,它是由磁盘等较慢的设备组 成;与同样数量的磁盘相比,主存的价格昂贵得多。因为数 据库需要存储大量的数据,所以像磁盘这样较慢的存储设备 在数据库系统中具有重要地位。主要的存储介质有:
磁盘在投入使用前都要进行格式化,目的是在各盘块的 头部加注该块地址,包括该块所在的圆柱体号,读/写头号, 盘块号以及某些状态标志。在具体操作时用户给出磁盘地址, 此时活动臂组合件作机械运动并定位于指定圆柱体,同时系 统选择指定的读/写头以确定磁道,最终读/写头跟踪旋转的 磁道,并读出旋转时每磁盘块的地址。当用户给出的地址与 磁盘地址一致时则表示地址已找到,此时系统就将该地址中 的数据读入内存中的磁盘缓冲区(或从磁盘缓冲区将数据写 入指定磁盘地址),这就完成了一次磁盘读/写操作或称I/O 操作。
活动头磁盘的存取时间由三部分组成:寻道 时间、等待时间以及传输时间。 磁盘上的数据划分为大小相等的物理块。磁 盘与内存间的数据交换以物理块为单位。
以物理块为交换单位的优点: 1).减少I/O的次数,从而减少寻道和等待的时间。 2).减少间隙的数目,提高磁盘空间利用率。 物理快的大小由OS决定。
1、连续分配法(contiguous allocation)
将一个文件的块分配在磁盘的连续空间上, 块的次序就是其存储的次序,有利于顺序存取 多块文件,不利于文件的扩充。 2、链接分配法(linked allocation)
物理块未必分配在磁盘的连续存储空间上, 各物理块用指针链接,有利于文件的扩展,但 效率较差。
3. 磁盘存储器 一个磁盘存储器是由盘片组以及磁盘驱动器组成,其 中盘片组以轴为核心作不间断的旋转,速度以60、90、 120或150转不等,而活动臂组合件则以圆柱体为单位做前 进或后退操作。这样,一个磁盘存储器上的任何一个磁盘 块都可由下面三个部分定位。 (1)圆柱体号:确定圆柱体(由活动臂移动定位)。 (2)读/写头号:确定圆柱体中磁道(由选择组合件中活 动臂定位)。 (3)磁盘块号:确定磁道中的盘块号(由盘片组旋转定 位)。
知识回顾
一个数据块不能跨越多个文件。数据块是Oracle读写的基本单位。数据块的大小一般 是操作系统块大小的整数倍 数据库由 块头,表目录区,行目录区,行数据,可用空间区组成,一个数据行可以跨 多个数据块。 区: 是一组连续的数据块。当一个表、回滚段或临时段创建或需要附加空间时,系统 总是为之分配一个新的数据区。一个数据区不能跨越多个文件,使用区的目的是用来 保存特定数据类型的数据,也是表中数据增长的基本单位。在Oracle数据库中,分配 空间就是以数据区为单位的 段内包含的数据区可以不连续,并且可以跨越多个文件。使用段的目的是用来保存特 定对象。段是对象在数据库中占用的空间,虽然段和数据库对象是一一对应的,但段 是从数据库存储的角度来看的。一个段只能属于一个表空间,当然一个表空间可以有 多个段。 如表段、索引段、回滚段、临时段
25
25,35
15 35 35
10,15
10,15 10 20
30
30
40,50
40,50
定长数据(char(10))在oracle中的存储情况
定长数据(nvarchar(10))在oracle中的存储情况
4. 磁盘存储器的I/O操作 为进行有效管理,系统对磁盘作统一编址,编址按圆柱体 号、磁道号及盘块号编码,编码规则如下: (1)圆柱体号:设有n个圆柱体,则编号自柱面的外层至内层, 从0~n-1。 (2)磁道号:设一个圆柱体有m个磁道,则磁道号统一编码从 上到下顺序编号,从0~nm-1个。 (3)磁盘块号:设一个磁道有r个盘块,则磁盘块号也是统一 编码,从0~nmr-1个。
3.计数法——每个字段的开始加上表示该字段长度 的字段
02LI04MING04MALE041967
5.2.2 记录在物理块上的分配
磁盘上,记录必须分配到物理块中。
记录跨快存储(spanned) 记录不垮块存储(unspanned)
设B为物理块的有效空间大小,R为固定长记 录的大小,若B>R,则每个物理块可容纳的记录 数为: p=[B/R] p称为块因子(Blocking Factor)。
磁盘存储器由磁盘盘片与磁盘驱动器两部分组成。 1. 磁盘盘片 磁盘盘片是一种扁平的圆盘。它的两个表面都覆盖着磁性物质,信息 就记录在表面上。盘片由硬金属或玻璃制成,被磁性物质覆盖(通常是两 面)。盘片的表面被逻辑地划分为磁道(track),磁道又被划分为扇区 (sector),它又称磁盘块(block),磁盘块是从磁盘读出和写入信息 的最小单位。根据磁盘的不同类型,一个扇区的大小可从32~4096字节不等, 但通常是512字节。每个磁道有4~32个扇区,每个盘片表面有20~1500个磁 道。 一个磁盘存储器往往由若干个盘片(6~11片)组成一个盘片组,固定 在一个主轴上,以每个盘片磁道为注视点可以构成一个无形的同心圆柱体, 从内到外层层相套。每个圆柱体从上到下有若干个磁道围绕其上。
传统文件系统服务对象特殊,用途单一,共享 度低;数据库中的文件供所有用户共享,有些用 途甚至是不可知的。
减少DBMS对OS的依赖,提高DBMS的可移植性。
传统文件系统一旦建立以后,数据量比较稳定; 数据库中文件的数据量变化较大。
插入算法:
从根向叶搜索,直至相应 叶节点,若该叶节点不满, 则将键值插入叶节点中;如 叶节点已满(即已经有2K个 键值),则将此叶节点分裂 为二,叶节点分裂后,其双 亲节点也必须增加一个键值 ,若双亲节点不满,插入过 程结束;否则双亲节点继续 分裂为两个节点,如此继续 直到插入过程中止。
Shanghai
5.3 文件结构和存取路径
5.3.1 访问文件的方式
传统的数据模型都以记录为基础,记录的集合构成 文件。文件须按一定的结构组织和存储记录,按一定 的存取路径访问有关记录。 对数据库的操作最终要落实到对文件的操作。 文件结构及其所提供的存储路径直接影响数据访问 的速度,通常针对不同的数据访问采用不同的文件结 构。
对反复出现的字符串,可以用一个 省略符代替。
例如,串型表如右:
IBM PC/XT
0000
@
#
原始数据 IBM PC/XT 00001 IBM PC/XT 00002
压缩数据
@#1 @#2
3.索引法(indexing) 串行代替法的变种,对重复出现的串行, 单独存储,在用到这些串行的地方,用指针 引用它。
2. 磁盘驱动器 磁盘驱动器由活动臂、读写头等组成。每个盘面有 两个臂,分别对应上、下两面,每个臂的尽头是一个读/ 写头(或称磁头),用它可以读取(或写入)盘片中的 数据。一个由n个磁盘片所组成的盘片组对应有2n个活动 臂,它们组合在一起构成臂组合件,这种组合件可以自 由伸缩活动,它以磁道为单位向前推进或向后退缩,用 它可以对磁道定位,由于它是组合方式以全体活动臂为 单位作进退,因此它的推进或后退实际上是对圆柱体定 位。
索引法示例:
原始数据 SHOP# 0001 0002 0003 0004 0005 CITY Nanjing Nanjing Nanjing Shanghai Shanghai 压缩数据 SHOP# 0001 0002 0003 0004 0005 CITY CITY表 Beijing Nanjing
记录一般不会刚好填满物理块,会留下不用的零头 空间: B―p×R<R
记录1 记录2 记录3 记录4
为了利用这部分空间,可以利用记录的跨块存储组 织(spanned organization)。
定长记录(跨块)
记录1 记录2 记录3 记录4
块i
块i+1
记录4( 剩余部 分)
记录5
记录6
记录7
3、簇集分配法(clustered allocation) 上述两种方法的结合。 4、索引分配法(indexed allocation) 每个文件有一个逻辑块号与其物理块地址对 照的索引。
数据压缩技术
1.消零或空格符法(null suppression) 例如,bbbbb可以用#5表示; 000000可以用@6表示等。 2.串型代替法(pattern substitution)
5.3.2 数据库对文件的要求
一些DBMS就以OS的的文件管理系统作为 其物理层的基础,更多的DBMS不用OS的文件 管理系统,而是独立设计其存储结构。原因 如下:
传统文件系统不能提供实现DBMS功能所需的附 加信息。DBMS为了实现其功能,须在文件目录、 文件描述块、物理块等部分附加一些信息。 传统文件系统主要面向批处理,数据库系统要 求即时访问、动态修改。这就要求文件的结构能 适应数据的动态变化,提供快速访问路径。
5.2 记录的存储结构
记录是目前商用数据库的基本数据单元,有定 长和变长之分。 记录的存储结构
1.定位法——每个字段按其最大可能长度分配定长的 位臵
LIbbb MINGbbb
MALEbb
1967
5 12 18
2.相对法——每个字段没有固定的长度,而是用特 殊的字符分隔开
LI? MING? MALE? 1967#
数据库是大量、持久数据的集合 采用多级存储器,用的最多的辅存是磁盘
CPU
高速缓存 主存储器 主存(内存)
磁盘
第二级存储器
存储层次
1. 高速缓存 高速缓a冲存储器是最快最昂贵的存储介质。高速缓冲存储器一般很小, 它的使用由操作系统来管理。在数据库系统中,我们将不考虑高速缓冲存 储器的存储管理。 2. 主存 主存又称内存或主存储器,用于存放可被处理的数据,它是计算机机 器指令执行操作的地方。由于其存储量相对较小、成本高、存储时间短, 而且发生电源故障或者系统崩溃时,里面的内容一般会丢失,因此它在数 据库中仅作为数据存储的辅助实体,如作为工作区(work area)(数据加 工区)、缓冲区(buffer area)(磁盘与主存的交换区)等。
磁盘
磁盘存储器又称二级存储器或次级存储器。由于它存储量大(一般以GB
为单位),能长期保存又有一定的存取速度且价格合理,因此早已成为数据 库真正存放数据的物理实体。通常整个数据库都存储在磁盘上。为了能够访
问到数据,必须将数据从磁盘移到主存储器。完成操作后,被修改的数据必
须写回磁盘。磁盘存储器为直接存取存储器,因为在磁盘上可以按任意顺序 读取数据(与顺序存取的存储器不同)。在发生电源故障或者系统崩溃时, 磁盘存储器不会丢失数据。
一般,在磁盘和内存之间设立缓冲区以解决 二者的速度不匹配问题。
由于有多个缓冲块可供申请使用,磁盘的读写 操作和读写数据的处理可以重叠进行。
i块缓冲块A 读出: 处理: i+1块缓冲块B i+2块缓冲块A 处理A中i块 处理B中i+1块
OS与DBMS都有各自的缓冲区。 DBMS采用延迟写与提前读技术,减少I/O,改 善性能。