| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
在本章的剩餘部分,我們將討論您如何透過增加下面幾種對像來擴展 PostgreSQL SQL 查詢語言:
函數(在 Section 31.3 章開始)
資料類型(在 Section 31.11 章開始)
操作符(在 Section 31.12 章開始)
聚集(在 Section 31.10 章開始)
PostgreSQL 是可擴展的是因為它的操作是資料表驅動的. 如果您熟悉標準的關係資料庫系統,您知道它們把與資料庫,資料表,字串 等訊息儲存在一個被稱為系統資料表的地方.(有些系統稱這些為資料字典). 這些資料表在用戶面前資料表現為資料表,和其他資料表一樣,只不過 DBMS 把它自己內部的訊息存放在此. PostgreSQL 和標準的關係型資料庫的系統資料表有一個關鍵區別是 PostgreSQL 在它的系統資料表裡面儲存了更多的訊息: 不僅是關於資料表和列/字串的訊息,而且還有關於它們的類型, 函數,訪問方式等的訊息.這些資料表可以被用戶修改,而且由於 PostgreSQL 的內部操作是以這些資料表為基礎的,這就意味著 PostgreSQL 可以被用戶所擴展. 相比之下,傳統的資料庫系統只能透過修改 原始碼內部的硬代碼或裝載由 DBMS 供應商提供的特殊的模塊來擴展.
PostgreSQL 它還可以透過動態裝載的方法與用戶書寫的代碼偶合在一起. 也就是說,用戶可以把一個目標代碼文件 (例如,一個共享庫) 聲明為一個新類型或函數的實現, 這時 PostgreSQL 將根據需要裝載它們. 用 SQL 寫的代碼甚至更容易加入到伺服器中去.這種可以 "在線"更改其操作的能力使 PostgreSQL 特別適合於新應用和新儲存結構的快速定型.