基本情報技術者試験のデータベースでは、表の意味を読む力、表同士の関係を読む力、SQLの結果を考える力が問われます。
ITパスポートでは、「データを表で管理する」「行と列で考える」「SQLでデータを取り出す」といった入口が中心です。
データベースの基礎から確認したい方は、先にITパスポートのデータベース入門を読むと、表・行・列・SQLの基本を整理しやすくなります。
一方、基本情報技術者試験では、そこから一歩進んで、主キー、外部キー、JOIN、正規化、トランザクションなども理解する必要があります。
データベースが科目A・科目Bのどちらで問われやすいかを整理したい方は、基本情報技術者試験の科目Aと科目Bの違いも参考にしてください。
この記事では、データベースをただ暗記するのではなく、問題で読める形にして整理します。
ここだけ読めばOK
基本情報技術者試験のデータベースでは、表の中身だけでなく、表と表のつながりを読むことが大切です。主キーは1件のデータを見分ける項目、外部キーは別の表とつなぐ項目です。SQLでは、どの表を使い、どの列を取り出し、どの条件でしぼるかを順番に考えます。
基本情報技術者試験のデータベースでは何が問われる?
科目Aで用語・SQL・設計の考え方が問われる
基本情報技術者試験のデータベースは、主に科目Aで問われます。
問われやすい内容は、データベースの基本用語、SQL、表の設計、正規化、トランザクションなどです。
たとえば、次のような問題が考えられます。
- 主キーとして正しいものを選ぶ
- 外部キーの役割を選ぶ
- SQLを実行した結果を選ぶ
- 表を分ける理由を選ぶ
- 正規化の目的を選ぶ
- コミットやロールバックの意味を選ぶ
用語の意味だけでなく、「どの場面で使うのか」まで押さえることが大切です。
表の関係を読み取る力が必要
データベースの問題では、1つの表だけを見るとは限りません。
会員表、注文表、商品表のように、複数の表が出てくることがあります。
このとき大事なのは、「どの列とどの列がつながっているか」を読むことです。
たとえば、注文表にある会員番号は、会員表の会員番号とつながります。
これにより、「この注文をした会員は誰か」を調べられます。
SQLや正規化で差がつきやすい
SQLや正規化は、言葉だけを覚えても解きにくい分野です。
SQLでは、表に対して命令を出し、どの行が残るかを考えます。
正規化では、表をどのように分けると重複や矛盾を減らせるかを考えます。
どちらも、丸暗記ではなく、手順で考えることが大切です。
基本情報技術者試験で押さえるデータベースの全体像

データを表で管理する
データベースは、データを整理して保存する仕組みです。
データベースの意味を先に確認したい方は、データベースとはも参考になります。
基本情報技術者試験でよく出るのは、表の形でデータを管理するリレーショナルデータベースです。
表計算ソフトの表をイメージすると分かりやすいです。
| 会員番号 | 氏名 | 都道府県 |
|---|---|---|
| 1001 | 佐藤 | 東京 |
| 1002 | 鈴木 | 大阪 |
| 1003 | 田中 | 福岡 |
このように、1人分のデータを1行で持つと、検索や更新がしやすくなります。
表同士をつなげて管理する
すべての情報を1つの表に入れると、同じデータが何度も出てきます。
たとえば、注文のたびに会員名や住所を毎回書くと、同じ会員の情報が何行にも出てきます。
そこで、会員表と注文表を分けます。
| 会員表の項目 | 役割 |
|---|---|
| 会員番号 | 会員を見分ける |
| 氏名 | 会員名を管理する |
| 住所 | 会員の住所を管理する |
| 注文表の項目 | 役割 |
|---|---|
| 注文番号 | 注文を見分ける |
| 会員番号 | どの会員の注文かを示す |
| 注文日 | 注文した日を示す |
このように表を分け、必要なときにつなげて使うのがデータベースの基本です。
SQLで必要な情報を取り出す
SQLは、データベースに命令を出すための言葉です。
SQLの基本を先に確認したい方は、SQLとはも参考にしてください。
たとえば、次のようなことができます。
- 東京の会員だけを取り出す
- 注文日が新しい順に並べる
- 商品ごとの売上を集計する
- 会員表と注文表をつなげる
基本情報技術者試験では、SQL文の意味を読み、実行結果を選ぶ問題が出ます。
正規化で重複や矛盾を減らす
正規化とは、データの重複や矛盾を減らすために、表を整理することです。
たとえば、1つの表に会員情報と注文情報をすべて入れると、同じ会員名が何度も出てくることがあります。
会員名を変更するとき、すべての行を直さなければなりません。
直し忘れると、同じ会員なのに別の名前が残ることがあります。
正規化は、このような問題を防ぐために行います。
トランザクションで安全に更新する
トランザクションとは、複数の処理を1つのまとまりとして扱うことです。
銀行の振込を例にすると、Aさんの口座からお金を引く処理と、Bさんの口座にお金を足す処理は、必ずセットで成功する必要があります。
片方だけ成功すると、お金のつじつまが合わなくなります。
そのため、すべて成功したらコミット、途中で失敗したらロールバックします。
表・行・列・テーブルの基本

