按照SQL標准的解釋,在SQL環境下Catalog和Schema都屬於抽象概念,主要用來解決命名沖突問題。
從概念上說,一個數據庫系統包含多個Catalog,每個Catalog又包含多個Schema,而每個Schema又包含多個數據庫對象(表、視圖、序列等),反過來講一個數據庫對象必然屬於一個Schema,而該Schema又必然屬於一個Catalog,這樣我們就可以得到該數據庫對象的完全限定名稱從而解決命名沖突的問題了
從實現的角度來看,各種數據庫系統對Catalog和Schema的支持和實現方式千差萬別,針對具體問題需要參考具體的產品說明書,比較簡單而常用的實現方式是使用數據庫名作為Catalog名,Oracle使用用戶名作為Schema名
例如:
數據庫 Catalog支持 Schema支持
Oracle 不支持 用戶名(User Id)
MySQL 不支持 數據庫名