ソフトウェア開発者として、私は小さな自家製アプリから中規模のエンタープライズアプリケーションに至るまでのプロジェクトに取り組んできました。ほとんどすべてのプロジェクトで、データベースを使用したか、最初から使用しないことを選択したことを後悔しました。
今、私はデータベースと一般的なアプリケーションでのそれらの使用についていくつかのことを疑問に思っています:
- Windows自体が「中央」のSQLデータベースを使用しないのはなぜですか?例えば:
- エラー報告データは多数のファイルに保存されますが、
- Windows Updateはすべてをフラットファイルに保存しますが、
- アイコンキャッシュは、SQLなどを介してアクセスされていないように見える非常に奇妙な単一のファイルに格納されます。
- 多くの大規模なアプリケーションがデータベースの使用を避けるのはなぜですか?たとえば、Microsoft Outlookは、.pstファイル用の独自の形式を持ち、レジストリにデータを保存することにより、車輪を再発明する代わりに、実際のデータベースを使用することで得られませんか?
データベースが全体的な複雑さとわずかなパフォーマンス損失の追加レイヤーを追加する場合、ほとんどの場合、特に大きなバイナリではなく小さな組織化されたデータチャンクのストレージに関して、コードを単純化するという大きな利点の代価ですストリーム。では、実際にデータベースを実際に使用している製品が非常に少ないのはなぜですか?おそらく、実際にSqliteデータベースを使用するアプリケーションは、FirefoxとMicrosoft Exchangeだけでしょう(ただし、最後のアプリケーションはデスクトップアプリケーションではありません)。
また、Microsoft OfficeやMicrosoft Expressionなどの一連のアプリケーションは、統合されたSQLデータベースを持ち、アプリケーションの展開、データの更新/アップグレード、それらのアプリケーション間でのデータの共有、バックアップの作成を容易にすることから恩恵を受けませんなど。