ルールが存在しない無秩序なデータベースの場合は、どうなるか考えます(表3、表4)。
| 商品ID | 商品名 | 価格 |
|---|---|---|
| 1005 | シャトー・マルゴー | −3000 |
| 表3 価格が負となっている | ||
| 商品ID | 商品名 | 価格 |
|---|---|---|
| 1005 | シャトー・マルゴー | 15000 |
| 1005 | ミラヴァル | 8000 |
| 表4 IDが重複している | ||
表3、表4に示すように、例えば、重複したIDがあって、負の値の価格がある商品があったとします。この場合、「ID:1005」の商品が、シャトー・マルゴーかミラヴァルのどちらのワインか特定できませんし、価格が負なので金額計算が適切に行えません。よって、データベースは、ルールに従ってデータを蓄積する必要があるのです。
会社を作る場合、「原材料購入部門」「加工部門」「販売部門」「営業部門」「経理部門」のように、既に基本的な部署が作ってあって、作業の流れやルールも決まっている「枠組み」や「テンプレート」があると、非常に便利ですね。ここに自分の会社の独自の部分を組み込めばいいのです。これが、データベースを使う大きな利点です。
でも、「新たにデータベースを覚えるのは大変そう。難しそうだし、勉強したくない」と思っている読者の方もいるかもしれませんね。極論をいうと、データベースを使用しなくてもECサイトは作成できます。例えば、データをただのテキストファイルに保存して管理すればいいからです。ある種の「自作データベース」ですね。これは、ゼロから自分で会社を作るようなもので、部や課を作り、そこでどんな作業をするかを定め、どのようにチェックするかも決めねばなりません。この方法では大きな問題が発生します。
例えば、在庫1本の商品を2人の顧客がほぼ同時に購入ボタンを押したケースを想像してください(図1)。
図1に示すように、顧客Aと顧客Bが同時にシャトー・マルゴーを購入しようとしたとします。このとき、対策をしないと2つの注文が同時に成立する可能性がありますね。この問題を解決するには、片方を処理している間、もう一人を待たせる仕組みや、データ書き込み途中で失敗したときに元に戻す仕組みを自作しないといけません。
こんな「異常事態(発生する確率は低くない)」も考えて「自作データベース」を作成しようとすると、考慮することが多く、しかも複雑になります。つまり、データベースが考慮することまで考えないといけないため、非常に大きな負担を抱えます。
データベースでは、既存のファイルシステムとは異なるデータの管理方法を持っています。以下に、2つの違いを解説します。
Windowsなどの一般的なOSのファイルシステムは、ツリー構造を使用して管理します(図2)。
図2に示す通り、Windowsでは、Cドライブをトップ階層として、枝葉のように分かれる形でデータを管理しますね。
ツリー構造は、人間が目で見てファイルを探すことには適していますが、フォルダが違えばデータは「別物」となります。そのため、それぞれのフォルダで独立したファイルとして管理するため、1カ所を修正しても他のファイルには反映されません。
Copyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク