網頁

2017/9/4

Oracle Schema

Schema是多個邏輯結構資料的集合,這些邏輯結構資料又稱作schema objects,例如Table及Store Procedure就是schema object的一種。

每個使用者都擁有一個所屬的schema,且schema名稱與使用者名稱相同。例如使用者名稱為john,則所擁有的schema名稱也叫做john,且使用者建立的物件是建立在schema下。例如john建立了一個employee資料表,則其實為john.employee,而另一使用者bill也建立了一個employee資料表,則其實為bill.employee,schema是命名空間,john.employee和bill.employee是屬於不同的資料表。

簡單來說,schema是指一個使用者可以存取的資料庫物件的集合。在Oracle當使用者被建立時也同時建立了這個使用者的schema。

Schema objects可使用SQL建立及操作,種類如下

  • Clusters
  • Database links
  • Database triggers
  • Dimensions
  • External procedure libraries
  • Indexes and index types
  • Java classes, Java resources, and Java sources
  • Materialized views and materialized view logs
  • Object tables, object types, and object views
  • Operators
  • Sequences
  • Stored functions, procedures, and packages
  • Synonyms
  • Tables and index-organized tables
  • Views

而以下為不包含在schema的其他objects

  • Contexts
  • Directories
  • Profiles
  • Roles
  • Tablespaces
  • Users

Schema objects是邏輯的資料儲存結構,與硬碟中資料庫的實體檔案沒有一對一的關係。Oracle會將一個schema object儲存在資料庫的一個tablespace。每一個schema object的資料在實體上是被儲存在tablespace的一個或多個的datafiles中。

Schema和tablespace之間沒有對應關係,一個tablespace中會有來自多個不同schema的objects,而一個schema下的objects會被放在不同的tablespaces

下圖說明Schema objects, Tablespaces和Datafiles間的關係。



沒有留言:

張貼留言