<引言>
??? 隨著社會的發展,在現代信息系統的開發中,需要存儲的已不僅僅是簡單的文字信息,同時還包括一些圖片和音像資料或者是超長的文本。比如開發一套旅游信息系統,每一個景點都有豐富的圖片、音像資料和大量的文字介紹。這就要求后臺數據庫要有存儲這些數據的能力。
??? ORACLE自Oracle8i起通過提供LOB字段實現了該功能。
<LOB分類>
??? LOB,即Large Objects(大對象),是用來存儲大量的二進制和文本數據的一種數據類型(一個LOB字段可存儲可多達4GB的數據)。它又分為兩種類型:內部LOB和外部LOB。
??? 1.內部LOB將數據以字節流的形式存儲在數據庫的內部。因而,內部LOB的許多操作都可以參與事務,也可以像處理普通數據一樣對其進行備份和恢復操作。Oracle支持三種類型的內部LOB:
??? 1)BLOB(二進制數據)
??? 2)CLOB(單字節字符數據)
??? 3)NCLOB(多字節國家字符數據)。
??? 其中CLOB和NCLOB類型適用于存儲超長的文本數據,BLOB字段適用于存儲大量的二進制數據,如圖像、視頻、音頻等。
??? 2.目前只支持一種外部LOB類型,即BFILE類型。在數據庫內,該類型僅存儲數據在操作系統中的位置信息,而數據的實體以外部文件的形式存在于操作系統的文件系統中。因而,該類型所表示的數據是只讀的,不參與事務。
??? 該類型可幫助用戶管理大量的由外部程序訪問的文件。
<LOB存儲方式>
??? LOB由兩部分組成:數據(值)和指向數據的指針(定位器)。盡管值與表自身一起存儲,但是一個LOB列并不包含值,僅有它的定位指針。更進一步,為了使用大對象,程序必須聲明定位器類型的本地變量。
??? 當內部LOB被創建時,定位器被存放在列中,值被存放在LOB段中,LOB段是在數據庫內部表的一部分。
??? 當BFILE被創建時,定位器如同平常一樣存儲在列中,但是它的值被存儲在數據庫之外的操作系統文件中。
posted on 2008-03-27 11:12
Jcat 閱讀(275)
評論(0) 編輯 收藏 所屬分類:
Database