SQLServer存儲圖像數(shù)據(jù)的策略規(guī)劃與方法_第1頁
SQLServer存儲圖像數(shù)據(jù)的策略規(guī)劃與方法_第2頁
SQLServer存儲圖像數(shù)據(jù)的策略規(guī)劃與方法_第3頁
SQLServer存儲圖像數(shù)據(jù)的策略規(guī)劃與方法_第4頁
SQLServer存儲圖像數(shù)據(jù)的策略規(guī)劃與方法_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

育龍網(wǎng)?2009年06月09日??來源:互聯(lián)網(wǎng)核心提示:目前對于圖像數(shù)據(jù)的管理大都采用表+實體的方法,即圖像數(shù)據(jù)以文件形式存放于指定的計算機目錄下,在表中只反映圖像數(shù)據(jù)文件的存儲五直]目前對于圖像數(shù)據(jù)的管理大都采用表+實體的方法,即圖像數(shù)據(jù)以文件形式存放于指定的目錄下,在表中只反映圖像數(shù)據(jù)文件的存儲路徑。這種管理模式,給數(shù)據(jù)的維護增加了難度,同時,也給數(shù)據(jù)的安全帶來一定的隱患。因此,要真正做到各類數(shù)據(jù)在中,研究和探索直接將圖像在關(guān)系表中的方法是非常必要的。筆者在開發(fā)環(huán)境中,采用客戶機/的工作方式,針對關(guān)系表中存儲圖像數(shù)據(jù)的問題進行了初步探討,提出了一套基本,供讀者參考。一、存儲圖像數(shù)據(jù)的策略圖像技術(shù)一直致力于解決海量數(shù)字圖像的有效存儲和管理問題。它是技術(shù)的繼承和發(fā)展,一方面,圖像數(shù)據(jù)和文本數(shù)據(jù)存在著本質(zhì)的區(qū)別,在文本數(shù)據(jù)領(lǐng)域得以成功應(yīng)用的傳統(tǒng)技術(shù),如果一成不變的照搬到圖像領(lǐng)域,結(jié)果往往是低效,甚至無效;另一方面,傳統(tǒng)的許多成果,如SQL語言、索引技術(shù)等都值得圖像借鑒。上述兩個方面的結(jié)合成為目前圖像技術(shù)發(fā)展的主流。數(shù)據(jù)類型BLOB是非常巨大的不定的二進制或者字符型數(shù)據(jù),通常是文檔(.txt、.doc)和圖片(.jpeg、.gif、.bmp),它可以存儲在中。在SQLServer中,BLOB可以是text、ntext或者image數(shù)據(jù)類型。Image數(shù)據(jù)類型存儲的是長度不確定的二進制數(shù)據(jù),最大長度是2GRBLOB數(shù)據(jù)在SQLServer系統(tǒng)中的存儲方式不同于普通的數(shù)據(jù)類型,對于普通類型的數(shù)據(jù)系統(tǒng)直接在用戶定義的字段上存儲數(shù)據(jù)值,而對于BLOB類型數(shù)據(jù),系統(tǒng)開辟新的存儲頁面來存放這些數(shù)據(jù),表中BLOB類型數(shù)據(jù)字段存放的僅是一個16個字節(jié)的指針,該指針指向存放該條記錄的BLOBa據(jù)的頁面。的設(shè)計策略BLOB數(shù)據(jù)是數(shù)據(jù)量很大的數(shù)據(jù)類型,它會占用大量的硬盤空間、內(nèi)存和,因此合理地設(shè)計包含有BLOB數(shù)據(jù)類型的屬性表,對提高存儲效率、查詢速度有很大的影響。一般BLOB的設(shè)計原則如下:11)使用BLOB數(shù)據(jù)類型還是使用varchar或者varbinary數(shù)據(jù)類型

