1. 程式人生 > >【Oracle】邏輯結構(TableSpace→Segment→Extent→Block)

【Oracle】邏輯結構(TableSpace→Segment→Extent→Block)

一、邏輯體系結構圖

  

二、邏輯結構圖組成介紹

  從上表可以看出,一個數據庫是由多個表空間(tablespace)組成,一個表空間又由多個段(segment)組成,一個段又由多個區(extent)組成,一個區則由多個塊(block)組成。

  一個數據庫中,UNDO和SYSTEM表空間是必須存在的。

  舉個例子:

  話說張三是大壩縣的一個農民,每年秋收的稻穀都必須放到縣裡的糧倉裡統一管理。跟他一同去的還有李四、王五等以種稻谷為主的農民。

  剛開始的時候縣裡糧倉給他分配了一塊5㎡的地方(block塊)給他存放。後來不夠用了,他又向管糧倉的領導申請了5㎡。誰知道今年大豐收,這10㎡的地方根本就不夠他用,下次又申請了5㎡。這三兩天就要了幾次地方放稻穀,領導覺得煩了,這樣下去豈不把我忙死?於是領導批准張三可以一次性申請90㎡(extent區)

,這樣的話張三就可以少去煩領導要地方放稻穀了。可是隨著張三的地一年一年地增多,收穫的稻子也一年比一年多,90㎡也不夠他用了,於是他再向領導申請,但這次他輕鬆多了,只去了一次,90㎡就到手了。。。但是很快,張三的業務發展迅速,已經不止種稻谷了,還種了蘋果!他又用同樣的方式申請了一塊90㎡的地方放蘋果,再下一年業務增加了種植菠蘿。。。就這樣一直髮展,張三靠起家了,他這次真正的大豐收,縣裡的糧倉給他分配的地方又不夠用了,張三就直接把整個糧倉(segment段)買了下來,正好儲備所有的農作物。但第二年,張三已經發展到養殖業了,於是直接在旁邊自己建了幾個倉庫,並且給這些倉庫(包括之前的糧倉)起了個名字,張生倉庫(tablespace)

  而李四、王五也幾乎同時,也跟張三一樣發家致富,各自也建了自己的倉庫,李生倉庫(tablespace1)、王生倉庫(tablespace2)。。。

  他們幾十個發家致富的農民的倉庫共同組成了大壩縣的糧食倉庫(database)

三、總結

  對於我們在資料庫裡新建資料庫(database),在資料庫中建立多個表空間(tablespace),在每個表空間內建表。例如我們可以分配多個使用者,在user1使用者下建立table1,table2,user2下建立table3,table4,user1、user2就等於不同的表空間,table1、table2是建立在表空間下的不同段(segment),而每張表的每個資料就是塊(block)

,一列資料可看做一個區(extent),區滿了之後不斷擴充套件就組成了表。