忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【データベース】表の「縦」と「横」を数える!「次数」と「濃度」|情報処理問題1000本ノック

リレーショナルデータベースの理論では、表(リレーション)の構造や規模を「次数」と「濃度」という言葉で表現します。どちらが「列」でどちらが「行」か、混乱しやすいポイントを攻略しましょう。

1. 問題:リレーションの特性

【 問題 】 あるデータベースの表において、定義されている「属性(列・項目)」の数と、格納されている「タプル(行・レコード)」の数を指す用語の組み合わせとして、正しいものはどれでしょうか?

ア、属性の数:濃度   タプルの数:次数
イ、属性の数:次数   タプルの数:濃度
ウ、属性の数:ドメイン   タプルの数:スキーマ
エ、属性の数:インスタンス   タプルの数:カーディナリティ

2. 正解:データベースの基本用語に関する正解

正解: イ、属性の数:次数   タプルの数:濃度

3. 解説:集合論から見た表の数え方

リレーショナルモデルは数学の集合論に基づいています。そのため、日常的な「列・行」ではなく、数学的な用語が使われます。

【図解:次数と濃度の違い】

■ 次数(Degree)
・表を構成する「列(属性)」の数のこと。
・例:[社員番号, 氏名, 部署名] の表なら、次数は「3」です。

■ 濃度(Cardinality:カーディナリティ)
・表に含まれる「行(タプル)」の数(データ件数)のこと。
・例:100人分のデータが入っていれば、濃度は「100」です。
[ 覚え方のヒント ]
次数:関数の「二次式、三次式」のように、変数の数(項目の数)をイメージしましょう。
濃度:カルピスの濃さのように、中にどれだけ要素(データ)が詰まっているか、というイメージで覚えましょう。
変化の性質:運用中に「濃度」はデータの増減で激しく変化しますが、「次数」はテーブル定義変更(ALTER TABLE)をしない限り変わりません。

1. 理解のコツ: 実務では「カーディナリティ(濃度)」という言葉は、インデックスの効き具合(データの種類の多さ)を指す文脈でもよく使われます。理論用語としては「行の数」そのものを指すという点をまず押さえましょう。
2. 試験対策の視点: 午後問題や論理設計の問題で「このリレーションの次数はいくつか」といった問われ方をすることがあります。また、直積(デカルト積)の演算結果において、次数は「和」になり、濃度は「積」になる、といった計算問題への応用も重要です。


4. まとめ

「横(項目数)が次数、縦(データ件数)が濃度」。このシンプルな区別が、複雑なデータベース理論を解くための第一歩です。用語を正確に使い分けられるようにしておきましょう!


PR