第十二章 文件

28
第第第第 第第 第第第第 第第 第第第第第第第第第 第第第第 第第第第 ISAM 第第第 VSAM 第第 第第第第第第(第第第第) 第第第第第第

description

第十二章 文件. 有关文件的基本概念 顺序文件 索引文件 ISAM 文件和 VSAM 文件 直接存取文件(散列文件) 多关键字文件. 有关文件的基本概念. 文件:是由大量性质相同的记录组成的集合 按记录类型不同分类:操作系统的文件和数据库文件 操作系统中的文件是一维的连续的字符序列,无结构,无解释。 数据库中的文件是带有结构的记录的集合。 文件还可按记录的另一特性分成定长记录文件和不定长记录文件。 若文件中每各记录含有的信息长度相同,为定长记录,由这类记录组成的文件称为定长记录文件. 若文件中含有信息长度不等的不定长记录,称为不定长 记录文件 - PowerPoint PPT Presentation

Transcript of 第十二章 文件

Page 1: 第十二章  文件

第十二章 文件第十二章 文件 有关文件的基本概念 顺序文件 索引文件 ISAM文件和VSAM文件 直接存取文件(散列文件) 多关键字文件

Page 2: 第十二章  文件

有关文件的基本概念有关文件的基本概念

文件:是由大量性质相同的记录组成的集合按记录类型不同分类:操作系统的文件和数据库文件操作系统中的文件是一维的连续的字符序列,无结构,

无解释。数据库中的文件是带有结构的记录的集合。文件还可按记录的另一特性分成定长记录文件和不定长

记录文件。若文件中每各记录含有的信息长度相同,为定长记录,

由这类记录组成的文件称为定长记录文件

Page 3: 第十二章  文件

若文件中含有信息长度不等的不定长记录,称为不定长记录文件记录的逻辑结构:是指记录在用户或应用程序员面前呈现 的方式,是用户对数据的表示很存取方 式记录的物理结构:是数据在物理存储器上存储的方式,是 数据的物理表示和组成记录的逻辑结构着眼在用户使用方便,而记录的物理结构则应考虑提高存储空间的利用率和减少存取记录的时间,它根据不同的需要及设备本身的特征可以有多种方式

Page 4: 第十二章  文件

物理记录和逻辑记录之间的关系:⑴ 一个物理记录存放一个逻辑记录⑵ 一个物理记录包含多个逻辑记录⑶ 多个物理记录表示一个逻辑记录文件的操作 ( 运算 ): 检索和修改文件的检索有下列三种方式:㈠顺序存取:存取下一个逻辑记录㈡直接存取:存取第 i 个逻辑记录㈢按关键子存取:给定一个值,查询一个或一批关键字与

给定值相关的记录。对数据库文件可以有如下四种查询方式:

Page 5: 第十二章  文件

⑴ 简单询问:查询关键字等于给定值的记录⑵ 区域询问:查询关键字属某个区域内的记录⑶ 函数询问:给定关键字的某个函数⑷ 布尔询问:以上三种询问用布尔运算组合起来的询问文件的修改三种操作:㈠插入一个记录㈡删除一个记录㈢更新一个记录

Page 6: 第十二章  文件

顺序文件顺序文件顺序文件:是记录按其在文件中的逻辑顺序依次进入存 储介质而建立的,既顺序文件中物理记录的顺 序和逻辑记录的顺序是一致的连续文件:次序相继的两个物理记录在存储介质上的存 储位置是相邻的串联文件:物理记录之间的次序由指针相链表示顺序文件特点:⑴ 存取第 i 个记录,必须先搜索在它之前的 i-1 个记录⑵ 插入新的记录时只能加在文件的末尾⑶ 若要更新文件中的某个记录,则必须将整个文件复制

Page 7: 第十二章  文件

顺序文件优点:连续存取的速度快磁带是一种典型的顺序存取设备,存储在磁带上的文件是顺序文件。磁带文件适合于文件的数据量甚大,平时记录变化少,只作批量修改的情况磁带文件的批处理过程:

待修改的原始文件为主文件,存放在一条磁带上,所有的修改请求集中构成一个文件,称做事务文件,存放在另一磁带上。主文件按关键字顺序有序,事务文件必须和主文件有相同的次序关系。首先对事务文件进行排序,然后将主文件与事务文件归并成一个新的主文件

Page 8: 第十二章  文件

索引文件索引文件除了文件本身 ( 称作数据区 ) 之外,另建立一张指示逻辑

记录和物理记录之间—对应关系的表—索引表。这类包括文件数据区和索引表两大部分的文件称为索引文件例:

逻辑记录号 标识 物理记录号 0

1

2

3

1

1

0

1

4

7

10

索引表示例

Page 9: 第十二章  文件