テーブルとは
テーブルとは、データを表の形でまとめたものです。
会員を管理する表なら「会員テーブル」、商品を管理する表なら「商品テーブル」と呼びます。
基本情報技術者試験では、「表」と「テーブル」はほぼ同じ意味で考えて問題ありません。
レコードとは
レコードとは、表の1行分のデータです。
会員表なら、1人分の会員情報が1レコードです。
| 会員番号 | 氏名 | 都道府県 |
|---|---|---|
| 1001 | 佐藤 | 東京 |
この1行が1レコードです。
フィールドとは
フィールドとは、表の1列分の項目です。
会員表なら、会員番号、氏名、都道府県などがフィールドです。
「列」「項目」「フィールド」は、近い意味で使われます。
列の意味とデータ型
列には、それぞれ意味があります。
会員番号には番号、氏名には文字、注文日には日付が入ります。
このように、どの種類の値を入れるかを決めるものをデータ型といいます。
| 列 | 入る値の例 | データ型の考え方 |
|---|---|---|
| 会員番号 | 1001 | 数値や文字列 |
| 氏名 | 佐藤 | 文字列 |
| 注文日 | 2026-05-21 | 日付 |
| 金額 | 3000 | 数値 |
データ型が合っていないと、計算や比較が正しくできないことがあります。
主キーとは?

主キーは1件のデータを見分ける項目
主キーとは、表の中で1件のデータを見分けるための項目です。
会員表なら会員番号、商品表なら商品コードのようなものです。
たとえるなら、学校の出席番号や社員番号のようなものです。
主キーには重複がない
主キーは、同じ値が重複してはいけません。
会員番号1001の人が2人いると、どちらの会員を指しているのか分からなくなります。
そのため、主キーは1件をはっきり見分けられる値である必要があります。
主キーには空の値を入れない
主キーには、空の値を入れません。
空の値とは、値が入っていない状態です。
主キーが空だと、そのデータを見分けられません。
基本情報技術者試験では、主キーの条件として「重複しない」「空にしない」を押さえましょう。
会員番号や商品コードの例
主キーの例を見てみましょう。
| 表 | 主キーになりやすい項目 | 理由 |
|---|---|---|
| 会員表 | 会員番号 | 会員を1人ずつ見分けられる |
| 商品表 | 商品コード | 商品を1つずつ見分けられる |
| 注文表 | 注文番号 | 注文を1件ずつ見分けられる |
氏名は主キーに向かないことがあります。
同姓同名の人がいる可能性があるからです。
外部キーとは?

