我的任务是设计数据库引擎。我根本不需要实现代码,只需要设计(伪代码,序列图等)。我已经获得了这些方法,并且正在寻找任何帮助来进一步了解我在做什么。以下是我到目前为止,非常感谢任何帮助。这是一项家庭作业,而不是寻找任何答案,只是更深入地了解我如何更好地理解设计这个软件。数据库引擎设计
DB方法:
静态无效CREATEDB(字符串DBNAME):
在磁盘上创建新的文件夹(即:存储为c:/ DBNAME) 此文件夹将是数据库的根;在其内部将包括表和索引>(文件)静态无效deleteDB(字符串DBNAME)的:
为(在磁盘文件夹文件夹名称(C:/)) 如果(FOLDERNAME == DBNAME) 从磁盘中删除静态数据库openDB(字符串DBNAME)
无效closeDB()
表CREATETABLE(字符串表名,长块记录):
创建数据库文件夹内的新文件的tablename 在存储记录大小的文件中创建一个头文件 该文件是一个字节数组,记录大小将告诉我该表中存储的对象有多大。 (即:如果文件总共为105个字节,我知道我的头文件是5个字节,所以在头部(15,25,35 ...)之后的每个> 10个字节都是我的表格中的对象Table getTable(String tableName )
在数据库文件夹中,遍历每个文件 如果(文件名== TABLENAME) 返回表(文件)空隙deleteTable(字符串表名)
在数据库文件夹中,遍历每个文件 如果(文件name == tableName) 删除表(文件)指数的createIndex(字符串INDEXNAME)
指数getIndex(字符串INDEXNAME)
空隙deleteIndex(字符串INDEXNAME)
表的方法:
长getRecordSize()
表是一个文件(字节[]) 文件的第一行(byte [0])是包含记录大小的标头 返回记录大小长addRecord(字节[]记录)
在表文件头中获取记录大小和文件中对象的数量 将记录写入文件中的spot(spot =(已存在文件中的对象数*记录大小)) +标题大小。 (即:如果标题大小= 5个字节,记录大小= 10个字节,并且我有7个对象在>文件中已经...。下一个对象将在点(7 * 10)+ 5 = 75)空隙removeRecord(长的PrimaryKey)
字节[] getRecord(长的PrimaryKey)
空隙updateRecord(长的PrimaryKey加入,字节[]记录)
空隙接近()
指数的方法:
空隙addKey(String键,长值)
IteratorgetValues(字符串startKey,字符串endKey)
长DELETEKEY(String键)
空隙updateKey(String键,长值)
空隙接近()