索引表的每一项称为索引项。不论主文件是否按关键字有序,索引表中的索引项总是按关键字 ( 或逻辑记录号 )

顺序排列。索引顺序文件:若数据区中的记录也按关键字顺序排列索引非顺序文件:数据区中记录不按关键子顺序排列

关键字Ki

物理记录号

101

119

123

125

15

04

31

11

Page 10: 第十二章  文件

ISAMISAM 文件和文件和 VSAMVSAM 文件文件 索引顺序存取方法 ISAM(Indexed Swguential Access Methed):

是一种专为磁盘存取设计的文件组织方式。 磁盘是以盘组,柱面和磁道三级地址存取设备,则可对磁盘

上的数据文件建立盘组,柱面和磁道三级索引。 文件的记录在同一盘组上存放时,应先集中放在一个柱面上,

然后再顺序存放在相邻的柱面上,对同一柱面,则应按盘面的次序顺序存放

每个柱面建立一个磁道索引,每个磁道索引项由两部分组成: 基本索引项和溢出索引项。如图:为存放在一个磁盘组上的

ISAM 文件

Page 11: 第十二章  文件

620

1100

:

4150

164

330

:810

:4150

50

164

3843

4150

215

330

磁道索引R14 R21 R45 R50

溢出区

磁道索引R189 . . . R215

. . . R330

溢出区

磁道索引 . . . R3843

. . . R4150

溢出区

R164主索引柱面索引

磁道索引

柱面C1

柱面C2

柱面Cn

Page 12: 第十二章  文件

每一部分都包括关键字和指针两项,前者表示该磁道中最末一个记录的关键字,后者指示该磁道中第一个记录的位置,柱面索引的每一个索引项也由关键字和指针两部分组成,前者表示该柱面中最末一个记录的关键字,后者指示该柱面上的磁道索引位置

如图:

关键字 指针 关键字 指针

基本索引项 溢出索引项

Page 13: 第十二章  文件

VSAM 文件 虚拟存储存取方法 VSAM(Virtual Storage Access Method):

这种存取方法利用了操作系统的虚拟存储器的功能,给用户提供方便 用户在存取文件中的记录时,不需要考虑这个记录的当前位

置是否在内存,也不需要考虑何时执行对外存进行“读 /写”的指令

VSAM 文件的结构如图所示。由三部分组成:索引集,顺序集和数据集

Page 14: 第十二章  文件

.. ..

..

索引集

顺序集

数据集

B+树

控制区域

Page 15: 第十二章  文件

文件的记录均存放在数据集中,数据集中的一个结点称为控制区间,它是一个 I/O 操作的基本单位,它由一组 连续的存储单元组成。控制区间的大小可随文件不同而不同,但同一文件上控制区间的大小相同。每个控制区间含有一个或多个按关键字递增排列的记录。顺序集和索引集一起构成一棵 B+树,为文件的索引部分。顺序集中存放每个控制区间的索引项。每个控制区间的索引项由两部分信息组成,既该控制区间中的最大关键字和指向控制区间的指针。若干相邻控制区间的索引项形成顺序集中一个结点,结点之间用指针相链结,而每个结点又在其上一层的结点中建有索引,且逐层向上建立索引。

Page 16: 第十二章  文件

VSAM 文件特点: 在 VSAM 文件中,记录可以是不定长的 VSAM 文件中没有溢出区 VSAM 文件占有较多的存储空间VSAM 文件优点: 动态的分配和释放存储,不需要对文件进行重组,并

能较快的对插入记录进行查找,查找一个后插入记录的时间与查找一个原记录的时间是相同的

Page 17: 第十二章  文件

直接存取文件直接存取文件直接存取文件指的是利用杂凑 (Hash)法进行组织的文件。和哈希表的异同点: 类似与哈希表,既根据文件中关键字的特点设计一种哈希

函数和处理冲突的方法将记录散列到存储设备上,故又称散列文件

与哈希表不同的是,对于文件来说,磁盘上的文件记录通常是成组存放的。若干个记录组成一个存储单位,在散列文件中,这个存储单位叫桶 (Bucket) 。假若一个桶能存放 m个记录,即m 个同义词的记录可以存放在同一地址的桶中,而当第 m+1 个同义词的记录可以存放在同一地址的桶中,而当第 m+1 个词出现时才发生“溢出”。处理溢出可采用哈希表中处理冲突的各种方法,但对散列文件,主要采用链地址法。

Page 18: 第十二章  文件

具体处理溢出方法:当发生溢出时,需将第 m+1 个同义词存放到另一个桶中,通常称此为“溢出桶”;相对地,称前 m 个同义词存放的桶为“基桶”。溢出桶和基桶大小相同,相互之间用指针相链接。当在基桶中没有找到待查记录时,就顺指针所指到溢出桶中进行查找。例:某一个文件有 18 个记录,其关键字分别为278,109,063,930,589,184,505,269,008,083,164,215,330,810,620,110,384,355.桶的容量 m=3 ,桶数 b=7 。用除留余法作哈希函数 H(key)=key MOD 7 。由此得到的直接存取文件如下图:

