在 Oracle 數據庫中,為了便於管理用戶所創建的數據庫對象(數據表、索引、視圖等),引入了模式的概念,這樣某個用戶所創建的數據庫對象就都屬於該用戶模式。
一、模式與模式對象
模式是一個數據庫對象的集合。模式為一個數據庫用戶所有,並且具有與該用戶相同的名稱,比如SYSTEM模式、SCOTT模式等。在一個模式內部不可以直接訪問其他模式的數據庫對象,即使在具有訪問權限的情況下,也需要指定模式名稱才可以訪問其他模式的數據庫對象。
模式對象是由用戶創建的邏輯結構,用以存儲或引用數據。比如段、數據表、索引,約束、視圖、過程以及程序包等。
簡單地說,模式與模式對象之間的關系就是擁有與被擁有的關系,即模式擁有模式對象;而模式對象被模式所擁有。
注意:一個不屬於某個用戶所擁有的數據庫對象就不能稱之為模式對象,比如角色、表空間及目錄等數據庫對象。
二、實例模式 Scott
Oracle 11g 里面提供了一個典型的實例模式——SCOTT模式,因為該模式及其所擁有的模式對象經常被作為實例。
SCOTT模式的給用戶提供了一些視力表和數據來展示 Oracle 數據庫的一些特性,該用戶的連接密碼是 tiger ,通過連接到SCOTT 用戶模式,查詢數據字典視圖 user_tables 可以獲得該模式所包含的數據表。
當然,用戶可可以在system 模式下查詢 Scott 模式所擁有的數據表,但要求使用dba_tables 數據表。