技術新知

開放原始碼 PostgreSQL 資料庫系統簡介

PostgreSQL 開放原始碼資料庫系統

開放原始碼 OpneERP 系統採用的資料庫是 PostgreSQL,不是大家比較熟悉的 開放原始碼 MySQL 資料庫系統,因此有必要對 PostgreSQL 做一番了解。

PostgreSQL是一套功能強大、開放原始碼 物件關聯資料庫系統,已開發超過15年,在系統可靠性、資料完整性和正確性獲得極佳評價。PostgreSQL可以在各種常見作業系統上執行,包括 Linux, UNIX(AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris 與 Tru64)和 Windows。 PostgreSQL 完全符合ISO ACID,全面支援 Foreign Keys, Joins, Views, Triggers, 與 Stored Procedures(多種程式語言)。 支援大多數的 SQL:2008 資料型態,包括 Integer, Numberic, Boolean, Char, Varchar, DATE, INTERVAL 與 TIMESTAMP,也支援儲存二進制(binary)大型物件,如 圖片、聲音或視訊。它支援的原生可程式語言包含 C/C++, Java, .Net, Perl , Python, Ruby, TCL, ODBC,文件手冊齊全。

PostgreSQL 可稱得上是一套企業級資料庫系統, 具備先進資料庫系統功能,如多版本並行控制(Multi-Version Concurrency Control, MVCC), 時間點資料還原, 表格空間(tablespaces), 非同步資料複製(Asynchronous Replication), 巢狀交易(儲存點), 線上/熱備份, 複雜的查詢規劃器/優化, 支援容錯能力的優先寫入日誌檔。

PostgreSQL 支援 國際字元集, 多位元組字元編碼, Unicode 等資料格式的排序與區分大小寫。 PostgreSQL 是一套高擴展性的資料庫系統, 可處理大量數據資料, 可負荷大量使用者同時存取。 在實際商業應用案例中 PostgreSQL 資料庫系統中處理超過 4 TB 資料量。

PostgreSQL 系統限制

限制
最大 Database Size 無限制
最大 Table Size 32 TB
最大 Row Size 1.6 TB
最大 Field Size 1 GB
每個Table可儲存最多 Rows  無限制
每個Table可儲存最多 Columns 250~1600 視column types而定
每個Table可定義最多Indexes 無限制

PostgreSQL版本功能對照表

PostgrelSQL 歷經15年的開發,目前最新版本已推出9.3版。某些功能在某版本之後才開始加入,欲知詳情,可參閱 PostgreSQL 版本功能對照表

ACID

ACID是 ISO/IEC 10026-1:1992 對資料庫系統(DBMS)在處理資料異動所定義需要具備的功能,要求資料庫管理系統在寫入/異動資料的過程中,為保證資料庫交易(transaction)的正確可靠,必須具備以下四個特性:

  • 不可分割性(Atomicity)
  • 資料一致性(Consistency)
  • 獨立性(Isolation)
  • 持久性(Durability)