【高校情報】3分でわかる!リレーショナルデータベースとは何かわかりやすく解説
リレーショナルデータベースとは何者??
リレーショナルデータベースとはズバリ、
表(テーブル)同士を関係(リレーション)でつなげたデータベース
よ。

リレーショナルデータベースはいくつかのテーブル(表)で構成されているの。
それぞれのテーブルにはレコード(行)とフィールド(列)があるわ。
各レコードがデータの単位で、フィールドはそのデータの属性なのよ。
テーブルの具体例
テーブルはこう考えてみて。
例えば、書籍データを管理するテーブルがあったとするわ。
| ISBN | 書籍名 | 著者コード | 分類コード |
|---|---|---|---|
| 978-4-00-33△△―△△-6 | 学問のすヽめ | JP015 | 370 |
| 978-4-90-36△△―△△-7 | 舞姫 | JP821 | 910 |
このテーブルね、行がレコード、列がフィールドなの。
ISBN、書籍名、著者コード、分類コードがそれぞれのフィールドになっているわ。
もう1つのテーブル(著者テーブル)
例えば、著者の情報を別のテーブルで管理するとこうなるわ。
| 著者コード | 著者名 |
|---|---|
| JP015 | 福沢諭吉 |
| JP821 | 森鴎外 |
このテーブルでは、著者コードを使って著者の情報を管理しているの。
テーブル同士のつながり
さっきの書籍テーブルを思い出してみて。
| ISBN | 書籍名 | 著者コード | 分類コード |
|---|---|---|---|
| 978-4-00-33△△―△△-6 | 学問のすヽめ | JP015 | 370 |
| 978-4-90-36△△―△△-7 | 舞姫 | JP821 | 910 |
書籍テーブルに「著者コード」があったわよね。
で、著者テーブルにも「著者コード」がある。
| 著者コード | 著者名 |
|---|---|
| JP015 | 福沢諭吉 |
| JP821 | 森鴎外 |
この共通の項目でテーブル同士がつながるの。
つまり、
書籍テーブル + 著者テーブル
で、 「どの本の著者が誰か」がわかるってわけよ。
リレーショナルデータベースのデータ操作
次に、具体的なデータ操作を見ていきましょう。
リレーショナルデータベースでは、以下の3つの操作が基本よ。
結合(けつごう)
結合は、複数のテーブルを共通する項目で関連付けることなの。
これによって、一つの表としてデータを表示できるのよ。
例えば、書籍名と著者名が別のテーブルにあっても、著者コードで結合すれば一目でわかるの。
選択(せんたく)
選択は、条件に合う行を取り出して表示する操作よ。
例えば、文学に関する書籍だけを見たいときに使えるわ。
文学に関連するレコードだけを選んで表示するのね。
射影(しゃえい)
射影により、テーブルの一部の列を抽出して新しい表を作成できるの。
例えば、ISBNと書籍名だけを見たいなら、この操作を使うわ。
例で見てみましょう
まずは、さっきの2つのテーブルを確認するわ。
書籍テーブル
| ISBN | 書籍名 | 著者コード | 分類コード |
|---|---|---|---|
| 978-4-00-33△△―△△-6 | 学問のすヽめ | JP015 | 370 |
| 978-4-90-36△△―△△-7 | 舞姫 | JP821 | 910 |
著者テーブル
| 著者コード | 著者名 |
|---|---|
| JP015 | 福沢諭吉 |
| JP821 | 森鴎外 |
著者コードで2つのテーブルを結合すると、
| 書籍名 | 著者名 |
|---|---|
| 学問のすヽめ | 福沢諭吉 |
| 舞姫 | 森鴎外 |
バラバラだった情報が1つにまとまる(結合の例)。
例えば、分類コードが「910(文学)」のものだけ選ぶと、
| ISBN | 書籍名 | 著者コード | 分類コード |
|---|---|---|---|
| 978-4-90-36△△―△△-7 | 舞姫 | JP821 | 910 |
条件に合う行だけ取り出せる(選択の例)。
書籍テーブルから「書籍名」だけ取り出すと、
| 書籍名 |
|---|
| 学問のすヽめ |
| 舞姫 |
必要な列だけ取り出せるってわけ(射影の例)。
実際のリレーショナルデータベースでは、結合・選択・射影といった操作を、SQLなどのデータ操作言語を使って行うのよ。
仮想表(ビュー)
仮想表(ビュー)も重要よ。
仮想表とは、
実際には保存されていない「見せかけの表」
のこと。
リレーショナルデータベースではここまでみてきたように、
- 結合したり
- 条件で絞ったり
- 列を取り出したり
色々こねくり回すわね?
すると、その結果として新しい表っぽいものができるわ。
これらの操作で生成された表は、仮想的に定義されるの。
仮想表として扱うことで、セキュリティを考慮しつつデータを簡潔にまとめて利用できるのよ。
例えば、「書籍テーブル」と「著者テーブル」を結合するとこうなる。
| ISBN | 書籍名 | 著者名 | 分類コード |
|---|---|---|---|
| 978-4-00-33△△―△△-6 | 学問のすヽめ | 福沢諭吉 | 370 |
| 978-4-90-36△△―△△-7 | 舞姫 | 森鴎外 | 910 |
この表は、もともと存在していたテーブルではない新しいものよね?
結合によってその場で作られた表、これが仮想表よ。