イチから全部作ってみよう(27)「ACID」で示されるデータベースの4つの特性:山浦恒央の“くみこみ”な話(196)(3/3 ページ)
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第27回は、データ設計の基盤となる「データベース」の4つの基本特性について取り上げる。
4.5 ノートが見当たらない……(永続性)
お客が商品を購入した直後に、商品管理ノートが見当たらなくなった場合を想定してください(超レアケースですが)。在庫数が把握できません。
これに対して、データベースでは、更新が確定したデータは、確実に保存できる仕組みが備わっています。例えば、データをディスクに書き込む前に、専用のログにも記録するというものです。そのため、サーバが突然停止したり、電源が落ちたりしても、復旧処理によって最後に確定した状態を正しく再現できます。
商取引において「データが消えない」ことは、必要最低限の重要事項です。特に現代のITシステムは、障害時にデータが失われると、多方面に影響が及ぶことは確実ですね。そのため、データの消失を防ぐ仕組みは必須であり、データベースではこれを標準で備えています。この特性をDurability(永続性)といいます。
5.まとめ
データベースの4つの基本特性であるACIDについて下記に簡単にまとめます。
Atomicity(原子性)
1つの処理単位は、全体が「全て成功(データが正しく更新される)」または「全て失敗(元のまま)」のいずれかになる。途中まで更新される中途半端な状態を残さない。
Consistency(一貫性)
処理の実行前後で、データが常に整合性ルールを満たしている。
Isolation(独立性)
複数の処理を同時に並列に実行しても、それぞれが互いの影響を受けず、あたかも直列的に順序通りに1つずつ実行したかのように見える。
Durability(永続性)
一度確定した変更は、障害が発生しても、システムが停止しても失われない。
6.終わりに
今回は、データ設計の続きとして、データベースを使用するメリットについて説明しました。データ設計を行うときに、データベースの基礎知識を知っておくとデータのイメージを描きやすくなります。一歩ずつ覚えていきましょう。
山浦先生執筆の書籍が販売中です!
本連載で取り上げた「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。
前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。
両書とも興味のある方は、Amazon.comや書店でチェックしてください!
人間環境大学 環境情報学科 教授(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「山浦恒央の“くみこみ”な話」バックナンバー
イチから全部作ってみよう(26)プログラムは「処理」と「データ」からできている
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第26回は、プログラムを構成する2大要素である「処理」と「データ」のうち、データの設計をどのように行うかについて説明する。
イチから全部作ってみよう(25)脳内シミュレーションを駆使し画面設計書を完成させる
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第25回は、前回作成したECサイトのトップページに続き、カート画面、顧客情報&支払情報入力画面、購入確認画面、購入完了画面画面設計書の画面設計書を作成する。
イチから全部作ってみよう(24)設計フェーズの入り口「画面設計書」は紙芝居!?
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第24回からは設計フェーズに入る。基本設計書と詳細設計書の例を示した後、ECサイトを事例にして設計フェーズの入り口に当たる「画面設計書」を作成する手順を紹介する。
イチから全部作ってみよう(23)業務フロー図があれば“伏魔殿”も理解可能に
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第23回は、円滑なソフトウェア開発に向けて発注側と開発側が相互に歩み寄るために生まれた業務フロー図について説明する。
イチから全部作ってみよう(22)シーケンス図によるモデリングで全体像を把握する
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第22回は、シーケンス図を使用したモデリングによってECサイトの登場人物と処理の流れを示し、開発対象を洗い出す工程について説明する。

