メインコンテンツへスキップ
教材一覧に戻る
ITパスポート

データベース

最終確認日:

この章しょうで学まなぶこと

テクノロジ系けい 45 問もんのうち、この章しょうは 4〜6 問もんほどの出題しゅつだいがあります。「ECサイトの注文ちゅうもん情報じょうほうはどこにどう保存ほぞんされているの?」「銀行ぎんこう振込ふりこみで停電ていでんが起おきたらお金かねは消きえる?」「会員かいいん名簿めいぼで名前なまえが重複じゅうふくしたらどうやって区別くべつするの?」といった、データを整理せいりして蓄積ちくせきし、複数ふくすう人じんで共有きょうゆうするしくみを扱あつかう章しょうです。

現代げんだいの IT システムではデータは事業じぎょうの資産しさんであり、データベースはその金庫きんこに相当そうとうします。試験しけんでは 主ぬしキー・正規せいき化か・SQL の基本きほん・ACID 特性とくせいの 4 つが定番ていばん論点ろんてん。SQL は構文こうぶんを暗記あんきするのではなく、「何なにをするための文ぶんか」を読よみ解とく力ちからが問とわれます。

シラバス Ver.6.5 中ちゅう分類ぶんるい 21「データベース」は 4 つの小しょう分類ぶんるい:

小しょう分類ぶんるい項目こうもく本章ほんしょうの対応たいおう節ぶし
54データベース方式ほうしき1 節ふし
55データベース設計せっけい2 節ふし
56データ操作そうさ(SQL)3 節ふし
57トランザクション処理しょり4 節ふし

学習がくしゅうゴール

この章しょうを読よみ終おえた時点じてんで、以下いかができるようになっていることを目指めざします。

  • 関係かんけいデータベース(RDB)の構造こうぞう(表ひょう・行ぎょう・列れつ・主キーしゅきー・外部キーがいぶきー)を判別はんべつできる
  • 正規化せいきか(第だい 1〜第 3 正規形だい 3 せいきがた)の目的もくてきと概念がいねんを説明せつめいできる
  • SQL の基本きほん命令めいれい(SELECT・INSERT・UPDATE・DELETE・JOIN)を判別はんべつできる
  • トランザクションのACID特性とくせい(原子性げんしせい・一貫性いっかんせい・独立性どくりつせい・永続性えいぞくせい)をシナリオから判別はんべつできる
  • E-R 図ず(実体じったい・関連かんれん図)でデータモデルを読よみ解とける
  • NoSQL / KVS の特徴とくちょうと RDB との使つかい分わけを説明せつめいできる

試験しけんでは: 「主ぬしキーが満みたすべき制約せいやくは?」「この処理しょりは ACID のどれ?」のような定義ていぎの細部さいぶを問とう問題もんだいが定番ていばん。SQL はSELECT 文ぶんを読よんで結果けっかを推測すいそくするタイプが出でるので、構文こうぶんの暗記あんきより意味いみ読解どっかいを練習れんしゅうする。

1. データベースの基本きほん概念がいねん

EC サイトの商品しょうひん一覧いちらん、SNS の投稿とうこう履歴りれき、会社かいしゃの給与きゅうよ情報じょうほう、銀行ぎんこうの口座こうざ残高ざんだか——これらはすべてデータベースに格納かくのうされています。昔むかしは Excel で管理かんりしていた規模きぼの情報じょうほうも、ユーザ数すう・取引とりひき数すうが増ふえると Excel では破綻はたんします。複数ふくすう人じんが同時どうじに更新こうしんしても矛盾むじゅんしない「金庫きんこ」が必要ひつようで、それが DB とそれを管理かんりする DBMS です。

1.1 データベースとは

データベースでーたべーす(DB)は、複数ふくすうの利用りよう者しゃ・アプリケーションから共有きょうゆうして利用りようできるよう整理せいり・蓄積ちくせきされたデータの集合しゅうごう。管理かんりするソフトウェアが DBMS(Database Management System)です。一見いっけん「ファイルにデータを保存ほぞんする」だけに思おもえますが、多人数たにんずうで同時どうじに読よみ書かきしても壊こわれないのが DBMS の強つよみ。

具体ぐたい例れい: 銀行ぎんこうの ATMは全国ぜんこく数すう万まん台だいが同おなじ口座こうざデータを見みています。A さんが引出ひきだしを始はじめた瞬間しゅんかん、B さんが同おなじ口座こうざに入金にゅうきんしても、データが壊こわれず正ただしく反映はんえいされる。このためには排他はいた制御せいぎょ・トランザクション・障害しょうがい回復かいふくなどの高度こうどな仕組しくみが必要ひつようで、それを担になうのが DBMS です。