外部キーは別の表とつなぐための項目
外部キーとは、別の表とつなぐための項目です。
注文表にある会員番号は、会員表の会員番号とつながります。
このとき、注文表の会員番号が外部キーです。
主キーと外部キーの関係
主キーは、自分の表でデータを見分ける項目です。
外部キーは、別の表の主キーを参照する項目です。
| 項目 | 役割 | 例 |
|---|---|---|
| 主キー | 自分の表で1件を見分ける | 会員表の会員番号 |
| 外部キー | 別の表とつなぐ | 注文表の会員番号 |
主キーは「本人の番号」、外部キーは「その番号を使って別の表から参照するもの」と考えると分かりやすいです。
表を分ける理由
表を分ける理由は、データの重複を減らし、管理しやすくするためです。
注文のたびに会員名や住所を毎回書くと、同じ情報が何度も出ます。
会員情報は会員表に1回だけ持ち、注文表には会員番号だけを持たせると、データがすっきりします。
参照整合性とは
参照整合性とは、表同士のつながりが正しく保たれている状態です。
たとえば、注文表に会員番号9999があるのに、会員表に会員番号9999が存在しないとします。
この場合、「存在しない会員の注文」があることになります。
参照整合性は、このような矛盾を防ぐための考え方です。
リレーションシップの基本

1対1の関係
1対1の関係とは、片方の1件に対して、もう片方も1件だけ対応する関係です。
たとえば、社員表と社員証表を分ける場合、1人の社員に1つの社員証が対応します。
ただし、実際の設計では、1対1はそれほど多くありません。
1対多の関係
1対多の関係とは、片方の1件に対して、もう片方が複数件対応する関係です。
会員と注文の関係が分かりやすい例です。
1人の会員が、何回も注文することがあります。
| 関係 | 例 |
|---|---|
| 1 | 1人の会員 |
| 多 | 複数の注文 |
基本情報技術者試験では、この1対多の関係がよく出ます。
多対多の関係
多対多の関係とは、両方が複数件で対応する関係です。
学生と授業を例にします。
1人の学生は複数の授業を受けます。
1つの授業にも複数の学生がいます。
このような関係を、そのまま1つの表で持つと管理しにくくなります。
中間テーブルの考え方
多対多の関係では、中間テーブルを使います。
学生と授業なら、「受講テーブル」を作ります。
| 学生番号 | 授業番号 |
|---|---|
| S001 | C101 |
| S001 | C102 |
| S002 | C101 |
中間テーブルを使うと、多対多の関係を、1対多の関係に分けて管理できます。
SQLの基本
SELECTでデータを取り出す
SELECTは、表からデータを取り出す命令です。
SELECT 氏名, 都道府県
FROM 会員;
このSQLは、会員表から氏名と都道府県を取り出します。
SELECTの後ろには、取り出したい列を書きます。
WHEREで条件を付ける
WHEREは、取り出す行に条件を付ける命令です。
SELECT 氏名
FROM 会員
WHERE 都道府県 = '東京';
このSQLは、都道府県が東京の会員だけを取り出します。
WHEREを見るときは、「どの行が残るか」を考えます。
ORDER BYで並べ替える
ORDER BYは、結果を並べ替える命令です。
SELECT 商品名, 価格
FROM 商品
ORDER BY 価格 DESC;
DESCは降順です。
価格が高い順に並びます。
ASCは昇順です。
価格が低い順に並びます。
GROUP BYで集計する
GROUP BYは、同じ値ごとにグループにして集計する命令です。
SELECT 商品コード, SUM(数量)
FROM 注文明細
GROUP BY 商品コード;
このSQLは、商品コードごとに数量を合計します。
GROUP BYが出たら、「何ごとにまとめるのか」を確認します。
INSERT・UPDATE・DELETEの役割
SQLには、データを取り出すだけでなく、追加・更新・削除をする命令もあります。
| 命令 | 役割 | 例 |
|---|---|---|
| INSERT | 新しい行を追加する | 新しい会員を登録する |
| UPDATE | 既存の行を更新する | 住所を変更する |
| DELETE | 既存の行を削除する | 退会した会員を削除する |
UPDATEやDELETEでは、WHEREを書き忘れると多くの行に影響することがあります。
JOINとは?

