CUBRID
CUBRID 是一個全面開源,且完全免費的關係數據庫管理系統。CUBRID為高效執行線上交易處理(OLTP)進行了高度優化,特別是需要處理大數據量和高並發請求的複雜商務服務。通過提供獨特的最優化特性,CUBRID可以支持更多的並發請求,更少的響應時間。[2]
開發者 | CUBRID Corp. |
---|---|
當前版本 |
|
源代碼庫 | |
編程語言 | C, C++, Java |
操作系統 | Linux, Windows |
語言 | 英文, 韓文 |
類型 | 關係數據庫 |
許可協議 | 服務器引擎遵循Apache License, APIs和GUI tools遵循BSD license |
網站 | www.cubrid.org |
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使用了不同的許可政策,從而降低了對傳統開源數據庫管理系統的使用限制,有效的為商業公司減輕了開支。[3]
支持平台(Supported platform)
CUBRID可用於Microsoft Windows和Linux(兩者為大多數發行版本)以及32位和64位體系結構。
接口(Interface)
CUBRID的服務器和官方程序庫是使用C/C++開發的,而GUI數據庫管理工具CUBRID Manager,以及其他的CUBRID管理工具,則是使用Java開發的。
命令列(Command Line)
CUBRID提供了一個稱為CSQL[4]的命令行管理工具,通過此工具,用戶可以在CUBRID服務器上上執行SQL語句。[5] 並實現架構,障礙排除,事務控制等相關的內部命令例如: 此工具通常可以在一下兩種模式之一中使用:
- 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[6]:是在BSD license下開發的一款適用於Microsoft Windows和Linux的用於查詢瀏覽器和數據庫管理的工具
- CUBRID Admin:是在BSD license下開發的一款適用於Microsoft Windows的數據庫管理的工具
- SQLGate:是CHEQUER Corp研發的適用於Microsoft Windows的查詢瀏覽器工具
- CUBRID Migration Toolkit: [7]是一款允許用戶把數據庫從Oracle, MS-SQL, MySQL和舊版CUBRID移動到最新版本CUBRID服務器的工具
CUBRID性能
高可用性(High Availability)
CUBRID HA通過無共享群集(shared-nothing clustering),自動故障轉移和手動故障回復機制,提供了負載平衡,故障容許和連續的服務可用性。CUBRID的3層體系結構允許通過兩級自動故障轉移對伺服器的高可用性提供本地支持:伺服器故障轉移和服務器故障轉移。[8]
擴展性和維護性(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,以防止部分頁面寫到磁盤上以及主要代碼的重構和錯誤修復。[9]
產品開發歷史
版本 | 發布日期 | Beta 發布日期 | 性能增加 |
---|---|---|---|
11.0 | 01, 2021 | 安全:TDE(Transparent Data Encryption)及其他 [10] | |
10.2 | 12, 2019 | 新數據類型添加:JSON(JavaScript Object Notation)及其他 [11] | |
10.1 | 07, 2017 | 添加有用的SQL擴展:CTE(一般資料表運算式)及其他。[12] | |
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的改進,顯著的性能優化,涵蓋了索引 [13][14] |
3.1 | 31,12, 2010 | 12,11, 2010 | BLOB and CLOB支持, High Availability監測支援, 驅動(JDBC, ODBC and CUBRID C API)提高 [15] |
3.0 | 04,10,2010 | 19,07, 2010 | SQL擴展,High Availability性能提高 [16][17] |
2.2 | 30,04, 2010 | CUBRID 2008 R2.2 Stable版發布。High Availability, CUBRID C API以及其他性能提高[18] | |
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 11.2 Patch 7.
- ^ 关于CUBRID. CUBRID.org. [2020-05-27]. (原始內容存檔於2020-05-12).
- ^ 认识CUBRID: One of Korea’s Top Open Source Projects. Open Source Buzz. 2010-06-21 [2010-10-05]. (原始內容存檔於2010-06-26).
- ^ CSQL - SQL命令行解释器. CUBRID.org. 2010-07-06 [2019-09-24]. 原始內容存檔於2010-09-16.
- ^ How to use CSQL utilities. [8 February 2013]. 原始內容存檔於2013-02-14.
- ^ CUBRID Manager. [8 February 2013]. 原始內容存檔於2013-01-16.
- ^ CUBRID Migration Toolkit. [8 February 2013]. 原始內容存檔於2013-02-10.
- ^ CUBRIDHA. [2020-05-27].
- ^ CUBRID10.2关键特性. CUBRID.org. [2020-05-26]. (原始內容存檔於2020-05-12).
- ^ CUBRID 11.0 has been released. 27 January 2021 [2021-02-02]. (原始內容存檔於2023-11-30).
- ^ CUBRID 10.2 has been released. [2020-05-21]. (原始內容存檔於2020-05-21).
- ^ CUBRID 10.1 is released. [2020-05-21]. (原始內容存檔於2021-01-27).
- ^ CUBRID 8.4.0 has arrived w/ x2 faster database engine!. [2011-05-17]. 原始內容存檔於2011-05-20.
- ^ CUBRID 8.4.0 GA is now available for download. [2011-07-14]. 原始內容存檔於2011-08-25.
- ^ CUBRID 3.1 Stable is now available!. [2011-01-03]. 原始內容存檔於2011-01-07.
- ^ CUBRID 3.0 Stable has arrived!. [2010-10-05]. 原始內容存檔於2010-10-08.
- ^ New CUBRID 2008 R3.0 Beta has been released. [2010-07-21]. 原始內容存檔於2011-08-27.
- ^ New Version Release - CUBRID 2008 R2.2. [2010-05-07]. 原始內容存檔於2011-07-25.