树形目录结构下的文件集在数据库中的存储和访问方法技术

技术编号:3831355 阅读:1310 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及树形目录结构下的文件集在数据库中的存储和访问方法,可有效解决数据库系统中存取文件集的整体存储和随机访问的问题,技术方案是,整体存储是将文件集的目录结构、文件集的文件数据、属性,从文件系统中提取到本地的内存;对组织结构对象序列化;数据块到数据库存储;随机访问是,恢复文件集的目录结构;根据用户的选择访问数据库中对应的文件,把存储在数据库中的目录结构数据块读取出来;用反序列化将目录结构数据块恢复成目录结构对象;将目录结构对象的信息以可视化的文件节点数据结构、目录节点数据结构和文件集目录结构对象形式呈现给用户,本发明专利技术解决了现有技术中不支持文件在数据库的直接存储和随机访问的技术难题,经济和社会效益巨大。

【技术实现步骤摘要】

本专利技术涉及计算机应用技术,特别是一种树形目录结构下的文件集在数据 库中的存储和访问方法。二、
技术介绍
随着计算机科学与多媒体技术的发展,在计算机网络、移动计算机、手机、 卫星导航仪等具有数据库系统的实用产品的开发中,数据库不但要处理简单的 结构化数据,还要经常处理大量复杂的非结构化数据,如图形、声音文件或大 文本文件等,这些复杂的非结构化数据往往以文件为单位在数据库中存取。除了单个文件的数据库存取,在应用中,还需要将文件系统中按照一定的目录结 构组织起来的多个文件的集合(称为文件集)作为一个整体存储在数据库。对于单个文件在数据库中的存取,有分离存储方法和BLOB (Binary Large Object, 二进制大对象)存储方法。当前成熟的商业数据库系统,如SQLServer、 Oracle等都支持BLOB技术。对于文件集在数据库中的存取,当前的数据库系统还不提供对文件集整体 存储的支持。具体情况是-(1)文件的分离存储方法及存在问题早期的数据库只能存储简单类型,如整数型、实数型、布尔型、字符型等 的数据,不支持文件在数据库的直接存储。这种情况下,只能采用分离存储方 法。具体来说,就是将文件存放在数据库所在服务器的文件系统中,而在数据 库中存储文件在文件系统中的路径。如图1所示,在某学籍数据库系统中,有 一个"学生"表,学号、姓名和性别等数据直接存储在数据库表相应的字段, 而照片字段存储的是用字符型表示的对应的照片文件在文件系统中的路径。分离存储方法是数据库存储的数据类型受限时不得已而采用的在数据库中 "存储"文件的方法,其缺点显而易见。首先是文件路径信息在数据库系统和 文件系统中的同步性问题。数据库系统和文件系统是两个分离的系统,二者相 互独立。将二者联系起来的是数据库中存储的文件路径。如果文件系统中文件 的路径因为某种原因,如对目录重命名、移动文件等发生变化,那么数据库中 对应的文件路径信息就会立即失效,除非对数据库中存储的文件路径做同步更文件系统的用户权限不受数据 库系统的控制。以图1所示的学籍数据库系统为例,从逻辑上说,学生的照片 文件的控制权应该属于学籍数据库系统用户,但事实上却属于服务器上的文件 系统用户。换言之,用户可以绕过数据库系统的安全控制直接操作(访问、移 动、删除等)学生的照片文件。(2) 文件的BLOB存储方法及存在问题BLOB (Binary Large Object, 二进制大对象)是当代数据库系统为了支持 诸如文件的数据库存储而引入的新的数据类型, 一个BLOB列可以存储任意长度 (不同的数据库系统对最大长度有不同的限制)的二进制数据块。因此,文件 可以作为二进制数据块存储在数据库的BLOB列。仍以图1所示的学籍数据库系 统为例,基于BL0B,照片文件将直接存储于学生表的BLOB列,如图2所示。文件的BLOB存储与分离存储最大的不同在于它在数据库中存储的是文件的 数据实体,而不是文件的路径。这样,文件和其他简单类型的数据实现了在数 据库中的一体化的存储,分离存储造成的同步性问题和安全性问题在BLOB存储 中不再存在。当然,在数据库内部,BL0B数据块(即BLOB类型的二进制数据块)和简单 类型的数据的存储机制是不同的。事实上,BLOB数据块存储在在数据库中一处 特殊的区域(不妨称之为BL0B存储区),而在BLOB列存储的是BLOB数据块的 指针。(3) 文件集基于预压縮的BLOB存储及存在问题在有些应用中,需要将按照一定的目录结构组织起来的多个文件的集合作 为一个整体存储在数据库。当前的数据库系统还不提供对文件集的整体存储的 支持。由于BLOB支持对单个文件的存储,因此,在数据库中存储文件集的一个 简单的策略就是首先用压縮软件将文件集压縮为一个文件,然后再将压縮文件 存储到数据库的BLOB列。访问数据库中存储的文件集时,从BLOB列提取出压 縮文件,再用压縮软件的解压縮功能将压縮文件恢复成文件集,如图3所示。文件集基于预压縮的BLOB存储具有两个优点 一、保留了文件集的目录结构;二、节省了存储空间。其缺点是 一、压縮和解压縮的过程耗费了更多的 时间;二、无法对存储在数据库中的文件集的文件进行随机访问。所谓随机访问,是指选择文件集中的某个文件后将该文件对应的数据从数据库中读取出来 后访问之。在将文件集压縮后,压縮文件中保留了文件集的目录结构信息,通过相应的压縮软件打开压縮文件可以获知目录结构。但是对于作为BLOB数据块 存储在数据库中的压缩文件,外界无法直接获取目录结构信息,无法定位特定 的文件在BLOB数据块中的位置,因此无法实现对数据库中的文件集的文件的随 机访问。要想访问数据库中的文件集的文件,必须把整个文件集(即压縮文件) 提取出来。即要把文件系统中按照一定结构(通常为树形目录结构)组织起来 的文件集作为一个整体,存储在数据库中并且提供对其中的文件的随机访问。 当前的数据库系统还不提供对文件集的整体存储和随机访问的支持。文件集的数据库存取可以通过基于预压縮的BLOB存储方法完成,但该方法 具有本身不能克服的缺点——即无法对数据库中的文件集进行随机访问,大大影响了计算机应用及进一步开发。因此,其创新和改进是必需解决的难题。
技术实现思路
针对上述情况,为克服现有技术缺陷,本专利技术之目的就是提供一种树形目 录结构下的文件集在数据库中的存储和访问方法,可有效解决现有的数据库系 统中存取文件集,支持文件集的整体存储和随机访问的问题,其解决的技术方 案是,包括文件集的数据库存(存储)和取(访问)两个方面,存和取互相关 联,所说的文件集的存(存储)是指将文件集作为一个整体保存于数据库中; 所说的取,即随机访问,是指当用户访问数据库中保存的文件集中的某文件时, 不需要读取整个文件集,而只需要将读取该文件对应的数据,所说的文件集包 含三类信息文件集的目录结构,文件集的文件数据,文件集的文件属性,文件集的目录结构是指文件集的所有文件和目录之间的关系,在只考虑存在一个 根目录的情况下,是一种树形结构,文件集的文件数据是指文件集的所有文件 的数据,其中每一个文件的数据从根本上说就是一组字节序列,它构成了文件 的内容,文件集的文件属性是指文件集的所有文件的名称、类型、大小、创建日期等描述文件的信息;因此,在将文件集存储到数据库的过程中,为了保证 文件集信息的完整性,必须将文件集的目录结构、文件数据和文件属性三类信息同时保存到数据库,将文件集存储到数据库,从信息学的角度来看,是将文 件集的相关信息从用户主机的文件系统通过网络转移到服务器的数据库的过 程。在这个过程中,有一条最基本的要求必须满足要保证文件集信息的完整 性。换言之,要保证文件集信息的可恢复性,即可以仅仅根据数据库中的文件 集的相关数据在文件系统中还原文件集,即取(随机访问),据此,本专利技术由以 下步骤实现1、 整体存储方法是,第一步是将文件集的三类信息,即文件集的目录结 构,文件集的文件数据,文件集的文件属性,从文件系统中提取到本地的内存, 包括两方面 一是将文件集在文件系统中离散存储的文件数据提取组合成一个 连续的内存数据块(称之为文件集数据块);二是文件集的组织结构信息和文件 属性信息提取成内存中的文件集目录结构本文档来自技高网
...

