著录项信息
专利名称 | 树形目录结构下的文件集在数据库中的存储和访问方法 |
申请号 | CN200910065938.0 | 申请日期 | 2009-08-26 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2010-01-20 | 公开/公告号 | CN101630322 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 中国人民解放军信息工程大学 | 申请人地址 | 河南省郑州市陇海中路66号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国人民解放军信息工程大学 | 当前权利人 | 中国人民解放军信息工程大学 |
发明人 | 吕志平;李昌贵;赵冬青;李健;张西光;陈正生 |
代理机构 | 郑州天阳专利事务所(普通合伙) | 代理人 | 聂孟民 |
摘要
本发明涉及树形目录结构下的文件集在数据库中的存储和访问方法,可有效解决数据库系统中存取文件集的整体存储和随机访问的问题,技术方案是,整体存储是将文件集的目录结构、文件集的文件数据、属性,从文件系统中提取到本地的内存;对组织结构对象序列化;数据块到数据库存储;随机访问是,恢复文件集的目录结构;根据用户的选择访问数据库中对应的文件,把存储在数据库中的目录结构数据块读取出来;用反序列化将目录结构数据块恢复成目录结构对象;将目录结构对象的信息以可视化的文件节点数据结构、目录节点数据结构和文件集目录结构对象形式呈现给用户,本发明解决了现有技术中不支持文件在数据库的直接存储和随机访问的技术难题,经济和社会效益巨大。
1.一种树形目录结构下的文件集在数据库中的存储和访问方法,包括文件集的数据库整体存储和随机访问两个方面,其特征在于,所说的整体存储是指将文件集作为一个整体保存于数据库中;所说的随机访问,是指当用户访问数据库中保存的文件集中的某文件时,不需要读取整个文件集,而只需要读取该文件对应的数据,实现步骤是:
(1)、整体存储:方法是,第一步是将文件集的三类信息,即文件集的目录结构,文件集的文件数据,文件集的文件属性,从文件系统中提取到本地的内存,包括两方面:
一是将文件集在文件系统中离散存储的文件数据提取组合成一个连续的内存数据块,即文件集数据块;二是文件集的目录结构信息和文件属性信息提取成内存中的文件集目录结构对象,文件集目录结构对象中同时包含了目录结构信息和文件属性信息,以文件节点数据结构进行组织,“打包”;所说的“打包”又称“打包”过程或“打包”方法,它是将文件集的三类信息从文件系统中提取到本地的内存,在文件系统中离散存储的文件数据提取组合成一个连续的内存数据块;再将文件集的目录结构信息和文件属性信息提取成内存中的文件集目录结构对象;
第二步是对文件集目录结构对象的序列化,即将内存中的对象形式的文件集目录结构对象转化为数据块形式的目录结构数据块,以便于下一步向数据库的存储;
第三步是数据块到数据库BLOB列的存储,即将文件集数据块和目录结构数据块分别保存到服务器数据库的BLOB列;
(2)、随机访问,方法是,包括两方面的内容:一、恢复文件集的目录结构;二、根据用户的选择访问数据库中对应的文件,恢复文件集的目录结构是存储目录结构的逆过程,分为三步:第一步,把以BLOB的形式存储在数据库中的目录结构数据块读取出来;第二步,用反序列化将目录结构数据块恢复成文件集目录结构对象;第三步,将目录结构对象的信息以可视化的文件节点数据结构、目录节点数据结构和文件集目录结构对象形式呈现给用户,使得用户可以从中随机选择要访问的文件,在恢复了文件集的目录结构的基础上,根据用户选择的欲访问的文件,从数据库的文件集BLOB块中读取该文件的数据,在文件系统中恢复为临时文件,从而实现对文件集的随机访问;
所说的文件节点数据结构是,文件节点由文件位置、文件大小和文件属性三部分构成;文件属性又由文件名称、文件类型和文件的其他属性构成;
所说的目录节点数据结构是由子目录节点集合和文件节点集合两部分构成,子目录节点集合由若干目录节点构成,对应于该目录下的所有子目录,文件节点集合由若干文件节点构成,对应于该目录下的所有文件。
2.根据权利要求1所述的树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,所说的文件集的目录结构是指文件集的所有文件和目录之间的关系,在只考虑存在一个根目录的情况下,是一种树形结构;文件集的文件数据是指文件集的所有文件的数据,其中每一个文件的数据从根本上说就是一组字节序列,它构成了文件的内容;文件集的文件属性是指文件集的所有文件的名称、类型、大小、创建日期描述文件的信息;在将文件集存储到数据库的过程中,必须将文件集的目录结构、文件数据和文件属性三类信息同时保存到数据库,将文件集存储到数据库,是将文件集的相关信息从用户主机的文件系统通过网络转移到服务器的数据库的过程,在这个过程中,要保证文件集信息的完整性及文件集信息的可恢复性。
3.根据权利要求1所述的树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,在打包过程中,文件系统中离散存储的文件数据组合成一个连续的文件集数据块,要记住每一个文件在文件集数据块中的位置,文件节点的“文件位置”项记录的是文件对应的数据块在文件集数据块中的起始位置,“文件大小”项记录的是文件对应的数据块在文件集数据块中的长度,能在连续的文件集数据块迅速地定位文件对应的数据块部分。
4.根据权利要求1所述的树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,所说的文件集目录结构对象的序列化是将对象转换为字节流以将其保存在内存、数据库或文件中的过程,保存对象的状态,以便可以在需要时重新创建对象,相反的过程称为反序列化,在构造了目录结构对象之后,要用序列化技术将其转换为数据流的形式,面向对象的编程语言都提供对序列化技术的支持。
5.根据权利要求1所述树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,所说的数据块到数据库BLOB列的存储,BLOB类型的数据存放在数据行之外的数据库存储区域,而在数据行中存放的是指向对应存储区域的16字节的指针,BLOB数据的存储过程分为两步:第一步,从数据行的BLOB列获取指针;第二步,将数据写入指针指向的存储区域,分别要将文件集数据块和目录结构数据块从客户端主机内存通过网络转移到服务器数据库的BLOB存储区,支持BLOB的数据库系统,提供相应的存取BLOB数据的应用程序接口,所说的BLOB数据是数据库中以BLOB为类型的数据。
6.根据权利要求1所述树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,所说的文件集目录结构对象由Windows资源管理器形成可视化目录结构对象,即一、在窗体的左边用树视图控件显示文件集的目录结构;二、点击树视图控件的目录节点时,在窗体右边的列表控件中显示当前目录下的子目录和文件的名称,用户对欲访问的目录结构中文件节点的选择,根据文件节点的数据结构,知道文件对应的数据块在文件集数据块中的起始位置和大小,这同时也是文件对应的数据块在数据库中文件集BLOB数据块的起始位置和大小,可以迅速对文件集BLOB数据块中的文件对应的数据块进行定位,使用相应的应用程序接口将其从数据库中读取出来,生成临时文件,并用合适的应用程序打开,即完成了对数据库存储的文件集的文件的随机访问。
树形目录结构下的文件集在数据库中的存储和访问方法 \n一、技术领域\n[0001] 本发明涉及计算机应用技术,特别是一种树形目录结构下的文件集在数据库中的存储和访问方法。 \n二、背景技术\n[0002] 随着计算机科学与多媒体技术的发展,在计算机网络、移动计算机、手机、卫星导航仪等具有数据库系统的实用产品的开发中,数据库不但要处理简单的结构化数据,还要经常处理大量复杂的非结构化数据,如图形、声音文件或大文本文件等,这些复杂的非结构化数据往往以文件为单位在数据库中存取。 除了单个文件的数据库存取,在应用中,还需要将文件系统中按照一定的目录结构组织起来的多个文件的集合(称为文件集)作为一个整体存储在数据库。 \n[0003] 对于单个文件在数据库中的存取,有分离存储方法和BLOB(Binary LargeObject,二进制大对象)存储方法。 当前成熟的商业数据库系统,如SQL Server、Oracle等都支持BLOB技术。 \n[0004] 对于文件集在数据库中的存取,当前的数据库系统还不提供对文件集整体存储的支持。 具体情况是: \n[0005] (1)文件的分离存储方法及存在问题 \n[0006] 早期的数据库只能存储简单类型,如整数型、实数型、布尔型、字符型等的数据,不支持文件在数据库的直接存储。 这种情况下,只能采用分离存储方法。 具体来说,就是将文件存放在数据库所在服务器的文件系统中,而在数据库中存储文件在文件系统中的路径。 如图1所示,在某学籍数据库系统中,有一个“学生”表,学号、姓名和性别等数据直接存储在数据库表相应的字段,而照片字段存储的是用字符型表示的对应的照片文件在文件系统中的路径。 \n[0007] 分离存储方法是数据库存储的数据类型受限时不得已而采用的在数据库中“存储”文件的方法,其缺点显而易见。 首先是文件路径信息在数据库系统和文件系统中的同步性问题。 数据库系统和文件系统是两个分离的系统,二者相互独立。 将二者联系起来的是数据库中存储的文件路径。 如果文件系统中文件的路径因为某种原因,如对目录重命名、移动文件等发生变化,那么数据库中对应的文件路径信息就会立即失效,除非对数据库中存储的文件路径做同步更 改。 而同步更改显然是难以做到的,因为在文件系统中改变文件路径的用户可能根本就意识不到数据库的存在。 这同时也是安全性问题。 数据库系统的用户对数据库对象的操作权限是一定的、可控的,而文件系统的用户权限不受数据库系统的控制。 以图1所示的学籍数据库系统为例,从逻辑上说,学生的照片文件的控制权应该属于学籍数据库系统用户,但事实上却属于服务器上的文件系统用户。 换言之,用户可以绕过数据库系统的安全控制直接操作(访问、移动、删除等)学生的照片文件。 \n[0008] (2)文件的BLOB存储方法及存在问题 \n[0009] BLOB(Binary Large Object,二进制大对象)是当代数据库系统为了支持诸如文件的数据库存储而引入的新的数据类型,一个BLOB列可以存储任意长度(不同的数据库系统对最大长度有不同的限制)的二进制数据块。 因此,文件可以作为二进制数据块存储在数据库的BLOB列。 仍以图1所示的学籍数据库系统为例,基于BLOB,照片文件将直接存储于学生表的BLOB列,如图2所示。 \n[0010] 文件的BLOB存储与分离存储最大的不同在于它在数据库中存储的是文件的数据实体,而不是文件的路径。 这样,文件和其他简单类型的数据实现了在数据库中的一体化的存储,分离存储造成的同步性问题和安全性问题在BLOB存储中不再存在。 [0011] 当然,在数据库内部,BLOB数据块(即BLOB类型的二进制数据块)和简单类型的数据的存储机制是不同的。 事实上,BLOB数据块存储在在数据库中一处特殊的区域(不妨称之为BLOB存储区),而在BLOB列存储的是BLOB数据块的指针。 [0012] (3)文件集基于预压缩的BLOB存储及存在问题 \n[0013] 在有些应用中,需要将按照一定的目录结构组织起来的多个文件的集合作为一个整体存储在数据库。 当前的数据库系统还不提供对文件集的整体存储的支持。 由于BLOB支持对单个文件的存储,因此,在数据库中存储文件集的一个简单的策略就是首先用压缩软件将文件集压缩为一个文件,然后再将压缩文件存储到数据库的BLOB列。\n访问数据库中存储的文件集时,从BLOB列提取出压缩文件,再用压缩软件的解压缩功能将压缩文件恢复成文件集,如图3所示。 \n[0014] 文件集基于预压缩的BLOB存储具有两个优点:一、保留了文件集的目录结构;二、节省了存储空间。 其缺点是:一、压缩和解压缩的过程耗费了更多的时间;\n二、无法对存储在数据库中的文件集的文件进行随机访问。 所谓随机访问,是指选择文件集中的某个文件后将该文件对应的数据从数据库中读取出来后访问之。 在将文件集压缩后,压缩文件中保留了文件集的目录结构信息,通过相应的压缩软件打开压缩文件可以获知目录结构。 但是对于作为BLOB数据块存储在数据库中的压缩文件,外界无法直接获取目录结构信息,无法定位特定的文件在BLOB数据块中的位置,因此无法实现对数据库中的文件集的文件的随机访问。 要想访问数据库中的文件集的文件,必须把整个文件集(即压缩文件)提取出来。 即要把文件系统中按照一定结构(通常为树形目录结构)组织起来的文件集作为一个整体,存储在数据库中并且提供对其中的文件的随机访问。 当前的数据库系统还不提供对文件集的整体存储和随机访问的支持。\n[0015] 文件集的数据库存取可以通过基于预压缩的BLOB存储方法完成,但该方法具有本身不能克服的缺点——即无法对数据库中的文件集进行随机访问,大大影响了计算机应用及进一步开发。 因此,其创新和改进是必需解决的难题。 \n[0016] 三、发明内容\n[0017] 针对上述情况,为克服现有技术缺陷,本发明之目的就是提供一种树形目录结构下的文件集在数据库中的存储和访问方法,可有效解决现有的数据库系统中存取文件集,支持文件集的整体存储和随机访问的问题,其解决的技术方案是,包括文件集的数据库存(存储)和取(访问)两个方面,存和取互相关联,所说的文件集的存(存储)是指将文件集作为一个整体保存于数据库中;所说的取,即随机访问,是指当用户访问数据库中保存的文件集中的某文件时,不需要读取整个文件集,而只需要读取该文件对应的数据,所说的文件集包含三类信息:文件集的目录结构,文件集的文件数据,文件集的文件属性,文件集的目录结构是指文件集的所有文件和目录之间的关系,在只考虑存在一个根目录的情况下,是一种树形结构,文件集的文件数据是指文件集的所有文件的数据,其中每一个文件的数据从根本上说就是一组字节序列,它构成了文件的内容,文件集的文件属性是指文件集的所有文件的名称、类型、大小、创建日期等描述文件的信息;因此,在将文件集存储到数据库的过程中,为了保证文件集信息的完整性,必须将文件集的目录结构、文件数据和文件属性三类信 息同时保存到数据库,将文件集存储到数据库,从信息学的角度来看,是将文件集的相关信息从用户主机的文件系统通过网络转移到服务器的数据库的过程。 在这个过程中,有一条最基本的要求必须满足:要保证文件集信息的完整性。 换言之,要保证文件集信息的可恢复性,即可以仅仅根据数据库中的文件集的相关数据在文件系统中还原文件集,即取(随机访问),据此,本发明由以下步骤实现: \n[0018] 1、整体存储:方法是,第一步是将文件集的三类信息,即文件集的目录结构,文件集的文件数据,文件集的文件属性,从文件系统中提取到本地的内存,包括两方面:一是将文件集在文件系统中离散存储的文件数据提取组合成一个连续的内存数据块(称之为文件集数据块);二是文件集的目录结构信息和文件属性信息提取成内存中的文件集目录结构对象,并对文件集目录结构对象序列化,目录结构对象中同时包含了目录结构信息和文件属性信息,以文件节点数据结构进行组织,这一步称为文件集的“打包”过程; \n[0019] 第二步是对目录结构对象的序列化,即将内存中的对象形式转化为数据块形式,以便于下一步向数据库的存储; \n[0020] 第三步数据块到数据库BLOB列的存储,即是将文件集数据块和目录结构数据块分别保存到服务器数据库的BLOB列; \n[0021] 2、随机访问(取),方法是,包括两方面的内容:一、恢复文件集的目录结构;二、根据用户的选择访问数据库中对应的文件,恢复文件集的目录结构是存储目录结构的逆过程,分为三步:第一步,把以BLOB的形式存储在数据库中的目录结构数据块读取出来;第二步,用反序列化将目录结构数据块恢复成目录结构对象;第三步,将目录结构对象的信息以可视化的文件节点数据结构、目录节点数据结构和文件集目录结构对象形式呈现给用户,使得用户可以从中随机选择要访问的文件,在恢复了文件集的目录结构的基础上,根据用户选择的欲访问的文件,从数据库的文件集BLOB块中读取该文件的数据,在文件系统中恢复为临时文件,从而实现对文件集的随机访问,本发明有效的解决了现有技术中不支持文件在数据库的直接存储和随机访问的技术难题,应用范围广、存储安全、访问高效,可广泛应用于计算机网络、移动计算机、手机、卫星导 航仪等具有数据库系统的实用产品和开发中,经济和社会效益巨大。 四、附图说明\n[0022] 图1为现有文件的分离存储示意图。 \n[0023] 图2为现有文件的BLOB存储示意图。 \n[0024] 图3为现有文件集基于预压缩的BLOB存储示意图。 \n[0025] 图4为本发明文件集的数据库存储的示意图。 \n[0026] 图5为本发明文件集在数据库中随机访问的示意图。 \n[0027] 图6为本发明文件节点数据结构示意图。 \n[0028] 图7为本发明文件节点和文件集数据块的关系示意图。 \n[0029] 图8为本发明目录节点数据结构示意图。 \n[0030] 图9为本发明对应于图5的文件集目录结构对象示意图。 \n[0031] 图10为本发明BLOB数据存储示意图 \n[0032] 图11为本发明可视化后的文件集目录结构示意图。 \n五、具体实施方式\n[0033] 以下结合附图对本发明的具体实施方式作详细说明。 \n[0034] 由图4、图5所示,本发明包括文件集的数据库存储和文件集在数据库的随机访问两部分,所说的文件集是由文件集的目录结构、文件集的文件数据、文件集的文件属性三类信息组成,文件集的目录结构是指文件集的所有文件和目录之间的关系,在只考虑存在一个根目录的情况下,是一种树形结构,文件集的文件数据是指文件集的所有文件的数据,其中每一个文件的数据从根本上说就是一组字节序列,它构成了文件的内容,文件集的文件属性是指文件集的所有文件的名称、类型、大小、创建日期等描述文件的信息,其数据库存储是指:整体存储,随机访问是整体存储的逆过程,整体存储是由以下步骤实现,第一步是将文件集的三类信息从文件系统中提取到本地的内存,一是将文件集在文件系统中离散存储的文件数据提取组合成一个连续的内存文件集数据块;\n二是文件集的组织结构信息和文件属性信息提取成内存中的目录结构信息和文件属性信息组成的文件集目录结构对象,并对文件集目录结构对象序列化,文件节点数据结构以此进行组织“打包”;第二步是对组织结构对象的序列化,即将内存中的对象形式转化为数据块形式,以便于下一步向数据库的存储;第三步是 将文件集数据块和组织结构数据块分别保存到服务器数据库的BLOB列(见图4所示);随机访问是由以下步骤实现,当在数据库中实现了文件集的整体存储后,选择文件集中的某个文件后,将该文件对应的数据从数据库中读取出来,包括两方面:一、恢复文件集的目录结构;二、根据用户的选择访问数据库中对应的文件; \n[0035] 在很大程度上,恢复文件集的目录结构是存储目录结构的逆过程,分为三步:\n第一步,把以BLOB的形式存储在数据库中的目录结构数据块读取出来;第二步,用反序列化将目录结构数据块恢复成目录结构对象;第三步,将目录结构对象的信息以可视化的文件节点数据结构、目录节点数据结构和文件集目录结构对象形式呈现给用户,使得用户可以从中随机选择要访问的文件,在恢复了文件集的目录结构的基础上,根据用户选择的欲访问的文件,从数据库的文件集BLOB块中读取该文件的数据,在文件系统中恢复为临时文件,从而实现对文件集的随机访问。 \n[0036] 在恢复了文件集的目录结构的基础上,根据用户选择的欲访问的文件,从数据库的文件集BLOB块中读取该文件的数据,在文件系统中恢复为临时文件,从而实现对文件集的随机访问(见图5所示); \n[0037] 所说的文件节点数据结构如6所示,文件节点由文件位置、文件大小和文件属性三部分构成;文件属性又由文件名称、文件类型和文件的其他属性构成; [0038] “文件大小”本来是文件的属性之一,但在文件节点的数据结构中把它作为一个单独的数据项列出来是因为它具有比其他文件属性更重要的意义,在打包过程中,文件系统中离散存储的文件数据组合成一个连续的文件集数据块,显然,必须要能“记住”每一个文件在文件集数据块中的位置,而文件节点的“文件位置”项记录的是文件对应的数据块在文件集数据块中的起始位置,“文件大小”项记录的是文件对应的数据块在文件集数据块中的长度(如图7),有了这两项,就能在连续的文件集数据块迅速地定位文件对应的数据块部分; \n[0039] 所说的目录节点数据结构,如图8所示,是由子目录节点集合和文件节点集合两部分构成,子目录节点集合由若干目录节点构成,对应于该目录下的所有子目录,文件节点集合由若干文件节点构成,对应于该目录下的所有文件; \n[0040] 所说的文件集目录结构对象,如图8所示,目录节点数据结构具有“递归定义”的性质,即在目录节点的组成部分中又出现了目录节点,正是目录节点数据结构的这种性质使得可以用它对树形的文件集的目录结构建模,图9就是对应于图4的文件集的目录结构对象,事实上,用根目录节点定义文件集的目录结构对象的,即文件集的根目录节点就是其目录结构对象。 \n[0041] 所说的整体存储的“打包”又称“打包”过程或“打包”方法,它是将文件集的三类信息从文件系统中提取到本地的内存,在文件系统中离散存储的文件数据提取组合成一个连续的内存数据块(称之为文件集数据块);再将文件集的目录结构信息和文件属性信息提取成内存中的文件集目录结构对象; \n[0042] 鉴于文件集的树形目录结构具有自相似性,使用递归可以极大地简化打包算法,打包算法的输入参数是文件集在文件系统的根目录、根目录对应的目录节点和用于存储文件集数据块的字节数组,在打包算法执行完毕后,根目录对应的目录节点就成为文件集的目录结构对象。 \n[0043] 文件集目录结构对象的序列化是将对象转换为字节流以将其保存在内存、数据库或文件中的过程,其主要目的是保存对象的状态,以便可以在需要时重新创建对象。\n相反的过程称为反序列化,为了在数据库中存储文件集目录结构信息,在构造了目录结构对象之后,需要用序列化技术将其转换为数据流的形式,大多数面向对象的编程语言都提供了对序列化技术的支持。 \n[0044] 数据块到数据库BLOB列的存储,在数据库中,与普通数据类型不同的是,BLOB类型的数据一般存放在表的数据行之外的数据库存储区域,而在数据行中存放的是指向对应存储区域的16字节的指针(如图10),因此,BLOB数据的存储过程实际上分为两步:第一步,从数据行的BLOB列获取指针;第二步,将数据写入指针指向的存储区域,分别要将文件集数据块和目录结构数据块从客户端主机内存通过网络转移到服务器数据库的BLOB存储区。一般地,支持BLOB的数据库系统(如SQL Server和Oracle)本身提供了相应的存取BLOB数据的API(应用程序接口)。 \n[0045] 所说的文件集的随机访问过程,是实现对数据库中文件集的随机访问,包括两方面的内容:一、恢复文件集的目录结构;二、根据用户的选择访问数据库中对应的文件; \n[0046] 其中,恢复文件集的目录结构,是为了让用户可以从中挑选欲访问的特定文件,因此,最终应该将将目录结构对象的信息以某种可视化的形式呈现给用户; [0047] 总体方案中提到,在很大程度上,恢复文件集的目录结构是存储目录结构的逆过程,分为三步:一、把以BLOB的形式存储在数据库中的目录结构数据块读取出来;\n二、用反序列化将目录结构数据块恢复成目录结构对象;三、将目录结构对象的信息以某种可视化的形式呈现给用户,使得用户可以从中随机选择要访问的文件; [0048] 从数据库读取BLOB数据块与读取简单类型的数据不同,和存储BLOB数据块类似,首先是从数据行的BLOB列获取指针,然后在指针指向的BLOB存储区以数据流的形式读取数据块,特定的数据库系统提供读取BLOB数据块的特定API; [0049] 可以用类似于Windows资源管理器的形式可视化目录结构对象,这包括两方面的内容:一、在窗体的左边用树视图控件显示文件集的目录结构;二、点击树视图控件的目录节点时在窗体右边的列表控件中显示当前目录下的子目录和文件的名称; [0050] 根据用户的选择访问数据库中对应的文件,可视化的文件集目录结构可以认为形如图11所示(图11是从图5中抽取出来的),其中的文件用虚线表示,是为了和图4中的文件集的文件相区别,这里的“文件”不是真正的文件实体,没有文件数据,它只是用于记录文件在目录结构中的位置以及文件的属性等信息的文件节点。 [0051] 用户对欲访问的文件的选择,即是对目录结构中文件节点的选择,根据文件节点的数据结构,知道其中记录了文件的数据块在文件集数据块中的起始位置和大小(见图7),这同时也是文件的数据块在数据库中文件集BLOB数据块的起始位置和大小,由此,可以迅速对文件集BLOB数据块中的文件数据块进行定位,使用相应的API将其从数据库中读取出来,生成临时文件,并用合适的应用程序打开,即完成了对数据库存储的文件集的文件的随机访问。 \n[0052] 由上述情况可以看出,本发明是针对现有的数据库系统不提供对文件集存 取的直接支持,而文件集基于预压缩的BLOB存储方法又存在无法对数据库中的文件集进行随机访问的缺陷而进行的改进和创新,本发明提供一种新的方法,该方法综合数据库BLOB技术、流(Stream)技术、序列化技术,解决在现有的数据库系统中存取文件集的问题,支持文件集的整体存储和随机访问,因此,本发明具有以下突出的有益效果: [0053] (1)应用广泛 \n[0054] 本发明提出的方法具有较广泛的适用性,可应用于具有如图6所示的体系结构的硬件环境下,作为用户终端的文件系统主机既可以是一般的个人电脑,也可以是PDA(个人数字助理)、智能手机、卫星导航仪等存在文件存储和编程能力的移动载体。 [0055] (2)存储安全 \n[0056] 本发明提出的方法将文件集作为一个整体存储于数据库的BLOB存储区,是一种一体化的存储方法,即将文件集和与之关联的其他数据(简单类型)依据关系数据库理论从逻辑上建立联系,从物理存储上绑定在一起。 这种一体化的存储方法与现有的分离存储方法或者其他的非整体存储方法相比具有更强的安全性。 用户没有办法绕过数据库的安全系统对文件集的数据进行非法操作。 \n[0057] (3)访问高效 \n[0058] 本发明提出的方法支持对数据库中的文件集的随机访问,这是一种高效率的访问方法。 在基于预压缩的BLOB存储方法中,对于任何文件的访问,都必须把整个文件集从数据库中读取出来,经过网络传输到用户端。 而本发明方法则只需要从数据库读取要访问的文件对应的那一部分数据,极大地缩短了对数据库的读取时间、节省了大量的网络带宽,其经济和社会效益巨大。
法律信息
- 2013-10-30
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 200910065938.0
申请日: 2009.08.26
授权公告日: 2011.04.13
- 2011-04-13
- 2010-03-24
- 2010-01-20
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-11-28
|
2005-12-09
| | |
2
| |
2005-09-28
|
2005-03-22
| | |
3
| | 暂无 |
2004-01-27
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |