数据结构 第8章 文件 山东大学管理学院.

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

2 和 5 的倍数的特征 运动热身 怎样找一个数的倍数? 从小到大写出 2 的倍数( 10 个): 写出 5 的倍数( 6 个) 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 5 , 10 , 15 , 20 , 25 , 30.
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
PURSUING EXCELLENCE / TOWARD SUCCESS WUCHANG UNIVERSITY OF TECHNOLOGY
6 Copyright © Oracle Corporation, All rights reserved. 维护控制文件.
操作系统教程(第4版) 第六章 文件管理 高等教育出版社 2008年4月.
第八章 文件系统 教学目的与要求: 1.掌握文件、目录等基本概念 2.理解并掌握文件结构、管理、保护与共享 重点与难点:
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
Oracle数据库 Oracle 子程序.
文件系统 第8章 文件系统.
§5.3 定积分的换元法 和分部积分法 一、 定积分的换元法 二、 定积分的分部积分法 三、 小结、作业.
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
第六章    文件管理.
在PHP和MYSQL中实现完美的中文显示
第九章 字符串.
Hadoop I/O By ShiChaojie.
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
存储系统.
管理信息结构SMI.
走进编程 程序的顺序结构(二).
辅导课程六.
网络常用常用命令 课件制作人:谢希仁.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
数 控 技 术 华中科技大学机械科学与工程学院.
第十二章 文件 £12.1 有关文件的基本概念 £12.2 顺序文件 £12.3 索引文件 £12.4 ISAM和VSAM文件
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
第十章 方差分析.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第3章 信息与信息系统 陈恭和.
顺序表的插入.
2.1.2 空间中直线与直线 之间的位置关系.
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
顺序表的删除.
VisComposer 2019/4/17.
VB与Access数据库的连接.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
第11章 文件管理.
iSIGHT 基本培训 使用 Excel的栅栏问题
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
3.16 枚举算法及其程序实现 ——数组的作用.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
第七、八次实验要求.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
正弦、余弦函数的性质 华容一中 伍立华 2017年2月24日.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
VB与Access数据库的连接.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第四章 UNIX文件系统.
第十七讲 密码执行(1).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
RefWorks使用指南 归档、管理个人参考文献.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

数据结构 第8章 文件 山东大学管理学院

本章内容 文件概述 顺序文件 直接文件 索引文件倒排文件 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

§ 1 文件概述 一、 文件的概念 域(Field)是数据的基本单位,又称为字段或数据项。域通常用于描述数据对象的属性,不可分割的域含有一个简单的值。 记录(Record)是一组相关域的集合,它可以看作是应用程序的一个单元。根据设计的不同,记录可以是固定长或可变长。如果记录中某些域的长度是可变的,则该记录就是可变长度的记录。 文件(File)是由大量性质相同的记录组成的集合,它被应用程序看作是一个实体。文件有一个惟一的名字,可以被创建或删除。 数据库(Database)是一组相关的数据,它的本质特征是数据单元间存在明确的关系,并且设计成可供许多不同的应用程序使用。数据库自身是由一种或多种不同类型的文件组成。 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

文件的逻辑结构是用户能观察到的,可加以处理的数据集合。 文件的逻辑结构分两种形式:一种是流式文件,另一种是记录式文件。 二、文件的逻辑结构 文件的逻辑结构是用户能观察到的,可加以处理的数据集合。 文件的逻辑结构分两种形式:一种是流式文件,另一种是记录式文件。 记录成组与分解处理 记录式文件是指若干逻辑记录(按信息在逻辑上的独立含意划分的一个信息单位)的集合。 流式文件指文件内的数据不再组织成记录,只是连续的字符序列。 逻辑记录1 逻辑记录2 逻辑记录3 物理记录 逻辑记录 用户缓冲区 系统缓冲区 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

构造文件物理结构的方法:计算法和指针法。 三、 文件的物理结构 构造文件物理结构的方法:计算法和指针法。 四、文件的操作 记录检索 记录插入 记录删除 记录更新 文件排序 实现原理是设计映射算法,通过对记录关键字的计算转换成对应的物理块地址,从而找到所需记录。 置专门指针,指明相应记录的物理地址或表达各记录之间的关联。 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