二進制大對象并不一定要存儲為text、ntext或者image數(shù)據(jù)類型,它們也可以作為varchar或者varbinary數(shù)據(jù)類型村處在表格中。數(shù)據(jù)類型的選擇要根據(jù)將要存儲的BLOB的實際大小。如果數(shù)據(jù)不會超過8K,那么就使用Varchar或者varbinary數(shù)據(jù)類型。如果這些大對象的尺寸超過8K,那么就使用text、ntext或者image數(shù)據(jù)類型。(2)存儲BLOB在中或者在文件系統(tǒng)中常見的設(shè)計問題是將圖片存在中還是存在文件系統(tǒng)中。在大多數(shù)情況下,最好把圖片文件與其它數(shù)據(jù)一起存在中。因為將影像數(shù)據(jù)文件存儲在中有許多優(yōu)點:易于管理當(dāng)BLOBW其他數(shù)據(jù)一起存儲在中時,BLOB和表格是數(shù)據(jù)一起備份和恢復(fù)。這樣就降低了表格數(shù)據(jù)與BLOB數(shù)據(jù)不同步的機會,而且降低了其他用戶無意中刪除了文件系統(tǒng)中BLOBa據(jù)位置的路徑和風(fēng)險。另外,將數(shù)據(jù)存儲在中BLO所口其他數(shù)據(jù)的插入、更新和刪除都在同一個事務(wù)中實現(xiàn)。這樣就確保了數(shù)據(jù)的一致性和文件與之間的一致性。還有一點好處是不需要為文件系統(tǒng)中的文件單獨設(shè)置安全性??缮炜s性盡管文件系統(tǒng)被設(shè)計為能夠處理大量不同大小的對象,但是文件系統(tǒng)不能對大量小文件進行優(yōu)化。在這種情況下,系統(tǒng)可以進行優(yōu)化。可用性具有比文件系統(tǒng)更多的可用性。復(fù)制允許在分布式環(huán)境中復(fù)制、分配和潛在的修改數(shù)據(jù)。在主系統(tǒng)失效的情況下,日志轉(zhuǎn)移提供了保留備用副本的方法。當(dāng)然,在某些情況下,將圖片存儲在文件系統(tǒng)中將是更好的選擇:(1)使用圖片的應(yīng)用程序需要數(shù)據(jù)流性能,例如實時的視頻重現(xiàn)。(2)象PhotoDraw或者Adobe這樣的應(yīng)用程序經(jīng)常訪問BLOB這些應(yīng)用程序只知道怎樣訪問文件。(3)需要使用一些NTFS文件系統(tǒng)中的特殊功能,例如遠程存儲。二、存儲圖像數(shù)據(jù)的方法1建立具有image宇段的SQLServer當(dāng)需要在SQLServer中存儲圖像數(shù)據(jù)時,首先應(yīng)建立包含image數(shù)據(jù)類型字段的關(guān)系表。SQLServer平臺支持的數(shù)據(jù)類型中,image數(shù)據(jù)類型主要用于存儲圖像數(shù)據(jù)等大段的二進制數(shù)據(jù)。之后的版本,image類型可存儲2GB的數(shù)據(jù)。2使用RemoteData控件建立與的連接RemoteData控件是在VisualBasic應(yīng)用程序中用來獲取遠程數(shù)據(jù)的控件。它在.遠程數(shù)據(jù)對象和數(shù)據(jù)綁定控件之間提供了接口,只要給它提供有關(guān)數(shù)據(jù)存儲的位置、獲取的數(shù)據(jù)和一些接口控制,就可以連接到,實現(xiàn)對的基本操作。使用RemoteData控件建立與遠程的連接步驟如下:.在VisualBasic的窗體中加入一個RemoteData控件。,.在RemoteData控件DataSourceName屬性的下拉列表中選擇一個ODBCM據(jù)源。例如pubs.在RemoteData控件的SQL屬性中輸入SQL查詢語句。例如,Selectfrompub_info。綁定OLE和RemoteData控件實現(xiàn)圖像數(shù)據(jù)的存儲與編輯OLE,可以從支持OLEOLE,可以從支持OLE技術(shù)的任何VisualBasic中,可利用OLE容器應(yīng)用程序中讀取,也可以在任何支持OLE的程序中顯示和編輯它。在控件與RemoteData控件的綁定,來實現(xiàn)顯示、存儲和編輯SQLServe中的image類型數(shù)據(jù)。.顯示SQLServeimage類型字段的圖像數(shù)據(jù)具體步驟如下:在加入了RemoteData控件的VisualBasic的窗體中,添加一個OLE容器控件。創(chuàng)建OLE容器控件時,會出現(xiàn)“插入對象‘:對話框,此時點擊“取消”按鈕,不必為該容器指定對象。將OLE容器控件的DataSource屬性設(shè)置為RemoteData控件的名字,實現(xiàn)控件的綁定。在OLE容器控件。DataField屬性的下拉列表中選擇要顯示的字段名。例如,logo。運行應(yīng)用程序。對于包含image數(shù)據(jù)類型的logo字段的數(shù)據(jù)將在OLE容器控件中顯示一幅圖像。

.在SQLSeverimage類型字段中添加存儲圖像數(shù)據(jù)具體步驟如下:將RemoteData控件的EOFAction屬性設(shè)置為rdAddNew,實現(xiàn)的數(shù)據(jù)添加功能。在VisualBaisic的窗體中添加一個CommandButton控件,并編寫圖像文件嵌入OLE容器控件的程序代碼。例如:PrivateSubCommand_Click"c:、圖片.bmp'EndSub運行應(yīng)用程序,點擊RemoteData控件的記錄指示按鈕,移動到新的記錄,然后點擊CommandButton控件按鈕,實現(xiàn)圖像數(shù)據(jù)的添加入庫操作。.編輯SQLServeimage數(shù)據(jù)類型字段的圖像數(shù)據(jù)具體步驟如下:在VisualBasic的窗體中添加一個CommandButton控件,編寫對OLE對象的編輯程序代碼。例如:PrivateSubCommand2--_ClickEndSub運行應(yīng)用程序,點擊RemoteData控件的記錄指示按鈕,選擇需要編輯的圖像,然后點擊CommandButton控件按鈕,在分隔的應(yīng)用程序窗口打開對象,進行圖像的編輯操作。4、圖像文件自動入庫方式的實現(xiàn)在的實際應(yīng)用中,經(jīng)常需要將圖像文件批量存儲,以提高數(shù)據(jù)入庫操作的自動化程度。對于圖像文件批量存儲,在程序代碼的編寫中,可充分利用OLE容器控件與RemoteData控件的諸多屬性和方法,加以實現(xiàn)。具體步驟如下:將OLE和RemoteData控件的Visible屬性設(shè)置成False,使OLE和RemoteData控件不可視。建立圖像文件的。編寫以下基本代碼,實現(xiàn)批處理功能。PrivateSubCommand3_ClickDimFileNameAsStringOpen"c:\tesffile.txt"ForlnputAs#1'打開批處理文件。DoWhileNotEOF'循環(huán)至文件尾。Input#l,FileName'讀入圖像文件名。'嵌入圖像文件LoopClose#1EndSu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論