DBMS の主おもな機能きのう

機能きのう内容ないよう
データの一貫いっかん性せい維持いじ複数ふくすうユーザーが同時どうじ更新こうしんしても矛盾むじゅんしないようにする
アクセス制御せいぎょユーザーごとに権限けんげんを設定せってい(GRANT/REVOKE)
トランザクション管理かんり処理しょりの確定かくてい(COMMIT)と取消とりけし(ROLLBACK)
障害しょうがい回復かいふくログを使つかってクラッシュ時じにデータを復元ふくげん

1.2 データベースの種類しゅるい

データベースには複数ふくすうの種類しゅるいがあり、扱あつかうデータの構造こうぞうと用途ようとで使つかい分わけます。関係かんけいデータベース(RDB)は整然せいぜんとした表おもて形式けいしきデータに強つよく業務ぎょうむの大半たいはんで使つかわれ、NoSQLはソーシャル投稿とうこうのような非ひ定型ていけいデータに、KVSはキャッシュや単純たんじゅん検索けんさくに適てきします。試験しけんでは RDB が中心ちゅうしん、NoSQL/KVS は補足ほそく的てきに覚おぼえます。

種類しゅるい特徴とくちょう代表だいひょう例れい用途ようと
関係データベースかんけいでーたべーす(RDB)表ひょう形式けいしき、SQL で操作そうさ、ACID 特性とくせいOracle、MySQL、PostgreSQL業務ぎょうむシステムの主流しゅりゅう
NoSQL非ひ関係かんけい型がた、スケーラビリティ重視じゅうしMongoDB(ドキュメント型がた)SNS・ビッグデータ
KVS(Key-Value Store)キーと値あたいの対たいで格納かくのう、超ちょう高速こうそくRedis、memcachedキャッシュ・セッション
グラフ DBノードとエッジで関係かんけいを表現ひょうげんNeo4jSNS の人間にんげん関係かんけい・レコメンド

頻出ひんしゅつ: 試験しけんでは RDB が 90% 以上いじょうの論点ろんてん。NoSQL/KVS は「RDB の弱点じゃくてん(超大ちょうだい規模きぼデータ・非ひ構造こうぞうデータ・超ちょう高速こうそく)を補おぎなう選択肢せんたくし」という位置付いちづけで理解りかいする。

2. 関係かんけいデータベースの構造こうぞうと設計せっけい

関係かんけいデータベース(RDB)は2 次元じげんの表おもてでデータを管理かんりする方式ほうしき。各かく表ひょうには列れつ(何なにを記録きろくするか)と行くだり(1 件けん分ぶんのデータ)があり、表ひょう同士どうしを結合けつごう(JOIN)して複雑ふくざつな情報じょうほうを取とり出だせます。この節ふしでは表ひょうの構成こうせい要素ようそ・キー・設計せっけい手法しゅほう(正規せいき化か・E-R 図ず)を扱あつかいます。試験しけんではキーの制約せいやくと正規せいき化かの目的もくてきが頻出ひんしゅつです。

2.1 表ひょう(テーブル)の構成こうせい要素ようそ

RDB の表ひょうは Excel のシートと似にた 2 次元じげん構造こうぞう。ただし、各かく列れつにデータ型がたが決きまっている(数値すうち列れつに文字もじ列れつは入いれられない)ことと、重複じゅうふく行ゆきが論理ろんり的てきに許ゆるされない点てんが違ちがいます。用語ようごは複数ふくすうの呼よび方かたがあり(行くだり=レコード=タプル等とう)、試験しけんではすべての呼よび方かたで出題しゅつだいされるので整理せいりしておきます。

用語ようご別名べつめい意味いみ
表ひょうテーブル、リレーションデータを格納かくのうする 2 次元じげん構造こうぞう
行ゆきレコード、タプルたぷる1 件けん分ぶんのデータ
列れつカラム、フィールド、属性ぞくせいデータの項目こうもく(名前なまえ・日付ひづけ etc)
NULL—値ちが存在そんざいしない状態じょうたい(0 や空文字くうもじとは違ちがう)