Page 19: 第十二章  文件

063 184 ∧589 505 008

∧269 164 ∧109 620 ∧278 215 810

930 083 384 ∧

330 ∧

110 355 ∧

0

1

2

3

4

56

桶编号 基桶

溢出桶

直接存取文件示例

Page 20: 第十二章  文件

直接文件的查找: 首先根据给定值求得哈希地址 ( 既基桶 号 ) ,将基桶的记录读入内存进行顺序查找,若找到关键字等于给定值的记录,则检索成功;否则,若基桶内没有填满记录或指针域为空,则文件内不含有待查记录;否则根据指针域的值的指示将溢出桶的记录读入内存继续进行顺序查找,直至检索成功或不成功。直接文件的删除: 和哈希表一样,仅需对被删记录作一标记既可。

Page 21: 第十二章  文件

直接存取文件的优点: 文件随机存放,记录不需进行排序;插入。删除方便,

存取速度快,不需要索引区,节省存储空间。直接存取文件的缺点: 不能进行顺序存取,只能按关键字随机存取,且询问

方式限于简单询问,并且在经过多次的插入,删除之后,也可能造成文件结构不合理。

Page 22: 第十二章  文件

多关键字文件多关键字文件

多关键字文件的特点是,在对文件进行检索操作时,不仅对主关键字进行简单询问,还经常对次关键字进行其它类型的询问检索。 多重表文件多重表文件的特点:记录按关键字的顺序构成一个串联文件,并建立主关键字的索引;对每个次关键字项建立次关键字索引,所有具有同一次关键字的记录构成一个链表。

Page 23: 第十二章  文件

多重链表文件优点: 易于编程,也易于修改。如果不要求保持表的某种次序,则插入新记录是容易的,此时可将记录插在链表的头指针之后。多重链表缺点: 删去一个记录繁琐,需在每个次关键字的链表中删去该

记录例:下图 (a) 为一个多重链表文件。其中,学号为主关键字,记录按学号顺序链接,为了查找方便,分成 3 个子链表,其索引如图 (b) 所示,专业,已修学分和选修课目为三个次关键字项,它们的索引如图 (c) ~ (e) 所示

Page 24: 第十二章  文件

姓名 学号 专业 已修学分 选 修 课 目王雯马燕小深苏明田永扬青薛平崔健王洪刘倩

1350 02

1351 03

1352 04

1353 ∧1354 06

1355 07

1356 08

1357 ∧1358 10

1359 ∧

软件 02

软件 07

计算机 05

应用 06

计算机 ∧应用 09

软件 08

软件 ∧应用 10

应用 ∧

412 03

398 07

436 ∧402 08

384 02

356 10

398 ∧408 01

370 05

364 09

丙 02 丁 03

甲 04 丙 03

乙 05 丙 04 丁 05

甲 06 丙 08

乙 07 丁 09

甲 07

甲 08 乙 ∧甲 09 丙 ∧甲 10 丁 ∧甲 ∧

记录号

01

02

03

04

05

06

07

08

09

10

物理

(a)

Page 25: 第十二章  文件

主关键字 头指针1353 01

1357 05

1359 09

次关键字 头指针 长度软 件 01 4

计算机 03 2

应 用 04 4

次关键字 头指针 长度350~ 399 06 6

400~ 449 04 4

次关键字 头指针 长度甲 02 7

乙 03 3

丙 01 5

丁 01 4

(b)(c )

(d)(e)

Page 26: 第十二章  文件

倒排文件倒排文件和多重表的区别在于关键字索引的结构不同 .通常 ,倒排文件中的次关键字索引为倒排表 ,具有相同次关

键字的记录之间不设指针相链 , 而在倒排表中该次关键字的一项中存放这些记录的物理记录号 .例 : 上例文件的倒徘

表如下图所示 :

Page 27: 第十二章  文件

软件 01,02,07,08

计算机 03,05

应用 04,06,09,10

350~ 399 02,05,06,07,09,10

400~ 449 01,03,04,08

甲 02,04,06,07,08,09,10

乙 03,05,07

丙 01,02,03,04,08

丁 01,03,05,09

(a)专业倒排表

(b)已修学分倒排表

(c )选修课目倒排表

Page 28: 第十二章  文件

倒排表索引的优点 :

在于检索记录较快倒排文件的缺点 :

维护困难 . 在同一索引表中 , 不同的关键字其记录数不

同 , 各倒排表的长度不等 , 同一倒排表中各项长度也不等