摘要:討論了Web多媒體數(shù)據(jù)的存儲(chǔ)方式,重點(diǎn)研究了圖片文件在SQL Server 2005中的存儲(chǔ)方法,并實(shí)現(xiàn)了利用asp.net對(duì)二進(jìn)制數(shù)據(jù)文件的讀取及顯示方法,最后討論了其他多媒體文件存儲(chǔ)方式所需要考慮的多方面問(wèn)題,為Web應(yīng)用中多媒體數(shù)據(jù)存儲(chǔ)提供了參考。
關(guān)鍵詞:數(shù)據(jù)庫(kù);多媒體數(shù)據(jù)存儲(chǔ);SQL Server 2005;web應(yīng)用
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)10-2278-04
早期因特網(wǎng)瀏覽器僅支持文本,甚至被限制為單一顏色的單一字體。隨著Internet的快速發(fā)展以及網(wǎng)絡(luò)傳輸率的提高,人們對(duì)Web上的媒體需求越來(lái)越多,文本、書籍、圖片、音頻、視頻等各種各樣的多媒體資源目前在瀏覽器中已經(jīng)得到了很好的支持。
在Web應(yīng)用程序開(kāi)發(fā)和使用過(guò)程中,有相當(dāng)多的場(chǎng)合需要使用多媒體內(nèi)容表達(dá)程序,因此對(duì)多媒體的數(shù)據(jù)進(jìn)行存儲(chǔ)就顯得非常重要了。例如在人事管理系統(tǒng)中,需要存儲(chǔ)員工照片、掃描并存儲(chǔ)員工學(xué)歷證書獲獎(jiǎng)證書并能夠通過(guò)應(yīng)用程序顯示。又如在教學(xué)資源管理系統(tǒng)中,需要存儲(chǔ)文字資源、圖片資源、課件資源、音頻資源及視頻資源以供查閱。再如在多媒體論壇上,需要由用戶上傳多種多媒體資源,包括圖片、聲音、視頻等。
在web應(yīng)用程序中引用的多媒體資源存儲(chǔ)方式一般有兩種方式,一種是存儲(chǔ)文件到指定路徑下,將文件與應(yīng)用程序的相對(duì)路徑以及文件名存儲(chǔ)到數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)中存儲(chǔ)的內(nèi)容相對(duì)較少。這種存儲(chǔ)方式的特點(diǎn)是數(shù)據(jù)讀取比較容易,但是對(duì)數(shù)據(jù)管理不方便,多媒體的信息完全暴露在機(jī)器設(shè)備之上,信息容易被刪除、修改或者替換,數(shù)據(jù)的安全性和可靠性得不到保證,這種方式不利于保存重要的媒體信息。另外一種就是把多媒體信息直接保存在數(shù)據(jù)庫(kù)中,保證了數(shù)據(jù)的一致性和安全性,這也是目前多媒體數(shù)據(jù)庫(kù)的發(fā)展趨勢(shì),但這種方式的數(shù)據(jù)讀取比較麻煩,因?yàn)橐话愣嗝襟w數(shù)據(jù)都是以二進(jìn)制的數(shù)據(jù)存儲(chǔ)方式存儲(chǔ)在數(shù)據(jù)庫(kù)中,需要通過(guò)第三方的工具來(lái)完成數(shù)據(jù)的存儲(chǔ)和讀取。該文主要研究以多媒體數(shù)據(jù)庫(kù)實(shí)現(xiàn)圖片的二進(jìn)制存儲(chǔ)和讀取方法,并比較其他類型多媒體文件存儲(chǔ)方式的應(yīng)用。
1 SQL Server 2005數(shù)據(jù)表的建立
1.1數(shù)據(jù)類型選擇
圖片數(shù)據(jù)要存儲(chǔ)在數(shù)據(jù)庫(kù)中實(shí)際上就是用二進(jìn)制數(shù)據(jù)的形式將圖片數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,需要使用的時(shí)候利用二進(jìn)制讀取方式讀取文件。在SQL Server 2000中,有Image、Binary和varbinary三種數(shù)據(jù)類型可以用來(lái)存儲(chǔ)二進(jìn)制文件。在SQL Server 2005中,有Image、Binary、VarBinary(n)和VarBianry(max)這幾種數(shù)據(jù)類型都能夠用來(lái)存儲(chǔ)二進(jìn)制數(shù)據(jù)。初學(xué)者一般都會(huì)選擇Image這個(gè)數(shù)據(jù)類型來(lái)進(jìn)行圖片存儲(chǔ),這是由于該數(shù)據(jù)類型名稱的誤解,Image數(shù)據(jù)類型的文件大小可變,最大可存儲(chǔ)2GB的文件,若系統(tǒng)需要高精度的圖片存儲(chǔ),對(duì)于該數(shù)據(jù)類型無(wú)法存儲(chǔ)大容量的圖片數(shù)據(jù)。雖然該圖像數(shù)據(jù)類型也包含在SQL Server 2000、SQL Server 2005和SQL Server 2008之中,但微軟稱,目前還保留Image圖像數(shù)據(jù)類型是未來(lái)向下兼容的需要,但在將來(lái)某個(gè)時(shí)候可能就會(huì)將其舍棄,因此對(duì)于圖片存儲(chǔ)Image數(shù)據(jù)類型建議盡量少用。Binary數(shù)據(jù)類型要求固定的數(shù)據(jù)長(zhǎng)度,最大長(zhǎng)度可達(dá)8000字節(jié),對(duì)于系統(tǒng)中要存儲(chǔ)不同圖片來(lái)說(shuō)是不理想的。VarBinary(n)數(shù)據(jù)類型其文件大小可變,最大長(zhǎng)度可達(dá)8000字節(jié),對(duì)于文件較小的圖片來(lái)說(shuō)可以使用。而VarBianry(max)數(shù)據(jù)類型其文件大小可變,不限文件大小的上限,對(duì)于系統(tǒng)中有大容量的圖片來(lái)說(shuō)該數(shù)據(jù)類型是非常合適的。
2 存儲(chǔ)圖片到SQL Server2005的實(shí)現(xiàn)
2.1二進(jìn)制數(shù)據(jù)的插入
2.3.2 建立上傳數(shù)據(jù)后臺(tái)頁(yè)面
1)主要實(shí)現(xiàn)方法分析
上傳數(shù)據(jù)頁(yè)面的主要功能是先啟用數(shù)據(jù)緩沖區(qū),獲取圖像文件的路徑和文件名,若文件大小不為空數(shù)據(jù),建立文件流對(duì)象,然后用二進(jìn)制讀取方式將圖片文件讀取到緩沖區(qū)中,最后連接數(shù)據(jù)源生b46d1db4052101687936eb9774b44f8e97c1311159903bfe436d845135f1fef8成記錄集,建立參數(shù)插入新紀(jì)錄。
3 讀取圖片并在web中顯示
顯示存儲(chǔ)在數(shù)據(jù)庫(kù)中的圖片文件首先需要把數(shù)據(jù)庫(kù)中的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為計(jì)算機(jī)內(nèi)存中的二進(jìn)制流,然后再把內(nèi)存流的數(shù)據(jù)轉(zhuǎn)換為圖像數(shù)據(jù),最后把圖片放到頁(yè)面中顯示。
3.1讀取圖片數(shù)據(jù)流程
從數(shù)據(jù)庫(kù)讀取圖片數(shù)據(jù)的流程如下:
4 其他多媒體文件存儲(chǔ)方式分析
在考慮存儲(chǔ)各類多媒體文件方式的時(shí)候,我們需要從多個(gè)方面考慮,來(lái)選擇合適的存儲(chǔ)方式。
1)性能方面要求:二進(jìn)制對(duì)象對(duì)性能要求并不高,如果多媒體文件對(duì)性能要求較高,特別是視頻流之類,那么將多媒體文件保留在文件系統(tǒng)中會(huì)比二進(jìn)制文件存儲(chǔ)會(huì)獲得更高的性能。
2)數(shù)據(jù)大小要求:如果需要經(jīng)常檢索二進(jìn)制對(duì)象,文件大小又非常大,比如大型的視頻文件,那么利用文件系統(tǒng)來(lái)檢索和讀取的效率比從SQL Server顯示和讀取的效率更高。
3)安全性要求:二進(jìn)制對(duì)象是存儲(chǔ)在SQL Server中的,可以通過(guò)常規(guī)的數(shù)據(jù)庫(kù)訪問(wèn)方式來(lái)管理其安全性。但如果文件存儲(chǔ)在文件系統(tǒng)中,那么其安全性就相對(duì)要低,需要考慮用其他的代替方式來(lái)進(jìn)行保證其安全性,例如增加安全性軟件,安全性管理機(jī)制等。
4)客戶訪問(wèn)方式:客戶對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)方式也會(huì)直接決定多媒體文件的存儲(chǔ)形式,若數(shù)據(jù)庫(kù)采用ODBC方式連接,那么對(duì)于大型的視頻流存儲(chǔ)可能會(huì)出現(xiàn)連接超時(shí)或連接失敗的情況。因此ODBC的連接方式下建議采用文件系統(tǒng)來(lái)進(jìn)行存儲(chǔ),以免對(duì)web應(yīng)用產(chǎn)生影響。
5)碎片處理:如果需要經(jīng)常對(duì)二進(jìn)制文件對(duì)象進(jìn)行修改操作,又或者文件非常巨大,文件系統(tǒng)處理碎片的能力高于SQL Server,這種情況下利用文件系統(tǒng)存儲(chǔ)會(huì)比較優(yōu)越。
6)事務(wù)控制:如果web系統(tǒng)需要進(jìn)行事務(wù)控制,那么利用SQL Server內(nèi)置事務(wù)解決方案能更好的處理事務(wù)控制,比文件系統(tǒng)要更好的得到事務(wù)的控制及各類事務(wù)處理機(jī)制。
在分析多媒體數(shù)據(jù)存儲(chǔ)方式的時(shí)候,不能夠單一的只考慮某一方面的問(wèn)題,應(yīng)該從多個(gè)方面來(lái)進(jìn)行綜合性考慮,特別是大文件視頻流或音頻流文件,處理起來(lái)比圖片要更復(fù)雜,要考慮的問(wèn)題更多,應(yīng)該根據(jù)實(shí)際應(yīng)用的需要進(jìn)行選擇。
5 結(jié)束語(yǔ)
本文通過(guò)對(duì)Web下多媒體數(shù)據(jù)存儲(chǔ)技術(shù)進(jìn)行研究,分析了多媒體數(shù)據(jù)存儲(chǔ)的兩種情況,重點(diǎn)討論了BLOB文件存儲(chǔ)方式存儲(chǔ)圖片的方法,并實(shí)現(xiàn)了在SQL Server 2005中建立數(shù)據(jù)庫(kù)存儲(chǔ)圖像的過(guò)程,利用查詢T-SQL查詢數(shù)據(jù)的方法,并介紹利用asp.net實(shí)現(xiàn)圖片存儲(chǔ)、讀取并在web中顯示,實(shí)現(xiàn)了在web中圖片存儲(chǔ)的主要技術(shù)。最后討論了其他多媒體文件存儲(chǔ)時(shí)要考慮的問(wèn)題,包括性能、數(shù)據(jù)大小、安全性要求、訪問(wèn)方式等多方面的建議,從而對(duì)其他web系統(tǒng)中各類多媒體數(shù)據(jù)的存儲(chǔ)提供有效的參考。
參考文獻(xiàn):
[1] 丁寶亮.基于數(shù)據(jù)庫(kù)的圖形圖像應(yīng)用和訪問(wèn)[J].科技資訊,2008(13).
[2] 楊寧,申強(qiáng),謝靜.SQL Server數(shù)據(jù)庫(kù)中圖像存取技術(shù)研究[J].南京曉莊學(xué)院學(xué)報(bào),2010,26(3).
[3] 劉玉紅.網(wǎng)絡(luò)化背景下檔案管理的信息化探索[J].科學(xué)與財(cái)富,2011(10).
[4] 陳漢華.電子檔案圖像的存儲(chǔ)與檢索方式研究[J].漳州師范學(xué)院學(xué)報(bào):自然科學(xué)版,2011,1(22).
[5] 劉小兵,巨亞榮,魏瑋.流技術(shù)在數(shù)據(jù)庫(kù)存取圖像中的應(yīng)用研究[J].重慶科技學(xué)院學(xué)報(bào):自然科學(xué)版,2008,10(1).
[6] 易黎,楊長(zhǎng)春,馮建彪.基于多媒體數(shù)據(jù)庫(kù)的數(shù)據(jù)挖掘模型和方法[J].江蘇工業(yè)學(xué)院學(xué)報(bào),2010,22(1).
[7] 雷亮,曾文碧.圖像存儲(chǔ)技術(shù)研究[J].重慶科技學(xué)院學(xué)報(bào):自然科學(xué)版,2009(1).
[8] 岳根霞.多媒體數(shù)據(jù)庫(kù)的數(shù)據(jù)模型研究[J].電腦編程技巧與維護(hù),2012(14).