sql server存储图像数据的策略与方法

上传人:第*** 文档编号:38762864 上传时间:2018-05-07 格式:DOC 页数:5 大小:39KB
返回 下载 相关 举报
sql server存储图像数据的策略与方法_第1页
第1页 / 共5页
sql server存储图像数据的策略与方法_第2页
第2页 / 共5页
sql server存储图像数据的策略与方法_第3页
第3页 / 共5页
sql server存储图像数据的策略与方法_第4页
第4页 / 共5页
sql server存储图像数据的策略与方法_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《sql server存储图像数据的策略与方法》由会员分享,可在线阅读,更多相关《sql server存储图像数据的策略与方法(5页珍藏版)》请在金锄头文库上搜索。

1、SQL Server 存储图像数据的策略与方法目前对于图像数据的管理大都采用表+实体的方法,即图像数据以文件形式存放于指定的 计算机目录下,在数据库表中只反映图像数据文件的存储路径。这种管理模式,给数据的 维护增加了难度,同时,也给数据的安全带来一定的隐患。因此,要真正做到各类数据在 数据库中安全管理,研究和探索直接将图像数据存储在数据库关系表中的方法是非常必要 的。笔者在 Visual Basic 6.0 开发环境中,采用客户机服务器的工作方式,针对 SQL Server 数据库关系表中存储图像数据的问题进行了初步探讨,提出了一套基本解决方案,供读者 参考。一、 存储图像数据的策略图像数据库

2、技术一直致力于解决海量数字图像的有效存储和管理问题。它是数据库技 术的继承和发展,一方面,图像数据和文本数据存在着本质的区别,在文本数据领域得以 成功应用的传统数据库技术,如果一成不变的照搬到图像数据库领域,结果往往是低效, 甚至无效;另一方面,传统数据库的许多成果,如 SQL 语言、索引技术等都值得图像数据 库借鉴。上述两个方面的结合成为目前图像数据库技术发展的主流。1.1 BLOB 数据类型BLOB 是非常巨大的不定的二进制或者字符型数据,通常是文档(.txt、.doc)和图片 (.jpeg、.gif、.bmp) ,它可以存储在数据库中。在 SQL Server 中,BLOB 可以是 te

3、xt、ntext 或者 image 数据类型。 Image 数据类型存储的是长度不确定的二进制数据,最大长度是 2GB。BLOB 数据在 SQL Server 系统中的存储方式不同于普通的数据类型,对于普通类型的数 据系统直接在用户定义的字段上存储数据值,而对于 BLOB 类型数据,系统开辟新的存储 页面来存放这些数据,表中 BLOB 类型数据字段存放的仅是一个 16 个字节的指针,该指针 指向存放该条记录的 BLOB 数据的页面。 1.2 BLOB 的设计策略BLOB 数据是数据量很大的数据类型,它会占用大量的硬盘空间、内存和网络资源,因 此合理地设计包含有 BLOB 数据类型的属性表,对提

4、高存储效率、查询速度有很大的影响。 一般 BLOB 的设计原则如下:(1) 使用 BLOB 数据类型还是使用 varchar 或者 varbinary 数据类型二进制大对象并不一定要存储为 text、ntext 或者 image 数据类型,它们也可以作为 varchar 或者 varbinary 数据类型村处在表格中。数据类型的选择要根据将要存储的 BLOB 的 实际大小。如果数据不会超过 8K,那么就使用 Varchar 或者 varbinary 数据类型。如果这些 大对象的尺寸超过 8K,那么就使用 text、ntext 或者 image 数据类型。(2) 存储 BLOB 在数据库中或者在

5、文件系统中常见的设计问题是将图片存在数据库中还是存在文件系统中。在大多数情况下,最好 把图片文件与其它数据一起存在数据库中。因为将影像数据文件存储在数据库中有许多优 点:易于管理 当 BLOB 与其他数据一起存储在数据库中时,BLOB 和表格是数据一起备份 和恢复。这样就降低了表格数据与 BLOB 数据不同步的机会,而且降低了其他用户无意中 删除了文件系统中 BLOB 数据位置的路径和风险。另外,将数据存储在数据库中 BLOB 和其 他数据的插入、更新和删除都在同一个事务中实现。这样就确保了数据的一致性和文件与 数据库之间的一致性。还有一点好处是不需要为文件系统中的文件单独设置安全性。可伸缩性

6、 尽管文件系统被设计为能够处理大量不同大小的对象,但是文件系统不能对 大量小文件进行优化。在这种情况下,数据库系统可以进行优化。可用性 数据库具有比文件系统更多的可用性。数据库复制允许在分布式环境中复制、 分配和潜在的修改数据。在主系统失效的情况下,日志转移提供了保留数据库备用副本的 方法。 当然,在某些情况下,将图片存储在文件系统中将是更好的选择:(1)使用图片的应用程序需要数据流性能,例如实时的视频重现。(2)象 Microsoft PhotoDraw 或者 Adobe Photoshop 这样的应用程序经常访问 BLOB, 这些应用程序只知道怎样访问文件。(3)需要使用一些 NTFS 文

