本文中主要介绍页面中的控制行和校验和的计算规则。
当数据库创建了表的第一个页面之后,会直接在页面中插入一行数据,这行数据的记录id是6,是页面里面的第一个记录,这个记录在derby数据库里面叫做控制行(Control Row)。控制行里面只有一列数据。列值为ContainKey对象。通过该ContainKey对象可以唯一确定一个表。在derby数据库里面表和索引都被认为是容器或者Conglomerate。所以第一个页面中的第一行记录是对表的描述。
下面介绍的是数据库表的控制行结构,索引的控制行还有差别,但是会在下面的内容介绍一些和索引相关的内容。
第一行记录的内容如下:
名字 | 长度 | 类型 | 描述 |
---|---|---|---|
format id | 2 | short | 表示该容器是哪一个类的对象 |
段 | 4 | int | |
容器id | 8 | long | |
列个数 | 4 | int | 表示本表或者索引中有多少列 |
每一个列的format id | 2 | short | 存储每一列对应的format id |
使用非UCS_BASIC排序规则的列个数 | 压缩int,长度可以是1,2,4 | ||
使用非UCS_BASIC排序规则的列号 | 压缩int,长度可以是1,2,4 | 存储哪一列使用非UCS_BASIC排序规则,列从0开始计数 |