天天看點

關于表空間、Schema和使用者

資料庫這個櫃子

  解釋資料庫、表空間、資料檔案、表、資料的最好辦法就是想象一個裝滿東西的櫃子。

  從實體方面來講:資料庫是櫃子,櫃中的抽屜是表空間,抽屜中的檔案夾是資料檔案,檔案夾中的紙是表,寫在紙上的資訊就是資料。

  從對象方面來講:資料庫是櫃子,櫃中的抽屜是Schema,抽屜中直接就是各種紙,這些紙就是表,寫在紙上的資訊就是資料。

  如果從作為資料庫執行個體和表之間的一層這個概念上面講,Schema和表空間是一個層次的概念,他們都有一個很重要的特性,就是對表的獨占性。Schema是表的邏輯集合,是所有應用通路表必須指定的對象(雖然一般大家都省略了,但是實際上一定是db.schema.table這種通路模式),同一張表不可能既屬于這個Schema,又屬于另一個Schema。表空間是表的實體集合,是所有磁盤讀寫必須通路的檔案(大家一般也不用太管,主要是Oracle管,個性化的需求DBA管),同一張表也不可能既放在這個表空間,又放在那個表空間。

關于使用者

  

  使用者就是使用者,使用者就是打開抽屜,拿出紙來用的人。一般情況下,使用者和Schema這種抽屜打交道會多一點,因為每個使用者都有一個Oracle給他量身打造的Schema,而在實際的使用過程中,都是通過Schema來通路表,進行增删改查的操作。當然,在主人允許的情況下,客人也是可以打開自己的抽屜查檔案的。而DBA,就是那個有萬能鑰匙的人。

  表空間這個抽屜上面同樣也貼了使用者的名字,每個人可以設定自己的預設抽屜來放東西,如果不設定的話,Oracle也會給你一個公用的抽屜放東西。表空間這種抽屜是實體上的抽屜,是實際存在的,這個抽屜沒有了,檔案也就沒有了。Schema這個抽屜呢,好像是跟着使用者天生而來,天生而去的,是個神秘的抽屜。