-
TupleDesc类
TupleDesc类用来存储表结构,使用静态内部类TDItem封装字段类型和字段名称。
-
Tuple类
Tuple类用来存储具体的数据行,使用Filed接口数组存放不同字段类型的数据,使用TupleDesc成员变量存放与该数据行关联的表结构信息,使用RecordId成员变量存放该数据行的行号和所处的数据页信息。
-
Catalog类
Catalog类用来存放当前数据库中的表信息,使用Map类型成员变量存放表编号和表的对象引用之间的映射、表编号和表的名称之间的映射、表编号和表的主键之间的映射。
-
BufferPool类
BufferPool类用来缓存读入内存的数据页,提升查询效率。默认情况下,数据页占4096字节,缓存最多50个数据页,使用Map类型成员变量存放PageID和Page之间的映射。
-
HeapFile类
HeapFile类实现了DbFile接口,用来从磁盘读取指定页号的数据页到内存中。使用File成员变量存储文件引用,TupleDesc成员变量存储表结构。 -
HeapPageId类
HeapPageId类实现类PageId接口,用来存放表编号和数据页号信息。 -
RecordId类
RecordId类存放数据行的编号,并使用PageId对象引用存放数据行所在的数据页信息。 -
HeapPage类
HeapPage类实现了Page接口,用来存储具体的数据页,使用HeapPageId成员变量存放该数据页的页号和关联的数据表编号,使用TupleDesc成员变量存放数据页所属的数据表的表结构,使用Tuple数组存放具体的数据行,使用字节数组存放数据页头部来表示Tuple是否有效,使用字节数组存放整个数据页的拷贝镜像。 -
SeqScan类
SeqScan类用来对数据表进行全表读取,类似select *
,并支持对表设置别名。