データベースの整合性とは:関係性に”矛盾が無い”状態|データ分析用語を解説

AUTHOR :   ギックス

本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)

データベースのテーブルの関係を理解して、データを整理整頓する

データベース内の関係性のあるデータを取得、または、更新する場合、テーブル同士の整合性が重要です。整合性の重要さについて記載します。(参考:データベースのテーブルとは)

データベースの整合性とは

「整合性」という言葉をインターネット等で調べたとき、「矛盾がなく整っている」といった内容が見つかります。データベースにとって「矛盾がなく整っている」とは、「テーブル同士の関係性が整っている」ことを意味します。

整合性とはどのような状態か?

例えば、会員カードを保有する小売業の場合、日々の売上情報として、購入された商品の個数、金額、そして、購入者の会員版などの情報が業務データとしてデータベースに蓄積されます。この商店で高額利用者にダイレクトメールを送信しようとしたとき、売上情報から高額利用者の会員番号の特定は行えても、個人情報が分からないため、メール発送は行えません。なぜなら、売上情報は、レジから入力する情報のため、会員番号は分かっても、会員番号と紐づく個人情報までは分からないためです。
売上情報の会員番号から個人情報を取得できるようにするためには、「会員番号ごとに個人情報を持った全会員情報」をデータベースに保有します。この時、売上情報と全会員情報の関係性は下記になります。
・売上情報の全ての会員番号は、全会員情報に登録されている
・売上情報の1つの会員番号から、1つの全会員情報の個人情報が取得できる
このように、データが整理された状態を「整合性が取れている」状態と言えます。

データベースの整合性を保つためには

データ受領する時は、同時点の関係するデータも1度に受領する

ある期間の売上情報を受領し、解析する場合、期間の最終時点での最新の付随するデータとして、会員番号に紐づく全会員情報、商品番号に紐づく全商品情報などを一緒に受領する必要があります。過去に受領した全会員情報が残っていた場合でも、直近に入会した会員の情報は存在しないため、解析が正しく行えません。

データ更新を行う場合は、データベースのトランザクション処理を行う

データベースのトランザクション処理は、複数のテーブルの更新時、片方のテーブル更新が失敗した場合、全てのテーブルを更新前の状態に戻せる機能です。売上情報、全会員情報の双方の会員番号を同時に変更する場合、両方1度に更新する必要があり、もし、更新に失敗した場合、変更を戻せないと整合性は保てません。詳しい、トランザクション処理の解説については、こちらをご参照ください。

テーブルの設計書を常に最新にする

データベースの整合性を保つためには、データベースに携わる担当者全員がテーブルの関係性を知る必要があり、設計書が必要になります。設計書には、テーブル自体の仕様を示したテーブル設計書、テーブル同士の関係性を示したER図などがあります。そして、設計書の品質が、規模の大きなプロジェクトにとって、成果物の品質を左右します。
データ分析用語:索引

SERVICE