数据库的存储结构.docx

上传人:b****4 文档编号:4703482 上传时间:2022-12-07 格式:DOCX 页数:16 大小:118.80KB
下载 相关 举报
数据库的存储结构.docx_第1页
第1页 / 共16页
数据库的存储结构.docx_第2页
第2页 / 共16页
数据库的存储结构.docx_第3页
第3页 / 共16页
数据库的存储结构.docx_第4页
第4页 / 共16页
数据库的存储结构.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据库的存储结构.docx

《数据库的存储结构.docx》由会员分享,可在线阅读,更多相关《数据库的存储结构.docx(16页珍藏版)》请在冰豆网上搜索。

数据库的存储结构.docx

数据库的存储结构

第五章数据库的存储结构

5.1数据库存储介质的特点

●内存

容量低(一般只有几百M,最多一两个G),价格高,速度快,数据易丢失(掉电、当机等)。

一般做DBMS(或CPU)和DB之间的数据缓冲区。

实时/内存数据库系统中使用内存存放实时数据。

●硬盘

容量高(一般有几十G,多到一两百G),价格中,速度较快,数据不易丢失(除非物理性损坏)。

一般做用来存放DB。

实时/内存数据库系统中使用硬盘存放历史数据库。

●移动硬盘(USB接口)

容量高(一般有几十G),价格中,速度较快,数据不易丢失(除非物理性损坏)。

一般做用来做备份。

●光盘

容量低(一般650M/片,但光盘可在线更换,海量),价格低,速度中,数据不易丢失(除非物理性损坏)。

一般做用来做备份。

●磁盘(软盘)

容量低(一般有几M,优盘多到一两百M),价格中,速度较慢,数据不易丢失(除非物理性损坏)。

一般数据库不使用磁盘。

●磁带

容量低(但可在线更换,海量),价格低,速度最慢,且要按顺序存取,数据不易丢失(除非物理性损坏)。

一般做用来做备份。

按速度从高到低:

内存、硬盘、USB盘(移动硬盘和优盘)、光盘、软盘、磁带。

按在线容量从大到小:

硬盘、移动硬盘、内存、光盘、磁带、优盘、软盘。

物理块:

512byte/1K/2K/4K/8K

原因:

(1)减少I/O的次数;

(2)减少间隙的数目,提高硬盘空间的利用率。

ORACLE逻辑块与物理块(init.ora中db_block_size定义逻辑块大小)

缓冲块和缓冲区(即SGA中的DataBufferCache)

延迟写(delayedwrite)技术/预取(Prefetching)技术(ORACLE中由DBWR进程完成数据的读写)

5.2记录的存储结构

5.2.1记录的物理表示

1.PositionalTechnique

2.RelationalTechnique

3.CountingTechnique

5.2.2记录在物理块上的分配

不跨块组织(unspannedorganization)

跨块组织(spannedorganization)

5.2.3物理块在磁盘上的分配

1.连续分配法(continuousallocation)

2.链接分配法(linkedallocation)

3.簇集分配法(ClusteredAllocation)

4.索引分配法(IndexedAllocation)

5.2.4数据压缩技术

1.消零或空格符法(nullsuppression)

如:

#5表示5个空格,@6表示6个零等。

2.串型代替法(patternsubstitution)

3.索引法(indexing)

5.3文件结构和存取路径

5.3.1访问文件的方式

1.查询文件的全部或相当多的记录

2.查询某一特定记录

3.查询某些记录

4.范围查询

5.记录的更新

5.3.2数据库对文件的要求

5.3.3文件的基本类型

1.堆文件(heapfile)

方便(快):

插入

不方便(慢):

查找、删除

2.直接文件(directfile)

方便(快):

按散列键访问

不方便(慢):

其它访问方式

3.索引文件(indexedfile)

方便(快):

按索引键访问

不方便(慢):

其它访问方式,特别是更新时要进行索引维护。

●索引项=<索引键,地址>

●primaryindexandsecondaryindex

●nondenseindexanddenseindex

●预查找功能

设要查询年龄为20岁或2l岁的四年级学生,如果学生文件在年龄和年级属性上建有索引,则可查出年龄为20岁的学生记录的集合S20,年龄为2l岁的学生记录的集合S21,四年级学生记录的集合Ss,于是,所需的学生记录的集合S应为:

S=(S20∪S21)∩Ss

●clusteringindex

●Btreeindex

动态平衡多叉(分)树

有B+树、B*树等,数据库管理系统中常用B+树实现索引。

B+树结构:

B+树动态平衡特性:

(1)每个结点最多有2k个键值;

(2)根结点至少有—个键值,其他结点至少有k个键值;

(3)除叶结点(即顺序集结点)无子女外,对于其他结点,若有J个键值,则有J+1个子女;

(4)所有叶结点都处于树的同一级上,即树始终保持平衡。

k值一般根据块的大小确定,使得B+树的结点最大不超过一个块,即一个结点占一个块(block)。

优点:

所有记录都具有相同的访问I/O次数(即树的高度+记录本身访问的I/O次数),(若k=20,树的高度为11,则至少可表示2010=1024X1010个记录)。

