【データベース】表の「縦」と「横」を数える!「次数」と「濃度」|情報処理問題1000本ノック
リレーショナルデータベースの理論では、表(リレーション)の構造や規模を「次数」と「濃度」という言葉で表現します。どちらが「列」でどちらが「行」か、混乱しやすいポイントを攻略しましょう。
1. 問題:リレーションの特性
【 問題 】 あるデータベースの表において、定義されている「属性(列・項目)」の数と、格納されている「タプル(行・レコード)」の数を指す用語の組み合わせとして、正しいものはどれでしょうか?
ア、属性の数:濃度 タプルの数:次数
イ、属性の数:次数 タプルの数:濃度
ウ、属性の数:ドメイン タプルの数:スキーマ
エ、属性の数:インスタンス タプルの数:カーディナリティ
2. 正解:データベースの基本用語に関する正解
正解: イ、属性の数:次数 タプルの数:濃度
3. 解説:集合論から見た表の数え方
リレーショナルモデルは数学の集合論に基づいています。そのため、日常的な「列・行」ではなく、数学的な用語が使われます。
【図解:次数と濃度の違い】
■ 次数(Degree)
・表を構成する「列(属性)」の数のこと。
・例:[社員番号, 氏名, 部署名] の表なら、次数は「3」です。
■ 濃度(Cardinality:カーディナリティ)
・表に含まれる「行(タプル)」の数(データ件数)のこと。
・例:100人分のデータが入っていれば、濃度は「100」です。
■ 次数(Degree)
・表を構成する「列(属性)」の数のこと。
・例:[社員番号, 氏名, 部署名] の表なら、次数は「3」です。
■ 濃度(Cardinality:カーディナリティ)
・表に含まれる「行(タプル)」の数(データ件数)のこと。
・例:100人分のデータが入っていれば、濃度は「100」です。
[ 覚え方のヒント ]
★ 次数:関数の「二次式、三次式」のように、変数の数(項目の数)をイメージしましょう。
★ 濃度:カルピスの濃さのように、中にどれだけ要素(データ)が詰まっているか、というイメージで覚えましょう。
★ 変化の性質:運用中に「濃度」はデータの増減で激しく変化しますが、「次数」はテーブル定義変更(ALTER TABLE)をしない限り変わりません。
★ 次数:関数の「二次式、三次式」のように、変数の数(項目の数)をイメージしましょう。
★ 濃度:カルピスの濃さのように、中にどれだけ要素(データ)が詰まっているか、というイメージで覚えましょう。
★ 変化の性質:運用中に「濃度」はデータの増減で激しく変化しますが、「次数」はテーブル定義変更(ALTER TABLE)をしない限り変わりません。
1. 理解のコツ: 実務では「カーディナリティ(濃度)」という言葉は、インデックスの効き具合(データの種類の多さ)を指す文脈でもよく使われます。理論用語としては「行の数」そのものを指すという点をまず押さえましょう。
2. 試験対策の視点: 午後問題や論理設計の問題で「このリレーションの次数はいくつか」といった問われ方をすることがあります。また、直積(デカルト積)の演算結果において、次数は「和」になり、濃度は「積」になる、といった計算問題への応用も重要です。
4. まとめ
「横(項目数)が次数、縦(データ件数)が濃度」。このシンプルな区別が、複雑なデータベース理論を解くための第一歩です。用語を正確に使い分けられるようにしておきましょう!
PR