多くの業務システムで使われている関係データベース(RDBMS)の、 データの持ち方の説明として最も適切なものはどれか。
正解:ア
ア行と列からなる表としてデータを持ち、表どうしを共通の項目の値で結び付ける。
正解。関係データベースは、1件のデータを1行、項目を1列とする表の形で保持します。 顧客の表と受注の表を顧客番号のような共通の項目でつなげば、 同じ内容を何度も書かずに複数の表をまたいだ取り出しができます。
イ項目名と値の組でデータを持ち、列の構成をあらかじめ決めずに追加していく。
誤り。これはNoSQLと呼ばれる方式のうち、キーと値の組で保存する形の説明です。 形式が自由な点が利点ですが、関係データベースは逆に列の構成を先に決め、 決めた形に合うデータだけを受け入れるところが特徴です。
ウ親と子の枝分かれでデータを持ち、上位から順にたどって目的の値に届く。
誤り。これは階層型データベースやファイルのフォルダ構成の考え方です。 たどる順路が決まっているため想定外の切り口の検索に弱く、 表どうしを後から自由に組み合わせられる関係データベースとは発想が違います。
エセルに書いた計算式でデータを結び付け、値を変えると他のセルへ反映する。
誤り。これは表計算ソフトの説明です。どちらも表の見た目をしているため 混同されますが、関係データベースは多数の利用者が同時に読み書きすることを 前提にした管理の仕組みであり、セルの計算式で関係を作るのではありません。
データを「表」で持つということ
関係データベース(RDBMS)は、データを行と列からなる表の形でしまう仕組みです。 1行が1件のデータ(1人の顧客、1件の受注)、1列が項目(氏名、金額、日付)にあたります。 関係モデルでは、この表そのものを「関係(リレーション)」と呼びます。
紙の台帳を思い浮かべると分かりやすくなります。横1行に1件を書き、 縦の列には決まった項目を書く。関係データベースはこの台帳を、 多数の人が同時に読み書きしても矛盾しないように管理してくれるものです。
表を分けて、共通の項目でつなぐ
関係データベースの強みは、1つの表に何もかも詰め込まないところにあります。
- 顧客の表には、顧客番号・氏名・住所を置く
- 受注の表には、受注番号・顧客番号・商品名・金額を置く
- 両方にある顧客番号を手がかりに、必要なときだけ結び付けて取り出す
こうしておけば、顧客が引っ越しても住所を直すのは顧客の表の1行だけで済みます。 「表を分けて、共通の項目でつなぐ」が関係データベースの基本の形です。
似たデータの持ち方との違い
| 方式 | データの持ち方 |
|---|---|
| 関係データベース(RDBMS) | 行と列の表として持ち、表どうしを共通の項目の値でつなぐ |
| キーと値の形(NoSQL) | 項目の構成を決めずに、キーと値の組として柔軟に持つ |
| 階層型 | 親子の枝分かれで持ち、上位からたどって目的の値に届く |
| 表計算ソフト | セルに値と計算式を置き、主に手元で集計や作表をする |
見た目が表でも、表計算ソフトは作表の道具、関係データベースは共有データの管理基盤です。 試験では「表の形で管理し、表どうしを関連づける」という言い回しが目印になります。