【入門編】 直接アドレッシングと順次アドレッシングの比較 – 階層型DBMS

宝探しの地図?それとも伝言ゲーム? 階層型DBMSの「データの探し方」をマスターしよう!

やあ、みんな! 伝説のチーフアーキテクトだよ。今日は、ちょっと昔からあるけれど、今でも「なるほど!」と思わせてくれる「階層型データベース」の、データの探し方について、とびきり分かりやすく解説しちゃうよ。

「階層型データベース」って聞くと、なんだか難しそう? 大丈夫、大丈夫。実は、僕たちの身の回りの「当たり前」に隠れているんだ。例えば、会社の組織図とか、本の目次とか、家族の家系図とかね。親があって、その下に子があって…という、ツリーみたいな構造でデータを整理するんだ。

今日は、そんな階層型データベースで、どうやって「お目当てのデータ」を見つけるのか、その2つの賢い方法、「直接アドレッシング」と「順次アドレッシング」を、日常の出来事に例えながら、じっくり見ていこう。ここをクリアすれば、階層型DBMSの基本はバッチリマスターできるから、安心してね!

1. 宝探しの地図!「直接アドレッシング」ってなんだ?

さて、まず一つ目のデータの探し方、「直接アドレッシング」から見ていこう。これはね、例えるなら「宝探しの地図」なんだ。

地図があれば、ピンポイントで宝箱の場所がわかる!

想像してみて。君が宝探しをしているとする。もし、宝箱がどこにあるか、正確な場所が書かれた「地図」を持っていたらどう?

「うんとこさ、座標(X, Y)の場所は…ここだ!」

って感じで、迷わず一目散に宝箱の元へ駆けつけることができるよね? 余計な寄り道は一切なし!

階層型データベースにおける「直接アドレッシング」も、これと全く同じ考え方なんだ。データベースの中に、それぞれのデータがどこにあるか、その「正確な場所(物理アドレス)」があらかじめ分かっている状態。

「このデータは、あの棚の、この場所にあるよ!」

という具合に、データベースシステムは、その「場所」を頼りに、直接、目的のデータを取りに行くことができる。

直接アドレッシングの「いいところ」と「ちょっと残念なところ」

  • いいところ(メリット):
  • 速い!とにかく速い! 目的地が分かっているから、迷うことなく一瞬でたどり着ける。たくさんのデータの中から、特定のデータを探し出すのが得意なんだ。
  • 無駄がない! 目的以外のデータをいちいち見なくて済むから、システムへの負担も少ない。
  • ちょっと残念なところ(デメリット):
  • 地図がないと始まらない! 「場所」が分からないと、どうにもならない。もし、地図が古くなっていたり、データが移動していたりすると、うまく見つけられないこともある。
  • 場所の管理が大変… データが増えたり減ったりするたびに、地図(物理アドレス)を更新し続けるのは、ちょっと手間がかかる。

どんな時に「直接アドレッシング」が活躍する?

例えば、

  • 「社員番号12345の山田さんの情報が欲しい!」
  • 「商品コードABC-789の在庫数を教えて!」

のように、「これが欲しい!」というデータが、明確に特定できる場合に、この「直接アドレッシング」は、その真価を発揮するんだ。

2. 伝言ゲーム?それとも本の目次?「順次アドレッシング」ってなんだ?

次に、もう一つのデータの探し方、「順次アドレッシング」を見てみよう。これは、例えるなら「伝言ゲーム」だったり、「本の目次」だったりするんだ。

伝言ゲームのように、順番に聞いていく…?

「え? 伝言ゲーム?」って思った? そう、ちょっと似ているんだ。

君が、誰かに「〇〇さんの情報、どこか知ってる?」って聞いたとする。その人は、すぐには知らないかもしれない。でも、「あ、△△さんが知ってるかも!」って教えてくれる。さらに、△△さんに聞くと、「××さんが詳しいよ」ってなる。

このように、「次」につながる情報を頼りに、順番にたどっていくのが、「順次アドレッシング」なんだ。

