標籤:blog http 使用 os 檔案 資料 for 2014
PostgreSQL 使用客戶機/伺服器(C/S)的模式提供服務,一個PostgreSQL會話由下列相關的進程(程式)組成:
(1)一個伺服器端進程。該進程管理資料庫檔案,接受用戶端與資料庫的串連,且代表用戶端對資料庫進行操作。該進程的程式名叫做 postgres。
(2)前端應用,即需要進行資料庫操作的用戶端應用。用戶端應用可能本身就是多種多樣的:它們可以是一個字元界 面的工具, 也可以是一個圖形介面的應用,或者是一個通過訪問資料庫來顯示網頁的 網頁伺服器,或者是一個特殊的資料庫管理工具。 一些用戶端應用是和 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 儲存索引的具體資訊。
關鍵系統資料表之間的依賴關係:未列出