W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
現(xiàn)在被稱為PostgreSQL的對(duì)象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng)是從加州大學(xué)伯克利分校寫的POSTGRES軟件包發(fā)展而來的。經(jīng)過二十多年的發(fā)展,PostgreSQL是世界上可以獲得的最先進(jìn)的開源數(shù)據(jù)庫。
由Michael Stonebraker教授領(lǐng)導(dǎo)的POSTGRES項(xiàng)目是由防務(wù)高級(jí)研究項(xiàng)目局(DARPA)、陸軍研究辦公室(ARO)、國(guó)家科學(xué)基金(NSF) 以及 ESL, Inc 共同贊助的。 POSTGRES的實(shí)現(xiàn)始于 1986 年。該系統(tǒng)最初的概念詳見[ston86] 。 最初的數(shù)據(jù)模型定義見[rowe87]。當(dāng)時(shí)的規(guī)則系統(tǒng)設(shè)計(jì)在[ston87a]里描述。存儲(chǔ)管理器的理論基礎(chǔ)和體系結(jié)構(gòu)在[ston87b]里有詳細(xì)描述。
從那以后,POSTGRES經(jīng)歷了幾次主要的版本更新。 第一個(gè)“演示性”系統(tǒng)在 1987 年便可使用了, 并且在 1988 年的ACM-SIGMOD大會(huì)上展出。在 1989 年6月發(fā)布了版本 1(見[ston90a])給一些外部的用戶使用。 為了回應(yīng)用戶對(duì)第一個(gè)規(guī)則系統(tǒng)([ston89])的批評(píng),規(guī)則系統(tǒng)被重新設(shè)計(jì)了([ston90b]),在1990年6月發(fā)布了使用新規(guī)則系統(tǒng)的版本 2。 版本 3 在1991年出現(xiàn),增加了多存儲(chǔ)管理器的支持, 并且改進(jìn)了查詢執(zhí)行器、重寫了規(guī)則系統(tǒng)。直到Postgres95發(fā)布前(見下文)的后續(xù)版本大多把工作都集中在移植性和可靠性上。
POSTGRES已經(jīng)被用于實(shí)現(xiàn)很多不同的研究和生產(chǎn)應(yīng)用。這些應(yīng)用包括: 一個(gè)財(cái)務(wù)數(shù)據(jù)分析系統(tǒng)、一個(gè)噴氣引擎性能監(jiān)控軟件包、一個(gè)小行星跟蹤數(shù)據(jù)庫、一個(gè)醫(yī)療信息數(shù)據(jù)庫和一些地理信息系統(tǒng)。POSTGRES還被許多大學(xué)用于教學(xué)用途。最后,Illustra Information Technologies(后來并入Informix, 而Informix現(xiàn)在被IBM所擁有) 拿到代碼并使之商業(yè)化。在 1992 年末POSTGRES成為Sequoia 2000科學(xué)計(jì)算項(xiàng)目的主要數(shù)據(jù)管理器。
在 1993 年間,外部用戶社區(qū)的數(shù)量幾乎翻番。隨著用戶的增加, 用于源代碼維護(hù)的時(shí)間日益增加并占用了太多本應(yīng)該用于數(shù)據(jù)庫研究的時(shí)間,為了減少支持的負(fù)擔(dān),伯克利的POSTGRES項(xiàng)目在版本 4.2 時(shí)正式終止。
在 1994 年,Andrew Yu 和 Jolly Chen 向POSTGRES中增加了 SQL 語言的解釋器。并隨后用新名字Postgres95將源代碼發(fā)布到互聯(lián)網(wǎng)上供大家使用, 成為最初POSTGRES伯克利代碼的開源繼承者。
Postgres95的源代碼都是完全的 ANSI C,而且代碼量減少了25%。許多內(nèi)部修改提高了性能和可維護(hù)性。Postgres95的1.0.x版本在進(jìn)行 Wisconsin Benchmark 測(cè)試時(shí)大概比POSTGRES的版本4.2 快 30-50%。除了修正了一些錯(cuò)誤,下面的是一些主要提升:
原來的查詢語言 PostQUEL 被SQL取代(在服務(wù)器端實(shí)現(xiàn))。接口庫libpq被按照PostQUEL命名。在PostgreSQL之前還不支持子查詢(見下文),但它們可以在Postgres95中由用戶定義的SQL函數(shù)模擬。聚集函數(shù)被重新實(shí)現(xiàn)。同時(shí)還增加了對(duì)GROUP BY
查詢子句的支持。
新增加了一個(gè)利用GNU的Readline進(jìn)行交互 SQL 查詢的程序(psql)。這個(gè)程序很大程度上取代了老的monitor程序。
增加了新的前端庫(libpgtcl
), 用以支持基于Tcl的客戶端。一個(gè)樣本 shell(pgtclsh
),提供了新的 Tcl 命令用于Tcl程序和Postgres95服務(wù)器之間的交互。
徹底重寫了大對(duì)象的接口。保留了將大對(duì)象倒轉(zhuǎn)(Inversion )作為存儲(chǔ)大對(duì)象的唯一機(jī)制(去掉了倒轉(zhuǎn)(Inversion )文件系統(tǒng))。
去掉了實(shí)例級(jí)的規(guī)則系統(tǒng)。但規(guī)則仍然以重寫規(guī)則的形式存在。
在發(fā)布的源碼中增加了一個(gè)介紹SQL和Postgres95特性的簡(jiǎn)短教程。
用GNU的make(取代了BSD的make)來編譯。Postgres95可以使用不打補(bǔ)丁的GCC編譯(修正了雙精度數(shù)據(jù)對(duì)齊問題)。
到了 1996 年, 很明顯“Postgres95”這個(gè)名字已經(jīng)跟不上時(shí)代了。于是我們選擇了一個(gè)新名字PostgreSQL來反映與最初的POSTGRES和最新的具有SQL能力的版本之間的關(guān)系。同時(shí)版本號(hào)也從 6.0 開始, 將版本號(hào)放回到最初由伯克利POSTGRES項(xiàng)目開始的序列中。
很多人會(huì)因?yàn)閭鹘y(tǒng)或者更容易發(fā)音而繼續(xù)用“Postgres”來指代PostgreSQL(現(xiàn)在很少用全大寫字母)。這種用法也被廣泛接受為一種昵稱或別名。
Postgres95的開發(fā)重點(diǎn)放在標(biāo)識(shí)和理解后端代碼的現(xiàn)有問題上。PostgreSQL的開發(fā)重點(diǎn)則轉(zhuǎn)到了一些有爭(zhēng)議的特性和功能上面,當(dāng)然各個(gè)方面的工作同時(shí)都在進(jìn)行。
自那以來,PostgreSQL發(fā)生的變化可以在版本說明 中找到。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: