记录的插入
记录的插入首先从内存中的dbTableDescriptor链表中找到对应的表oid,从硬盘上读取dbTable,之后分配记录空间,把记录存入硬盘,分配记录的oid,根据dbTable中的lastRow,把新的记录链入双向链表中,如果有索引的话,找出对应的字段更新索引,dbTableDescriptor链表相录于数据字典的作用,
更新和删除,也是这个过程,
查询的过程,大致也是如此,
从dbTableDescriptor链表-->硬盘上的dbTable-->根据dbTable中的firstRow找到第一个记录的oid--->之后就是按照链表,依次遍历的过程,当有索引时,就是不遍历,直接根据索引找到记录的oid,
查询用到了cursor,这里面有个列表用于保存满足查询条件的oid,里面并没有保存对录,只保留了oid
上面全部都用到了oid,因为知道oid之后,就知道了对象在文件中的偏移位置,而且对象本身是保存了记录大小的,根据这两项就能把记录读出来,