有一張圖能非常清晰的表示出Oracle物理結構與邏輯結構的區別;如下圖:
對上圖的解釋:
每個數據庫都必須由一個或多個表空間組成。(一對多關系)
每個表空間都必須由一個或多個數據文件(data
file)組成。(一對多關系)
每個表空間都可以包含一個或多個段。(一對多關系)
每個數據文件都必須由一個或多個操作系統塊(OS
bolck)組成。(一對多關系)
每個段都必須由一個或多個區間組成(一對多關系)
每個區間都必須由一個或多個Oracle數據塊(Oracle
block)組成。(一對多關系)
每個區間都必須被定位並且只能定位在一個數據文件內,數據文件中的空間可以被分配一個或多個區間(多對一關系)
每個Oracle數據塊都必須由一個或多個操作系統數據塊組成(一對多關系)
物理結構
1.數據文件(data
file)是保存Oracle數據的操作系統文件。數據庫創建階段會創建許多數據文件,這些數據文件可以保存數據字典、SYSAUX表空間數據以及希望同時創建的其他表空間數據。
2.操作系統數據庫(OS
block)是文件系統所使用的最小分配單元。比如:4KB 或 8KB
邏輯結構
1.表空間(tablespace)SYSTEM表空間包含數據字典(描述數據庫自身結構、所有對象、用戶及角色的的表)。SYSTEM表空間是數據庫中數據字典所處的位置。如果沒有SYSTEM表空間,那麼數據庫就無法運作
創建數據庫後,需要創建存儲數據的其他表空間。
2.段(segment)表空間中被分配給若干個段。段是存儲的對象,如一張表或一個索引。注意:視圖不存儲數據所以不是段
3.區(extent)是為某個段分配的若干鄰近數據塊的集合。可以在表空間內本地管理區間
4.數據塊(block)是數據庫內I/O最小單位。數據庫需要讀取數據時總是無法只讀取一條記錄,而是必須讀取整個數據塊。只有在創建表空間時就指定數據塊容量,無法修改數據塊容量