简单数据库实现一

目录

课程链接

作业一

1. SimpleDB体系结构

Consists of

  • 包含字段、元组、元组架构的类。Classes that represent fields, tuples, and tuple schemas;
  • 将谓词和条件应用于元组的类。Classes that apply predicates and conditions to tuples;
  • 一种或多种访问方式——将关系存储在磁盘上并提供一种遍历这些关系的元组的方法。One or more access methods (e.g., heap files) that store relations on disk and provide a way to iterate through tuples of those relations;
  • 处理元组的运算符类(select, join, insert, delete)的集合
  • 缓冲池,用于在内存中缓存活动的元组和页面,并处理并发控制和事务。demo已经做好了
  • 存储有关可用表及其模式的信息的目录。A catalog that stores information about available tables and their schemas.

1.1 Class: Database

Database类提供对静态对象集合的访问,这些静态对象是数据库的全局对象。特别是,这包括访问目录(数据库中所有表的列表),缓冲池(当前驻留在内存中的数据库文件页面的集合)和日志文件的方法。

1.2 Field Tuple

实现非常基本。包含一组 Field对象,每个字段一个Tuple

Field是不同数据类型 (integer, string…) 实现的接口。

Tuple对象是由基础访问方法(heap file, B-trees)创建的。

元组还具有一种由对象表示的类型(或架构),称为元组描述符TupleDesc

该对象由对象的集合组成,Type元组中的每个字段一个,每个对象描述相应字段的类型。

1.3 Class: Catalog

table lists数据库中当前存在的表的schemas组成。

添加新表以及获取有关特定表的信息的功能需要用到这个类。

与每个表相关联的是一个TupleDesc对象,该对象可以确定表中字段的类型和数量

The global catalog是Catalog为整个SimpleDB进程分配的单个实例。 可用方法Database.getCatalog()

1.4 Class: BufferPool

负责在内存中缓存最近被读页面

所有操作都通过缓冲池从磁盘上的各种文件读取和写入页面

它由固定数量的页面组成,由构造函数的numPages参数定义 BufferPool

Database类提供一个获取BufferPool的静态方法,其中 Database.getBufferPool()即返回到单个缓冲池实例的引用整个SimpleDB的过程。

1.5 HeapFile access method

堆文件访问方法提供了一种从磁盘中读取或写入以特定方式排列的数据的方法

本文标题:简单数据库实现一

文章作者:松子

发布时间:2019年10月18日 - 19:10

最后更新:2022年03月26日 - 02:03

博文链接:https://songzi.info/post/1a82e99d/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%