7、件系统中的特殊功能,例如远程存储。二、 存储图像数据的方法1 建立具有 image 宇段的 SQL Server 数据库当需要在 SQL Server 数据库中存储图像数据时,首先应建立包含 image 数据类型字段 的数据库关系表。SQL Server 数据库平台支持的数据类型中,image 数据类型主要用于存储 图像数据等大段的二进制数据。SQL Server 7.0 之后的版本,image 类型可存储 2GB 的数据。2 使用 Remote Data 控件建立与数据库的连接Remote Data 控件是在 Visual Basic 应用程序中用来获取远程数据的控件。它在远程 数据对象(R

8、DO)和数据绑定控件之间提供了接口,只要给它提供有关数据存储的位置、获取 的数据和一些接口控制,就可以连接到数据库,实现对数据库的基本操作。使用 Remote Data 控件建立与远程数据库的连接步骤如下:1在 Visual Basic 的窗体中加入一个 Remote Data 控件。 ,2在 Remote Data 控件 DataSourceName 属性的下拉列表中选择一个 ODBC 数据源。 例如 pubs。3在 Remote Data 控件的 SQL 属性中输入 SQL 查询语句。例如,Select * from pub_info。2.3 绑定 OLE 和 Remote Data 控件

9、实现图像数据的存储与编辑OLE 是允许应用程序相互之间交换和显示数据的一项技术,使用 OLE,可以从支持 OLE 技术的任何应用程序中读取信息,也可以在任何支持 OLE 的程序中显示和编辑它。在 Visual Basic 中,可利用 OLE 容器控件与 Remote Data 控件的绑定,来实现显示、存储和编 辑 SQL Serve 数据库中的 image 类型数据。 1.显示 SQL Serve 数据库 image 类型字段的图像数据具体步骤如下:(1)在加入了 Remote Data 控件的 Visual Basic 的窗体中,添加一个 OLE 容器控件。创建 OLE 容器控件时,会出现“

10、插入对象:对话框,此时点击“取消”按钮,不必为该容器 指定对象。(2)将 OLE 容器控件的 DataSource 属性设置为 Remote Data 控件的名字,实现控件的绑 定。(3)在 OLE 容器控件。DataField 属性的下拉列表中选择要显示的字段名。例如,logo。(4)运行应用程序。对于包含 image 数据类型的 logo 字段的数据将在 OLE 容器控件中显 示一幅图像。2.在 SQL Sever 数据库 image 类型字段中添加存储图像数据具体步骤如下:(1)将 Remote Data 控件的 EOFAction 属性设置为 rdAddNew,实现数据库的数据添加功

11、能。(2)在 Visual Baisic 的窗体中添加一个 CommandButton 控件,并编写图像文件嵌入 OLE 容器控件的程序代码。例如:Private Sub Command_Click()OLEl.CreateEmbed“c:图片bmp” End Sub(3)运行应用程序,点击 Remote Data 控件的记录指示按钮,移动到新的记录,然后点 击 CommandButton 控件按钮,实现图像数据的添加入库操作。3.编辑 SQL Serve 数据库 image 数据类型字段的图像数据具体步骤如下:(1)在 Visual Basic 的窗体中添加一个 CommandButton

12、控件,编写对 OLE 对象的编辑程 序代码。例如:Private Sub Command2-_Click() OLEl.DoVerb VbOLEOpen End Sub (2)运行应用程序,点击 Remote Data 控件的记录指示按钮,选择需要编辑的图像,然 后点击 CommandButton 控件按钮,在分隔的应用程序窗口打开对象,进行图像的编辑操作。4、图像文件自动入库方式的实现在数据库的实际应用中,经常需要将图像文件批量存储,以提高数据入库操作的自动 化程度。对于图像文件批量存储,在程序代码的编写中,可充分利用 OLE 容器控件与 RemoteData 控件的诸多属性和方法,加以实现

13、。具体步骤如下:(1)将 OLE 和 RemoteData 控件的 Visible 属性设置成 False,使 OLE 和 RemoteData 控件 不可视。(2)建立图像文件的批处理文件。(3)编写以下基本代码,实现批处理功能。Private Sub Command3_Click() Dim FileName As StringOpen “c:tesffiletxt“ForlnputAs#1打开批处理文件。 DoWhileNotEOF(1)循环至文件尾。 Input#l,FileName读入图像文件名。MSRDCl.Resultset.AddNew结果集添加记录 OLEl.CreateEmbedFileName嵌入图像文件 MSRDCl.Resultset.UpdateLoop Close #1 End Sub(4)运行应用程序。点击 CommandButton 控件按钮,完成图像文件的自动入库。五、结束语随着 SQL Serve 数据库管理系统功能的不断增强、性能的不断完善,将各类数据完全由 数据库管理系统统一存储和管理,已成为技术发展的趋势。只有这样,SQL Serve 数据库管 理系统的强大功能才能得到充分发挥,数据的安全性才能得到充分的保障,使得诸如数据 库复制、数据的转移等许多工作,变得非常简单容易。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号