← メディア一覧

データをつなぐ魔法の鍵

6分42秒 | DB基礎FE

基本情報技術者試験の頻出テーマを解説した動画コンテンツです。

トランスクリプト(字幕テキスト)

オンラインショッピングとかSNSとか僕たちのデジタルな世界の裏側を支えてる、すっごく基本的な、でも信じられないくらいパワフルな考え方があるんですよね。 今回はそのデータを繋ぐ魔法の鍵、その秘密を一緒に解き明かしていきましょう。 さてじゃあ早速ですけど皆さんに一つ質問です。もしあなたが会社のデータベースを管理してるとしますよね。 でそこに全く同じ名前の佐藤さんがなんと3人もいる。さあどうやってこの3人をちゃんと区別しますか? んー、ちょっと考えてみてください。実はこれってあらゆるデータ管理の本当に出発点になる、超基本的な問いかけなんですよ。 そうなんです。これが僕たちが最初に乗り越えなきゃいけない壁、名前が重複する問題ってやつですね。 名前だけだと一人一人を確実に特定するのって無理なんですよね。この厄介な状況、さて、どうやって解決したらいいんでしょうか。 このスライドを見てもらうと、まさにその問題がよく分かります。すごくシンプルな社員のテーブルですけど、ほら、佐藤さんが3人もいる。 これだとどの佐藤さんが経理部で、じゃあどの佐藤さんが開発部なの?ってもうさっぱりわからない。これじゃあ仕事になりませんよね、本当に。 でも、安心してください。この誰が誰だかさっぱりわからんっていうもう危機的な状況を驚くほどエレガントに解決してくれる一つ目の魔法の鍵がここで登場します。 見てください。これがその解決策です。テーブルに社員IDっていう新しい列を一つ追加しただけ。 本当にたったこれだけで、3人の佐藤さん一人一人に絶対に他の誰とも被らない世界でたった一つの番号が与えられたんです。 これでどの行がどの人を指しているのか、もう一瞬でわかりますよね。この社員IDこそが一つ目の鍵、そう、主キー、プライマリーキーって呼ばれるものです。 主キーっていうのは、テーブルの中にある膨大なデータの中から、たった一つの行を「これだ」って特定できるユニークな値のことなんですね。 まさにスポーツ選手の背番号みたいなものです。背番号10番って言ったら、どの選手か絶対に間違えることないですよね。それくらい強力な目印になるわけです。 さて、これで個人を特定するっていう問題は見事に解決しました。でもですね、実はここからもっと根が深くて、もっと厄介な問題が顔を出すんです。 それがデータの無駄と間違いを生んじゃう非効率さの問題なんですね。このテーブルがその新しい問題をすごくよく表してるんです。 例えばですけど、営業部に100人の社員がいたとしますよね。そうするとこのテーブルには「営業部」っていう全く同じ言葉がなんと100回も入力されることになるんです。 これってなんだかものすごく無駄な作業だと思いませんか?で、この無駄ってただ非効率なだけで終わらないんですよ。もっと、もっと大きなリスクを産むんです。 もしも、営業部がセールスマーケティング部に名前を変えることになったら?どうします?そうなんです。その100カ所全てを手で直さないといけない。 これ、想像しただけでも地獄ですよね。しかも、たった一つでも直し忘れたり、タイプミスしちゃったりしたら、もうそのデータの信頼性って一気に崩れちゃうわけです。 このデータの無駄と更新ミスの恐怖。これを断ち切ってくれるのが二つ目の魔法の鍵なんです。いや、ここからがね、データベース設計の面白いところですよ。 このスライドがまさに解決策のど真ん中ですね。一つのこのでっかくて扱いにくいテーブルを役割ごとに二つの専門のテーブルに分けちゃうんです。 つまり社員の情報だけを入れるテーブル、と部署の情報だけを入れるテーブル。これにすっきりと分割しちゃうんですよ。 じゃあ分かれちゃったテーブルってどうやってお互いの関係を保つんでしょう。そこで登場するのがこの矢印の元になっている部署コードなんですね。 社員のテーブルには「営業部」っていう長い名前の代わりに、001みたいな短いコードだけを記録しておく。そして、このコードが部署のテーブルへの架け橋になるというわけです。 この部署コードこそが二つ目の鍵、外部キー、フォリンキーです。外部キーっていうのは、別のテーブルにいる専門家、つまり主キーのところを訪ねて、 二つのテーブルをがっちり繋ぎ止める役割をしてくれるんです。まるで別のグループに行く時に持っていく紹介状、そんな存在だと思ってもらえれば分かりやすいですね。 さあ、ここまでの話を全部まとめてみましょうか。この二つの鍵、主キーと外部キーが一緒に働くことで、どれだけパワフルで美しいシステムが出来上がるのか、 その全体像を見ていきましょう。この仕組みのすごさ、もう一目見れば分かりますよね。主キーと外部キーでテーブルを繋ぐことで、 データの矛盾っていうのがもう構造的に起こらなくなるんです。そして、部署名が変わったとしても、直すのは部署テーブルのたった一箇所で済む。 これで、あの100カ所を修正する悪夢から完全に解放されるっていうわけです。こんなふうに、データ同士の関連性、つまりリレーションをキーを使ってうまく管理するシステム全体の事、 これをリレーショナルデータベースって呼ぶんです。これこそが今のほとんど全てのデジタルサービスのまさに土台を支えているものすごく重要な考え方なんですよ。 それでは最後に、今日の一番大事なポイントをこれだけは忘れないで、っていうのをシンプルにまとめておきましょう。 覚えるのはこの二つのパワフルな例えだけでオッケーです。主キーは一人一人を特定するための背番号。そして外部キーはテーブル同士を繋ぐための紹介状。 このイメージさえ頭にあれば、もう迷うことはないはずです。さて、今回の解説はここまでになります。最後に皆さんに一つ考えてみて欲しいことがあります。 あなたが今見てるこのプラットフォーム、ネット通販の注文履歴、SNSの友達リスト、僕たちの身の回りにはこの魔法の鍵がもう本当に数えきれないくらい隠されてるんです。 他にどんなところで、この鍵たちが静かに、でも確実に、世界を動かしているのか、ぜひ探してみてください。

このコンテンツは Web society で視聴・学習できます。