| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 1. 從頭開始 | Fast Forward | Next |
在我們開始講解之前,我們應該先瞭解 PostgreSQL 系統的基本體系。 理解 PostgreSQL 的部件之間的相互關係將會使本節顯得更清晰一些。
在資料庫術語裡,PostgreSQL 使用一種客戶端/伺服器的模式。一次 PostgreSQL 會話由下列相關的進程(程序)組成:
一個伺服器進程,它管理資料庫文件,接受來自客戶端應用與資料庫的連線,並且代資料表客戶端在資料庫上執行操作。 資料庫伺服器程序叫做 postmaster。
那些需要執行資料庫操作的用戶的客戶端(前端)應用。 客戶端應用可能本身就是多種多樣的:它們可以是一個字元界面的工具, 也可以是一個圖形界面的應用,或者是一個透過存取資料庫來顯示網頁的 web 伺服器,或者是一個特殊的資料庫管理工具。 一些客戶端應用是和 PostgreSQL 發佈一起提供的,但絕大部分是用戶開發的。
和典型的客戶端/伺服器應用(C/S應用)一樣,這些客戶端和伺服器可以在不同的主機上。 這時它們透過 TCP/IP 網絡連線通訊。 您應該記住的是,在客戶機上可以訪問的文件未必能夠在資料庫伺服器機器上訪問(或者只能用不同的文件名進行訪問)。
PostgreSQL 伺服器可以處理來自客戶端的多個並發請求。 因此,它為每個請求啟動("fork")一個新的進程。 從這個時候開始,客戶端和新伺服器進程就不再經過最初的 postmaster 進程的干涉進行通訊。 因此, postmaster 總是在執行,等待著連線, 而客戶端和相關聯的伺服器進程則是起起停停。(當然,用戶是肯定看不到這些事情的。我們在這兒談這些主要是為了完整。)