CN101630322A - 树形目录结构下的文件集在数据库中的存储和访问方法 - Google Patents
树形目录结构下的文件集在数据库中的存储和访问方法 Download PDFInfo
- Publication number
- CN101630322A CN101630322A CN200910065938A CN200910065938A CN101630322A CN 101630322 A CN101630322 A CN 101630322A CN 200910065938 A CN200910065938 A CN 200910065938A CN 200910065938 A CN200910065938 A CN 200910065938A CN 101630322 A CN101630322 A CN 101630322A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- database
- file set
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及树形目录结构下的文件集在数据库中的存储和访问方法,可有效解决数据库系统中存取文件集的整体存储和随机访问的问题,技术方案是,整体存储是将文件集的目录结构、文件集的文件数据、属性,从文件系统中提取到本地的内存;对组织结构对象序列化;数据块到数据库存储;随机访问是,恢复文件集的目录结构;根据用户的选择访问数据库中对应的文件,把存储在数据库中的目录结构数据块读取出来;用反序列化将目录结构数据块恢复成目录结构对象;将目录结构对象的信息以可视化的文件节点数据结构、目录节点数据结构和文件集目录结构对象形式呈现给用户,本发明解决了现有技术中不支持文件在数据库的直接存储和随机访问的技术难题,经济和社会效益巨大。
Description
一、技术领域
本发明涉及计算机应用技术,特别是一种树形目录结构下的文件集在数据库中的存储和访问方法。
二、背景技术
随着计算机科学与多媒体技术的发展,在计算机网络、移动计算机、手机、卫星导航仪等具有数据库系统的实用产品的开发中,数据库不但要处理简单的结构化数据,还要经常处理大量复杂的非结构化数据,如图形、声音文件或大文本文件等,这些复杂的非结构化数据往往以文件为单位在数据库中存取。除了单个文件的数据库存取,在应用中,还需要将文件系统中按照一定的目录结构组织起来的多个文件的集合(称为文件集)作为一个整体存储在数据库。
对于单个文件在数据库中的存取,有分离存储方法和BLOB(Binary LargeObject,二进制大对象)存储方法。当前成熟的商业数据库系统,如SQL Server、Oracle等都支持BLOB技术。
对于文件集在数据库中的存取,当前的数据库系统还不提供对文件集整体存储的支持。具体情况是:
(1)文件的分离存储方法及存在问题
早期的数据库只能存储简单类型,如整数型、实数型、布尔型、字符型等的数据,不支持文件在数据库的直接存储。这种情况下,只能采用分离存储方法。具体来说,就是将文件存放在数据库所在服务器的文件系统中,而在数据库中存储文件在文件系统中的路径。如图1所示,在某学籍数据库系统中,有一个“学生”表,学号、姓名和性别等数据直接存储在数据库表相应的字段,而照片字段存储的是用字符型表示的对应的照片文件在文件系统中的路径。
分离存储方法是数据库存储的数据类型受限时不得已而采用的在数据库中“存储”文件的方法,其缺点显而易见。首先是文件路径信息在数据库系统和文件系统中的同步性问题。数据库系统和文件系统是两个分离的系统,二者相互独立。将二者联系起来的是数据库中存储的文件路径。如果文件系统中文件的路径因为某种原因,如对目录重命名、移动文件等发生变化,那么数据库中对应的文件路径信息就会立即失效,除非对数据库中存储的文件路径做同步更改。而同步更改显然是难以做到的,因为在文件系统中改变文件路径的用户可能根本就意识不到数据库的存在。这同时也是安全性问题。数据库系统的用户对数据库对象的操作权限是一定的、可控的,而文件系统的用户权限不受数据库系统的控制。以图1所示的学籍数据库系统为例,从逻辑上说,学生的照片文件的控制权应该属于学籍数据库系统用户,但事实上却属于服务器上的文件系统用户。换言之,用户可以绕过数据库系统的安全控制直接操作(访问、移动、删除等)学生的照片文件。
(2)文件的BLOB存储方法及存在问题
BLOB(Binary Large Object,二进制大对象)是当代数据库系统为了支持诸如文件的数据库存储而引入的新的数据类型,一个BLOB列可以存储任意长度(不同的数据库系统对最大长度有不同的限制)的二进制数据块。因此,文件可以作为二进制数据块存储在数据库的BLOB列。仍以图1所示的学籍数据库系统为例,基于BLOB,照片文件将直接存储于学生表的BLOB列,如图2所示。
文件的BLOB存储与分离存储最大的不同在于它在数据库中存储的是文件的数据实体,而不是文件的路径。这样,文件和其他简单类型的数据实现了在数据库中的一体化的存储,分离存储造成的同步性问题和安全性问题在BLOB存储中不再存在。
当然,在数据库内部,BLOB数据块(即BLOB类型的二进制数据块)和简单类型的数据的存储机制是不同的。事实上,BLOB数据块存储在在数据库中一处特殊的区域(不妨称之为BLOB存储区),而在BLOB列存储的是BLOB数据块的指针。
(3)文件集基于预压缩的BLOB存储及存在问题
在有些应用中,需要将按照一定的目录结构组织起来的多个文件的集合作为一个整体存储在数据库。当前的数据库系统还不提供对文件集的整体存储的支持。由于BLOB支持对单个文件的存储,因此,在数据库中存储文件集的一个简单的策略就是首先用压缩软件将文件集压缩为一个文件,然后再将压缩文件存储到数据库的BLOB列。访问数据库中存储的文件集时,从BLOB列提取出压缩文件,再用压缩软件的解压缩功能将压缩文件恢复成文件集,如图3所示。
文件集基于预压缩的BLOB存储具有两个优点:一、保留了文件集的目录结构;二、节省了存储空间。其缺点是:一、压缩和解压缩的过程耗费了更多的时间;二、无法对存储在数据库中的文件集的文件进行随机访问。所谓随机访问,是指选择文件集中的某个文件后将该文件对应的数据从数据库中读取出来后访问之。在将文件集压缩后,压缩文件中保留了文件集的目录结构信息,通过相应的压缩软件打开压缩文件可以获知目录结构。但是对于作为BLOB数据块存储在数据库中的压缩文件,外界无法直接获取目录结构信息,无法定位特定的文件在BLOB数据块中的位置,因此无法实现对数据库中的文件集的文件的随机访问。要想访问数据库中的文件集的文件,必须把整个文件集(即压缩文件)提取出来。即要把文件系统中按照一定结构(通常为树形目录结构)组织起来的文件集作为一个整体,存储在数据库中并且提供对其中的文件的随机访问。当前的数据库系统还不提供对文件集的整体存储和随机访问的支持。
文件集的数据库存取可以通过基于预压缩的BLOB存储方法完成,但该方法具有本身不能克服的缺点——即无法对数据库中的文件集进行随机访问,大大影响了计算机应用及进一步开发。因此,其创新和改进是必需解决的难题。
三、发明内容
针对上述情况,为克服现有技术缺陷,本发明之目的就是提供一种树形目录结构下的文件集在数据库中的存储和访问方法,可有效解决现有的数据库系统中存取文件集,支持文件集的整体存储和随机访问的问题,其解决的技术方案是,包括文件集的数据库存(存储)和取(访问)两个方面,存和取互相关联,所说的文件集的存(存储)是指将文件集作为一个整体保存于数据库中;所说的取,即随机访问,是指当用户访问数据库中保存的文件集中的某文件时,不需要读取整个文件集,而只需要将读取该文件对应的数据,所说的文件集包含三类信息:文件集的目录结构,文件集的文件数据,文件集的文件属性,文件集的目录结构是指文件集的所有文件和目录之间的关系,在只考虑存在一个根目录的情况下,是一种树形结构,文件集的文件数据是指文件集的所有文件的数据,其中每一个文件的数据从根本上说就是一组字节序列,它构成了文件的内容,文件集的文件属性是指文件集的所有文件的名称、类型、大小、创建日期等描述文件的信息;因此,在将文件集存储到数据库的过程中,为了保证文件集信息的完整性,必须将文件集的目录结构、文件数据和文件属性三类信息同时保存到数据库,将文件集存储到数据库,从信息学的角度来看,是将文件集的相关信息从用户主机的文件系统通过网络转移到服务器的数据库的过程。在这个过程中,有一条最基本的要求必须满足:要保证文件集信息的完整性。换言之,要保证文件集信息的可恢复性,即可以仅仅根据数据库中的文件集的相关数据在文件系统中还原文件集,即取(随机访问),据此,本发明由以下步骤实现:
1、整体存储:方法是,第一步是将文件集的三类信息,即文件集的目录结构,文件集的文件数据,文件集的文件属性,从文件系统中提取到本地的内存,包括两方面:一是将文件集在文件系统中离散存储的文件数据提取组合成一个连续的内存数据块(称之为文件集数据块);二是文件集的组织结构信息和文件属性信息提取成内存中的文件集目录结构对象,并对文件集目录结构对象序列化,目录结构对象中同时包含了目录结构信息和文件属性信息,以文件节点数据结构以此进行组织,这一步称为文件集的“打包”过程;
第二步是对组织结构对象的序列化,即将内存中的对象形式转化为数据块形式,以便于下一步向数据库的存储;
第三步数据块到数据库BLOB列的存储,即是将文件集数据块和组织结构数据块分别保存到服务器数据库的BLOB列;
2、随机访问(取),方法是,包括两方面的内容:一、恢复文件集的目录结构;二、根据用户的选择访问数据库中对应的文件,恢复文件集的目录结构是存储目录结构的逆过程,分为三步:第一步,把以BLOB的形式存储在数据库中的目录结构数据块读取出来;第二步,用反序列化将目录结构数据块恢复成目录结构对象;第三步,将目录结构对象的信息以可视化的文件节点数据结构、目录节点数据结构和文件集目录结构对象形式呈现给用户,使得用户可以从中随机选择要访问的文件,在恢复了文件集的目录结构的基础上,根据用户选择的欲访问的文件,从数据库的文件集BLOB块中读取该文件的数据,在文件系统中恢复为临时文件,从而实现对文件集的随机访问,本发明有效的解决了现有技术中不支持文件在数据库的直接存储和随机访问的技术难题,应用范围广、存储安全、访问高效,可广泛应用于计算机网络、移动计算机、手机、卫星导航仪等具有数据库系统的实用产品和开发中,经济和社会效益巨大。
四、附图说明
图1为现有文件的分离存储示意图。
图2为现有文件的BLOB存储示意图。
图3为现有文件集基于预压缩的BLOB存储示意图。
图4为本发明文件集的数据库存储的示意图。
图5为本发明文件集在数据库中随机访问的示意图。
图6为本发明文件节点数据结构示意图。
图7为本发明文件节点和文件集数据块的关系示意图。
图8为本发明目录节点数据结构示意图。
图9为本发明对应于图5的文件集目录结构对象示意图。
图10为本发明BLOB数据存储示意图
图11为本发明可视化后的文件集目录结构示意图。
五、具体实施方式
以下结合附图对本发明的具体实施方式作详细说明。
由图4、图5所示,本发明包括文件集的数据库存储和文件集在数据库的随机访问两部分,所说的文件集是由文件集的目录结构、文件集的文件数据、文件集的文件属性三类信息组成,文件集的目录结构是指文件集的所有文件和目录之间的关系,在只考虑存在一个根目录的情况下,是一种树形结构,文件集的文件数据是指文件集的所有文件的数据,其中每一个文件的数据从根本上说就是一组字节序列,它构成了文件的内容,文件集的文件属性是指文件集的所有文件的名称、类型、大小、创建日期等描述文件的信息,其数据库存储是指:整体存储,随机访问是整体存储的逆过程,整体存储是由以下步骤实现,第一步是将文件集的三类信息从文件系统中提取到本地的内存,一是将文件集在文件系统中离散存储的文件数据提取组合成一个连续的内存文件集数据块;二是文件集的组织结构信息和文件属性信息提取成内存中的目录结构信息和文件属性信息组成的文件集目录结构对象,并对文件集目录结构对象序列化,文件节点数据结构以此进行组织“打包”;第二步是对组织结构对象的序列化,即将内存中的对象形式转化为数据块形式,以便于下一步向数据库的存储;第三步是将文件集数据块和组织结构数据块分别保存到服务器数据库的BLOB列(见图4所示);随机访问是由以下步骤实现,当在数据库中实现了文件集的整体存储后,选择文件集中的某个文件后,将该文件对应的数据从数据库中读取出来,包括两方面:一、恢复文件集的目录结构;二、根据用户的选择访问数据库中对应的文件;
在很大程度上,恢复文件集的目录结构是存储目录结构的逆过程,分为三步:第一步,把以BLOB的形式存储在数据库中的目录结构数据块读取出来;第二步,用反序列化将目录结构数据块恢复成目录结构对象;第三步,将目录结构对象的信息以可视化的文件节点数据结构、目录节点数据结构和文件集目录结构对象形式呈现给用户,使得用户可以从中随机选择要访问的文件,在恢复了文件集的目录结构的基础上,根据用户选择的欲访问的文件,从数据库的文件集BLOB块中读取该文件的数据,在文件系统中恢复为临时文件,从而实现对文件集的随机访问。
在恢复了文件集的目录结构的基础上,根据用户选择的欲访问的文件,从数据库的文件集BLOB块中读取该文件的数据,在文件系统中恢复为临时文件,从而实现对文件集的随机访问(见图5所示);
所说的文件节点数据结构如6所示,文件节点由文件位置、文件大小和文件属性三部分构成;文件属性又由文件名称、文件类型和文件的其他属性构成;
“文件大小”本来是文件的属性之一,但在文件节点的数据结构中把它作为一个单独的数据项列出来是因为它具有比其他文件属性更重要的意义,在打包过程中,文件系统中离散存储的文件数据组合成一个连续的文件集数据块,显然,必须要能“记住”每一个文件在文件集数据块中的位置,而文件节点的“文件位置”项记录的是文件对应的数据块在文件集数据块中的起始位置,“文件大小”项记录的是文件对应的数据块在文件集数据块中的长度(如图7),有了这两项,就能在连续的文件集数据块迅速地定位文件对应的数据块部分;
所说的目录节点数据结构,如图8所示,是由子目录节点集合和文件节点集合两部分构成,子目录节点集合由若干目录节点构成,对应于该目录下的所有子目录,文件节点集合由若干文件节点构成,对应于该目录下的所有文件;
所说的文件集目录结构对象,如图8所示,目录节点数据结构具有“递归定义”的性质,即在目录节点的组成部分中又出现了目录节点,正是目录节点数据结构的这种性质使得可以用它对树形的文件集的目录结构建模,图9就是对应于图4的文件集的目录结构对象,事实上,用根目录节点定义文件集的目录结构对象的,即文件集的根目录节点就是其目录结构对象。
所说的整体存储的“打包”又称“打包”过程或“打包”方法,它是将文件集的三类信息从文件系统中提取到本地的内存,在文件系统中离散存储的文件数据提取组合成一个连续的内存数据块(称之为文件集数据块);再将文件集的目录结构信息和文件属性信息提取成内存中的文件集目录结构对象;
鉴于文件集的树形目录结构具有自相似性,使用递归可以极大地简化打包算法,打包算法的输入参数是文件集在文件系统的根目录、根目录对应的目录节点和用于存储文件集数据块的字节数组,在打包算法执行完毕后,根目录对应的目录节点就成为文件集的目录结构对象。
文件集目录结构对象的序列化是将对象转换为字节流以将其保存在内存、数据库或文件中的过程,其主要目的是保存对象的状态,以便可以在需要时重新创建对象。相反的过程称为反序列化,为了在数据库中存储文件集目录结构信息,在构造了目录结构对象之后,需要用序列化技术将其转换为数据流的形式,大多数面向对象的编程语言都提供了对序列化技术的支持。
数据块到数据库BLOB列的存储,在数据库中,与普通数据类型不同的是,BLOB类型的数据一般存放在表的数据行之外的数据库存储区域,而在数据行中存放的是指向对应存储区域的16字节的指针(如图10),因此,BLOB数据的存储过程实际上分为两步:第一步,从数据行的BLOB列获取指针;第二步,将数据写入指针指向的存储区域,分别要将文件集数据块和目录结构对象数据块从客户端主机内存通过网络转移到服务器数据库的BLOB存储区。一般地,支持BLOB的数据库系统(如SQL Server和Oracle)本身提供了相应的存取BLOB数据的API(应用程序接口)。
所说的文件集的随机访问过程,是实现对数据库中文件集的随机访问,包括两方面的内容:一、恢复文件集的目录结构;二、根据用户的选择访问数据库中对应的文件;
其中,恢复文件集的目录结构,是为了让用户可以从中挑选欲访问的特定文件,因此,最终应该将将目录结构对象的信息以某种可视化的形式呈现给用户;
总体方案中提到,在很大程度上,恢复文件集的目录结构是存储目录结构的逆过程,分为三步:一、把以BLOB的形式存储在数据库中的目录结构数据块读取出来;二、用反序列化将目录结构数据块恢复成目录结构对象;三、将目录结构对象的信息以某种可视化的形式呈现给用户,使得用户可以从中随机选择要访问的文件;
从数据库读取BLOB数据块与读取简单类型的数据不同,和存储BLOB数据块类似,首先是从数据行的BLOB列获取指针,然后在指针指向的BLOB存储区以数据流的形式读取数据块,特定的数据库系统提供读取BLOB数据块的特定API;
可以用类似于Windows资源管理器的形式可视化目录结构对象,这包括两方面的内容:一、在窗体的左边用树视图控件显示文件集的目录结构;二、点击树视图控件的目录节点时在窗体右边的列表控件中显示当前目录下的子目录和文件的名称;
根据用户的选择访问数据库中对应的文件,可视化的文件集目录结构可以认为形如图11所示(图11是从图5中抽取出来的),其中的文件用虚线表示,是为了和图4中的文件集的文件相区别,这里的“文件”不是真正的文件实体,没有文件数据,它只是用于记录文件在目录结构中的位置以及文件的属性等信息的文件节点。
用户对欲访问的文件的选择,即是对目录结构中文件节点的选择,根据文件节点的数据结构,知道其中记录了文件的数据块在文件集数据块中的起始位置和大小(见图7),这同时也是文件的数据块在数据库中文件集BLOB数据块的起始位置和大小,由此,可以迅速对文件集BLOB数据块中的文件数据块进行定位,使用相应的API将其从数据库中读取出来,生成临时文件,并用合适的应用程序打开,即完成了对数据库存储的文件集的文件的随机访问。
由上述情况可以看出,本发明是针对现有的数据库系统不提供对文件集存取的直接支持,而文件集基于预压缩的BLOB存储方法又存在无法对数据库中的文件集进行随机访问的缺陷而进行的改进和创新,本发明提供一种新的方法,该方法综合数据库BLOB技术、流(Stream)技术、序列化技术,解决在现有的数据库系统中存取文件集的问题,支持文件集的整体存储和随机访问,因此,本发明具有以下突出的有益效果:
(1)应用广泛
本发明提出的方法具有较广泛的适用性,可应用于具有如图6所示的体系结构的硬件环境下,作为用户终端的文件系统主机既可以是一般的个人电脑,也可以是PDA(个人数字助理)、智能手机、卫星导航仪等存在文件存储和编程能力的移动载体。
(2)存储安全
本发明提出的方法将文件集作为一个整体存储于数据库的BLOB存储区,是一种一体化的存储方法,即将文件集和与之关联的其他数据(简单类型)依据关系数据库理论从逻辑上建立联系,从物理存储上绑定在一起。这种一体化的存储方法与现有的分离存储方法或者其他的非整体存储方法相比具有更强的安全性。用户没有办法绕过数据库的安全系统对文件集的数据进行非法操作。
(3)访问高效
本发明提出的方法支持对数据库中的文件集的随机访问,这是一种高效率的访问方法。在基于预压缩的BLOB存储方法中,对于任何文件的访问,都必须把整个文件集从数据库中读取出来,经过网络传输到用户端。而本发明方法则只需要从数据库读取要访问的文件对应的那一部分数据,极大地缩短了对数据库的读取时间、节省了大量的网络带宽,其经济和社会效益巨大。
Claims (7)
1、一种树形目录结构下的文件集在数据库中的存储和访问方法,包括文件集的数据库整体存储和随机访问两个方面,其特征在于,所说的整体存储是指将文件集作为一个整体保存于数据库中;所说的随机访问,是指当用户访问数据库中保存的文件集中的某文件时,不需要读取整个文件集,而只需要将读取该文件对应的数据,实现步骤是:
(1)、整体存储:方法是,第一步是将文件集的三类信息,即文件集的目录结构,文件集的文件数据,文件集的文件属性,从文件系统中提取到本地的内存,包括两方面:一是将文件集在文件系统中离散存储的文件数据提取组合成一个连续的内存数据块;二是文件集的组织结构信息和文件属性信息提取成内存中的文件集目录结构对象,并对文件集目录结构对象序列化,目录结构对象中同时包含了目录结构信息和文件属性信息,以文件节点数据结构以此进行组织,“打包”;
第二步是对组织结构对象的序列化,即将内存中的对象形式转化为数据块形式,以便于下一步向数据库的存储;
第三步是数据块到数据库BLOB列的存储,即将文件集数据块和组织结构数据块分别保存到服务器数据库的BLOB列;
(2)、随机访问,方法是,包括两方面的内容:一、恢复文件集的目录结构;二、根据用户的选择访问数据库中对应的文件,恢复文件集的目录结构是存储目录结构的逆过程,分为三步:第一步,把以BLOB的形式存储在数据库中的目录结构数据块读取出来;第二步,用反序列化将目录结构数据块恢复成目录结构对象;第三步,将目录结构对象的信息以可视化的文件节点数据结构、目录节点数据结构和文件集目录结构对象形式呈现给用户,使得用户可以从中随机选择要访问的文件,在恢复了文件集的目录结构的基础上,根据用户选择的欲访问的文件,从数据库的文件集BLOB块中读取该文件的数据,在文件系统中恢复为临时文件,从而实现对文件集的随机访问。
2、根据权利要求1所述的树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,所说的文件集的目录结构是指文件集的所有文件和目录之间的关系,在只考虑存在一个根目录的情况下,是一种树形结构;文件集的文件数据是指文件集的所有文件的数据,其中每一个文件的数据从根本上说就是一组字节序列,它构成了文件的内容;文件集的文件属性是指文件集的所有文件的名称、类型、大小、创建日期描述文件的信息;在将文件集存储到数据库的过程中,必须将文件集的目录结构、文件数据和文件属性三类信息同时保存到数据库,将文件集存储到数据库,是将文件集的相关信息从用户主机的文件系统通过网络转移到服务器的数据库的过程,在这个过程中,要保证文件集信息的完整性及文件集信息的可恢复性。
3、根据权利要求1所述的树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,所说的文件节点数据结构是,文件节点由文件位置、文件大小和文件属性三部分构成;文件属性又由文件名称、文件类型和文件的其他属性构成;在打包过程中,文件系统中离散存储的文件数据组合成一个连续的文件集数据块,要能“记住”每一个文件在文件集数据块中的位置,文件节点的“文件位置”项记录的是文件对应的数据块在文件集数据块中的起始位置,“文件大小”项记录的是文件对应的数据块在文件集数据块中的长度,能在连续的文件集数据块迅速地定位文件对应的数据块部分。
4、根据权利要求1所述的树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,所说的目录节点数据结构,是由子目录节点集合和文件节点集合两部分构成,子目录节点集合由若干目录节点构成,对应于该目录下的所有子目录,文件节点集合由若干文件节点构成,对应于该目录下的所有文件。
5、根据权利要求1所述的树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,所说的文件集目录结构对象的序列化是将对象转换为字节流以将其保存在内存、数据库或文件中的过程,保存对象的状态,以便可以在需要时重新创建对象,相反的过程称为反序列化,在构造了目录结构对象之后,要用序列化技术将其转换为数据流的形式,面向对象的编程语言都提供对序列化技术的支持。
6、根据权利要求1所述树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,所说的数据块到数据库BLOB列的存储,BLOB类型的数据存放在数据行之外的数据库存储区域,而在数据行中存放的是指向对应存储区域的16字节的指针,BLOB数据的存储过程分为两步:第一步,从数据行的BLOB列获取指针;第二步,将数据写入指针指向的存储区域,分别要将文件集数据块和目录结构对象数据块从客户端主机内存通过网络转移到服务器数据库的BLOB存储区,支持BLOB的数据库系统,提供相应的存取BLOB数据的应用程序接口。
7、根据权利要求1所述树形目录结构下的文件集在数据库中的存储和访问方法,其特征在于,所说的文件集目录结构对象由Windows资源管理器形成可视化目录结构对象,即一、在窗体的左边用树视图控件显示文件集的目录结构;二、点击树视图控件的目录节点时,在窗体右边的列表控件中显示当前目录下的子目录和文件的名称,用于记录文件在目录结构中的位置以及文件的属性信息的文件节点,用户对欲访问的对目录结构中文件节点的选择,根据文件节点的数据结构,知道其中记录文件的数据块在文件集数据块中的起始位置和大小,这同时也是文件的数据块在数据库中文件集BLOB数据块的起始位置和大小,可以迅速对文件集BLOB数据块中的文件数据块进行定位,使用相应的应用程序接口将其从数据库中读取出来,生成临时文件,并用合适的应用程序打开,即完成了对数据库存储的文件集的文件的随机访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100659380A CN101630322B (zh) | 2009-08-26 | 2009-08-26 | 树形目录结构下的文件集在数据库中的存储和访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100659380A CN101630322B (zh) | 2009-08-26 | 2009-08-26 | 树形目录结构下的文件集在数据库中的存储和访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101630322A true CN101630322A (zh) | 2010-01-20 |
CN101630322B CN101630322B (zh) | 2011-04-13 |
Family
ID=41575430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100659380A Expired - Fee Related CN101630322B (zh) | 2009-08-26 | 2009-08-26 | 树形目录结构下的文件集在数据库中的存储和访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101630322B (zh) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298645A (zh) * | 2011-09-21 | 2011-12-28 | 深圳市万兴软件有限公司 | 一种多次构建对象树结构的方法及计算机 |
CN102495905A (zh) * | 2011-12-23 | 2012-06-13 | 天津神舟通用数据技术有限公司 | 一种基于行存数据库引擎的列存方法 |
CN102521282A (zh) * | 2011-11-25 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 基于行指针的数据库垂直分区存储方法 |
CN102567507A (zh) * | 2011-12-26 | 2012-07-11 | 深圳市万兴软件有限公司 | 一种在mac下创建树的方法及系统 |
CN102768672A (zh) * | 2012-06-12 | 2012-11-07 | 上海方正数字出版技术有限公司 | 一种磁盘空间管理方法和装置 |
CN102841918A (zh) * | 2012-06-29 | 2012-12-26 | 用友软件股份有限公司 | 二进制长对象流化数据处理装置和方法 |
CN103685538A (zh) * | 2013-12-20 | 2014-03-26 | 中电长城网际系统应用有限公司 | 一种分布式网络架构 |
CN104573011A (zh) * | 2015-01-08 | 2015-04-29 | 北京数码大方科技股份有限公司 | 网盘文件的展现方法及装置 |
CN104699820A (zh) * | 2015-03-30 | 2015-06-10 | 郑州悉知信息技术有限公司 | 一种网页的产品类目导航编辑方法、网页显示方法及装置 |
WO2015184830A1 (zh) * | 2014-10-24 | 2015-12-10 | 中兴通讯股份有限公司 | 一种设备中管理文件的方法和装置 |
CN106095871A (zh) * | 2016-06-06 | 2016-11-09 | 无锡天脉聚源传媒科技有限公司 | 一种建立数据库目录结构的方法及装置 |
WO2017071509A1 (zh) * | 2015-10-26 | 2017-05-04 | 华为技术有限公司 | 文件系统目录树修复方法和装置 |
CN107066551A (zh) * | 2017-03-23 | 2017-08-18 | 中国科学院计算技术研究所 | 一种树状数据的行式和列式存储方法及系统 |
CN107729415A (zh) * | 2017-09-27 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种压缩文件内容展示方法和装置 |
CN108287905A (zh) * | 2018-01-26 | 2018-07-17 | 华南理工大学 | 一种网络流特征的提取与存储方法 |
CN108509397A (zh) * | 2018-03-21 | 2018-09-07 | 清华大学 | 基于标识符技术的层次化结构数据的存储、解析方法及系统 |
CN108984622A (zh) * | 2018-06-14 | 2018-12-11 | 烽火通信科技股份有限公司 | 家庭网关快速访问配置数据的存储访问方法及系统 |
CN109284435A (zh) * | 2018-03-28 | 2019-01-29 | 北京航空航天大学 | 面向互联网的用户交互痕迹捕获、存储和检索的系统及方法 |
CN109947705A (zh) * | 2017-11-28 | 2019-06-28 | 中国石油化工股份有限公司 | 一种石油工程数据的存取系统与方法 |
CN110457953A (zh) * | 2019-07-26 | 2019-11-15 | 中国银行股份有限公司 | 一种文件完整性的检测方法和装置 |
CN110531940A (zh) * | 2019-06-06 | 2019-12-03 | 重庆紫光华山智安科技有限公司 | 视频文件处理方法及装置 |
CN111339042A (zh) * | 2020-03-26 | 2020-06-26 | 佛山中科芯蔚科技有限公司 | 数据的操作处理方法、系统及调度服务器 |
WO2020192663A1 (zh) * | 2019-03-26 | 2020-10-01 | 华为技术有限公司 | 一种数据管理方法及相关设备 |
CN111858495A (zh) * | 2020-07-23 | 2020-10-30 | 珠海豹趣科技有限公司 | 文件信息获取方法、装置、存储介质及电子设备 |
CN112148680A (zh) * | 2020-09-27 | 2020-12-29 | 极道科技(北京)有限公司 | 一种基于分布式图数据库的文件系统元数据管理方法 |
CN113204549A (zh) * | 2021-04-20 | 2021-08-03 | 北京达佳互联信息技术有限公司 | 数据存储方法、数据读取方法、装置、终端及存储介质 |
US11550812B2 (en) | 2021-02-22 | 2023-01-10 | International Business Machines Corporation | Processing a federated query via data serialization |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6917949B1 (en) * | 2000-08-30 | 2005-07-12 | International Business Machines Corporation | Temporary lobs directory management |
AU2004208274B2 (en) * | 2003-01-28 | 2007-09-06 | Samsung Electronics Co., Ltd. | Method and system for managing media file database |
JP4502369B2 (ja) * | 2004-03-22 | 2010-07-14 | キヤノン株式会社 | カタログ管理方法及び情報処理装置 |
WO2006064436A2 (en) * | 2004-12-15 | 2006-06-22 | Koninklijke Philips Electronics N.V. | System and method for managing binary large objects |
-
2009
- 2009-08-26 CN CN2009100659380A patent/CN101630322B/zh not_active Expired - Fee Related
Cited By (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298645A (zh) * | 2011-09-21 | 2011-12-28 | 深圳市万兴软件有限公司 | 一种多次构建对象树结构的方法及计算机 |
CN102521282A (zh) * | 2011-11-25 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 基于行指针的数据库垂直分区存储方法 |
CN102495905A (zh) * | 2011-12-23 | 2012-06-13 | 天津神舟通用数据技术有限公司 | 一种基于行存数据库引擎的列存方法 |
CN102567507A (zh) * | 2011-12-26 | 2012-07-11 | 深圳市万兴软件有限公司 | 一种在mac下创建树的方法及系统 |
CN102567507B (zh) * | 2011-12-26 | 2013-12-18 | 深圳万兴信息科技股份有限公司 | 一种在mac下创建树的方法及系统 |
CN102768672B (zh) * | 2012-06-12 | 2016-02-17 | 北大方正集团有限公司 | 一种磁盘空间管理方法和装置 |
CN102768672A (zh) * | 2012-06-12 | 2012-11-07 | 上海方正数字出版技术有限公司 | 一种磁盘空间管理方法和装置 |
CN102841918A (zh) * | 2012-06-29 | 2012-12-26 | 用友软件股份有限公司 | 二进制长对象流化数据处理装置和方法 |
CN102841918B (zh) * | 2012-06-29 | 2016-05-04 | 用友网络科技股份有限公司 | 二进制长对象流化数据处理装置和方法 |
CN103685538A (zh) * | 2013-12-20 | 2014-03-26 | 中电长城网际系统应用有限公司 | 一种分布式网络架构 |
WO2015184830A1 (zh) * | 2014-10-24 | 2015-12-10 | 中兴通讯股份有限公司 | 一种设备中管理文件的方法和装置 |
CN104573011B (zh) * | 2015-01-08 | 2018-11-06 | 北京数码大方科技股份有限公司 | 网盘文件的展现方法及装置 |
CN104573011A (zh) * | 2015-01-08 | 2015-04-29 | 北京数码大方科技股份有限公司 | 网盘文件的展现方法及装置 |
CN104699820B (zh) * | 2015-03-30 | 2018-06-12 | 郑州悉知信息科技股份有限公司 | 一种网页的产品类目导航编辑方法、网页显示方法及装置 |
CN104699820A (zh) * | 2015-03-30 | 2015-06-10 | 郑州悉知信息技术有限公司 | 一种网页的产品类目导航编辑方法、网页显示方法及装置 |
WO2017071509A1 (zh) * | 2015-10-26 | 2017-05-04 | 华为技术有限公司 | 文件系统目录树修复方法和装置 |
US10817469B2 (en) | 2015-10-26 | 2020-10-27 | Huawei Technologies Co., Ltd. | Method and apparatus for repairing file system directory tree |
CN106095871A (zh) * | 2016-06-06 | 2016-11-09 | 无锡天脉聚源传媒科技有限公司 | 一种建立数据库目录结构的方法及装置 |
CN107066551B (zh) * | 2017-03-23 | 2020-04-03 | 中国科学院计算技术研究所 | 一种树状数据的行式和列式存储方法及系统 |
CN107066551A (zh) * | 2017-03-23 | 2017-08-18 | 中国科学院计算技术研究所 | 一种树状数据的行式和列式存储方法及系统 |
CN107729415A (zh) * | 2017-09-27 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种压缩文件内容展示方法和装置 |
CN109947705B (zh) * | 2017-11-28 | 2021-03-16 | 中国石油化工股份有限公司 | 一种石油工程数据的存取系统与方法 |
CN109947705A (zh) * | 2017-11-28 | 2019-06-28 | 中国石油化工股份有限公司 | 一种石油工程数据的存取系统与方法 |
CN108287905A (zh) * | 2018-01-26 | 2018-07-17 | 华南理工大学 | 一种网络流特征的提取与存储方法 |
CN108287905B (zh) * | 2018-01-26 | 2020-04-21 | 华南理工大学 | 一种网络流特征的提取与存储方法 |
CN108509397A (zh) * | 2018-03-21 | 2018-09-07 | 清华大学 | 基于标识符技术的层次化结构数据的存储、解析方法及系统 |
CN108509397B (zh) * | 2018-03-21 | 2020-07-31 | 清华大学 | 基于标识符技术的层次化结构数据的存储、解析方法及系统 |
CN109284435A (zh) * | 2018-03-28 | 2019-01-29 | 北京航空航天大学 | 面向互联网的用户交互痕迹捕获、存储和检索的系统及方法 |
CN108984622A (zh) * | 2018-06-14 | 2018-12-11 | 烽火通信科技股份有限公司 | 家庭网关快速访问配置数据的存储访问方法及系统 |
CN111753141B (zh) * | 2019-03-26 | 2024-06-11 | 华为技术有限公司 | 一种数据管理方法及相关设备 |
WO2020192663A1 (zh) * | 2019-03-26 | 2020-10-01 | 华为技术有限公司 | 一种数据管理方法及相关设备 |
CN111753141A (zh) * | 2019-03-26 | 2020-10-09 | 华为技术有限公司 | 一种数据管理方法及相关设备 |
CN110531940A (zh) * | 2019-06-06 | 2019-12-03 | 重庆紫光华山智安科技有限公司 | 视频文件处理方法及装置 |
CN110457953A (zh) * | 2019-07-26 | 2019-11-15 | 中国银行股份有限公司 | 一种文件完整性的检测方法和装置 |
CN111339042B (zh) * | 2020-03-26 | 2024-03-01 | 北京快映互娱传媒有限公司 | 数据的操作处理方法、系统及调度服务器 |
CN111339042A (zh) * | 2020-03-26 | 2020-06-26 | 佛山中科芯蔚科技有限公司 | 数据的操作处理方法、系统及调度服务器 |
CN111858495A (zh) * | 2020-07-23 | 2020-10-30 | 珠海豹趣科技有限公司 | 文件信息获取方法、装置、存储介质及电子设备 |
CN111858495B (zh) * | 2020-07-23 | 2024-04-05 | 珠海豹趣科技有限公司 | 文件信息获取方法、装置、存储介质及电子设备 |
CN112148680A (zh) * | 2020-09-27 | 2020-12-29 | 极道科技(北京)有限公司 | 一种基于分布式图数据库的文件系统元数据管理方法 |
CN112148680B (zh) * | 2020-09-27 | 2024-04-05 | 极道科技(北京)有限公司 | 一种基于分布式图数据库的文件系统元数据管理方法 |
US11550812B2 (en) | 2021-02-22 | 2023-01-10 | International Business Machines Corporation | Processing a federated query via data serialization |
US11947560B2 (en) | 2021-02-22 | 2024-04-02 | International Business Machines Corporation | Processing a federated query via data serialization |
CN113204549A (zh) * | 2021-04-20 | 2021-08-03 | 北京达佳互联信息技术有限公司 | 数据存储方法、数据读取方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101630322B (zh) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101630322B (zh) | 树形目录结构下的文件集在数据库中的存储和访问方法 | |
CN105408857B (zh) | 数据仓库系统、生成关系数据库的多列索引的方法和系统 | |
US8862540B2 (en) | Replica placement strategy for distributed data persistence | |
CN102906751B (zh) | 一种数据存储、数据查询的方法及装置 | |
CN101916299B (zh) | 一种基于文件系统的三维空间数据存储管理方法 | |
EP2302538B1 (en) | Method and system for capturing change of data | |
CN105701104B (zh) | 一种基于地理信息的三维数据引擎系统 | |
CN106611046A (zh) | 基于大数据技术的空间数据存储处理中间件框架 | |
CN102999584A (zh) | 电力gis跨平台空间数据服务方法及系统 | |
CN100576209C (zh) | 关联数据索引、检索、存储和呈现控制信息系统构建方法 | |
CN112559481A (zh) | 一种基于分布式系统和关系数据库的数据存储方法及装置 | |
CN104239511B (zh) | 一种面向MongoDB的用户空间文件系统实现方法 | |
CN101641695A (zh) | 资源接入过滤系统及供与资源接入过滤系统一起使用的数据库结构 | |
CN103324763B (zh) | 一种手机端树形数据结构的展现方法 | |
CN109063196A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN110674154A (zh) | 一种基于Spark的对Hive中数据进行插入、更新和删除的方法 | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
US20190311051A1 (en) | Virtual columns to expose row specific details for query execution in column store databases | |
CN101499097B (zh) | 基于散列表的数据流频繁模式内存压缩存储方法 | |
CN114328779A (zh) | 基于云计算高效检索浏览的地理信息云盘 | |
CN105701179B (zh) | 基于UniWhale的分布式文件系统的视窗访问方法 | |
Jain et al. | Overview of popular graph databases | |
Yuan et al. | Construction of the system framework of Spatial Data Warehouse in Internet of Things environments | |
CN102831216B (zh) | 一种保持物体几何形状信息的图像检索系统及方法 | |
Gong et al. | Object-oriented and integrated spatial data model for managing image, DEM, and vector data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110413 Termination date: 20120826 |