數(shù)據(jù)塊是數(shù)據(jù)庫中最小的數(shù)據(jù)存儲單位,用戶再對數(shù)據(jù)庫執(zhí)行輸入輸出操作時就是從數(shù)據(jù)塊讀取的。在oracle11g中,數(shù)據(jù)塊分為頭部信息區(qū)和存儲區(qū),頭部信息區(qū)不存放數(shù)據(jù),但是存放有關(guān)存儲區(qū)中表數(shù)據(jù)、索引數(shù)據(jù)的的相關(guān)信息起到引導(dǎo)的作用則存儲區(qū)真正存放數(shù)據(jù)記錄。
范縣網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),范縣網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為范縣數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的范縣做網(wǎng)站的公司定做!
塊的標準大小由初始化參數(shù)DB_BLOCK_SIZE指定。具有標準大小的塊稱為標準塊(StandardBlock)。塊的大小和標準塊的大小不同的塊叫非標準塊(NonstandardBlock)。同一數(shù)據(jù)庫中,Oracle9i及以上版本支持同一數(shù)據(jù)庫中同時使用標準塊和非標準塊。Oracle允許指定5種非標準塊(NonstandardBlock)。
數(shù)據(jù)塊(OracleDataBlocks),本文簡稱為“塊”,是Oracle最小的存儲單位,Oracle數(shù)據(jù)存放在“塊”中。一個塊占用一定的磁盤空間。特別注意的是,這里的“塊”是Oracle的“數(shù)據(jù)塊”,不是操作系統(tǒng)的“塊”。
Oracle每次請求數(shù)據(jù)的時候,都是以塊為單位。也就是說,Oracle每次請求的數(shù)據(jù)是塊的整數(shù)倍。如果Oracle請求的數(shù)據(jù)量不到一塊,Oracle也會讀取整個塊。所以說,“塊”是Oracle讀寫數(shù)據(jù)的最小單位或者最基本的單位。
Oracle數(shù)據(jù)庫的體系結(jié)構(gòu)包括四個方面:數(shù)據(jù)庫的物理結(jié)構(gòu)、邏輯結(jié)構(gòu)、內(nèi)存結(jié)構(gòu)及進程。
1. 物理結(jié)構(gòu)
物理數(shù)據(jù)庫結(jié)構(gòu)是由構(gòu)成數(shù)據(jù)庫的操作系統(tǒng)文件所決定,Oracle數(shù)據(jù)庫文件包括:
數(shù)據(jù)文件(Data File)
數(shù)據(jù)文件用來存儲數(shù)據(jù)庫中的全部數(shù)據(jù),例如數(shù)據(jù)庫表中的數(shù)據(jù)和索引數(shù)據(jù).通常以為*.dbf格式,例如:userCIMS.dbf 。
日志文件(Redo Log File)
日志文件用于記錄數(shù)據(jù)庫所做的全部變更(如增加、刪除、修改)、以便在系統(tǒng)發(fā)生故障時,用它對數(shù)據(jù)庫進行恢復(fù)。名字通常為Log*.dbf格式,如:Log1CIMS.dbf,Log2CIMS.dbf 。
控制文件(Control File)
每個Oracle數(shù)據(jù)庫都有相應(yīng)的控制文件,它們是較小的二進制文件,用于記錄數(shù)據(jù)庫的物理結(jié)構(gòu),如:數(shù)據(jù)庫名、數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件的名字和位置等信息。用于打開、存取數(shù)據(jù)庫。名字通常為Ctrl*ctl 格式,如Ctrl1CIMS.ctl。
配置文件
配置文件記錄Oracle數(shù)據(jù)庫運行時的一些重要參數(shù),如:數(shù)據(jù)塊的大小,內(nèi)存結(jié)構(gòu)的配置等。名字通常為init*.ora 格式,如:initCIMS.ora 。
2 邏輯結(jié)構(gòu)
Oracle數(shù)據(jù)庫的邏輯結(jié)構(gòu)描述了數(shù)據(jù)庫從邏輯上如何來存儲數(shù)據(jù)庫中的數(shù)據(jù)。邏輯結(jié)構(gòu)包括表空間、段、區(qū)、數(shù)據(jù)塊和模式對象。數(shù)據(jù)庫的邏輯結(jié)構(gòu)將支配一個數(shù)據(jù)庫如何使用系統(tǒng)的物理空間.模式對象及其之間的聯(lián)系則描述了關(guān)系數(shù)據(jù)庫之間的設(shè)計.
一個數(shù)據(jù)庫從邏輯上說是由一個或多個表空間所組成,表空間是數(shù)據(jù)庫中物理編組的數(shù)據(jù)倉庫,每一個表空間是由段(segment)組成,一個段是由一組區(qū)(extent)所組成,一個區(qū)是由一組連續(xù)的數(shù)據(jù)庫塊(database block)組成,而一個數(shù)據(jù)庫塊對應(yīng)硬盤上的一個或多個物理塊。一個表空間存放一個或多個數(shù)據(jù)庫的物理文件(即數(shù)據(jù)文件).一個數(shù)據(jù)庫中的數(shù)據(jù)被邏輯地存儲在表空間上。
表空間(tablespace)
Oracle數(shù)據(jù)庫被劃分為一個或多個稱為表空間的邏輯結(jié)構(gòu),它包括兩類表空間,System表空間和非System表空間,其中,System表空間是安裝數(shù)據(jù)庫時自動建立的,它包含數(shù)據(jù)庫的全部數(shù)據(jù)字典,存儲過程、包、函數(shù)和觸發(fā)器的定義以及系統(tǒng)回滾段。除此之外,還能包含用戶數(shù)據(jù)。。
一個表空間包含許多段,每個段有一些可以不連續(xù)的區(qū)組成,每個區(qū)由一組連續(xù)的數(shù)據(jù)塊組成,數(shù)據(jù)塊是數(shù)據(jù)庫進行操作的最小單位。
每個表空間對應(yīng)一個或多個數(shù)據(jù)文件,每個數(shù)據(jù)文件只能屬于一個表空間。
數(shù)據(jù)庫塊(database block)
數(shù)據(jù)庫塊也稱邏輯塊或ORACLE塊,它對應(yīng)磁盤上一個或多個物理塊,它的大小由初始化參數(shù)db-block-size(在文件init.ora中)決定,典型的大小是2k。Pckfree 和pctused 兩個參數(shù)用來優(yōu)化數(shù)據(jù)塊空間的使用。
區(qū)(extent)
區(qū)是由一組連續(xù)的數(shù)據(jù)塊所組成的數(shù)據(jù)庫存儲空間分配的邏輯單位。
段(segment)
段是一個或多個不連續(xù)的區(qū)的集合,它包括一個表空間內(nèi)特定邏輯結(jié)構(gòu)的所有數(shù)據(jù),段不能跨表空間存放。Oracle數(shù)據(jù)庫包括數(shù)據(jù)段、索引段、臨時段、回滾段等。