Postgresql 小白學習之路之 postgresql的介紹

Postgresql 小白學習之路之 postgresql的介紹

概要介紹
PostgreSQL是一個功能強大的開源數據庫系統。經過長達15年以上的積極開發和不斷改進,PostgreSQL已在可靠性、穩定性、數據一致性等獲得了業內極高的聲譽。目前PostgreSQL可以運行在所有主流操作系統上,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS X、Solaris和Tru64)和Windows。PostgreSQL是完全的事務安全性數據庫,完整地支持外鍵、聯合、視圖、觸發器和存儲過程(並支持多種語言開發存儲過程)。它支持了大多數的SQL:2008標準的數據類型,包括整型、數值型、布爾型、字節型、字符型、日期型、時間間隔型和時間型,它也支持存儲二進制的大對像,包括圖片、聲音和視頻。PostgreSQL對很多高級開發語言有原生的編程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他語言等,也包含各種文檔。

作爲一種企業級數據庫,PostgreSQL以它所具有的各種高級功能而自豪,像多版本併發控制(MVCC)、按時間點恢復(PITR)、表空間、異步複製、嵌套事務、在線熱備、複雜查詢的規劃和優化以及爲容錯而進行的預寫日誌等。它支持國際字符集、多字節編碼並支持使用當地語言進行排序、大小寫處理和格式化等操作。它也在所能管理的大數據量和所允許的大用戶量併發訪問時間具有完全的高伸縮性。目前已有很多PostgreSQL的系統在實際生產環境下管理着超過4TB的數據。一些PostgreSQL系統的極限值如下表所列:
極限值:
由於PostgreSQL的優異性能,它已贏得最終用戶和業內的多次大獎,包括Linux新媒體(Linux New Media)的最佳數據庫獎和5次Linux期刊編輯選出的最佳數據庫獎。
衆多功能和標準兼容性
PostgreSQL對SQL標準高度兼容,它實現的功能完全遵守於ANSI-SQL:2008標準。目前完全支持子查詢(包括在FROM中的子查詢)、授權讀取和可序列化的事務隔離級別。同時PostgreSQL也具有完整的關係數據庫系統的目錄功能,它支持單數據庫的多模式功能,每一個目錄可通過SQL標準中定義的字典信息模式進行訪問。
Data集成性功能包括(複合)主鍵、含有嚴格約束或級聯更新和刪除功能的外鍵、錄入檢查約束、唯一性約束和非空約束。
PostgreSQL也具有很多擴展模塊和更高級的功能。其中有爲方便使用的通過序列實現的自增字段、 允許返回部分記錄集的LIMIT/OFFSET選項,也支持複合、唯一、部分和函數式索引,索引並支持B-Tree、R-Tree、Hash或GiST存儲方式。
GiST (通用搜索樹) 索引是一種高級系統算法,它將不同的排序算法與包含B-Tree、B±Tree、R-Tree、部分彙總樹、可加權的B±Tree以及其他多種搜索邏輯結合在一起,它也提供了接口允許創建用戶數據類型和擴展的查詢方法。這樣,GiST提供了用戶指定存儲和定義新方法進行查詢的靈活性—它大大超越了標準B-Tree、R-Tree和其他通用搜索邏輯所能提供的功能。
GiST現在也成爲很多其他使用PostgreSQL公共項目的基礎,如OpenFTS和PostGIS項目。 OpenFTS(開源全文搜索引擎)項目提供在線索引和數據庫搜索的相當權重評分。 PostGIS項目給PostgreSQL增加了地理信息管理功能,允許用戶將PostgreSQL作爲GIS空間地理信息數據庫使用,這和專業的ESRI公司的SDE系統以及Oracle的空間地理擴展模塊功能相同。
其他高級功能包括表繼承、規則和數據庫事件響應功能等。表繼承功能可以按原來的一個表創建一個有關係的新表,這樣允許數據庫設計人員可以將一個表作爲基表,從基表派生出新表。並且PostgreSQL甚至可以使用此方式實現單級或多級的繼承。
規則功能是用來調用查詢的重算功能,允許數據庫設計人員根據不同的表或視圖來創建規則,以實現動態改變數據庫原操作爲新的操作的功能。
事件響應功能是一個內部通訊功能,它將系統信息或事件在用戶使用的LISTEN和NOTIFY兩條指令後進行傳遞,允許 簡要的點對點通訊或是對指定數據庫事件的定點通訊。由於信息可以從觸發器或是存儲過程中發出,PostgreSQL的用戶可以監控類似更新、新增或是刪除的數據庫事件。
高度可定製性
PostgreSQL的存儲過程開發可以使用衆多的程序語言,包括Java、Perl、Python、Ruby、Tcl、C/C++和自帶的PL/pgSQL,其中的PL/pgSQL與Oracle的PL/SQL很相似,內置了數百個函數,功能從基本的算術計算和字符串處理到加密邏輯計算並與Oracle有高度兼容性。觸發器和存儲過程可以使用C語言開發並可以作爲內部庫文件加載至數據庫內部,開發上的巨大靈活性擴展了數據庫能力。相應地,PostgreSQL也包括一套框架允許開發人員定義和創建他們自己的可在函數中使用數據類型,也可以定義操作符新的處理方式,具有了這樣的能力後,PostgreSQL現已具有了各種高級數據類型,包括幾何圖形、空間地理、網絡地址甚至於ISBN/ISSN(國際標準書號/國際標準序列號),這些都可以加入至系統中。
由於有很多的存儲過程語言可以使用,這樣也產生了很多的庫接口,這樣允許各種編譯型或是解釋型的語言在PostgreSQL進行使用,包括Java(JDBC)、ODBC、Perl、Python、Ruby、C、C++、PHP、Lisp、Scheme和Qt等。
最重要的一點,PostgreSQL的源代碼可以自由獲取,它的授權是在非常自由的開源授權下,這種授權允許用戶在各種開源或是閉源項目中使用、修改和發佈PostgreSQL的源代碼。用戶對源代碼的可以按用戶意願進行任何修改、改進。因此,PostgreSQL不僅是一個強大的企業級數據庫系統,也是一個用戶可以開發私用、網絡和商業軟件產品的數據庫開發平臺。