§ 2 顺序文件 分块块插值查找 算法: (a)i = (1)初始化 low = 1;high=N。 (2)反复执行下面操作,直到high<low成立 (a)i = (b)读取第i个物理块,获得Li和Hi (c)分下面三种情况执行 Li≤K≤Hi时,查找成功,第i个物理块即为所求; K>Hi时,执行low = i+1; K<Li时,执行high = i-1; (3)查找失败,算法结束。 low:查找范围内的最小物理块号; high: 查找范围内的最大物理块号; Li:第i个物理块内的记录的最小关键字; Hi:第i个物理块内的记录的最大关键字 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

§ 3 直接文件(散列文件) 直接文件:记录在介质上的位置是通过对记录的键施加变换而获得相应地址。 一、桶散列 (静态散列) 基本思想: 把文件的记录通过散列函数H分别存储在许多存储桶中,每个存储桶包含一个或多个物理块,一个存储桶中的物理块用指针连接形成链表,每个物理块存放若干记录。如果一个桶溢出,即它容纳不下所有属于它的记录,那么可以给该存储桶增加一个溢出块链表以存放更多的记录。 操作:以i=H(key) 为依据完成查找、插入、删除、更新等操作。 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

§ 3 直接文件(散列文件) 二、 可扩展散列(动态散列文件) i 可散列文件的组织方式:散列函数H把关键字key转换成一个定长的二进制位串k′(伪关键字),取k′前i位二进制数(设为k〞)作为存储桶目录表中的目录项号,即表示目录表中第k〞个目录项,目录项中的指针指向的物理块就是具有关键字key的记录所在的物理块;存储桶目录项的个数为2i。 i 确定记录在该物理块中的成员资格 的二进制位串的位数 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

查找操作 查找关键字为K的记录,先计算出H(K),取出这一二进制位串的前i位(设为k〞),并找到序号为k〞的存储桶目录项。根据此目录项的指针找到物理块B。 插入操作 为了插入关键字为K的记录,先其所在的物理块,若该物理块中有空闲空间,我们就把新记录存入,插入操作完成。如果B中没有空闲空间,那么根据数字i的不同有两种可能: 如果j=i,那么我们必须先将i加1,使存储桶目录项个数增加一倍,即2i+1。在新存储桶目录表中,序号为k〞0和k〞1(分别用0和1扩展k〞)的项都指向原k〞目录项指向的物理块。 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

如果j<i(j的值可在每个物理块的“小凸块”中找到),那么不必对存储桶目录表做任何变化。按下面规则操作: 插入操作 如果j<i(j的值可在每个物理块的“小凸块”中找到),那么不必对存储桶目录表做任何变化。按下面规则操作: (a)将物理块B分裂成两个存储块。 (b)根据记录关键字的散列值的第j+1位,将B中的记录分配到这两个存储块中,该位为0的记录继续保留在B中,而该位为1的记录放入到新块中。 (c)把j+1存储到两个存储块的“小凸块”中,以标明用于确定成员资格的二进制位数。 (d)调整存储桶目录项中指针,使原来指向块B的指针项指向块B或新块,这由记录关键字的散列值的第j+1位决定。 注意,分裂B可能解决不了问题,因为有可能块B中所有记录将分配到由B分裂成的两个存储块的其中一块中。如果这样,我们需要对仍太满的块用下一个更大的j值重复上述操作。 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

再插入关键字值为1000的记录 插入关键字为0000、0111的记录 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

§ 4 索引文件 索引文件的结构 二级索引、多级索引 索引区 数据区 ① 查找 ② 稠密索引:每个数据记录,在索引表里都有一个索引项 § 4 索引文件 索引文件的结构 二级索引、多级索引 索引区 记录1 关键字 地址 记录2 … 记录N 文件名 索引表 块 数据区 ① 查找 ② 稠密索引:每个数据记录,在索引表里都有一个索引项 稀疏索引:每一组数据记录仅有一索引项 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