JOINは複数の表をつなげる命令
JOINとは、複数の表をつなげて、1つの結果として取り出す命令です。
会員表と注文表をつなげると、「誰が、いつ注文したか」を取り出せます。
内部結合の考え方
内部結合は、両方の表で条件に合うデータだけを取り出します。
たとえば、会員表と注文表を会員番号で結合すると、注文がある会員の情報が取り出されます。
SELECT 会員.氏名, 注文.注文日
FROM 会員
INNER JOIN 注文
ON 会員.会員番号 = 注文.会員番号;
内部結合では、つながる相手がない行は結果に出ません。
外部結合の考え方
外部結合は、片方の表の行を残しながら、もう片方の表をつなげる方法です。
たとえば、会員表を基準に外部結合すると、注文がない会員も結果に出せます。
注文がない部分は、値が空になります。
| 結合 | 考え方 | 見分け方 |
|---|---|---|
| 内部結合 | 両方にあるものだけ出す | つながる相手がない行は出ない |
| 外部結合 | 片方を残し、合うものをつなぐ | つながる相手がなくても片方の行は残る |
主キーと外部キーを使って表をつなぐ
JOINでは、主キーと外部キーを使って表をつなぐことが多いです。
会員表の会員番号は主キーです。
注文表の会員番号は外部キーです。
この2つを結合条件にします。
ON 会員.会員番号 = 注文.会員番号
SQL問題では、ONの条件をよく見ましょう。
試験でよくある表の読み方
JOINの問題では、いきなり結果を考えようとすると混乱します。
次の順番で読みます。
- どの表を使っているか
- どの列を取り出しているか
- どの列で結合しているか
- WHEREでどの行が残るか
- ORDER BYでどう並ぶか
特に、結合条件とWHERE条件を分けて読むことが大切です。
正規化とは?

正規化はデータの重複や矛盾を減らす考え方
正規化とは、表を整理して、データの重複や矛盾を減らす考え方です。
たとえば、注文表の中に会員名や住所を毎回入れると、同じ会員の情報が何度も出ます。
会員名を変更するとき、すべての注文行を直す必要があります。
これを避けるために、会員情報は会員表に分けます。
基本情報技術者試験では、正規化の目的を「重複を減らす」「更新時の矛盾を防ぐ」と押さえましょう。
第1正規形
第1正規形は、1つの欄に複数の値を入れない形です。
悪い例を見てみましょう。
| 注文番号 | 商品 |
|---|---|
| O001 | りんご、みかん、バナナ |
商品欄に複数の商品が入っています。
これでは、商品ごとの集計がしにくくなります。
第1正規形では、1つの欄には1つの値だけを入れます。
| 注文番号 | 商品 |
|---|---|
| O001 | りんご |
| O001 | みかん |
| O001 | バナナ |
このように、1つの欄に1つの値を入れると、検索や集計がしやすくなります。
第2正規形
第2正規形は、複合主キーの一部だけで決まる項目を、別の表に分ける形です。
複合主キーとは、複数の列を組み合わせて主キーにすることです。
基本情報技術者試験では、この考え方を「部分関数従属の排除」と呼ぶことがあります。
少し難しい言葉ですが、かんたんに言うと「主キー全体ではなく、主キーの一部だけで決まる項目を分ける」という意味です。
たとえば、注文番号と商品コードの組み合わせで1行を見分ける表があるとします。
| 注文番号 | 商品コード | 商品名 | 数量 |
|---|---|---|---|
| O001 | P01 | りんご | 2 |
| O001 | P02 | みかん | 3 |
この表では、商品名は注文番号ではなく、商品コードだけで決まります。
つまり、商品名は複合主キー全体ではなく、商品コードだけに依存しています。
そのため、商品名は商品表に分けるとよいです。
| 商品コード | 商品名 |
|---|---|
| P01 | りんご |
| P02 | みかん |
第2正規形では、「複合主キーの一部だけで決まる項目はないか」を確認します。
第3正規形
第3正規形は、主キー以外の項目から決まる項目を、別の表に分ける形です。
基本情報技術者試験では、この考え方を「推移的関数従属の排除」と呼ぶことがあります。
かんたんに言うと、「主キーではない項目から、さらに別の項目が決まっている状態をなくす」という意味です。
たとえば、会員表に郵便番号と都道府県があるとします。
| 会員番号 | 氏名 | 郵便番号 | 都道府県 |
|---|---|---|---|
| 1001 | 佐藤 | 100-0001 | 東京 |
会員番号から会員情報が決まります。
しかし、都道府県は会員番号から直接決まるというより、郵便番号から決まる情報です。
このような場合、郵便番号と住所情報を別の表に分ける考え方があります。
| 郵便番号 | 都道府県 |
|---|---|
| 100-0001 | 東京 |
第3正規形では、「主キー以外の項目から、さらに別の項目が決まっていないか」を確認します。
正規化しないと起きる問題
正規化しないと、次のような問題が起きやすくなります。
- 同じデータを何度も入力する
- 一部だけ修正され、矛盾が起きる
- 必要なデータだけを消せない
- 集計や検索がしにくくなる
基本情報技術者試験では、正規化の目的を「データの重複や矛盾を減らすこと」と押さえましょう。
トランザクションとは?

