私はデータベースエンジンの設計を任されています。コードを実装する必要はまったくなく、設計(擬似コード、シーケンス図など)だけです。私は方法を与えられており、私が何をしているのかをさらに理解するための助けを探しています。以下は私がこれまでに得たものです、どんな助けでも大歓迎です。これは宿題であり、答えを探すのではなく、このソフトウェアの設計をよりよく理解する方法についての洞察を深めるだけです。
DBメソッド:
Static void createDB(String dbName):
ディスク上に新しいフォルダーを作成します(つまり、c:/ dbNameとして保存されます)。このフォルダーはデータベースのルートになります。その中はテーブルとインデックスで構成されます>(ファイル)static void deleteDB(String dbName):
for(FolderName in disk folder(c:/))if(folderName == dbName)delete from disk静的データベースopenDB(String dbName)
void closeDB()
Table createTable(String tableName、long recordSize):
データベースフォルダー内に新しいファイルを作成しますtableNameレコードサイズを格納するファイル内にヘッダーを作成しますこのファイルはバイトの配列であり、レコードサイズはこのテーブルに格納されているオブジェクトの大きさを示しますそれは。(つまり、ファイルが合計105バイトの場合。ヘッダーが5バイトであることがわかっているため、ヘッダー(15、25、35…)の後の10バイトを超えるごとにテーブル内のオブジェクトになります。Table getTable(String tableName)
データベースフォルダーで、各ファイルを反復処理しますIf(file name == tableName)Return Table(file)データベースフォルダ内のvoiddeleteTable(String tableName)
、各ファイルを反復処理if(file name == tableName)remove table(file)インデックスcreateIndex(String indexName)
インデックスgetIndex(String indexName)
void deleteIndex(String indexName)
テーブルメソッド:
long getRecordSize()
テーブルはファイル(byte [])ですファイルの最初の行(byte [0])はrecordSizeを含むヘッダーですreturn recordSizeテーブルファイルのヘッダーのlongaddRecord(byte [] record)
は、レコードサイズを取得し、ファイル内のオブジェクトの数は、ファイル内のスポットにレコードを書き込みます(spot =(すでにファイル内にあるオブジェクトの数*レコードサイズ)>+ヘッダーサイズ。 (つまり、ヘッダーサイズ= 5バイト、レコードサイズ= 10バイトで、ファイルにすでに7つのオブジェクトがある場合。..次のオブジェクトはスポット(7 * 10)+ 5 = 75に追加されます)void removeRecord(long primaryKey)
byte [] getRecord(long primaryKey)
void updateRecord(long primaryKey、byte [] record)
void close()
インデックスメソッド:
Void addKey(String key、long value)
IteratorgetValues(String startKey、String endKey)
long deleteKey(String key)
void updateKey(String key、long value)
void close()