引ひっかけ: NULL は「値あたいがない」状態じょうたいで、0 や空文字くうもじ「""」とは別べつ。たとえば「未み記入きにゅうの住所じゅうしょ欄らん」は NULL、「0 円えん」は 0、「空そらの文字もじ列れつ」は ""。SQL で NULL を比較ひかくするには = NULL ではなく IS NULL を使つかう(NULL は何なんとも等ひとしくない)。

2.2 主しゅキーと外部がいぶキー

キーは「行ゆきを識別しきべつしたり、表ひょうと表ひょうをつなぐための列れつ」。主しゅキーは社員しゃいん番号ばんごうのような一意いちいな ID、外部がいぶキーは別べつの表ひょうを参照さんしょうするためのリンク。この 2 つのキーで、表おもて同士どうしを正ただしく結合けつごうする仕組しくみが成なり立たちます。

キー役割やくわり制約せいやく
主キーしゅきー(PK、Primary Key)各行かくこうを一意いちいに識別しきべつNULL 不可ふか・重複じゅうふく不可ふか
外部キーがいぶきー(FK、Foreign Key)他た表ひょうの主しゅキーを参照さんしょう参照さんしょう先さきの値あたいと整合せいごう性せいを保たもつ(参照さんしょう整合せいごう性せい制約せいやく)
候補キーこうほきー主しゅキーになり得えるキー群ぐん(複数ふくすう存在そんざい可か)—
複合ふくごうキー複数ふくすう列れつの組合せくみあわせで主しゅキーにする1 列れつでは一意いちいにならない場合ばあい

外部がいぶキーによる参照さんしょう整合せいごう性せいの例

社員表                      部署表
社員ID | 氏名   | 部署ID      部署ID | 部署名
-----|-------|-------      ----|-----
  101 | 佐藤  |    10         10 | 営業部
  102 | 鈴木  |    20         20 | 開発部
  103 | 田中  |    10         30 | 人事部

社員しゃいん表ひょうの「部署ぶしょID」は部署ぶしょ表ひょうの主しゅキーを参照さんしょうする外部がいぶキー。存在そんざいしない部署ぶしょID(例れい: 99)は登録とうろくできません(参照さんしょう整合せいごう性せい制約せいやく)。

2.3 E-R 図ず(ERD)

E-R 図いーあーるず(Entity-Relationship Diagram)は、データベース設計せっけいで使つかわれる概念がいねんモデル図ず。実装じっそうの前ぜん段階だんかいで、「どんな情報じょうほうを記録きろくし、それらがどうつながるか」を視覚しかく化かします。顧客こきゃく・注文ちゅうもん・商品しょうひんのような現実げんじつ世界せかいのエンティティ(実体じったい)を四角形しかくけいで表あらわし、関連かんれんを線せんで結むすびます。M:N(多た対たい多た)関係かんけいは実装じっそう時じに中間ちゅうかんテーブルで分解ぶんかいするのが定石じょうせきです。

1対1・1対多・多対多の関係を表すER図の例
E-R 図ず(実体じったい関連かんれん図ず)の例れい。エンティティ(実体じったい)を四角形しかくけいで表あらわし、関連かんれんを線せんで結むすぶ。線せんの端はじの記号きごうで 1:1(1 対たい 1)・1:N(1 対たい多た)・M:N(多た対たい多た)のカーディナリティかーでぃなりてぃを表あらわす。

E-R 図ずの例れい(社員しゃいん ↔ 部署ぶしょ)

エンティティ主しゅキー(PK)/ 外部がいぶキー(FK)
社員しゃいん#社員しゃいん ID(PK)/ 部署ぶしょ ID(FK)/ 氏名しめい
部署ぶしょ#部署ぶしょ ID(PK)/ 部署ぶしょ名めい

関連かんれん: 「所属しょぞくする」 N : 1

= 多数たすうの社員しゃいんが 1 つの部署ぶしょに所属しょぞくする関係かんけい。M:N の場合ばあいは中間ちゅうかんテーブルで分解ぶんかいする。

要素ようそ表現ひょうげん
エンティティ四角形しかくけい
リレーションシップ四角形しかくけいを結むすぶ線せん
カーディナリティかーでぃなりてぃ(多た重度じゅうど)1:1 / 1:N / M:N

M:N 関係かんけいは通常つうじょう 2 つの 1:N に分解ぶんかいして「中間ちゅうかんテーブル」で実装じっそうします。

頻出ひんしゅつ引ひっかけ: 「学生がくせい」と「履修りしゅう科目かもく」の関係かんけいは M:N(1 人ひとの学生がくせいが複数ふくすう科目かもくを履修りしゅう、1 つの科目かもくに複数ふくすう学生がくせい)。これを RDB で実装じっそうするには「履修りしゅう」中間ちゅうかんテーブルを作つくって M:1 + 1:N に分解ぶんかいする。

