こんにちは!データベースの世界へようこそ。
今日は、少しレトロだけど、現代のデータベースの基礎がギュッと詰まった「階層型DBMS(データベース管理システム)」についてお話ししますね。
「階層型」と聞くと、なんだか難しそうに聞こえるかもしれませんが、安心してください。
ここをクリアすれば、データベースの裏側でデータがどう整理されているのか、その本質がバッチリマスターできますよ!
今回はその中でも、データの「頭(先頭)」にくっついている大切な目印、「プレフィックスデータ」という裏方の主役にスポットを当ててみましょう。
—
1. 日常で例えると? 「封筒の宛名」のようなもの
いきなり専門用語を出すのはやめましょう。まずは私たちの日常から考えてみます。
会社で大量の書類を整理整頓している場面を想像してください。
あなたは、部署ごとの「引き出し」、その中の「ファイル」、そして一番奥にある「個別の書類」というように、綺麗に整理して保管していますよね。
ここで、一番奥にある「個別の書類」を1枚だけ取り出すとします。その書類には、何が書いてあるでしょうか?
ただ文字が羅列されているだけではなく、通常は「誰宛の書類か(宛名)」や「いつの書類か(日付)」といった、「この書類を正しく扱うための管理情報」が先頭に書いてありますよね。
もし、この管理情報がなかったらどうなるでしょう?
書類の束から1枚抜いた途端、「これ、どの部署の誰の書類だっけ?」「もう捨てていい紙だっけ?」とパニックになってしまいますよね。
この「書類の先頭についている、管理のためのラベルやスタンプ」。
これこそが、階層型DBMSにおける「プレフィックスデータ」の正体です。
—
2. 階層型DBMSと「プレフィックスデータ」の仕組み
いま私たちがよく使う表形式のデータベース(リレーショナルDBMS)とは違い、階層型データベースは、家族の家系図や会社の組織図のように、「上から下へ(親から子へ)」一本道のポインタ(矢印)でデータがつながっています。
データを記憶するハードディスクの裏側では、データはただの「文字や数字のカタマリ」としてズラリと並べられています。
コンピュータは、そのカタマリのどこからどこまでが何のデータで、今どこを読んでいるのかを自分では判断できません。
そこで、データのセグメント(かたまり)の先頭に、小さな「制御用の看板」をペタッと貼り付けるのです。これがプレフィックスデータです。
プレフィックスデータの中身って?
大体、以下のような超重要情報が詰め込まれています。
1. セグメントコード:「私は〇〇という種類のデータです」という自己紹介。
2. ポインタ(アドレス):「私の親はあそこにいます」「私の次の兄弟データはここにいます」という道案内。
3. 削除フラグ:「このデータはもう使われていません(ゴミ箱行きです)」という状態を表すマーク。
つまり、プレフィックスデータは、データベースのナビゲーションシステムそのものなのです。
—
3. スキーマ定義(DDL)の世界をのぞいてみよう
言葉だけだとフワッとしてしまうので、実際に階層型DBMSでデータ構造を定義する「DDL(データ定義言語)」のイメージを見てみましょう。
(※雰囲気をつかみやすいように、少し噛み砕いた疑似コードで書きますね)
— 【部署(親)セグメントの定義】
SEGMENT DEFINITION DEPT_SEG
PREFIX_DATA (
SEGMENT_CODE = “D001”, — 私は「部署」データです
DELETE_FLAG = “ACTIVE” — 元気に稼働中です
)
{
DEPT_ID CHAR(4), — 部署コード
DEPT_NAME CHAR(30) — 部署名
};
— 【社員(子)セグメントの定義】
SEGMENT DEFINITION EMP_SEG
PARENT IS DEPT_SEG — どの部署にぶら下がるかを指定
PREFIX_DATA (
SEGMENT_CODE = “E001”, — 私は「社員」データです
DELETE_FLAG = “ACTIVE”, — 在籍中です
CHILD_POINTER = 0x7FFF — 次のデータへのアドレス
)
{
EMP_ID CHAR(5), — 社員番号
EMP_NAME CHAR(20) — 社員名
};
このように、データそのもの(部署名や社員名)の手前(プレフィックス)に、コンピュータが迷子にならないための管理情報がしっかり定義されているのが分かりますよね。
—
4. なぜ、この「プレフィックス」がそんなに大事なの?
「なんだか裏方の地味なデータだな」と思いましたか?
とんでもない! 階層型DBMSにおいて、このプレフィックスデータこそがシステムの命運を握る心臓部です。
もし、このプレフィックスデータの仕組みがなかったらどうなるでしょうか?
コンピュータは目的のデータを求めて、山のようなデータを最初から最後まで1つずつめくっていくしかありません(これを「フルスキャン」と言います)。これでは処理が遅くて仕事になりませんよね。
プレフィックスデータの中に「次のデータはここだよ」というアドレス(ポインタ)が正確に書かれているからこそ、コンピュータは一瞬で親から子へ、子から兄弟へとジャンプして、お目当てのデータにたどり着くことができるのです。
—
おわりに
いかがでしたでしょうか?
「プレフィックスデータ」という少し難しそうな名前も、「データ迷子のを防ぐための、先頭の案内看板やスタンプ」だと思えば、ぐっと身近に感じられたのではないでしょうか。
基礎をこうして噛み砕いて理解しておくと、今後どんなに新しいデータベースや複雑なシステムに出会っても、「あ、裏側ではきっとこういう管理情報を頭につけて動いているんだな」と本質を見抜くことができるようになります。
ここまで読んだあなたなら、もう階層型DBMSの基本はバッチリマスターできていますよ!
ぜひ自信を持って、次のステップへ進んでくださいね。応援しています!
コメント