第23回 テクノロジ 中分類21 データベース(大分類9 技術要素)

【第23回】Excelの表と何が違う? データベースの正体

「表を管理するなら、Excelで十分じゃない?」——多くの人が一度は思うことです。今回は、その疑問を出発点に、データベースが本当に必要な理由を見ていきます。

この記事でわかること

美咲、つまずく

美咲

データベースって、要は表でしょ? だったら全部Excelでよくない?

拓也

うっ、それ、みんな一度は思うやつだ。でも痛い目見た経験ない?

美咲

……あ。サークルの名簿、Excelで管理してたら、同じ人の情報がバラバラに3箇所に登録されてて、学年の表記も『3年』『3』『大学3年生』でバラバラだったこと、あったわ

拓也

それ、まさにデータベースが解決する問題だよ

比喩イラスト/サークル名簿がExcelで重複・表記ゆれだらけになり困る美咲

本編①:データベースの基本構造

拓也

データベースは、データをテーブル(表)、レコード(行、1件分のデータ)、フィールド(列、項目)という単位で管理する。ここまではExcelと似てる

美咲

じゃあ何が違うの?

拓也

一番の違いは正規化という考え方。同じ情報を、あちこちに重複して書かないように、データの持ち方を整理する設計手法

美咲

さっきの名簿、まさに同じ人の情報が重複してバラバラだったわ

拓也

正規化すれば、『会員情報』のテーブルに1人1レコードだけ登録して、他のテーブルからはその情報を参照するだけにできる。表記ゆれも起きにくくなる

美咲

情報を1箇所にまとめておくのね

拓也

そのために使われるのが主キー外部キー主キーは、そのテーブルの中で1件1件を一意に識別するための項目——たとえば『会員ID』。外部キーは、別のテーブルの主キーを参照するための項目で、テーブル同士を関連づける役割を持つ

美咲

キーで、テーブル同士を繋げるのね

概念図解/テーブル間のリレーション図(主キー・外部キーを線でつなぐ)

本編②:SQLの雰囲気とトランザクション管理

拓也

データベースからデータを取り出すときに使う言語がSQL。基本はSELECT文——『どのテーブルから、どの項目を、どんな条件で取り出すか』を指定する

美咲

Excelのフィルター機能に似てる?

拓也

イメージとしては近いね。ただSQLの方が、複数のテーブルをまたいだ複雑な条件でも正確に指定できる

美咲

なるほど

拓也

最後、トランザクション管理。複数の人が同時にデータベースを更新しても、データが矛盾しないようにする仕組み。この仕組みを支える性質がACID特性

美咲

アシッド……酸?

拓也

頭文字を取った略語だよ。Atomicity(原子性:処理の途中で中断されない。全部成功するか、全部やり直しになるかのどちらか)、Consistency(一貫性:処理の前後でデータの整合性が保たれる)、Isolation(独立性:複数の処理が同時に行われても、互いに干渉しない)、Durability(永続性:処理が完了したら、その結果は失われない)

美咲

4つとも、『データが変な状態にならないための約束』ってことね

拓也

そのとおり。銀行の振込処理なんかを想像するとわかりやすいよ。『送金元から引き落とされたのに、送金先に届かない』みたいな中途半端な状態を防ぐための仕組みが、まさにこのACID特性なんだ

ITパスポート的に狙われるポイント

【第23回】Excelの表と何が違う? データベースの正体|比較表
拓也

1つ目は、主キーと外部キーの役割の混同。『そのテーブル自身を識別するもの』か『他のテーブルと繋げるもの』か

美咲

2つ目は、ACID特性それぞれの意味ね

拓也

そう。特に原子性と一貫性は名前が似ていて混同しやすいから、『処理が中断されないこと』と『データの整合性が保たれること』を区別して覚えるといい

まとめ・次回予告

美咲

もう全部Excelでいいとは、さすがに言わないわ

拓也

次は、そのデータをどうやってやり取りするか——ネットワークの話。Wi-Fiが繋がる仕組み、説明できる?

美咲

……なんとなくとしか言えない

📱 アプリで過去問を解く

美咲

もう全部Excelでいいとは、さすがに言わないわ

拓也

言わないなら、正規化の問題も解けるはずだよね

著者が作った無料の過去問アプリ「ITパスポート学習」の「データベース」で、そのまま手を動かして確認できます。間隔反復法(SRS)が「忘れかけた瞬間」に自動で再出題してくれるので、読みっぱなしでは終わりません。