2.4 正規せいき化か

正規せいき化かは「同おなじ情報じょうほうを複数ふくすうの場所ばしょに重複じゅうふくさせない」ようにテーブル設計せっけいを整ととのえる手法しゅほう。重複じゅうふくがあると更新こうしん時じに不ふ整合せいごうが起おきやすい(例れい: 顧客こきゃくの住所じゅうしょを 10 箇所かしょ持もつと、引ひっ越こした時ときに 10 箇所かしょすべて更新こうしん漏もれなく変更へんこうする必要ひつようがある)。段階だんかい的てきに第だい 1 → 第だい 2 → 第だい 3 正規せいき形がたと進すすめて、データの重複じゅうふくを排除はいじょします。

正規せいき形がた内容ないよう
第 1 正規形だい 1 せいきがた繰くり返かえし項目こうもくを排除はいじょし、1 セルに 1 値あたい
第 2 正規形だい 2 せいきがた主しゅキー全体ぜんたいに関数従属かんすうじゅうぞくする(部分ぶぶん関数かんすう従属じゅうぞくを排除はいじょ)
第 3 正規形だい 3 せいきがた主しゅキー以外いがいの列れつへの従属じゅうぞくを排除はいじょ(推移すいい関数かんすう従属じゅうぞくを排除はいじょ)

具体ぐたい例れい(第だい 1 正規せいき形がた): 「顧客こきゃく表ひょう」に「購入こうにゅう商品しょうひん」列れつがあって、1 セルに「商品しょうひん A、商品しょうひん B、商品しょうひん C」とカンマ区切くぎりで入はいっているのは 非ひ正規せいき。これを顧客こきゃく表ひょうと購入こうにゅう表ひょうに分離ぶんりし、1 顧客こきゃく 1 商品しょうひん = 1 レコードにするのが第だい 1 正規せいき形がた。

ポイント: IT パスポートでは正規せいき化かの目的もくてき(重複じゅうふく排除はいじょと更新こうしん異常いじょう防止ぼうし)を押おさえれば十分じゅうぶん。各かく正規せいき形がたの具体ぐたい的てき条件じょうけんは応用おうよう情報じょうほうレベル。「正規せいき化かとは何なにのためにやるか」を日本語にほんごで説明せつめいできれば OK。

2.5 索引さくいん(インデックスいんでっくす)

索引さくいん(インデックス)は、特定とくていの列れつに対たいして検索けんさくを高速こうそく化かする補助ほじょデータ構造こうぞう。書籍しょせきの巻末かんまつの索引さくいんと同おなじ発想はっそうで、「どの値あたいがどの行くだりにあるか」を別途べっと記録きろくしておいて探さがすのを速はやくします。使つかいどころを間違まちがえると逆ぎゃく効果こうかで、検索けんさくは速はやくなるが書込かきこみは遅おそくなるというトレードオフがあります。

  • メリット: SELECT(検索けんさく・並ならべ替がえ)が大幅おおはばに速はやくなる
  • デメリット: INSERT / UPDATE / DELETE 時ときに索引さくいんの更新こうしんコストが発生はっせい、容量ようりょうも食くう
  • 使つかいどころ: 頻繁ひんぱんに検索けんさくされる列れつ、WHERE 句くや JOIN に使つかう列れつ、大おおきな表おもて

3. データ操作そうさ(SQL)

SQL(Structured Query Language)は関係かんけいデータベースの標準ひょうじゅん言語げんご。1970 年代ねんだいに IBM で開発かいはつされ、現在げんざいはほぼすべての RDB 製品せいひんで共通きょうつうの言語げんごとして使つかわれています。構文こうぶんは英語えいごに近ちかく、SELECT 何を FROM どこから WHERE 条件 のように自然しぜん言語げんごに近ちかい形かたちで書かけるのが特徴とくちょうです。試験しけんではSELECT 文ぶんの読解どっかいが最さい頻出ひんしゅつ。

分類ぶんるい略称りゃくしょう主おもなコマンド用途ようと
データ定義ていぎ言語げんごDDLCREATE、ALTER、DROP表ひょうの作成さくせい・変更へんこう・削除さくじょ
データ操作そうさ言語げんごDMLSELECT、INSERT、UPDATE、DELETEデータの読よみ書かき
データ制御せいぎょ言語げんごDCLGRANT、REVOKE権限けんげんの付与ふよ・剥奪はくだつ

