CUBRID

CUBRID 是一個全面開源，且完全免費的關係資料庫管理系統。CUBRID 為高效執行線上交易處理 (OLTP) 進行了高度最佳化，特別是需要處理大資料量和高併發請求的複雜商務服務。透過提供獨特的最最佳化特性，CUBRID 可以支援更多的併發請求，更少的響應時間。

CUBRID 名稱的起源

CUBRID 這個名稱，實際上是兩個單詞的組合:"Cube"(立方體) 和 "Bride"(橋樑)。對 CUBRID 而言，"Bride" 代表 "data bridge"(資料橋)，而 "Cube" 代表儲存資料的盒子，寓意為放在其中的資料提供安全。因此，CUBRID 代表可以為機密資訊提供安全保障。

產品許可資訊 (License Policy)

CUBRID 針對 DBMS 引擎和應用程式程式設計介面 (API)，使用了不同型別的許可。DBMS 引擎使用 Apache 授權條款 (Apache License)，允許使用者釋出，修改和獲取原始碼。應用程式程式設計介面 (API) 使用伯克利軟體分發 (BSD) 許可協議，商業使用者可以自由開發和分發基於 CUBRID 的應用程式，而不必被迫開源自己的衍生產品。CUBRID 之所以採用兩種不同型別的許可，是為了減少帶給獨立軟體開發商 (ISV 開發和釋出各種基於 CUBRID 應用的限制。

CUBRID license policy 的許可政策，同其他資料庫系統不同。如果要釋出或銷售基於 MySQL 的應用，需要開放應用原始碼或購買商業許可。而 CUBRID 由於針對引擎和 API 使用了不同的許可政策，從而降低了對傳統開源資料庫管理系統的使用限制，有效的為商業公司減輕了開支。

支援平臺 (Supported platform)

CUBRID 可用於 Microsoft Windows 和 Linux（兩者為大多數發行版本）以及 32 位和 64 位體系結構。

介面 (Interface)

CUBRID 的伺服器和官方程式庫是使用 C/C++ 開發的，而 GUI 資料庫管理工具 CUBRID Manager，以及其他的 CUBRID 管理工具，則是使用 Java 開發的。

4.1 命令列（Command Line）

CUBRID 提供了一個稱為 CSQL 的命令列管理工具，透過此工具，使用者可以在 CUBRID 伺服器上上執行 SQL 語句。 並實現架構，障礙排除，事務控制等相關的內部命令例如：

此工具通常可以在一下兩種模式之一中使用：

CS (client/server) 模式：連線到本地或遠端 CUBRID 伺服器
SA (stand alone) 模式：主要用於管理目的

4.2 程式設計介面 (Programming Interface)

CUBRID 提供包括 JDBC、PHP/PHO、ODBC、ADO.NET、CCI、NODE.JS、PERL、Ruby 和 Python 等在內的特定程式語言的 API。

4.3 圖形使用者介面 (Graphical User Interface)

CUBRID 開發了以下 Graphical User Interface：

CUBRID Manager：是在 BSD license 下開發的一款適用於 Microsoft Windows 和 Linux 的用於查詢瀏覽器和資料庫管理的工具
CUBRID Admin：是在 BSD license 下開發的一款適用於 Microsoft Windows 的資料庫管理的工具
SQLGate：是 CHEQUER Corp 研發的適用於 Microsoft Windows 的查詢瀏覽器工具
CUBRID Migration Toolkit: 是一款允許使用者把資料庫從 Oracle, MS-SQL, MySQL 和舊版 CUBRID 移動到最新版本 CUBRID 伺服器的工具

CUBRID 效能

5.1 高可用性（High Availability）

CUBRID HA 透過無共享群集 (shared-nothing clustering)，自動故障轉移和手動故障回復機制，提供了負載平衡，故障容許和連續的服務可用性。CUBRID 的 3 層體系結構允許透過兩級自動故障轉移對伺服器的高可用性提供本地支援：伺服器故障轉移和伺服器故障轉移。

5.2 擴充套件性和維護性（Scalability and Maintainability）

備份（Backup): CUBRID 支援線上，離線和增量備份；
API 負載均衡（API-level load balancing)；
查詢計劃快取（Query plan caching）；
Indexes: CUBRID 支援單列和多列 B + 樹索引，使用者可以利用 CUBRID 建立以下型別的索引：
索引和反向索引； 唯一索引和反向唯一索引； 基於功能的索引；* 篩選索引；
資料表格分割（Table Partitioning）；
SQL Support:CUBRID 實現了 ANSI SQL：1999 標準的較大子集，並擴充套件了更高版本的 SQL 標準和自定義功能
多種資料型別支援（Various Data Types supported）:
數值:
integer numerics: SMALLINT (16 bit), INTEGER (32 bit), BIGINT (64 bit)
floating point numerics: FLOAT (32 bit), DOUBLE (64 bit)
arbitrary precision numerics: NUMERIC
monetary values: MONETARY (double precision floating point)
String 值:
fixed-length character and bit strings: CHAR, BIT
variable-length character and bit strings: CHAR VARYING, BIT VARYING
日期和時間值:
date values: DATE
time values: TIME
date and time values: DATETIME, TIMESTAMP (internally stored as a Unix timestamp)
整合值: SET, MULTISET, LIST
列舉（defined Enumerated type|enumerations）: ENUM
大物件（large objects）: BLOB, CLOB
JS 物件簡譜（JavaScript Object Notation）: JSON

最新版本特性

CUBRID 的最新版本，是 2019 年 12 月釋出的 CUBRID 10.2。與 CUBRID 10.1 版本相比，CUBRID 10.2 添加了一個線上並行載入器（online parallel loader），將海量資料載入效能提高了 10 倍。此外，CUBRID 10.2 為了提高給其索引功能，還添加了 JSON 資料型別和線上並行索引（online parallel index）。一般資料表運算式 (Common Table Expressions, CTE) 也在 CUBRID 10.2 版本中得到擴充套件。 為了提高穩定性，CUBRID 10.2 還添加了 Double Write Buffer，以防止部分頁面寫到磁碟上以及主要程式碼的重構和錯誤修復。

產品開發歷史