KingbaseES与Oracle的对比
北京人大金仓信息技术股份有限公司
2009年8月
目录
1 概述 4
2 系统的运行环境 4
2.1 KingbaseES的系统运行环境 4
2.2 与Oracle的比较 4
3 数据库对象 4
3.1 表空间 4
3.2 表 5
3.3 索引 5
3.4 视图 5
3.5 Sequence(序列号发生器) 5
3.6 函数和存储过程 6
3.6.1 字符串函数 6
3.6.2 类型转换函数 6
3.6.3 获得系统信息函数 7
3.7 触发器 7
3.8 KingbaseES不支持的数据库对象 8
4 SQL 8
4.1 数据类型 8
4.2 SQL语法 9
4.3 PL/SQL 9
4.4 数据库编程接口和对开发工具的支持 10
4.4.1 ODBC 10
4.4.2 OLE DB 11
4.4.3 JDBC 11
4.4.4 .NET Data Provider 11
5 数据库系统管理 12
5.1 数据库的存储结构 12
5.1.1 KingbaseES数据库的存储结构 12
5.1.2 与Oracle数据库的存储结构的区别 12
5.2 数据库的进程结构 13
5.2.1 KingbaseES的进程结构 13
5.2.2 与Oracle数据库的进程结构的区别 14
5.3 数据库的内存管理 14
5.4 数据库的并发控制和事务处理 14
5.5 数据库的备份和恢复 15
5.5.1 KingbaseES的数据库备份和恢复 15
5.5.2 与Oracle数据库备份和恢复的区别 15
5.6 数据库的性能监控 15
5.7 数据库的安全性 16
5.7.1 身份识别和认证 16
5.7.2 基于角的权限管理和访问控制 16
5.7.3 审计 17
5.7.4 数据库加密 17
5.8 数据库的高可用性 18
6 数据库管理工具 18
6.1 KingbaseES企业管理器 18
6.2 KingbaseES查询分析器 18
6.3 KingbaseES数据迁移工具 19
6.4 KingbaseES逻辑备份还原工具 19
6.5 KingbaseES 物理备份恢复工具 19
6.6 KingbaseES控制管理器 20
概述
KingbaseES是一个大型通用跨平台的多用户数据库管理系统,可以安装和运行于Windows、Linux、Unix等多种操作系统平台下。
本文档从系统的运行环境、数据库应用开发、数据库系统管理和数据库管理工具等几个方面比较了KingbaseES和Oracle的不同之处。
本文档依据于KingbaseES V6.1和Oracle 做相关比较。
系统的运行环境
KingbaseES的系统运行环境
∙ 硬件环境
CPU: x86或兼容机型,PowerPC,UltraSparc等;
内存:256MB以上,建议512MB以上;
硬盘:硬盘的大小与所需要存储的数据量有关。Linux上建议采用ext3文件系统,Windows上使用NTFS文件系统。
∙ 软件环境
KingbaseES服务器可以安装在Microsoft Windows 2000/XP/2003,红旗/中标/Red Hat/Turbo Linux,麒麟Kylin,IBM AIX,Sun Solaris操作系统下。在安装KingbaseES 之前,需要配置好相应系统平台的系统参数。
与Oracle的比较
Oracle支持更多的操作系统平台。KingbaseES目前虽然只提供上述操作系统平台的版本,但KingbaseES中与平台相关的代码是独立出来的,因此很容易扩展到对其他操作系统平台的支持。
数据库对象
表空间
KingbaseES表空间的定义和使用与Oracle基本相同。
表
KingbaseES可以创建常规表和临时表,并在表上支持完整性约束:
(1) 实体完整性(主码)
(2) 参照完整性(外码)
(3) 用户自定义的完整性(NOT NULL,UNIQUE,CHECK,DEFAULT)。
KingbaseES支持对表的水平分片(Partition),定义和使用与Oracle基本相同。
Oracle支持,但是KingbaseES目前不支持的表的特征有:
(1) 不能指定表的物理存储特征,这与KingbaseES的物理存储结构(在后面章节中会介绍)相关。
(2) 不支持对表的并行操作(Parallel)
(3) 不支持索引组织表(Index-Organized Table)
(4) 不支持Cluster存储的表
索引
KingbaseES和Oracle都支持以下的索引类型:
(1) B树索引
a) Unique和Non-unique索引
b) 复合索引(Composite index)
(2) 函数索引
KingbaseES支持但是Oracle不支持的索引类型:Hash索引
KingbaseES不支持但是Oracle支持的索引类型:
(1) Bitmap索引
(2) Domain 索引
Oracle支持,但是KingbaseES目前不支持的索引的特征有:
(1) 不能指定索引的物理存储特征
(2) 不支持索引的分区(Partition ,与不支持表的分区相对应)
(3) 不支持索引key的压缩。
(4) 不支持reverse Key索引。
视图
与Oracle相同,KingbaseES视图的实现基本遵循SQL标准。目前KingbaseES不支持实体化视图(Materialized View)。
Sequence(序列号发生器)
序列号发生器的定义和使用与Oracle基本相同。
函数和存储过程
KingbaseES和Oracle都提供了多种类型的内置系统函数。具体函数的使用可以参看手册。
字符串函数
功能说明 | Oracle | KingbaseES | ||
对NULL值的处理 | 语法 | NVL(STRING,STRING) | 语法 | NVL(STRING,STRING)或 ISNULL(STRING,STRING) |
实例 | SELECT NVL(NULL,’THIS IS NULL’) FROM DUAL; | 实例 | SELECT NVL(NULL,’THIS IS NULL’) FROM DUAL; | |
某字符串在另一个字符串中的位置 | 语法 | INSTR(STRMAIN,STRSUB) | 语法 | INSTR(STRMAIN,STRSUB)或 POSITION(STRSUB IN STRMAIN) |
实例 | SELECT INSTR(‘BEI JING’, ‘JING’) FROM DUAL; | 实例 | oracle 时间转换SELECT INSTR(‘BEI JING’, ‘JING’) FROM DUAL; | |
取得字符串的长度 | 语法 | LENGTH() | 语法 | LENGTH()或CHAR_LENGTH()或CHARACTER_LENGTH() |
实例 | SELECT LENGTH(‘BEIJING’) FROM DUAL | 实例 | SELECT LENGTH(‘BEIJING’) FROM DUAL | |
取得字符串的一部分 | 语法 | SUBSTR(S,FROM,TO) | 语法 | SUBSTRING(S,FROM,TO)或 SUBSTR(S,FROM,TO) |
实例 | SELECT SUBSTR('KINGBASEES',5,4) FROM DUAL; | 实例 | SELECT SUBSTRING('KINGBASEES',5,4) FROM DUAL; | |
匹配字符转换 | 语法 | TRANSLATE | 语法 | TRANSLATE |
实例 | SELECT TRANSLATE('12345', '14', 'AX') FROM DUAL; | 实例 | SELECT TRANSLATE('12345', '14', 'AX') FROM DUAL; | |
类型转换函数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论