覚おぼえ方かた: Definition(定義ていぎ)・Manipulation(操作そうさ)・Control(制御せいぎょ)の 3 分類ぶんるい。表ひょうそのものを作つくる = DDL、表ひょうの中身なかみを読よみ書かき = DML、アクセス権限けんげん = DCL。

3.1 基本きほん的てきな SELECT 文ぶん

SELECT 文ぶんは「どの列れつを、どの表ひょうから、どんな条件じょうけんで取とり出だすか」を書かく命令めいれい。試験しけんではSELECT 文ぶんを読よんで結果けっかを予測よそくするタイプの問題もんだいが出題しゅつだいされます。構文こうぶんを暗記あんきするのではなく、各かく句くの役割やくわりを理解りかいするのがコツです。

-- 全列取得
SELECT * FROM 社員;
 
-- 特定列のみ
SELECT 氏名, 部署ID FROM 社員;
 
-- 条件で絞込み
SELECT * FROM 社員 WHERE 部署ID = 10;
 
-- 並べ替え
SELECT * FROM 社員 ORDER BY 社員ID;
 
-- グループ集計
SELECT 部署ID, COUNT(*) AS 人数
FROM 社員
GROUP BY 部署ID;
 
-- 結合(JOIN)
SELECT 社員.氏名, 部署.部署名
FROM 社員
JOIN 部署 ON 社員.部署ID = 部署.部署ID;

3.2 データ変更へんこう

データを追加ついか・更新こうしん・削除さくじょする命令めいれいは INSERT / UPDATE / DELETE の 3 つ。特とくに UPDATE / DELETE の WHERE 句く忘わすれは実務じつむでも大だい事故じこになります。WHERE なしの UPDATE は全ぜん行くだり更新こうしん、WHERE なしの DELETE は全ぜん行くだり削除さくじょなので、実行じっこう前まえに必かならず条件じょうけんを確認かくにんします。

-- 挿入
INSERT INTO 社員 (社員ID, 氏名, 部署ID) VALUES (104, '山田', 20);
 
-- 更新
UPDATE 社員 SET 部署ID = 30 WHERE 社員ID = 104;
 
-- 削除
DELETE FROM 社員 WHERE 社員ID = 104;

引ひっかけ: UPDATE 社員しゃいん SET 部署ぶしょID = 30 (WHERE なし)を実行じっこうすると、全ぜん社員しゃいんの部署ぶしょ ID が 30 に書かき換かわる。これは実務じつむで起おきる大だい事故じこの典型てんけい。試験しけんでも「この SQL の影響えいきょう範囲はんいは?」と問とわれることがある。

3.3 主おもな演算えんざん子こ・関数かんすう

SELECT 文ぶんの WHERE 句くで使つかえる演算えんざん子こ・関数かんすう。比較ひかく・論理ろんり・範囲はんい・パターン・NULL 判定はんてい・集約しゅうやくの 6 分類ぶんるいを覚おぼえると、大半たいはんの SQL 問題もんだいが読よめるようになります。特とくに LIKE のワイルドカード(%, _)は頻出ひんしゅつです。

種類しゅるい例れい備考びこう
比較ひかく=, <>, <, >, <=, >=<> は「等ひとしくない」
論理ろんりAND、OR、NOT条件じょうけんの組み合わせくみあわせ
範囲はんいBETWEEN、INWHERE age BETWEEN 20 AND 30
パターンLIKE(% は任意にんいの文字もじ列れつ、_ は任意にんいの 1 文字もじ)WHERE name LIKE '田%'
NULL 判定はんていIS NULL、IS NOT NULL= NULL は動うごかない
集約しゅうやく関数かんすうCOUNT、SUM、AVG、MAX、MINGROUP BY と併用へいよう

頻出ひんしゅつ: LIKE のワイルドカード。% = 任意にんいの文字もじ列れつ(0 文字もじ以上いじょう)、_ = 任意にんいの 1 文字もじ。「田たで始はじまる名前なまえ」は LIKE '田%'、「A で始はじまり 3 文字もじ」は LIKE 'A__'。

4. トランザクション処理しょり

