问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL Server如何存储图像数据

发布网友 发布时间:2022-04-22 08:13

我来回答

1个回答

热心网友 时间:2022-04-12 22:39

不知道这样说你是否满意。我愿意回答你的问题?还有吗?

目前对于图像数据的管理大都采用表+实体的方法,即图像数据以文件形式存放于指定的计算机目录下,在数据库表中只反映图像数据文件的存储路径。这种管理模式,给数据的维护增加了难度,同时,也给数据的安全带来一定的隐患。因此,要真正做到各类数据在数据库中安全管理,研究和探索直接将图像数据存储在数据库关系表中的方法是非常必要的。

笔者在Visual Basic 6.0开发环境中,采用客户机/服务器的工作方式,针对SQL Server数据库关系表中存储图像数据的问题进行了初步探讨,提出了一套基本解决方案,供读者参考。

一、 存储图像数据的策略

图像数据库技术一直致力于解决海量数字图像的有效存储和管理问题。它是数据库技术的继承和发展,一方面,图像数据和文本数据存在着本质的区别,在文本数据领域得以成功应用的传统数据库技术,如果一成不变的照搬到图像数据库领域,结果往往是低效,甚至无效;另一方面,传统数据库的许多成果,如SQL语言、索引技术等都值得图像数据库借鉴。上述两个方面的结合成为目前图像数据库技术发展的主流。

1.1 BLOB数据类型

BLOB是非常巨大的不定的二进制或者字符型数据,通常是文档(.txt、.doc)和图片(.jpeg、.gif、.bmp),它可以存储在数据库中。在SQL Server中,BLOB可以是text、ntext或者image数据类型。 Image数据类型存储的是长度不确定的二进制数据,最大长度是2GB。

BLOB数据在SQL Server系统中的存储方式不同于普通的数据类型,对于普通类型的数据系统直接在用户定义的字段上存储数据值,而对于BLOB类型数据,系统开辟新的存储页面来存放这些数据,表中BLOB类型数据字段存放的仅是一个16个字节的指针,该指针指向存放该条记录的BLOB数据的页面。

1.2 BLOB的设计策略

BLOB数据是数据量很大的数据类型,它会占用大量的硬盘空间、内存和网络资源,因此合理地设计包含有BLOB数据类型的属性表,对提高存储效率、查询速度有很大的影响。一般BLOB的设计原则如下:

(1) 使用BLOB数据类型还是使用varchar或者varbinary数据类型

二进制大对象并不一定要存储为text、ntext或者image数据类型,它们也可以作为varchar或者varbinary数据类型村处在表格中。数据类型的选择要根据将要存储的BLOB的实际大小。如果数据不会超过8K,那么就使用Varchar或者varbinary数据类型。如果这些大对象的尺寸超过8K,那么就使用text、ntext或者image数据类型。

(2) 存储BLOB在数据库中或者在文件系统中

常见的设计问题是将图片存在数据库中还是存在文件系统中。在大多数情况下,最好把图片文件与其它数据一起存在数据库中。因为将影像数据文件存储在数据库中有许多优点:

易于管理 当BLOB与其他数据一起存储在数据库中时,BLOB和表格是数据一起备份和恢复。这样就降低了表格数据与BLOB数据不同步的机会,而且降低了其他用户无意中删除了文件系统中BLOB数据位置的路径和风险。另外,将数据存储在数据库中BLOB和其他数据的插入、更新和删除都在同一个事务中实现。这样就确保了数据的一致性和文件与数据库之间的一致性。还有一点好处是不需要为文件系统中的文件单独设置安全性。

可伸缩性 尽管文件系统被设计为能够处理大量不同大小的对象,但是文件系统不能对大量小文件进行优化。在这种情况下,数据库系统可以进行优化。

可用性 数据库具有比文件系统更多的可用性。数据库复制允许在分布式环境中复制、分配和潜在的修改数据。在主系统失效的情况下,日志转移提供了保留数据库备用副本的方法。

当然,在某些情况下,将图片存储在文件系统中将是更好的选择:

(1)使用图片的应用程序需要数据流性能,例如实时的视频重现。

(2)象Microsoft PhotoDraw或者Adobe Photoshop这样的应用程序经常访问BLOB,这些应用程序只知道怎样访问文件。

(3)需要使用一些NTFS文件系统中的特殊功能,例如远程存储。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单机组装6000元预算,INTEL和AMD下不同的配置方案 手上有5000元,想DIY一台台式机,主要是玩大型单机游戏,像孤岛危机2。求... ...及各自优点缺点和如何修改。。 CPU 至强 E3 1230 v2主板 微星Z... 求配家用游戏电脑4000-6000 嘴巴上长水泡怎么办? 嘴巴旁边长了水泡怎么回事 他不回信息的句子 市面上有哪些浪漫又个性的牛仔单品值得入手? 2021年流行什么外套显瘦不挑身材 夏季有哪些百搭又显高级的单品值得选择? 粮油店要怎样经营?利润是多少? 带幻字的诗句 支付宝转账到支付宝有积分吗? 数码相机一般以哪些格式存储图像呀 程序员可以去培训机构当讲师吗? 带幻字和尘字的诗!!!!! 支付宝怎么赚积分最快 大量图片 直接存储图像好还是存储路径 图像存储的格式 大小问题 支付宝如何去赚积分 电子账册和电子化手册的区别 电子账册预报核应该提交哪些单证? 图像的存储方式与感光元件有什么关系? 图片保存问题? 请问汉中 激光去痣一般多钱?价格是怎么定的? 我... 电子账册的电子账册 宜兴哪里点痣 什么是电子账册? 南宁哪里可以点痣 如何按颜色索引存储图像 支付宝转账给多少积分 程序员培训出来到底有没有用? 带有幻.影.玉.醉的诗 如何经营五谷杂粮店 在多媒体计算机中存储图像的关键技术是什么…… 投资资金怎么使用 带有千和幻的诗句 支付宝转账可以获得多少芝麻信用分 为什么很多企业喜欢用培训机构毕业的程序员? 如何经营好五谷杂粮养生加盟店? 资金怎么转帐? 关于梦幻的诗句 支付宝转账2万有多少积分 生鲜五谷杂粮经营的特点? 如何安排资金 关于幻想的诗句 股市资金怎么流动 开一家五谷杂粮加盟店需要投入多少钱? 支付宝转账怎么用蚂蚁积分 人生如梦如幻诗词