作为软件开发人员,我从事过从小型自制应用程序到中型企业应用程序的项目。在几乎每个项目中,我都使用一个数据库,或者后悔从一开始就选择不使用它。
现在,我想知道有关数据库及其在一般应用程序中的用法的一些信息:
- 为什么Windows本身不使用任何“中央” SQL数据库?例如:
- 错误报告数据存储在许多文件中,
- Windows Update将所有内容存储在平面文件中,
- 图标缓存存储在一个非常奇怪的单个文件中,该文件似乎无法通过SQL等访问。
- 为什么这么多大型应用程序避免使用数据库?例如,Microsoft Outlook不会通过使用真实的数据库而不是通过使用自己的.pst文件格式并将某些数据存储在注册表中来重新发明轮子而获益吗?
如果数据库增加了总体复杂性和微小的性能损失,那么在大多数情况下,使代码变得更简单,这是巨大优势的代价,尤其是在存储小的组织化数据块而不是大型二进制数据时流。那么,为什么这么少的产品实际使用数据库呢?我知道的唯一实际使用Sqlite数据库的应用程序是Firefox,也许是Microsoft Exchange(但最后一个不是桌面应用程序)?
此外,拥有统一的SQL数据库,使部署应用程序,更新/升级数据,在这些应用程序之间共享数据,进行备份变得更加容易,Microsoft Office或Microsoft Expression等应用程序集也不会受益。等等?