§ 5 索引顺序文件 一、ISAM 专为磁盘存取设计的文件组织方式,是一种静态索引结构。 ISAM采用多级索引:主索引、柱面索引、磁道索引。 § 5 索引顺序文件 一、ISAM 专为磁盘存取设计的文件组织方式,是一种静态索引结构。 ISAM采用多级索引:主索引、柱面索引、磁道索引。 指示 查找键字为99记录路径 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

二、VSAM 总体结构 记录存放区 顺序集:存放每个控制区间的索引项(该控制区间中的最大关键字和指向控制区间的指针)。若干相邻控制区间的索引项构成顺序集中的一个结点,相当于B+树的一个叶子结点 。 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

(1)调用B+树的查找算法,确定该记录应插入的顺序集结点,进而确定该记录应插入的控制区间及相应位置。 VSAM中插入操作 (1)调用B+树的查找算法,确定该记录应插入的顺序集结点,进而确定该记录应插入的控制区间及相应位置。 (2)如果该控制区间中自由空间足以容纳该记录,则将要插入位置右面的记录右移腾出空间插入该记录,并在相应位置建立控制信息。 (3)如果自由空间不够,则检查该控制区间所在的控制域中是否还有空闲的控制区间,若有,则将控制区间分裂,将其中的近似一半的记录移动到一个空闲的控制区间中。如无,则进行一次控制域的分裂。 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

插入ARS、BIT 插入BEC 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

§ 6 倒排文件 倒排表 关键字 指针组 具有这种倒排表形式的索引文件称为倒排文件(Reverse File) § 6 倒排文件 倒排表 具有相同关键字的记录 关键字 指针组 具有这种倒排表形式的索引文件称为倒排文件(Reverse File) 倒排表作索引的好处在于检索记录较快。特别是对某些询问,不用读取记录,就可得到解答。 倒排文件的缺点是维护困难。 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

§ 7 本章小结 1.文件概述 (1)文件是由大量性质相同的记录组成的集合,它被应用程序看作是一个实体。 (2)文件的逻辑结构是用户能观察到的,可加以处理的数据集合。文件的逻辑结构分两种形式:一种是流式文件,另一种是记录式文件。 (3)文件物理结构的构造方法:(1)计算法,通过对记录关键字的计算转换成对应的物理块地址,从而找到所需记录。(2)指针法,这类方法设置专门指针,指明相应记录的物理地址或表达各记录之间的关联。索引文件、索引顺序文件、倒排文件等均属此类。 (4)对文件的操作主要有记录的检索、插入、删除、更新和文件排序。 2.顺序文件 (1)将一个文件中逻辑上连续的信息存放到存储介质的依次相邻的块上便形成顺序结构,这类文件叫顺序文件,又称连续文件。 (2)掌握顺序文件上的物理块插值查找。 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿

§ 7 本章小结 3.直接文件(散列文件) (1)在直接存取存储设备上,记录的关键字与其地址之间可以通过某种方式建立对应关系,利用这种关系实现存取的文件叫直接文件。 (2)桶散列方法的基本思想是把文件的记录通过散列函数H分别存储在许多存储桶中,每个存储桶包含一个或多个物理块,一个存储桶中的物理块用指针连接形成链表,每个物理块存放若干记录。 4.索引文件 (1)索引结构是实现非连续存储的另一种方法,适用于数据记录保存在随机存取存储设备上的文件。索引文件在文件存储器上分两个区:索引区和数据区。 (2)索引文件中的索引项可以分为两类:稠密索引和稀疏索引。 5.索引顺序文件 (1)索引顺序存取方式ISAM是一种专为磁盘存取设计的文件组织方式,是一种静态索引结构。 (2)VSAM的总体结构由三部分组成:索引集、顺序集和数据集。文件的记录均存放在数据集中,顺序集也是文件索引的一部分,顺序集和索引集一起形成一棵B+树结构的文件索引。 6.倒排文件 (1)把具有这种倒排表形式的索引文件称为倒排文件。 (2)倒排表作索引的好处在于检索记录较快。特别是对某些询问,不用读取记录,就可得到解答。 2017/3/5 山东大学管理学院 戚桂杰 姚云鸿