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.