開放原始碼 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)