階層型データベースでは、親のデータから「次の子」のデータへの「つながり」が、あらかじめ定義されている。だから、例えば「一番上の親データ」からスタートして、「この子の次は、この子だよ」という情報をたどっていくことで、目的のデータにたどり着くことができるんだ。

本の目次で、ページを探すイメージも!

あるいは、本の目次を思い浮かべてみて。

「第3章の2節に、この情報が載っているはずだ…」

って、目次で章を探し、その中の節を探し…と、順番にページをめくっていくよね? この「目次」が、次のページへの「手がかり」になっている。

「順次アドレッシング」も、この「次」への手がかりをたどっていくことで、目的のデータにたどり着く。

順次アドレッシングの「いいところ」と「ちょっと残念なところ」

  • いいところ(メリット):
  • 「次」さえ分かればたどり着ける! 厳密な「場所」が分からなくても、次にどこへ行けばいいかの情報があれば、たどり着ける。
  • データの追加・削除に強い! データが新しく追加されたり、削除されたりしても、「次」へのつながりを正しく更新すれば、影響が少ない場合がある。
  • ちょっと残念なところ(デメリット):
  • 時間がかかることがある! 目的のデータが、リストのずっと後ろの方にあったら、最初から順番にずーっとたどっていかなければならない。大量のデータを順番に探すのは、時間がかかる。
  • 無駄なデータも見てしまうかも… 目的のデータにたどり着くまでに、本来なら見なくてもいいデータも、途中で見てしまうことがある。

どんな時に「順次アドレッシング」が活躍する?

例えば、

  • 「この部署に所属する社員を、全部リストアップして!」
  • 「この商品の、関連商品を全部表示して!」

のように、あるデータからつながる「複数のデータ」を、順番に取得したい場合に、「順次アドレッシング」はとても効率的なんだ。

3. どっちを使う?「直接」と「順次」の賢い使い分け

さて、ここまで「直接アドレッシング」と「順次アドレッシング」の2つの探し方を見てきたね。

  • 直接アドレッシング: 地図でピンポイント! 目的のデータに一瞬でたどり着く。
  • 順次アドレッシング: 伝言ゲームでたどる。次から次へとデータを順番に取得する。

じゃあ、どっちを使えばいいの? って思うよね。

これはね、「君が何をしたいか」によって、使い分けるのが一番!

| 探し方 | 得意なこと | 例えるなら… |
| :————— | :——————————————- | :————– |
| 直接アドレッシング | 特定のデータを「素早く」見つけたいとき | 宝探しの地図 |
| 順次アドレッシング | あるデータから「つながるデータをまとめて」見たいとき | 伝言ゲーム、本の目次 |

具体的な例で考えてみよう!

  • 君が、学校の成績一覧から、自分の成績だけをパッと見たい!

→ この場合は、自分の「学籍番号」という「正確な情報」があるから、「直接アドレッシング」が断然速くて便利!

  • 君が、クラスの全員の成績を、名前順にずらっと並べて見たい!

→ この場合は、最初から一人ずつ順番に見ていく「順次アドレッシング」の方が、効率的にリストを作れる。

階層型データベースは、この「直接アドレッシング」と「順次アドレッシング」を、データの構造や、君がどんな風にデータを使いたいかに合わせて、賢く使い分けているんだ。

まとめ:階層型DBMSの「データの探し方」は、君の「目的」次第!

どうかな? 階層型データベースのデータの探し方、「直接アドレッシング」と「順次アドレッシング」のイメージが掴めたかな?

  • 直接アドレッシングは、「このデータ!」と特定できる場合に、一瞬で取り出すための、高速な方法。
  • 順次アドレッシングは、「次から次へと」関連するデータをたどっていくための、柔軟な方法。

どちらも、階層型データベースの得意なところを支える、なくてはならない仕組みなんだ。

もちろん、実際のデータベースシステムは、もっともっと複雑な仕組みで動いているけれど、今日お話しした「データの探し方」の基本を理解しておけば、階層型データベースが「どうやって動いているのか」という本質に、ぐっと近づけるはずだよ。

さあ、これで君も、階層型DBMSの「データの探し方」マスターだ! 次は、もっと面白いお話で会おうね!

コメント

タイトルとURLをコピーしました