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