データベースのキーをマスターする
7分25秒 | DB基礎FE
基本情報技術者試験の頻出テーマを解説した動画コンテンツです。
トランスクリプト(字幕テキスト)
こんにちは。今日はですね、データベースのまさに心臓部とも言える、ええと、主キーと外部キーについてお話しします。 この2つの鍵がただのデータの集まりをどうやって強力なシステムに変えていくのか、さあ一緒にその秘密を解き明かしていきましょう。 データベースって、結局のところ、すごいExcelシートみたいなもんでしょ?うーん、こう思ったこと一度はありませ んか?それって実はすごく良い出発点なんですよ でも話はそれだけじゃないんです。 その先にはもっともっと奥深い世界が広がっていて、Excelのただの表とちゃんと したデータベースをもう決定的に分けているもの。その秘密こそが今回お話しするキーなんですよ。 さて、じゃあそのデータベースのキー、つまり鍵ですね。これって一体何なんでしょう? 一言で言うと、これはただの情報のリストをまるで魔法みたいにきっちり整理されて間違いのない強力なシステムに 変身させるための、まあ特別な道具みたいなものなんです。この鍵があるからこそデータがごちゃごちゃにならずに、その本当の力を発揮できるというわけですね。 じゃあちょっとこのシンプルなユーザーの表を見てみましょうか。もしあなたが鈴木一郎さんを探したいと思ったとします。 でも、名前だけだと、あれ、どっちの鈴木さんだ? ってなっちゃいますよね。 これが問題の始まりなんです。 さあ、どうすれば確実に一人だけを特定できるんでしょうか? そこに登場するのが今回のヒーローの一人、主キーです。そう、この主キーがまさにさっきの 誰が誰だか分からないっていう問題を見事に解決してくれるんですよ。 主キーって何っていうと、定義はすごくシンプルです。 その行をこの世界でたった一つに特定するためのID。 うーん、例えば、学校の出席番号とか、お店の商品についてるバーコードの番号とか、あーいうのをイメージしてもらうと分かりやすいかもしれません。 ポイントは絶対に他の誰かや他の商品と被らないっていうことなんです。 この違いちょっと見てみてください。もう一目で分かりますよね。 左側の名前の列だと、まあ、鈴木一郎さんみたいに、同じ名前の人が出てくる可能性があります。でも右側のユーザーID これが主キーの列です。こっちを見てください。ここには絶対に重複しない、たった一つの番号が割り振られてるんです。 そう、保証されてるっていうのが めちゃくちゃ大事なポイントなんです。 つまり何が言いたいかというと、この一意性、 一意性、つまりデータが絶対に被らないよっていうこの保証こそが主キーの持つ、まあ、スーパーパワーみたいなものなんです。 これがあるからこそ私たちはデータを間違うことなく正確にこの人だって特定できるわけですね。 はい。これで一人のユーザーを確実に特定できるようになりましたよね。でも実際のデータってもっと複雑じゃないですか。 例えばネットショッピングを思い浮かべ てみてください。どの人がどの商品を注文したか。 こういう情報ってどうやって管理すればいいんでしょう?データがユーザーの表と商品の表みたいに別々の場所に分かれてる時、 そう、ここで、もう一つの賢いキーが必要になってくるんです。 まずはこの商品テーブルから見ていきましょうか。えーと、ここには それぞれの消費にユニークな、つまり絶対に被らない主キーとして商品コードが割り当てられていますね。 で次がこっち、注文のテーブルです。 うーん、アリスさんとボブさんが何かを注文したっていうのは分かります。でも 何かこう決定的に足りなくないですか?そうなんです。 彼らが一体何を買ったのかっていう一番知りたいはずの 情報への繋がりがこれじゃ全く分からない状態なんです。 このバラバラになったテーブルたちを、見事に結びつけてくれる救世主。 それこそが外部キーなんです。このスライドにある言葉、いいですよね。 別の表と繋ぐための意図。まさにこれ。この一言が外部キーの役割を完璧に表していると思います。 じゃあ具体的にどうやってこの意図で繋ぐのか、その手順を一緒に見ていきましょう。とっても簡単です。 まずステップ1、商品のテーブルにあるユニークなID、つまり主キーの商品コードをチェックします。 次にステップ2、注文テーブルの方にその商品コードを書き込むための新しい列を追 加し ます 。 そしてここからがクライマックスです。ステップ3と4。この注文テーブルに追加した商品コードの列が今度は外部キーっていう役割を担って商品テーブルの主キーを参照するんです。こうすることで2つのテーブルの間にガッチリとした繋がり、つまり架け橋が生まれるというわけですね。 この図を見ると、その関係性がすごくよく分かりますよね。左の注文テーブルにある外部キー、 まあFKって書いてありますけど、これが右の商品テーブルの主キーPKを直接指さしてる感じ。そう、まさに住所録に書かれた住所が実際の家を指し示しているのと 同じようにこの参照っていう仕組みで2つの情報がしっかり結びつくんです。 さて、ここまで見てきたように、この主キーと外部キーを一緒に使うことで、僕たちは一体何を作り出したんでしょうか? それが、そう、リレーショナルデータベースと呼ばれるものすごく強力で賢いデータの仕組みなんです。 こうやってテーブル同士が繋がったシステムって信じられないくらい効率的なんです。 だって注文が入るたびに商品の名前とか値段とかをいちいち全部書き込む必要がなくなるでしょ?だからデータの重複がなくなってすごくすっきりする。 で、情報がクリーンに保たれるだけじゃなくて、専門的な言葉で言うとデータの整合性が保たれるっていう大きなメリットがあるんです。つまりデータがいつ見ても正しくて矛盾がない状態をキープできるってことですね。 なので、一番大事なポイントをシンプルにまとめるとこうなります。主キーは、そのデータを特定するための識別子、アイデンティファイヤーですね。 そして外部キーは、テーブル同士を繋ぐための接続詞、コネクター。このイメージで覚えておくとすごく分かりやすいと思います。 一方が特定して、もう一方が接続する。本当にこれだけなんです。 さて、この仕組みが分かった今、ぜひちょっと考えてみてほしいんです。あなたが毎日当たり前のように使って いる、例えばオンラインショッピングのサイトとか、友達と繋がるSNS、 お店の予約システム、その全ての裏側で、実は今日お話しした 無数の主キーと外部キーがものすごい勢いで連携して、私たちのこの便利な生活を支えてくれてるんです。 そう考えると、普段見ているデータの世界が何だかちょっと違って見えてきませんか?
このコンテンツは Web society で視聴・学習できます。