可以這麼了解資料庫的邏輯結構大于資料塊
1.資料塊是Oracle邏輯存儲結構中的最小的邏輯機關,也是執行資料庫操作的是最小的存儲機關。
2.邏輯存儲結構是Oracle資料庫存儲結構的核心内容,對Oracle資料庫的所有操作都會涉及其邏輯存儲結構。邏輯存儲結構是從邏輯的角度分析資料庫的構成,是對資料存儲結構在邏輯概念上的劃分。
Oracle的邏輯存儲結構是一種層次結構,主要由表空間,段,區間和資料塊等概念組成。邏輯結構是面向使用者的,當使用者使用Oracle設計資料庫時,其使用的就是邏輯存儲結構。Oracle的邏輯存儲結構中
所包含的多個結構對象從資料塊到表空間形成了不同層次的粒度關系。
資料庫邏輯結構 Oracle資料庫
資料庫邏輯結構 / | \
表空間 表空間 表空間 表空間
邏輯對象 / | \
表 索引 視圖
/ \ \
資料段 資料段 資料段 資料段 索引段 臨時段 復原段
/ \
資料區間 資料區間 資料區間
/ \
資料塊 資料塊 資料塊
3.從圖中可以看出,Oracle資料庫是由多個表空間組成的(資料庫自身也就屬于邏輯概念),而表空間又是由多個段組成的,段由多個資料區組成,資料區又是由多個資料塊組成的。
4.Oracle資料存放在“Oracle 資料塊”中,而不是“作業系統塊”中。通常Oracle資料塊是作業系統塊的整數倍,如果作業系統塊的大小是2048B,并且Oracle資料塊的大小是8192B,則表示Oracle
資料塊是由4個作業系統塊構成那個。Oracle資料塊有一定的标準大小,其大小被寫入到初始化參數DB_BLOCK_SIZE中。另外,Oracle支援同一個資料庫中使用多種大小的塊,與标準塊大小不同的塊就是非标準塊。
5.資料塊中可以存放資料,索引資料和簇資料等,無論存放哪種類型的資料,其結構都是相同的。資料塊是由塊頭,表目錄,行目錄,自由空間和行資料這5部分組成。
塊頭:存放資料塊的基本資訊,如塊的實體位址,塊所屬段的實體位址,塊所屬的段的類型
表目錄:存放表的相關資訊。如果資料塊中存放的是表資料,則表目錄中存儲有關表的相關資訊
行目錄:如果塊中有行資料存在,則這些行資料将被記錄在行目錄中。這些資訊包含行的位址等
自由空間:空餘空間是一塊中未被使用的區域,這片區域用于新行的插入已經存在的行的更新。
行資料:用于存儲表資料和索引資料的地方,這部分空間已被資料行所占用
通常把塊頭,表目錄,行目錄這三個部分組合起來稱為頭部資訊區,頭部資訊區不存在資料,它存放資料塊的引導資訊,起到引導系統讀取資料的作用。是以頭部資訊若遭到破壞,則Oracle系統将無法讀取這部分資料庫。
另外,空餘空間和行資料公共構成塊的存儲區,用于存放真正的資料記錄。