简介
关于本出版物
用户类型
软件依赖性
关于语言环境的假设
演示数据库
示例代码约定
其他文档
符合行业标准
数据库设计和实现基础
规划数据库
为数据库选择数据模型
使用符合 ANSI 标准的数据库
符合 ANSI 标准的数据库与不符合 ANSI 标准的数据库之间的差别
事务
事务日志记录
所有者命名
对对象的特权
缺省隔离级别
字符数据类型
DECIMAL 数据类型
转义字符
游标行为
SQL 通信区的 SQLCODE 字段
同义词行为
确定现有数据库是否符合 ANSI
对数据库使用定制语言环境 (GLS)
构建关系数据模型
构建数据模型
实体关系数据模型概述
标识和定义主体数据对象
发现实体
选择可能的实体
实体列表
电话号码簿示例
通用的重要实体
基本实体
一元实体
图实体
定义关系
连接
存在依赖性
基数
发现关系
图关系
标识属性
选择实体的属性
列表属性
关于实体出现形式
图数据对象
如何读 E-R 图
电话号码簿示例
完成图之后
将 E-R 数据对象转换为关系构造
定义表、行和列
对列进行约束
域特征
确定表的键
主键
组合键
系统指定键
外键(连接列)
为电话号码簿图添加键
解析关系
解析 m:n 关系
解析其他特殊关系
规范化数据模型
第一范式
第二范式
第三范式
规范化规则的摘要
选择数据类型
定义域
数据类型
选择数据类型
数字类型
计数器和代码:BIGINT、INT8、INTEGER 和 SMALLINT
自动序列:BIGSERIAL、SERIAL 和 SERIAL8
变更下一个 BIGSERIAL、SERIAL 或 SERIAL8 数
近似数:FLOAT 和 SMALLFLOAT
可调整精度浮点:DECIMAL(p)
固定精度数:DECIMAL 和 MONEY
选择货币格式
时间值数据类型
日历日期:DATE
选择日期格式 (GLS)
精确时间点:DATETIME
使用 INTERVAL 的持续时间
强制 DATETIME 或 INTERVAL 值的格式
选择 DATETIME 格式 (GLS)
BOOLEAN 数据类型
字符数据类型 (GLS)
字符数据:CHAR(n) 和 NCHAR(n)
可变长度字符串:CHARACTER VARYING(m,r)、VARCHAR(m,r)、NVARCHAR(m,r) 和 LVARCHAR(m)
可变长度执行时间
大字符对象:TEXT
二进制对象:BYTE
使用 TEXT 和 BYTE 数据类型
更改数据类型
空值
缺省值
检查约束
引用约束
实现关系数据模型
创建数据库
使用 CREATE DATABASE
避免名称冲突
选择数据库空间
选择日志记录类型
使用 CREATE TABLE
创建分段表
删除或修改表
使用 CREATE INDEX
组合索引
索引的双向遍历
使用表名的同义词
使用同义词链
使用命令脚本
捕获模式
执行文件
示例
填充数据库
从其他 GBase 8s 数据库移动数据
将源数据装入表
执行大批量装入操作
管理数据库
表分段存储策略
什么是分段存储?
为何使用分段存储?
分段存储是谁的职责?
分段存储和日志记录
表分段存储的分布方案
基于表达式的分布方案
范围规则
仲裁规则
使用 MOD 函数
插入和更新行
循环分布方案
创建分段表
创建新分段表
从非分段表创建分段表
多个非分段表
使用单个非分段表
分段表中的 rowid
分段智能大对象
修改分段存储策略
重新初始化分段存储策略
修改分段存储策略
ADD 子句
DROP 子句
MODIFY 子句
授予和撤销对分段的特权
授予和限制对数据库的访问权
使用 SQL 来限制对数据的访问
控制对数据库的访问
授予特权
数据库级别特权
Connect 特权
用户和 PUBLIC
Resource 特权
数据库管理员特权
所有权权限
表级别特权
访问特权
系统目录表中的特权
Index、Alter 和 References 特权
类型表的 Under 特权
对表分段的特权
列级别特权
类型级别特权
对用户定义的类型的 Usage 特权
对命名行类型的 Under 特权
例程级别特权
语言级别特权
SPL 例程
外部例程
自动维护特权
通过命令脚本实现自动化
角色
创建角色
处理用户特权以及将特权授予其他角色
启用缺省角色和非缺省角色
确认角色中的成员资格和删除角色
在运行时确定当前角色
使用 SPL 例程来控制对数据的访问
限制数据读取
限制数据更改
监视数据更改
限制对象创建
视图
创建视图
类型视图
视图中的重复行
对视图的限制
当视图基础更改时
使用视图进行修改
使用视图进行删除
更新视图
插入到视图中
使用 WITH CHECK OPTION 关键字
在视图定义更改时重新执行预编译语句
特权和视图
创建视图时的特权
使用视图时的特权
分布式查询
分布式查询概述
在单个 GBase 8s 实例的多个数据库中的分布式查询
在两个或两个以上 GBase 8s 实例的多个数据库中的分布式查询
分布式查询中的协调者和参与者
配置数据库服务器以使用分布式查询
分布式查询的语法
访问远程服务器和数据库
数据库名称段
数据库对象名称段
访问远程对象的有效语句
访问远程表
表许可权
限定表引用
其他远程操作
打开远程数据库
创建远程数据库
创建远程表的同义词
监视分布式查询
服务器环境和分布式查询
分布式查询的日志记录类型限制
事务处理
隔离级别
DEADLOCK_TIMEOUT 和 SET LOCK MODE
两阶段落实和恢复
对象关系数据库
在 GBase 8s 中创建和使用扩展数据类型
GBase 8s 数据类型
基本或原子数据类型
预定义数据类型
其他预定义数据类型
扩展数据类型
复杂数据类型
用户定义的数据类型
单值数据类型
不透明数据类型
DataBlade 数据类型
智能大对象
BLOB 数据类型
CLOB 数据类型
使用智能大对象
复制智能大对象
复杂数据类型
集合数据类型
集合中的空值
SET 集合类型
MULTISET 集合类型
LIST 集合类型
嵌套集合类型
将集合类型添加至现有的表
对集合的限制
命名行类型
何时使用命名行类型
选择命名行类型的名称
对命名行类型的限制
对数据类型的限制
对约束的限制
对索引的限制
对串行数据类型的限制
使用命名行类型创建类型表
更改表的类型
将无类型表转换为类型表
将类型表转换为无类型表
使用命名行类型创建列
在其他行类型中使用命名行类型
删除命名行类型
未命名行类型
类型和表继承
什么是继承?
类型继承
定义类型层次结构
类型层次结构中的类型例程重载
继承和类型可替代性
从类型层次结构中删除命名行类型
表继承
类型层次结构与表层次结构之间的关系
定义表层次结构
表层次结构中的表行为继承
在表层次结构中修改表行为
表层次结构中对表的约束
在表层次结构中为表添加索引
表层次结构中的表触发器
表层次结构中的 SERIAL 类型
将新表添加到表层次结构
在表层次结构中删除表
在表层次结构中变更表的结构
在表层次结构中查询表
在表层次结构上创建表视图
创建和使用用户定义的强制转型
什么是强制转型?
用户定义的强制转型
调用强制转型
对用户定义的强制转型的限制
强制转型行类型
在命名与未命名行类型之间强制转型
在未命名行类型之间强制转型
在命名行类型之间强制转型
对字段进行显式强制转型
对未命名行类型的字段进行显式强制转型
对命名行类型的字段进行显式强制转型
对行类型的个别字段进行强制转型
强制转型集合数据类型
对集合类型转换的限制
具有不同元素类型的集合
在元素类型之间进行隐式强制转型
在元素类型之间进行显式强制转型
将关系数据转换为 MULTISET 集合
强制转型单值数据类型
对单值类型进行显式强制转型
在单值类型与其源类型之间强制转型
添加和删除单值类型的强制转型
强制转型为智能大对象
为用户定义的强制转型创建强制转型函数
在命名行类型之间强制转型的示例
单值数据类型之间强制转型的示例
多级别强制转型