主要優點

PostgreSQL爲您的公司或是商業應用提供很多有別於其他數據庫很多優點:

對超許可數量軟件使用的天然免疫力

對一些商業性質的數據庫銷售商來說,超許可數量的軟件使用是第一位的問題。而使用PostgreSQL,因爲沒有任何授權的費用是,也就沒有任何人可以起訴您違反授權協議違規使用軟件。
這樣也還有以下幾個其他的優點:
隨着使用數量的增加不會影響業務的利潤。
在任何階段都不會有類似授權審計的打擾。
在做理論性研究和測試性的發佈時不必考慮額外授權費用的影響。
比商業服務商更好的支持
除了有一般商業公司的支持外,我們還有由PostgreSQL專業人員和熱心的愛好者組成的各種社區,用戶可以向他們尋求支持和幫助。

員工成本的顯著降低

相對於市場上大型的商業私有數據庫軟件,我們的系統在設計和開發時已考慮僅需少量的維護和優化,同時仍保持所有功能正常、穩定和性能正常。
不僅如此,我們的培訓過程相對於那些商業私有數據庫供應商來說,總體來說有更好的性價比、更容易管理和更接近真實的使用場景。

享有盛名的可靠性和穩定性

與很多商業私有數據庫不一樣的是,對很多公司特別常見的是,PostgreSQL在幾年的運行過程中幾乎未出現哪怕是一次的宕機情況,即使是一次,它就是這樣穩定地工作着。

擴展性

所有PostgreSQL的源代碼對所有人都是可以免費獲得的。如果您的公司員工需要定製或是給PostgreSQL增加一些功能,他們只需做很少的改動工作,也沒有額外的成本。全球PostgreSQL社區的專業人員和熱心的愛好者也在積極地擴展PostgreSQL的功能。

跨平臺能力

PostgreSQL幾乎可以所有Unix類操作系統下運行 (根據統計有至少34種平臺),自8.0版本以後,在Windows平臺下的也使用原生支持方式。

大數據量環境下的設計

我們使用MVCC模式作爲數據存儲的策略,這樣PostgreSQL可以在大數據量的環境下具有極高的響應性能。一些領先的商業私有數據庫供應商基於相同的原因,也使用這種技術。
圖形化的數據庫設計和管理工具
有很多高品質的圖形化的PostgreSQL管理工具軟件,包括開源和商業性質的。在我們的維基網站上有一個清單列出了PostgreSQL相關的圖形化工具軟件。

技術特性

可瀏覽功能列表來了解PostgreSQL各種功能變化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章