顧客名を別々の表で管理すると、住所変更を一方にしか反映できず、古い宛先へ発送してしまうことがあります。
複数の記録を関係づけ、一貫した条件で検索や更新を行うために使う仕組みがデータベースです。
その操作や保存を管理するソフトウェアを、データベース管理システム(DBMS)と呼びます。

記録どうしの関係を決める

リレーショナルデータベースでは、データを表に整理します。
たとえば顧客の表と注文の表を分け、顧客IDによって注文者と顧客の情報を対応させます。
顧客名の文字列だけで結びつけると、同姓同名や表記変更で対応を誤る可能性があります。

設計では、何を一つの記録として扱うかを決めます。
注文全体と、注文内の商品ごとの明細は、記録の単位が異なります。
単位を混ぜて集計すると、明細の数だけ注文金額を重複して足す、といった問題が起きます。

更新の途中を見せない

仮に、倉庫Aから倉庫Bへ在庫を移すとします。
Aの数量だけ減り、Bの数量を増やす前に処理が止まると、記録上は在庫が消えます。
関連する更新を一まとまりのトランザクションとして実行し、完了させるか、取り消すかを管理します。

さらに、同じ記録を複数の利用者が同時に変更する条件も考えます。
処理をまとめただけで、あらゆる競合が自動的に防げるわけではありません。
制約や分離レベルなど、利用するDBMSの仕組みに合わせて整合性を設計します。

製品開発での選び方

データベースには、文書やグラフなど、表以外の形を中心に扱うものもあります。
記録の関係、検索の仕方、更新頻度、必要な応答時間、運用の技能に応じて選びます。
将来の大量データを想像するだけで、複雑な構成を先に選ぶ必要はありません。

復元できるバックアップ、アクセス権、削除の条件も製品の運用に含めます。
画面で記録が見えることに加え、誤更新や停止から回復できるかを確かめます。
保存する内容の定義についてはデータ、規模による処理の違いはビッグデータも参照してください。

参考資料