情報処理試験を勉強していると、「行とタプルとレコードって、全部同じもの?何が違うの?」と混乱しがちです。
結論から言えば、すべて同じものを指す別名です。ただし、理論と実装で呼び方が分かれるため、正確な対応を覚えないと試験で確実に失点します。
対象試験と出題頻度
行(タプル)は、ITパスポート・基本情報技術者・応用情報技術者のすべてで出題されるテーマです。
関係データベースの表構造に関する用語対応問題の定番であり、「列(属性/カラム)」や「表(関係/テーブル)」との区別を正確に答えられるかが問われます。
詳細をクリックして確認
ITパスポート
基本情報技術者
応用情報技術者
★★★★★
ランクS(超重要)絶対に覚える必要あり
用語の定義
行(タプル)とは、一言で言うと
「関係データベースの表(テーブル)における、1件分のデータのまとまり」
のことです。
イメージとしては、「名簿の1行分」です。
クラスの名簿を思い浮かべてください。
名簿の1行には「出席番号・氏名・住所・電話番号」がひとかたまりで書かれています。この「1人分の横一列のデータ」がまさに行(タプル)です。
📊 行(タプル)の基本情報
| 項目 | 内容 |
|---|---|
| 関係モデル用語 | タプル(tuple)、組 |
| 関係DB用語 | 行(row)、レコード(record) |
| 対になる概念 | 列(カラム) = 属性(アトリビュート) |
| 関係モデルでの制約 | タプルの重複は許されない |
解説
なぜ呼び方が複数あるのか
関係データベースには「理論(関係モデル)」と「実装(RDBMS)」の2つの世界があります。
1970年にE.F.コッドが提唱した関係モデルでは数学的な用語が使われ、1件分のデータを「タプル(組)」と呼びました。一方、OracleやMySQLなどの製品側では日常的にわかりやすい「行」「レコード」という用語が定着しました。
つまり、タプル=行=レコードは同じ概念の別名であり、文脈によって使い分けられているだけです。
図解:テーブルの中での「行」の位置
表の構造全体の中で、行がどこに位置するかを視覚的に確認しましょう。
テーブル名:社員(=関係/リレーション)
| 社員ID | 氏名 | 部署 | 入社年 |
|---|---|---|---|
| ↑ 列(カラム)= 属性(アトリビュート) | |||
| 001 | 田中太郎 | 営業部 | 2020 |
| ← この1行が「行(タプル/レコード)」= 1件分のデータ | |||
| 002 | 鈴木花子 | 開発部 | 2021 |
| 003 | 佐藤一郎 | 営業部 | 2022 |
▲ オレンジの行がタプル。1行に「社員ID・氏名・部署・入社年」が揃って1件のデータを構成する
関係モデル用語と実装用語の対応表
ここだけは確実に押さえてください。理論側と実装側の呼び方を混同すると、用語対応の問題で即失点します。
| 関係モデル(理論) | 関係データベース(実装) | 意味 |
|---|---|---|
| 関係(リレーション) | 表(テーブル) | データの集合全体 |
| タプル(組) | 行(レコード) | 1件分のデータ ← 本記事のテーマ |
| 属性(アトリビュート) | 列(カラム/フィールド) | データ項目の種類 |
| 定義域(ドメイン) | データ型 | 値の取り得る範囲 |
理論と実装で異なるポイント:重複の扱い
関係モデル(理論)では、タプルの重複は許されません。集合論に基づいているため、同じ要素が2つ存在する集合は定義上あり得ないからです。
しかし、関係データベース(実装)では、SQL操作の結果として重複行が発生することがあります。
例えば SELECT 文で DISTINCT を指定しなければ、同じ内容の行が結果セットに複数含まれます。
この「理論では重複不可、実装では重複が生じ得る」という違いは、FE H28春 午前 問26で直接出題されています。
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 行(タプル)の核心を3行で
・関係データベースの表における1件分のデータのまとまり
・関係モデルでは「タプル」、実装では「行」「レコード」と呼ぶ(全て同義)
・理論上タプルの重複は不可だが、実装上のSQL操作では重複行が生じ得る
試験ではこう出る!
行(タプル)は、IP・FE・APの午前問題で関係モデルの用語対応問題として繰り返し出題されています。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| FE H28春 午前 問26 |
関係モデルと関係データベースの対応として適切なものを選ぶ | ・正解は「関係は表に対応付けられる」 ・「タプルも行も重複しない」はひっかけ(実装では重複し得る) |
| FE H25秋 午前 問29 |
関係データベースのデータ構造として適切な説明を選ぶ | ・正解は「データを2次元の表によって表現する」 ・階層型やオブジェクト指向の説明がひっかけ |
| IP R6 問60 |
表・レコード・フィールドの包含関係を穴埋め | ・「表 ⊃ レコード(行)⊃ フィールド(列の値)」の順序が問われた |
| AP H21秋 午前 問33 |
参照制約の文脈でタプルの存在条件を問う | ・「タプル」を行と正しく解釈できるかが前提知識として必要 |
📝 IPA試験での出題パターン
パターン1:「用語対応を選べ」
理論側の用語(関係・タプル・属性・ドメイン)と実装側の用語(表・行・列・データ型)の正しいペアを選ぶ形式。「関係=表」さえ覚えていれば消去法で正解にたどり着けます。
パターン2:「構成要素の包含関係を埋めよ」
IP R6 問60のように、「表 → レコード → フィールド」の階層関係を穴埋めする形式。行=レコード、列=フィールドの対応を知っていれば即答です。
パターン3:「理論と実装の違いを問う」
FE H28春 問26では「タプルは重複しないが行は重複し得る」という違いが正誤判定に直結しました。理論上の制約と実装上の挙動の差を押さえておけば安心です。
試験ではここまででOKです。タプルの数学的な定義(順序対や直積集合)まで問われることはないので、深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. 関係モデルにおける「タプル」に対応する、関係データベースの用語として最も適切なものはどれでしょうか?
- A. 行(レコード):テーブル内の1件分のデータに相当する。
- B. 列(カラム):テーブル内のデータ項目の種類に相当する。
- C. 表(テーブル):データの集合全体に相当する。
正解と解説を見る
正解:A
解説:
関係モデルの「タプル(組)」は、関係データベースにおける「行(レコード)」に対応します。テーブルの中の1件分のデータのまとまりです。
選択肢Bの列(カラム)は、関係モデルでは「属性(アトリビュート)」に対応する概念であり、データ項目の種類を表します。タプルとは対になる概念であり、混同しないよう注意が必要です。選択肢Cの表(テーブル)は、関係モデルでは「関係(リレーション)」に対応します。表はタプルの集合であり、個々の1件分のデータを指す用語ではありません。
よくある質問(FAQ)
Q. SQLでタプルという用語は使いますか?
SQL文の中で「タプル」というキーワードを直接記述することはありません。SQL仕様では「行(row)」が正式な用語です。ただし、データベースの参考書や試験問題の解説文では理論用語として「タプル」が頻繁に登場するため、SQL操作の文脈でも意味を理解しておく必要があります。
Q. Pythonなどのプログラミング言語にも「タプル」がありますが、同じものですか?
別物です。Pythonのタプルは「変更不可能な順序付きデータの組」を指すデータ型で、関係モデルのタプルとは直接の関係はありません。ただし、どちらも数学の「組(tuple)」に由来しており、「複数の値をひとまとめにしたもの」という原義は共通しています。IPA試験ではPythonのタプルが科目Bのプログラミング問題で登場し、関係モデルのタプルは科目Aのデータベース問題で登場するため、出題文脈で判別できます。
Q. 関係演算の「選択」と「射影」は行と列のどちらを操作しますか?
選択(selection)は条件に合う行を取り出す操作、射影(projection)は指定した列だけを取り出す操作です。SQLに置き換えると、WHERE句が選択、SELECT句で列名を指定するのが射影に対応します。「選択=行の絞り込み」「射影=列の絞り込み」と覚えれば、関係演算の問題で迷うことはなくなります。
Q. 1つのテーブルに格納できる行数に上限はありますか?
関係モデルの理論上、行数の上限は定義されていません。実装上は、使用するRDBMS製品やストレージ容量、OSのファイルサイズ制限によって上限が決まります。例えばMySQLのInnoDBでは理論上の行数制限はなく、ディスク容量が許す限りデータを追加できます。IPA試験の範囲ではこの点は問われないため、「理論上の制限はない」と理解していれば十分です。