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開發的。

### 命令列（Command Line）

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

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

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

### 編程接口(Programming Interface)

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

### 圖形使用者接口(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性能

### 高可用性（High Availability）

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

### 擴展性和維護性（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)
- 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，以防止部分頁面寫到磁盤上以及主要代碼的重構和錯誤修復。

## 產品開發歷史

版本｜發布日期｜Beta 發布日期｜性能增加

11.0｜01, 2021｜安全：TDE(Transparent Data Encryption)及其他

10.2｜12, 2019｜新數據類型添加：JSON(JavaScript Object Notation)及其他

10.1｜07, 2017｜添加有用的SQL擴展：CTE（一般資料表運算式）及其他。

10.0｜02, 2016｜提供基於MVCC協議的快照隔離（snapshot isolations）。包括許多SQL擴展和功能/運算符

9.3｜05, 2014｜新的SQL功能，支持模式鎖定，支持各種SHOW語法，性能改進。

9.2｜09, 2013｜SQL分析，新SQL支持等多項改進

9.1｜03, 2013｜新的SQL函數和索引提示，性能改進和優化。

9.0｜10, 2012｜國際化支持，函數索引，過濾器索引，索引跳過掃描，MERGE語句，窗口函數。

8.4.3｜20,11,2012｜資料庫分片，API級負載平衡，內置Web管理器，監測支持

8.4.1｜24,02, 2012｜01,02, 2012｜重要的性能優化，SQL擴展，REGEXP運算符

8.4.0｜01,07, 2011｜12,05, 2011｜High Availability性能提高, CUBRID C API的改進，顯著的性能優化，涵蓋了索引

3.1｜31,12, 2010｜12,11, 2010｜BLOB and CLOB支持, High Availability監測支援, 驅動(JDBC, ODBC and CUBRID C API)提高

3.0｜04,10，2010｜19,07, 2010｜SQL擴展，High Availability性能提高

2.2｜30,04, 2010｜CUBRID 2008 R2.2 Stable版發布。High Availability, CUBRID C API以及其他性能提高

02, 2010｜CUBRID Cluster Alpha版發布。

2.1｜11, 2009｜CUBRID 2008 R2.1 Stable版發布。

10, 2009｜CUBRID 項目主頁在Sourceforge.net產生，其官方的開源社區網站www.cubrid.org上線。

09, 2009｜CUBRID Cluster 項目啟動。

2.0｜08, 2009｜CUBRID 2008 R2.0 Stable版發布。

1.4｜03, 2009｜CUBRID 2008 R1.4 Stable版發布。

1.3｜02, 2009｜CUBRID 2008 R1.3 Stable版發布。

1.2｜01, 2009｜CUBRID 2008 R1.2 Stable版發布。

1.1｜11, 2008｜CUBRID成為開源項目. CUBRID 2008 R1.1 Stable版發布

1.0｜10, 2008｜第一個內部發布版 CUBRID 2008 R1.0 Stable版發布

2006｜CUBRID DBMS項目開發啟動

## 基本資料

- 開發者：CUBRID Corp.
- 程式語言：C, C++, Java
- 作業系統：Linux, Windows
- 語言：英文, 韓文
- 類型：關係資料庫
- 許可協議：伺服器引擎遵循Apache License， APIs和GUI tools遵循BSD license
- 網站： www.cubrid.org