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