一、邏輯體系結構圖
二、邏輯結構圖組成介紹
從上表可以看出,一個數據庫是由多個表空間(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),區滿了之后不斷擴展就組成了表。