トランザクションは一連の処理をまとめて扱うこと
トランザクションとは、複数の処理を1つのまとまりとして扱うことです。
銀行の振込を例にします。
- Aさんの口座から1万円を引く
- Bさんの口座に1万円を足す
この2つは、必ずセットで成功する必要があります。
片方だけ成功すると、データのつじつまが合わなくなります。
コミットとは
コミットとは、トランザクションの結果を確定することです。
すべての処理が正しく終わったら、コミットしてデータベースに反映します。
たとえるなら、下書きの内容を正式に保存するようなものです。
ロールバックとは
ロールバックとは、トランザクションの途中で問題が起きたとき、処理を取り消して元に戻すことです。
振込の途中でエラーが起きた場合、Aさんの口座だけ減った状態にしてはいけません。
そのため、処理前の状態に戻します。
ACID特性の考え方
ACID特性とは、トランザクションが安全に行われるための性質です。
| 性質 | 意味 | かんたんな考え方 |
|---|---|---|
| 原子性 | 全部成功するか、全部取り消す | 中途半端にしない |
| 一貫性 | データのルールを守る | 矛盾を作らない |
| 独立性 | 同時処理の影響を受けにくくする | 他の処理と混ざらない |
| 耐久性 | 確定した結果を失わない | 保存した結果を守る |
英字を丸暗記するよりも、「安全に更新するための性質」と考えましょう。
排他制御が必要な理由