缺点:

索引维护需要代价,当记录更新引起索引变化时,最差的情况可能从底层一直影响到根结点,即整个树的变动。

第六章

查询处理和优化

6.1Introduction

1.代数优化

2.物理优化

3.规则优化

4.代价估算优化

6.2代数优化

例1设有S(供应商),P(零件),SP(供应关系)三个关系,关系模式如下:

S(SNUM,SNAME,CITY)

P(PNUM,PNAME,WEIGHT,SIZE)

SP(SNUM,PNUM,DEPT,QUAN)

设有查询Q:

SELECTSNAME

FROMS,P,SP

WHERES.SNUM=SP.SNUM

ANDSP.PNUM=P.PNUM

ANDS.CITY=‘NANJING’

ANDP.PNAME=‘BOLT’

ANDSP.QUAN>10000;

代数优化的大致过程:

1.以SELECT子句对应投影操作,以FROM子句对应笛卡儿乘积,以WHERE子句对应选择操作,生成原始查询树。

2.应用变换原则

(2)、(6)、(7)、(9),尽可能将选择条件移向树叶方向。

3.应用连接、笛卡儿乘积的结合律,按照小关系先做的原则,重新安排连接(笛卡儿乘积)的次序。

4.如果笛卡儿乘积后还须按连接条件进行选择操作,可将两者组合成连接操作。

5.对每个叶结点添加必要的投影操作,以消除对查询无用的属性。

6.3依赖于存取路径的规则优化

6.3.1选择操作的实现和优化

1.相关因素

●选择条件

●可用的存取路径

●选取的元组数在整个关系中所占的比例有关

2.实现方法

(1)对于小关系,不必考虑其他存取路径,直接用顺序扫描。

例如对于六个物理块大小的关系,如果顺序搜索,则平均的I/O次数为3,不值得采用其他存取路径。

(2)如果无索引或散列等存取路径可用,或估计中选的元组数在关系中占有较大的比例(例如大于20%)且有关属性上无族集索引,则用顺序扫描。

(3)对于主键的等值条件,最多只有一个元组可以满足此条件,应优先采用主键上的索引或散列。

(4)对于非主键的等值条件,要估计中选的元组数在关系中所占的比例。

如果比例较小(例如小于20%),可以用无序索引,否则只能用簇集索引或顺序扫描。

(5)对于范围条件,一般先通过索引找到范围的边界,再通过索引的顺序集沿相应方向按索,例如对于条件Sage>20,可先找到Sage=20的顺序集结点,再沿顺序集向右搜索。

若中选的元组数在关系中所占比例较大,且无有关属性的簇集索引,则宜采用顺序扫描。

例如对于条件Sage>15,因为大学生绝大部分是大于15岁的。

(6)对于用AND连接的合取选择条件。

若有相应的多属性索引,则优先采用多属性索引。

否则,可检查诸合取条件中有无多个可用二次索引的,若有,则用预查找法处理。

即通过二次索引找出满足各合取条件的tid集合,再求这些tid集合的交集。

然后取出交集中tid所对应的元组.并在取这些元组的同时,用合取条件中的其余条件检查。

凡能满足所有其余条件的元组,即为所选择的元组。

如果上述途径都不可行,但合取条件中有个别条件具有规则(3)、(4)、(5)中所述的存取路径,则可用此存取路径选择满足此条件的元组,再将这些元组用合取条件中的其他条件筛选。

若在诸合取的条件中,没有一个具有合适的存取路径.那只有用顺序扫描。

(7)对于用OR连接的析取选择条件,尚无好的优化方法,只能按其中各个条件分别选出一个元组集,再求这些元组集的并。

众所周知,并是开销大的操作,而且在OR连接的诸条件中,只要有一个条件无合适的存取路径,就不得不采用顺序扫描来处理这种查询。

因此,在查询语句中,应尽量避免采用析取选择条件。

(8)有些选择操作只要访问索引就可得到结果,例如查询索引属性的最大值、最小值、平均值等。

在此情况下,应优先利用索引、避免访问数据。

6.3.2连接操作的实现和优化

1.嵌套循环(nestedloop)法

RR.A=S.BS

外关系(outerrelation)

内关系(innerrelation)

2.利用索引或散列寻找匹配元组法

3.排序归并(sort-merge)法

下面是选用连接方法的启发式规则。

(1)如果两个关系都已按连接属性排序,则优先用排序归并法。

如果两个关系中已有一个关系按连接属性排序,另一个关系很小,也可考虑对此未排序的关系按连接属性排序,再用排序归并法连接。

(2)如果两个关系中有一个关系在连接属性上有索引(特别是簇集索引)或散列,则可令另一关系为外关系,顺序扫描,并利用内关系上的索引或散列寻找其匹配元组,以代替多遍扫描。

(3)如果应用上述两规则的条件都不具备,且两个关系都比较小,可以应用嵌套循环法。

(4)如果

(1)、

(2)、(3)规则都不适用,可用散列连接法。

6.3.3投影操作的实现

6.3.4集合操作的实现

6.3.5组合操作

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1