トランザクションは「複数ふくすうの操作そうさをまとめて 1 つの処理しょりとして扱あつかう」仕組しくみ。たとえば銀行ぎんこう振込ふりこみは「A 口座こうざ引落おとし」と「B 口座こうざ入金にゅうきん」の 2 つの操作そうさで成なり立たちますが、片方かたほうだけ成功せいこうするとお金かねが消きえたり増ふえたりして困こまります。両方りょうほう成功せいこう or 両方りょうほう取消とりけしを保証ほしょうする仕組しくみがトランザクションです。

4.1 トランザクションとは

トランザクションとらんざくしょんは「分割ぶんかつできないデータ更新こうしんの単位たんい」。1 つでも失敗しっぱいしたら全部ぜんぶなかったことにするのが基本きほんルール。例れい: 銀行ぎんこう振込ふりこみで「A 口座こうざから 1,000 円えん引落おとし」→「B 口座こうざに 1,000 円えん入金にゅうきん」の 2 操作そうさは、両方りょうほう成功せいこうして初はじめて振込ふりこみ完了かんりょう。途中とちゅうで失敗しっぱいしたら A の残高ざんだかを元もとに戻もどし、振込ふりこみをなかったことにします。これを保証ほしょうするのが ACID 特性とくせい(次節じせつ)です。

4.2 ACID 特性とくせい

ACID(アシッド)は、トランザクションが満みたすべき4 つの性質せいしつの頭文字かしらもじ。銀行ぎんこう・証券しょうけん・医療いりょうのようなデータの正ただしさが命いのちのシステムでは必須ひっすです。近年きんねんのクラウドネイティブな NoSQL では一部いちぶを緩ゆるめた BASE 特性とくせいが使つかわれることもありますが、RDB では ACID が基本きほんです。

頭文字かしらもじ性質せいしつ意味いみ例
A原子げんし性せい(Atomicity)全部ぜんぶ成功せいこう or 全部ぜんぶ取消とりけし(中途半端ちゅうとはんぱなし)銀行ぎんこう振込ふりこみの引落おとし+入金にゅうきんは両方りょうほう成功せいこう
C一貫いっかん性せい(Consistency)処理しょり前後ぜんごでデータの整合せいごう性せいを保たもつ制約せいやく違反いはんの状態じょうたいにはならない
I独立どくりつ性せい(Isolation)並行へいこう実行じっこう中ちゅうのトランザクションが干渉かんしょうしない他者たしゃの途中とちゅうデータは見みえない
D耐久たいきゅう性せい(Durability)コミット後ごのデータは障害しょうがいがあっても失うしなわれない停電ていでん後ごもログから復元ふくげん可能かのう
特性とくせい英語えいご意味いみ
原子げんし性せいAtomicity全部ぜんぶ成功せいこうか全部ぜんぶ取消とりけしかのどちらか(中途半端ちゅうとはんぱなし)
一貫いっかん性せいConsistency処理しょり前後ぜんごでデータの整合せいごう性せいが保たもたれる
独立どくりつ性せいIsolation並行へいこう実行じっこう中ちゅうのトランザクションが互たがいに干渉かんしょうしない
耐久たいきゅう性せいDurabilityコミットこみっと後のデータは障害しょうがいがあっても失うしなわれない

頻出ひんしゅつ引ひっかけ: 原子げんし性せいは「全ぜんか無むか」(All or Nothing)。銀行ぎんこう振込ふりこみで引落おとしだけ成功せいこうして入金にゅうきんが失敗しっぱいするような中途半端ちゅうとはんぱは許ゆるされない。耐久たいきゅう性せいはコミット後ごの話はなしで、コミット前まえに停電ていでんしたら ROLLBACK されるのは原子げんし性せいの領域りょういき。「コミット直後ちょくごに障害しょうがいが起おきてもデータが消きえない」のが耐久たいきゅう性せい。

4.3 コミットとロールバックろーるばっく

トランザクションを確定かくていするのが COMMIT、取消とりけしが ROLLBACK。COMMIT されたデータは耐久たいきゅう性せいが保証ほしょうされ、以降いこうは障害しょうがいがあっても消きえません(耐久たいきゅう性せい = Durability)。エラー時じに ROLLBACK することで原子げんし性せい(All or Nothing)を守まもります。

BEGIN;                                -- トランザクション開始
UPDATE 口座 SET 残高 = 残高 - 1000 WHERE 口座ID = 'A';
UPDATE 口座 SET 残高 = 残高 + 1000 WHERE 口座ID = 'B';
COMMIT;                               -- 確定(耐久性が保証される)
-- 途中でエラーが起きたら
ROLLBACK;                             -- 取消し(原子性を守る)

