GBase新闻
“G”术时刻:如何构建遵循ANSI标准的GBase 8s数据库环境
在使用GBase 8s数据库时,创建兼容ANSI的数据库是一个重要的功能,它可以帮助开发者更好地符合SQL语言的ANSI/ISO标准。本文将详细介绍如何创建兼容ANSI的数据库,并探讨不同模式下的数据库特性及其使用场景。
创建数据库的模式
在GBase 8s中,创建数据库时可以选择不同的模式,每种模式都有其特定的用途和特性:
无日志模式:这种模式下的数据库性能较好,但不支持逻辑恢复操作。
缓冲式日志模式:支持数据库逻辑恢复,同时避免频繁的I/O操作,适合生产系统。
无缓冲式日志模式:会有频繁的I/O操作,但一旦数据库宕机,数据损失较小。
ANSI模式:一种特殊的无缓冲式日志模式,符合额外的ANSI规则。
创建数据库的语法
创建数据库的基本语法如下:
CREATE DATABASE database [IN dbspace] [WITH LOG | WITH BUFFERED LOG | WITH LOG MODE ANSI] [NLSCASE SENSITIVE | NLSCASE INSENSITIVE];
参数说明
database:新数据库的名称,必须在数据库服务器中唯一
dbspace:数据库存储数据的dbspace,默认为rootdbs
WITH LOG:启用日志记录
WITH BUFFERED LOG:启用缓冲日志记录
WITH LOG MODE ANSI:创建兼容ANSI的数据库
NLSCASE SENSITIVE:创建区分大小写的数据库
NLSCASE INSENSITIVE:创建不区分大小写的数据库
使用说明
当前数据库:CREATE DATABASE指定的数据库将成为当前数据库。
权限设置:如果未设置DBCREATE_PERMISSION配置参数,则任何用户都可以创建数据库。如果设置了该参数,则只有指定的用户才能创建数据库。gbasedbt用户始终具有创建数据库的权限。
创建不同模式的数据库
1.无日志模式
CREATE DATABASE db_no;
这种模式下的数据库不能使用事务日志记录的事务或语句,如BEGIN WORK、COMMIT WORK 、ROLLBACK WORK等。
2.缓冲日志模式
CREATE DATABASE db_buf WITH BUFFERED LOG;
使用缓冲日志可以提高日志记录的性能,但可能面临失败后无法恢复最后几个事务的风险。
3.无缓冲日志模式
CREATE DATABASE db_unbuf WITH LOG;
在高可用集群的辅助服务器上创建数据库时,必须使用WITH LOG选项。
4.兼容ANSI的数据库
CREATE DATABASE db_ansi WITH LOG MODE ANSI;
兼容ANSI的数据库具有以下特性:
所有SQL语句自动包含在事务中
使用无缓冲的日志记录
实施所有者命名,查看表、视图等对象时必须使用所有者名称
默认隔离级别为REPEATABLE READ
对象上的默认权限与非兼容ANSI的数据库不同
所有的DECIMAL数据类型是定点值
5.区分大小写的数据库
CREATE DATABASE db_sens1 WITH LOG;CREATE DATABASE db_sens2 WITH LOG NLSCASE SENSITIVE;
在区分大小写的数据库中,布尔条件'M' MATCHES 'm' 计算为假。
6.不区分大小写的数据库
CREATE DATABASE db_insens1 WITH LOG NLSCASE INSENSITIVE;
在不区分大小写的数据库中,NCHAR和NVARCHAR列的字符串处理不考虑字母大小写。
查询数据库属性
可以通过查询sysmaster:sysdatabases表来获取数据库的属性信息:
SELECT * FROM sysmaster:sysdatabases WHERE name = 'db_insens2';
属性说明
在GBase 8s中,创建兼容ANSI的数据库可以帮助开发者更好地符合SQL语言的ANSI/ISO标准。通过本文的介绍,你可以了解不同模式下的数据库特性及其使用场景。希望本文能帮助你在数据库开发中更高效地创建和管理数据库。