Chapter 18. 管理數據庫

Table of Contents
18.1. 概述
18.2. 創建數據庫
18.3. 模板數據庫
18.4. 數據庫配置
18.5. 可選的位置
18.6. 刪除數據庫

每個正在運行的PostgreSQL服務器實例都管理著一個或多個數據庫。 因此,在組織SQL"數據庫對象")對象的層次中,數據庫位于最頂層。 本章描述數據庫的屬性,以及如何創建,管理,和刪除它們。

18.1. 概述

數據庫是一些SQL對象("數據庫對象")的命名集合; 通常每個數據庫對象(表,函數等等)屬于並且只屬于一個數據庫。 (不過有幾個系統表,比如 pg_database,屬于整個集群並且可以在集群之內的每個數據庫裡訪問。) 更準確地說,一個數據庫是一個模式的集合,而模式包含表,函數等等。 因此完整的層次是這樣的:服務器,數據庫,模式,表(或者表以外的其他什麼東西)。

一個與數據庫服務器聯接的應用應該在它的聯接請求裡面帶有它想與之聯接的數據庫名稱。 不允許在一次聯接裡面對多個數據庫訪問.(不過沒有限制一個應用與同一個或者其他數據庫可以建立的聯接數量.) 不過,我們可以從同一個聯接中訪問多個模式。模式只是純邏輯的概念, 誰能訪問什麼東西是由權限系統管理的。數據庫是物理上相互隔離的, 對它們的訪問控制是在聯接層次進行控制的。如果一個PostgreSQL 服務器實例用于承載那些應該分隔並且相互之間並不知曉的用戶和項目, 那麼我們建議把它們放在不同的數據庫裡。如果項目或者用戶是相互關聯的, 並且可以相互使用對方的資源,那麼應該把它們放在同一個數據庫裡, 並且可能是不同的模式裡。有關管理模式的更多信息在 Section 5.8 裡。

注意: SQL 把數據庫稱作"目錄(catalog)",不過這兩個東西實際上 沒有什麼區別.