排他制御とは、複数の人や処理が同時に同じデータを更新するとき、データの矛盾を防ぐ仕組みです。
たとえば、在庫が1個しかない商品を、2人が同時に買おうとした場合を考えます。
両方の注文をそのまま通すと、在庫がないのに売れてしまうことがあります。
排他制御は、このような同時更新の問題を防ぐために使われます。
具体的な方法の1つに、ロックがあります。
ロックとは、ある処理がデータを使っている間、ほかの処理が勝手に変更できないようにする仕組みです。
| ロックの種類 | 意味 | イメージ |
|---|---|---|
| 共有ロック | ほかの処理も読むことはできるが、更新はしにくくする | みんなで見るだけ |
| 占有ロック | ほかの処理が読み書きしにくい状態にする | 1人が作業中なので触らない |
基本情報技術者試験では、「同時に更新すると矛盾が起きる」「それを防ぐためにロックや排他制御を使う」と押さえておきましょう。
基本情報技術者試験で間違えやすいデータベース用語
主キーと外部キーの違い
主キーと外部キーは、名前が似ているため混同しやすいです。
| 用語 | 役割 | 見分け方 |
|---|---|---|
| 主キー | 自分の表で1件を見分ける | 重複しない、空にしない |
| 外部キー | 別の表とつなぐ | 別の表の主キーを参照する |
問題文に「一意に識別」とあれば、主キーを考えます。
問題文に「別の表を参照」とあれば、外部キーを考えます。
WHEREとHAVINGの違い
WHEREとHAVINGは、どちらも条件を付けるために使います。
違いは、条件を付けるタイミングです。
| 用語 | 条件を付ける対象 | 例 |
|---|---|---|
| WHERE | 集計前の行 | 東京の会員だけにする |
| HAVING | 集計後のグループ | 売上合計が1万円以上のグループだけにする |
GROUP BYと一緒に出てきたら、HAVINGにも注意しましょう。
内部結合と外部結合の違い
内部結合は、両方の表で一致する行だけを取り出します。
外部結合は、片方の表の行を残しながら、合う行をつなげます。
「注文がない会員も出したい」のように、片方を残したい場合は外部結合を考えます。
| 結合 | 結果に出る行 |
|---|---|
| 内部結合 | 両方の表で一致する行 |
| 外部結合 | 片方の表を残し、一致する行をつなげたもの |
正規化とバックアップの違い
正規化とバックアップは、目的がまったく違います。
| 用語 | 目的 |
|---|---|
| 正規化 | 表を整理して重複や矛盾を減らす |
| バックアップ | データを失ったときに戻せるようにコピーを取る |
正規化は表の設計の話です。
バックアップは障害対策の話です。
コミットとロールバックの違い
コミットは、処理結果を確定することです。
ロールバックは、処理を取り消して元に戻すことです。
| 用語 | 意味 | 使う場面 |
|---|---|---|
| コミット | 確定する | 処理が正しく終わったとき |
| ロールバック | 元に戻す | 途中で失敗したとき |
部分関数従属と推移的関数従属の違い
部分関数従属と推移的関数従属は、正規化で間違えやすい用語です。
| 用語 | 意味 | 関係する正規形 |
|---|---|---|
| 部分関数従属 | 複合主キーの一部だけで、ある項目が決まること | 第2正規形 |
| 推移的関数従属 | 主キー以外の項目から、さらに別の項目が決まること | 第3正規形 |
第2正規形では、主キーの一部だけで決まる項目を分けます。
第3正規形では、主キー以外の項目から決まる項目を分けます。
SQL問題の解き方

