数据库群集
在Halo数据库体系中,数据库群集(Database Cluster)类似一个容器,在该容器内可以创建多个独立的数据库,分别对应不同的系统,即多租户。数据库群集初始化后,会创建3个默认的数据库:halo0root、template1和template0。
-
halo0root:管理库,群集管理使用,请不要删除。
-
template1:正如其名称所示,这是一个模板库,后面通过CREATE DATABASE命令创建的库默认都以它为模板进行创建。
-
template0:也是一个模板库。和template1的区别在于,通过template1创建的库部分库属性,如字符集是无法更改的。而通过template0就可以。
数据库
在Halo中,数据库(Database)是真正存储数据的地方,可以使用CREATE DATABASE命令来创建一个数据库。
一个数据库通常包含多种不同类型的对象:
-
表
-
索引
-
视图
-
函数
-
存储过程
-
触发器
-
序列
-
约束
其中表通常是最基本的对象。除了上述类型的对象外,可能还会有用户自定义类型、外部表、用户自定义操作符、外键等。
数据存储结构
在Halo数据库中,数据库群集是一组数据库的集合。每个数据库又是一组对象的集合。
图1-2 数据库存储结构
图1-2描述了这种关系。其中,表的数据文件内部又被划分为固定长 度的页(Page),通常为8KB。每个文件中的页从0开始按顺序编号,该编号即为页号。页通常又被划分为页头和数据,即Page Layout中的内容。数据按行(Row)进行存储,每一行又被划分为行头和实际数据,即Row Layout中的内容。索引的布局与表的布局类似。