[发明专利]树形目录结构下的文件集在数据库中的存储和访问方法无效
申请号: | 200910065938.0 | 申请日: | 2009-08-26 |
公开(公告)号: | CN101630322A | 公开(公告)日: | 2010-01-20 |
发明(设计)人: | 吕志平;李昌贵;赵冬青;李健;张西光;陈正生 | 申请(专利权)人: | 中国人民解放军信息工程大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 郑州天阳专利事务所(普通合伙) | 代理人: | 聂孟民 |
地址: | 450052*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 树形 目录 结构 文件 数据库 中的 存储 访问 方法 | ||
一、技术领域
本发明涉及计算机应用技术,特别是一种树形目录结构下的文件集在数据库中的存储和访问方法。
二、背景技术
随着计算机科学与多媒体技术的发展,在计算机网络、移动计算机、手机、卫星导航仪等具有数据库系统的实用产品的开发中,数据库不但要处理简单的结构化数据,还要经常处理大量复杂的非结构化数据,如图形、声音文件或大文本文件等,这些复杂的非结构化数据往往以文件为单位在数据库中存取。除了单个文件的数据库存取,在应用中,还需要将文件系统中按照一定的目录结构组织起来的多个文件的集合(称为文件集)作为一个整体存储在数据库。
对于单个文件在数据库中的存取,有分离存储方法和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所示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910065938.0/2.html,转载请声明来源钻瓜专利网。