ステップ1:どの表を使うか確認する
まず、FROMやJOINを見て、どの表を使うか確認します。
SQL問題では、表が複数出ることがあります。
会員表だけなのか、注文表も使うのか、商品表まで使うのかを先に見ます。
ステップ2:どの列を取り出すか確認する
次に、SELECTの後ろを見ます。
ここには、結果として表示される列が書かれています。
SELECT 会員名, 注文日
この場合、結果に出るのは会員名と注文日です。
条件に使う列と、表示する列は違うことがあります。
ステップ3:条件を確認する
WHEREを見て、どの行が残るかを考えます。
WHERE 都道府県 = '東京'
この場合、都道府県が東京の行だけが残ります。
条件が複数ある場合は、ANDやORにも注意します。
ステップ4:結合条件を確認する
JOINがある場合は、ONを見ます。
ON 会員.会員番号 = 注文.会員番号
この条件は、会員表と注文表を会員番号でつなぐという意味です。
結合条件を間違えると、結果の行数が変わるため注意が必要です。
ステップ5:出力結果を1行ずつ考える
最後に、条件に合う行を1行ずつ考えます。
頭の中だけで考えると混乱しやすいので、問題用紙やメモに小さな表を書いて確認するとよいです。
SQL問題は、次の順番で見ると解きやすくなります。
- FROMで使う表を見る
- JOINとONで表のつながりを見る
- WHEREで残る行を見る
- GROUP BYがあれば集計単位を見る
- HAVINGがあれば集計後の条件を見る
- SELECTで出力列を見る
- ORDER BYで並び順を見る
基本情報技術者試験ではデータベースがどう出る?
用語の意味を問う問題
主キー、外部キー、正規化、トランザクション、コミット、ロールバックなどの意味を問う問題があります。
このタイプは、言葉の定義だけでなく、どの場面で使うかまで押さえると解きやすくなります。
表の関係を読み取る問題
会員表、注文表、商品表などが出て、どの表がどの表とつながるかを読む問題があります。
見るべきポイントは、主キーと外部キーです。
同じ名前の列や、コード番号の列がつながりの手がかりになります。
SQLの実行結果を選ぶ問題
SQL文と表が示され、実行結果として正しいものを選ぶ問題があります。
このタイプでは、SQLを上から読むだけではなく、条件や結合を順番に処理する必要があります。
特にWHERE、JOIN、GROUP BY、HAVING、ORDER BYはよく確認しましょう。
正規化の考え方を問う問題
正規化では、どの表に分けるべきか、どのような問題を防げるかが問われます。
「重複」「矛盾」「更新時の不整合」という言葉が出たら、正規化を考えます。
また、第2正規形では部分関数従属、第3正規形では推移的関数従属という言葉が出ることがあります。
トランザクション処理を問う問題
トランザクションでは、コミット、ロールバック、排他制御、ACID特性などが問われます。
「一連の処理をまとめる」「全部成功か全部取り消し」「同時更新の矛盾を防ぐ」といった表現に注目しましょう。
確認問題
主キーに必要な条件は何ですか?
問題1:主キーの説明として、最も適切なものはどれですか。
- ア:表の中で重複してもよい項目
- イ:表の中で1件のデータを見分ける項目
- ウ:必ず氏名を入れる項目
- エ:別の表を保存するための項目
解答:イ
解説:主キーは、表の中で1件のデータを見分けるための項目です。重複せず、空の値にしないことが基本です。
外部キーの役割は何ですか?
問題2:外部キーの説明として、最も適切なものはどれですか。
- ア:別の表とつなぐための項目
- イ:データを暗号化するための項目
- ウ:必ず数値だけを入れる項目
- エ:表の行数を数える項目
解答:ア
解説:外部キーは、別の表の主キーなどを参照し、表同士をつなぐために使います。
JOINを使う目的は何ですか?
問題3:JOINを使う目的として、最も適切なものはどれですか。
- ア:1つの表を削除するため
- イ:複数の表をつなげて必要な情報を取り出すため
- ウ:データベースをバックアップするため
- エ:表の名前を変更するため
解答:イ
解説:JOINは、複数の表を結合して必要な情報を取り出すために使います。主キーと外部キーを使って結合することが多いです。
ロールバックはどんなときに使いますか?
問題4:ロールバックを使う場面として、最も適切なものはどれですか。
- ア:処理が正常に終わり、結果を確定するとき
- イ:処理の途中で失敗し、元の状態に戻すとき
- ウ:表の列を並べ替えるとき
- エ:検索結果を集計するとき
解答:イ
解説:ロールバックは、トランザクションの途中で問題が起きたとき、処理を取り消して元の状態に戻すことです。正常に終わって確定する場合はコミットです。
第2正規形で取り除くものは何ですか?
問題5:第2正規形で取り除くものとして、最も適切なものはどれですか。
- ア:複合主キーの一部だけで決まる項目
- イ:主キー以外の項目から決まる項目
- ウ:すべての主キー
- エ:すべての外部キー
解答:ア
解説:第2正規形では、複合主キーの一部だけで決まる項目を分けます。これを部分関数従属の排除といいます。
まとめ
基本情報技術者試験のデータベースでは、表の意味を読むだけでなく、表同士の関係を読む力が必要です。
主キーは、表の中で1件のデータを見分ける項目です。
外部キーは、別の表とつなぐための項目です。
SQLでは、SELECT、FROM、WHERE、JOIN、GROUP BY、HAVING、ORDER BYを順番に確認すると、実行結果を考えやすくなります。
正規化は、データの重複や矛盾を減らすために表を整理する考え方です。
第2正規形では部分関数従属、第3正規形では推移的関数従属という言葉も押さえておくと、過去問を読みやすくなります。
トランザクションは、複数の処理を1つのまとまりとして扱い、安全に更新するための考え方です。
コミットは確定、ロールバックは取り消しです。
排他制御やロックは、同時に更新したときの矛盾を防ぐために使います。
基本情報技術者試験では、用語の意味だけでなく、「どの場面で使うのか」「問題文のどの言葉から見分けるのか」を意識して学ぶことが大切です。
データベースを含めた基本情報全体の進め方は、基本情報技術者試験の勉強方法も参考にしてください。
