PostgreSQL 系統的基本體系結構


PostgreSQL 使用客戶機/服務器(C/S)的模式提供服務,一個PostgreSQL會話由下列相關的進程(程序)組成:

(1)一個服務器端進程。該進程管理數據庫文件,接受客戶端與數據庫的連接,且代表客戶端對數據庫進行操作。該進程的程序名叫做 postgres。

(2)前端應用,即需要進行數據庫操作的客戶端應用。客戶端應用可能本身就是多種多樣的:它們可以是一個字符界  面的工具, 也可以是一個圖形界面的應用,或者是一個通過訪問數據庫來顯示網頁的 web 服務器,或者是一個特殊的數據庫管理工具。 一些客戶端應用是和 PostgreSQL 發布一起提供的,但絕大部分是用戶開發的。

和典型的客戶端/服務器應用(C/S應用)一樣,客戶端和服務器可以在不同的主機上。此時,它們通過TCP/IP進行網絡連接,你應該記住這一點,因為在客戶機上可以訪問的文件未必能夠在數據庫服務器機器上訪問(或者只能用不同的文件名進行訪問)。

PostgreSQL 服務器可以處理來自客戶端的多個並發請求。為了能這樣處理,它會為每個請求啟動(“forks”)一個新的進程,然后,客戶端和新服務器端進程就不再經過最初的postgres 進程而直接通信。 因此, 服務器端的主進程一直運行,等待着來自客戶端的連接;而客戶端和相關聯的服務器端進程則在需要的時候才會運行。(當然,這些對用戶來說是透明的,在這里談這些主要是為了說明的完整性。)

PostgreSQL數據庫是一種極好可以運行在各種平台上的免費的開放源碼的對象關系數據庫,它是一種以關系數據庫和SQL為基礎,擴展了抽象數據類型,從而具備面向對象特性的數據庫。

                        

                                      PostgreSQL體系結構圖(組成結構和關系)

PostgreSQL由連接管理系統(系統控制器),編譯執行系統,存儲管理系統,事務系統,系統表五大部分組成。

連接管理系統接受外部操作對系統的請求,對操作請求進行預處理和分發,起系統邏輯控制作用;

編譯執行系統由查詢編譯器,查詢執行器組成,完成操作請求在數據庫中的分析處理和轉化工作,最終實現物理存儲介質中數據的操作;

存儲管理系統由索引管理器,內存管理器,外存管理器組成,負責存儲和管理物理數據,提供對編譯查詢系統的支持;

事務系統由事務管理器,日志管理器,並發控制,鎖管理器組成,日志管理器和事務管理器完成對操作請求的事務一致性支持,鎖管理器和並發控制提供對並發訪問數據的一致性支持;

系統表是PostgreSQL數據庫的元信息管理中心,包括數據庫對象信息和數據庫管理控制信息。系統表管理元數據信息,將PostgreSQL數據庫的各個模塊有機地連接在一起,形成一個高效的數據管理系統。

系統表

在關系數據庫中,為了實現數據庫系統的控制,必須提供數據字典的功能。數據字典不僅存儲各種對象的描述信息,而且存儲系統管理所需的各種對象的細節信息。數據字典包含數據庫系統中所有對象及其屬性的描述信息,對象之間關系的描述信息,對象屬性的自然語言含義以及數據字典變化的歷史,數據字典是關系數據庫系統管理控制信息的核心,在PostgreSQL數據庫系統中系統表扮演着數據字典的角色。

系統表是PostgreSQL數據庫存放結構元數據的地方,他在PostgreSQL中表現為存放有系統信息的普通表或者視圖(用戶可以刪除,重建)。

系統表保存了數據庫的所有元數據,所以系統運行時對系統表的訪問是非常頻繁的。為了提高系統性能,在內存中建立了共享的系統表,使用Hash表提高查詢效率。

主要系統表功能

1 pg_namespace 存儲命名空間

2 pg_tablespace 存儲空間信息

3 pg_database 存儲當前數據集簇中數據庫的信息。

4 pg_class 存儲表及與表類似結構的數據庫對象信息,包含,索引,序列,視圖,復合數據類型,TOAST表等。

5 pg_type 存儲數據類型信息。

6 pg_attribute 存儲表的屬性信息。

7 pg_index 存儲索引的具體信息。

關鍵系統表之間的依賴關系:未列出

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM