4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【5日目】シンプルデータベース実装③

Posted at

まえがき

本日はテーブルを作成・削除する部分の実装について記載していきます。

  • テーブルを作成する(←今回)
  • データを挿入する(Done)
  • データを取得する(Done)
  • データを更新する(Done)
  • データを削除する(Done)
  • テーブルを削除する(←今回)

テーブルを作成する

テーブルの作成は、テーブル名とカラム名のみ指定できます。カラムのドメインやPK、制約などは設定できません。テーブル作成時は、テーブル名やカラム名をあとから参照したりできるようシステムテーブルに登録します。Oracleを真似て、ms_tablesとms_tab_columnsにテーブル名とカラム名をそれぞれ登録します。
したがって、テーブル作成は下記の手順になります。

  1. データを入れるためのオブジェクトを作成する
  2. ms_tablesというシステムテーブルに登録する
  3. 各カラムごとにカラムインデックスを入れるためのオブジェクトを作成する
  4. ms_tab_columnsというシステムテーブルにカラムを登録する

テーブルを削除する

テーブルの作成とは反対に、テーブル削除は下記の手順になります。

  1. ms_tablesからテーブル情報を削除する
  2. テーブルデータを入れるオブジェクトを削除する
  3. 削除するテーブルに定義されたカラムを全てms_tab_columnsから削除する
  4. カラムインデックスを削除する

まとめ

テーブルの作成・削除は特に難しいところはないですね。
明日はシンプルデータベースのソースを公開します。Erlang得意な人はぜひ指摘をお願いします。
明後日はシンプルデータベースに対して命令を出すクライアントソースについて説明し、シンプルデータベースのテストをし、性能を測っていきたいと思います。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?