4.4 同時どうじ実行じっこう制御せいぎょ(排他制御はいたせいぎょ)

複数ふくすうユーザが同おなじデータに同時どうじアクセスする状況じょうきょうは、RDB では日常にちじょう茶飯事さはんじ。何なにも制御せいぎょしないとデータの不ふ整合せいごうが起おきます(同時どうじに同おなじ口座こうざから引出ひきだしすると二に重じゅう引出ひきだしが発生はっせいする等ひとし)。これを防ふせぐのが排他はいた制御せいぎょ(ロック)。読取よみとりは複数ふくすう人じん OK、書込かきこみは 1 人ひとだけというのが基本きほん方針ほうしんです。

方式ほうしき内容ないよう
ロックろっくデータに「鍵かぎ」をかけて他たの更新こうしんを待またせる
共有きょうゆうロック(読取よみとりロック)複数ふくすうトランザクションで同時どうじに読よめる
専有せんゆうロック(書込かきこみロック)1 トランザクションのみ(他たは待またされる)
デッドロックでっどろっく複数ふくすうトランザクションが互たがいの待機たいきで永久えいきゅうに進すすまない状態じょうたい

引ひっかけ: デッドロックは、T1 が A をロック → T2 が B をロック → T1 が B も欲ほしがり待まち → T2 が A も欲ほしがり待まち、で永久えいきゅうに解消かいしょうしない。DBMS は検出けんしゅつして片方かたほうを強制きょうせい終了しゅうりょうで対処たいしょする。

4.5 障害しょうがい回復かいふく

サーバがクラッシュしたり停電ていでんが起おきた場合ばあいも、DBMS はデータを復元ふくげんします。未み完了かんりょうのトランザクションは ロールバック(取消とりけし)、コミット済ずみで反映はんえい前まえのものは ロールフォワード(再さい適用てきよう)で整合せいごう性せいを保たもちます。普段ふだんからログ(ジャーナル)を取とっておくことが前提ぜんていです。

方式ほうしき内容ないよう使つかいどころ
ロールバックトランザクション実行じっこう中ちゅうの障害しょうがい → 変更へんこうを取消とりけし未み COMMIT の障害しょうがい
ロールフォワードコミット済ずみの変更へんこうを障害しょうがい後ごに再さい適用てきようCOMMIT 済すみだがディスク未み反映はんえい
バックアップ定期ていき的てきにデータ全体ぜんたいを別べつ媒体ばいたいに保管ほかん大だい規模きぼ障害しょうがい・誤操作ごそうさ

頻出ひんしゅつ: ロールバック(取消とりけし)vs ロールフォワード(再さい適用てきよう)。方向ほうこうが逆ぎゃく。未み完了かんりょう → ロールバック、コミット済すみ → ロールフォワード。

📋 章しょう末まつまとめ

最さい重要じゅうようポイント 10 連発れんぱつ

  1. DBMS の役割やくわり — 共有きょうゆう・一貫いっかん性せい・制御せいぎょ・回復かいふく
  2. 主ぬしキー vs 外部がいぶキー — 一いち意識いしき別べつ vs 他た表ひょう参照さんしょう
  3. NULL — 「値あたいが存在そんざいしない」状態じょうたい(0 や空文字くうもじと区別くべつ)
  4. 正規せいき化かの目的もくてき — 重複じゅうふく排除はいじょと更新こうしん異常いじょうの防止ぼうし
  5. SQL の 3 分類ぶんるい — DDL / DML / DCL
  6. SELECT の基本きほん構文こうぶん — SELECT 〜 FROM 〜 WHERE 〜 ORDER BY
  7. JOIN — 複数ふくすう表ひょうを結合けつごうする
  8. ACID 特性とくせい — 原子げんし性せい・一貫いっかん性せい・独立どくりつ性せい・耐久たいきゅう性せい
  9. COMMIT と ROLLBACK — 確定かくていと取消とりけし
  10. 索引さくいん — 読取よみとり高速こうそく化かの代償だいしょうに書込かきこみコスト増ぞう

出題しゅつだい傾向けいこうのコツ

  • 主ぬしキーの定義ていぎ(NULL 不可ふか・重複じゅうふく不可ふか)は基本きほん中ちゅうの基本きほん
  • SQL は概念がいねん理解りかい中心ちゅうしん。構文こうぶんの細部さいぶより「何なにをするための文ぶんか」
  • ACID 特性とくせいは各かく要素ようその意味いみを具体ぐたい例れいで答えこたえられるように
  • NoSQL は関係かんけい DB との違ちがい(スケーラビリティ・非ひ構造こうぞうデータ)だけ押おさえる

