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