?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
PostgreSQL可擴(kuò)展的原因是它的操作是由表驅(qū)動(dòng)的。如果你熟悉標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng), 你就知道它們把數(shù)據(jù)庫(kù)、表、字段等信息存儲(chǔ)在一個(gè)被稱為系統(tǒng)表(有些系統(tǒng)稱為數(shù)據(jù)字典)的地方。 這些表與其它表沒(méi)什么不同,只不過(guò)DBMS把它自己內(nèi)部的信息存放于此罷了。 PostgreSQL與其它系統(tǒng)的不同之處在于它在系統(tǒng)表里存儲(chǔ)了更多的信息:除了關(guān)于表和列/字段的信息之外, 還有關(guān)于它們的類型、函數(shù)、訪問(wèn)方式之類的信息。這些表可以被用戶修改, 而且由于PostgreSQL的內(nèi)部操作是以這些表為基礎(chǔ)的,這就意味著PostgreSQL可以被用戶進(jìn)行擴(kuò)展。 相比之下,傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)只能通過(guò)修改源代碼或加載由DBMS供應(yīng)商提供的特殊模塊來(lái)擴(kuò)展。
PostgreSQL還可以通過(guò)動(dòng)態(tài)加載的方法與用戶書(shū)寫(xiě)的代碼結(jié)合在一起。 也就是說(shuō),用戶可以把一個(gè)目標(biāo)代碼文件(通常是共享庫(kù))聲明為一個(gè)新類型或函數(shù)的實(shí)現(xiàn), 這時(shí)PostgreSQL將根據(jù)需要加載它們。用SQL書(shū)寫(xiě)的代碼甚至更容易加入到服務(wù)器中去。 這種可以"在線"更改操作的能力使PostgreSQL 特別適合于新應(yīng)用和新存儲(chǔ)結(jié)構(gòu)的快速定型。