1、圖像的存儲策略
在數據庫的 開發過程中,經常需要在數據庫中存儲一些備注信息,而這些備注信息的內容一般較大,格式多樣-如有可能是語音文件、視頻文件、圖片文件、文本文件等,怎樣 實現這些格式不同的備注文件的存取及預覽,一直是開發人員比較關心的一個問題,本文系統的介紹了三種存取備注二進制信息的方法。
對備注二進制信息的存儲可以采用以下三種方式;
方法一:文件保存在固定的路徑下,數據庫中存取文件路徑和名稱
方法二:數據庫中用blob類型或者varbinary類型字段存儲備注文件
方法三:在本地用PowerBuilder的OLE存儲結構存儲備注文件
三種方法的優缺點
方法一:文件保存在固定的路徑下,數據庫中存取文件路徑和名稱可以節省數據空間,避免了數據庫過分膨脹,但備注文件必須在一定的目錄下,不能丟失,且同 一目錄下文件不能重名,對文件的管理造成一定的困難,另外,在OLE控件中瀏覽顯示備注文件時,由於每次都要調用服務器程序,所以速度較慢。
方法二:在數據庫中用blob類型或者varbinary類型字段存儲備注文件,當文件存儲在數據庫中以后,就可以刪除硬盤上原來的臨時文件,不需要復雜的二進制文件管理,且數據庫可以存儲在網絡服務器上,對數據的共享非常方便。
方法三:在本地用OLE存儲結構存儲備注文件。可以把所有的二進制文件信息存儲在一個OLE存儲文件中,管理比較方便。當二進制文件信息存儲后,可以刪除原來的臨時文件;因為打開存儲文件后不需要每次執行服務器程序來顯示存儲信息,所以存取速度較快。
2、SQL Server 2000存儲圖像數據庫設計
圖像數據庫技術一直致力於解決海量數字圖像的有效存儲和管理問題。它是數據庫技術的繼承和發展,一方面,圖像數據和文本數據存在着本質的區別,在文本數 據領域得以成功應用的傳統數據庫技術,如果一成不變的照搬到圖像數據庫領域,結果往往是低效,甚至無效;另一方面,傳統數據庫的許多成果,如SQL語言、 索引技術等都值得圖像數據庫借鑒。上述兩個方面的結合成為目前圖像數據庫技術發展的主流。
2.1 BLOB數據類型
BLOB是非常巨大的不定的二進制或者字符型數據,通常是文檔(.txt、.doc)和圖片(.jpeg、.gif、.bmp),它可以存儲在數據庫 中。在SQL Server中,BLOB可以是text、ntext或者image數據類型。 Image數據類型存儲的是長度不確定的二進制數據,最大長度是2GB。
BLOB數據在SQL Server系統中的存儲方式不同於普通的數據類型,對於普通類型的數據系統直接在用戶定義的字段上存儲數據值,而對於BLOB類型數據,系統開辟新的存 儲頁面來存放這些數據,表中BLOB類型數據字段存放的僅是一個16個字節的指針,該指針指向存放該條記錄的BLOB數據的頁面。
2.2 BLOB的設計策略
BLOB數據是數據量很大的數據類型,它會占用大量的硬盤空間、內存和網絡資源,因此合理地設計包含有BLOB數據類型的屬性表,對提高存儲效率、查詢速度有很大的影響。一般BLOB的設計原則如下:
(1)使用BLOB數據類型還是使用varchar或者varbinary數據類型
二進制大對象並不一定要存儲為text、ntext或者image數據類型,它們也可以作為varchar或者varbinary數據類型村處在表格 中。數據類型的選擇要根據將要存儲的BLOB的實際大小。如果數據不會超過8K,那么就使用Varchar或者varbinary數據類型。如果這些大對 象的尺寸超過8K,那么就使用text、ntext或者image數據類型。