【技术保护点】
一种树形目录结构下的文件集在数据库中的存储和访问方法,包括文件集的数据库整体存储和随机访问两个方面,其特征在于,所说的整体存储是指将文件集作为一个整体保存于数据库中;所说的随机访问,是指当用户访问数据库中保存的文件集中的某文件时,不需要读取整个文件集,而只需要将读取该文件对应的数据,实现步骤是: (1)、整体存储:方法是,第一步是将文件集的三类信息,即文件集的目录结构,文件集的文件数据,文件集的文件属性,从文件系统中提取到本地的内存,包括两方面:一是将文件集在文件系统中 离散存储的文件数据提取组合成一个连续的内存数据块;二是文件集的组织结构信息和文件属性信息提取成内存中的文件集目录结构对象,并对文件集目录结构对象序列化,目录结构对象中同时包含了目录结构信息和文件属性信息,以文件节点数据结构以此进行组织,“打包”; 第二步是对组织结构对象的序列化,即将内存中的对象形式转化为数据块形式,以便于下一步向数据库的存储; 第三步是数据块到数据库BLOB列的存储,即将文件集数据块和组织结构数据块分别保存到服务器数据库的BLOB列; (2 )、随机访问,方法是,包括两方面的内容:一、恢复文件集的目录结构;二、根据用户的选择访问数据库中对应的文件,恢复文件集的目录结构是存储目录结构的逆过程,分为三步:第一步,把以BLOB的形式存储在数据库中的目录结构数据块读取出来;第二步,用反序列化将目录结构数据块恢复成目录结构对象;第三步,将目录结构对象的信息以可视化的文件节点数据结构、目录节点数据结构和文件集目录结构对象形式呈现给用户,使得用户可以从中随机选择要访问的文件,在恢复了文件集的目录结构的基础上,根据用户选择的欲访问的文件,从数据库的文件集BLOB块中读取该文件的数据,在文件系统中恢复为临时文件,从而实现对文件集的随机访问。...

【技术特征摘要】

【专利技术属性】
技术研发人员:吕志平李昌贵赵冬青李健张西光陈正生
申请(专利权)人:中国人民解放军信息工程大学
类型:发明
国别省市:41[中国|河南]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1