「表を管理するなら、Excelで十分じゃない?」——多くの人が一度は思うことです。今回は、その疑問を出発点に、データベースが本当に必要な理由を見ていきます。
データベースって、要は表でしょ? だったら全部Excelでよくない?
うっ、それ、みんな一度は思うやつだ。でも痛い目見た経験ない?
……あ。サークルの名簿、Excelで管理してたら、同じ人の情報がバラバラに3箇所に登録されてて、学年の表記も『3年』『3』『大学3年生』でバラバラだったこと、あったわ
それ、まさにデータベースが解決する問題だよ

データベースは、データをテーブル(表)、レコード(行、1件分のデータ)、フィールド(列、項目)という単位で管理する。ここまではExcelと似てる
じゃあ何が違うの?
一番の違いは正規化という考え方。同じ情報を、あちこちに重複して書かないように、データの持ち方を整理する設計手法
さっきの名簿、まさに同じ人の情報が重複してバラバラだったわ
正規化すれば、『会員情報』のテーブルに1人1レコードだけ登録して、他のテーブルからはその情報を参照するだけにできる。表記ゆれも起きにくくなる
情報を1箇所にまとめておくのね
そのために使われるのが主キーと外部キー。主キーは、そのテーブルの中で1件1件を一意に識別するための項目——たとえば『会員ID』。外部キーは、別のテーブルの主キーを参照するための項目で、テーブル同士を関連づける役割を持つ
キーで、テーブル同士を繋げるのね

データベースからデータを取り出すときに使う言語がSQL。基本はSELECT文——『どのテーブルから、どの項目を、どんな条件で取り出すか』を指定する
Excelのフィルター機能に似てる?
イメージとしては近いね。ただSQLの方が、複数のテーブルをまたいだ複雑な条件でも正確に指定できる
なるほど
最後、トランザクション管理。複数の人が同時にデータベースを更新しても、データが矛盾しないようにする仕組み。この仕組みを支える性質がACID特性
アシッド……酸?
頭文字を取った略語だよ。Atomicity(原子性:処理の途中で中断されない。全部成功するか、全部やり直しになるかのどちらか)、Consistency(一貫性:処理の前後でデータの整合性が保たれる)、Isolation(独立性:複数の処理が同時に行われても、互いに干渉しない)、Durability(永続性:処理が完了したら、その結果は失われない)
4つとも、『データが変な状態にならないための約束』ってことね
そのとおり。銀行の振込処理なんかを想像するとわかりやすいよ。『送金元から引き落とされたのに、送金先に届かない』みたいな中途半端な状態を防ぐための仕組みが、まさにこのACID特性なんだ

1つ目は、主キーと外部キーの役割の混同。『そのテーブル自身を識別するもの』か『他のテーブルと繋げるもの』か
2つ目は、ACID特性それぞれの意味ね
そう。特に原子性と一貫性は名前が似ていて混同しやすいから、『処理が中断されないこと』と『データの整合性が保たれること』を区別して覚えるといい
もう全部Excelでいいとは、さすがに言わないわ
次は、そのデータをどうやってやり取りするか——ネットワークの話。Wi-Fiが繋がる仕組み、説明できる?
……なんとなくとしか言えない
著者が作った無料の過去問アプリ「ITパスポート学習」の「データベース」で、そのまま手を動かして確認できます。間隔反復法(SRS)が「忘れかけた瞬間」に自動で再出題してくれるので、読みっぱなしでは終わりません。