存儲結構之Oracle邏輯存儲結構
Oracle邏輯存儲結構包括表空間,各種段,區間,數據塊等幾種基本結構。
1)表空間是數據庫的邏輯劃分,每個數據庫至少有一個表空間,USER表空間供一般用戶使用,RBS表空間供回滾使用,一個表空間只能屬于一個數據庫。每一個表空間由同一磁盤上的一個或多個數據文件組成。表空間實質是組織數據文件的一種途徑。
2)段(Segment)是邏輯數據庫對象的物理副本,段存儲數據,如:索引段存儲與索引相關的數據
3)數據庫為段分配的一組連續的數據塊稱為區間(extent)
4)數據塊是Oracle數據庫的硬盤存儲單元,在使用數據庫工作時,Oracle使用數據塊存儲和檢索硬盤上的數據.
下面我們來詳述:
1. 數據庫表空間
表空間是Oracle邏輯存儲結構中數據的邏輯組織,第一個數據庫至少有一個系統表空間(system tablespace)。表空間的作用只是幫助組織數據庫。
1)系統表空間(System tablespace)是必備的部分,存放的是諸如表空間名稱。表空間所包含數據文件夾等管理數據庫自身所需的信息。
2)臨時表空間(temp tablespace):Oracle用于存儲其所有臨時表的所在。
3)工具表空間(tools tablespace):用于保存數據庫工具軟件所需的數據庫對象
4)用戶表空間(users tablespace):用于存放用戶的么有信息.是數據庫管理員許可用戶存放數據庫對象的地方
5)數據庫索引表空間:索引是專用的數據庫對象,可以幫助Oracle迅速找出表中存放的數據
6)回滾表空間(rollback)rbs:用于保存回滾段的表空間,稱作rbs回滾表空間
2.段,區間和數據塊
1)段由若干個區間組成,區間是一些連續的數據塊。段,區間和數據塊是構成其它數據對象的基本單位。Oracle為數據庫表空間預先分配數據文件作為物理存儲區,為數據庫對象(如:表,索引)預先分配數據塊的段作為其物理存儲區。Oracle數據庫可以包含數據段,索引段,LOB段,回滾段和臨時段表在Oracle邏輯存儲結構數據段中存儲數據,索引在索引段中存儲其數據,大對象在LOB段中存儲其相應的LOB值。
2)區間是表空間內連續分配的相鄰的數據塊,由于段是一個物理實體,它必須分配到數據庫的一個表空間中,放在表空間的一個數據文件上;一旦段中現有區間不能再容納新數據,該段將獲取另外的區間.
3)數據塊
datablock是數據庫中最小的,最基本的存儲單元,它是數據庫能分配給對象的最小存儲單元,是Oracle能從磁盤讀或寫的最小單元。在Oracle中,每一個數據和索引段都具有一個或多個數據塊空閑列表,是空閑數據塊的目錄,向表中插入一個新行時,Oracle把新行放入該表的空閑列表上的數據塊中,如果行的長度比數據塊的大小大,那么Oracle在兩個或更多的數據塊中鏈接這個行當創建新的數據庫對象(如表)時,Oracle為這些對象的段分配一個或多個區間,而區間則是在存儲這些對象段的表空間的數據文件中的一組連續的數據塊的集合。
想象一個裝滿東西的柜子,數據庫就是柜子,柜中的抽屜是表空間,抽屜中的文件夾是數據文件,文件夾中的紙是表,寫在紙上的
信息就是數據,表空間實質是組織文件的一種方法。
【編輯推薦】