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