🔗 関連かんれんする学習がくしゅうツール

SQL の分類ぶんるいを即答そくとうできるようにトレーニング:


出典しゅってんシラバス: ITパスポート試験しけんシラバス Ver.6.5(2026年ねん1月つき・IPA公開こうかい)

この教材きょうざいは役やくに立たちましたか?

この章しょうの練れん習しゅう

ほかの分ぶん野やの練れん習しゅうもチェック

一いち問もん一いっ答とう

情報セキュリティ 一問一答

IT パスポート試験で最重要の情報セキュリティ分野から 20 問を厳選。CIA 3 要素から攻撃手法、暗号・認証、対策技術まで体系的に確認できます。

一いち問もん一いっ答とう

コンピュータシステム 一問一答

IT パスポート試験のテクノロジ系頻出テーマから 20 問を厳選。CPU/メモリから仮想化・クラウド・RAID・稼働率計算まで、ハードウェアとシステム構成の基礎を体系的に確認。

一いち問もん一いっ答とう

ネットワーク 一問一答

IT パスポート試験のネットワーク分野から 20 問を厳選。LAN/WAN・Wi-Fi セキュリティ・TCP/IP・IP アドレス・DNS・HTTP/HTTPS・IoT 通信まで体系的に確認。

一いち問もん一いっ答とう

企業と法務 一問一答

IT パスポート試験のストラテジ系の基礎「企業と法務」から 20 問を厳選。経営組織・OR/IE・会計財務・知的財産権・労働関連法規まで体系的に確認。

一いち問もん一いっ答とう

経営戦略 一問一答

IT パスポート試験の頻出分野「経営戦略」から 20 問を厳選。経営分析フレームワーク・マーケティング・経営管理システム・技術戦略・ビジネスインダストリまで体系的に確認。

一いち問もん一いっ答とう

システム戦略と企画 一問一答

IT パスポート試験のストラテジ系「システム戦略と企画」から 20 問を厳選。情報システム戦略・業務プロセス改革・クラウドサービス・システム企画調達まで体系的に確認。

一いち問もん一いっ答とう

開発技術 一問一答

IT パスポート試験のマネジメント系「開発技術」から 20 問を厳選。開発プロセス・設計・テスト手法・アジャイル/スクラム・構成管理・UX デザインまで体系的に確認。

一いち問もん一いっ答とう

プロジェクトマネジメント 一問一答

IT パスポート試験のマネジメント系「プロジェクトマネジメント」から 20 問を厳選。PMBOK の 10 知識エリア・WBS・スケジュール管理・コスト見積り・リスク管理まで体系的に確認。

一いち問もん一いっ答とう

サービスマネジメントとシステム監査 一問一答

IT パスポート試験のマネジメント系「サービスマネジメントとシステム監査」から 20 問を厳選。ITIL・SLA/SLM・主要プロセス・サービスデスク・J-SOX・COSO まで体系的に確認。

一いち問もん一いっ答とう

基礎理論 一問一答

IT パスポート試験のテクノロジ系「基礎理論」から 20 問を厳選。2 進数変換・AND/OR/XOR・確率計算・文字コード・誤差・機械学習 3 分類まで確認。

一いち問もん一いっ答とう

アルゴリズムとプログラミング 一問一答

IT パスポート試験のテクノロジ系「アルゴリズムとプログラミング」から 20 問を厳選。配列/リスト/スタック/キュー/木/ハッシュ・探索/整列・計算量・HTML/JSON まで確認。

一いち問もん一いっ答とう

ソフトウェア 一問一答

IT パスポート試験のテクノロジ系「ソフトウェア」から 20 問を厳選。OS 機能・プロセス/スレッド・圧縮形式・表計算関数・OSS ライセンスまで確認。

一いち問もん一いっ答とう

情報デザインとメディア 一問一答

IT パスポート試験のテクノロジ系「情報デザインとメディア」から 20 問を厳選。LATCH・UX・アクセシビリティ・RGB/CMYK・JPEG/PNG・MPEG・VR/AR まで確認。

問もん題だい集しゅう

IT パスポート 本試験形式 100 問

IT パスポート試験の全 14 章から出題する本試験準拠の総合問題集 100 問。ストラテジ 32 / マネジメント 18 / テクノロジ 50 の分野別配分・120 分で、実試験と同じスケールの実戦演習が可能。