データベース編 第2章 / 全13章
リレーショナルDB(SQL)とは
Relational Database ・ RDB
表と表を「つなげる」ポイント
- データを行と列の「表(テーブル)」で管理する
- 同じ情報は1か所にだけ書き、番号(キー)で他の表とつなぐ
- SQLという共通の言葉で、ほとんどのRDBを同じように操作できる
名前の由来
もとは数学の言葉で、relation は「表の形をしたデータの集まり」。表同士を関係づけて使うので、この名前がぴったり。
仕事の現場では
くわしく(正確な話)
- 各行を見分けるための列を主キー、他の表の主キーを指す列を外部キーと呼ぶ。
- 重複をなくすように表を分けることを正規化という。
- 表をつなげて取り出す操作がJOIN。
- 代表的な製品はMySQL・PostgreSQL・SQL Server・Oracle Database(次の章で紹介)。
- インデックス(索引)を作ると、検索が大幅に速くなる。
うまれ:コッドの論文(1970年)が原点。SQLは1974年にIBMで生まれた。
この章の用語(意味と語源)
- リレーショナルDB Relational Database ・ RDB
データを表で持ち、表同士を番号でつなぐDB。
もっとも広く使われている種類です。SQLで操作し、トランザクションで正確さを守ります。
覚えておく:表 / SQL / トランザクション
語源relational(関係の)。数学の relation(表の形をしたデータの集まり)から。
- テーブル(行と列) Table ・ Row ・ Column
データベースの中の「表」。
1件分のデータが「行(レコード)」、項目が「列(カラム)」です。Excelのシートに近いイメージです。
覚えておく:行 = レコード / 列 = カラム
語源table(表・机)。record は「記録」、column はラテン語 columna(柱)から。
- 主キー / 外部キー Primary Key / Foreign Key
行を見分ける番号と、他の表の行を指す番号。
顧客表の「顧客ID」が主キー。注文表に書かれた「顧客ID」が外部キーで、これで2つの表がつながります。
語源primary(第一の)key(鍵)、foreign(よその)key。よその表を開ける鍵、というイメージ。
- JOIN ジョイン
複数の表を、共通の番号でつなげて取り出すこと。
語源join(つなぐ・加わる)。
- SQL エスキューエル
リレーショナルDBに頼みごとをするための言語。
SELECT(取り出す)・INSERT(追加)・UPDATE(更新)・DELETE(削除)などを、英語の文に近い形で書きます。
覚えておく:SELECT / INSERT / UPDATE / DELETE
語源Structured Query Language(構造化された問い合わせ言語)の頭文字。query はラテン語 quaerere(尋ねる)から。最初は SEQUEL という名前でしたが、商標の問題で SQL に変わりました。
- 正規化 Normalization
同じ情報を何度も書かないように、表を分けて整理すること。
顧客の住所を注文のたびに書くと、引っ越したとき全部直す必要があります。顧客表に1回だけ書けば、直すのも1か所です。
語源normal(標準の)。ラテン語 norma(大工の直角定規)から、「基準に合わせる」こと。
- インデックス Index ・ 索引
検索を速くするための「索引」。
本の索引と同じで、全部のページをめくらずに目的の行へたどり着けます。作りすぎると書き込みが遅くなります。
語源ラテン語 index(指し示すもの・人差し指)から。