Als Softwareentwickler habe ich an Projekten gearbeitet, die von winzigen selbstgemachten Apps bis zu mittelständischen Unternehmensanwendungen reichen. In fast jedem Projekt habe ich eine Datenbank verwendet oder es bereut, sie nicht von Anfang an verwendet zu haben.
Jetzt überlege ich mir ein paar Dinge über die Datenbanken und ihre Verwendung in allgemeinen Anwendungen:
- Warum verwendet Windows selbst keine "zentrale" SQL-Datenbank? Beispielsweise:
- Fehlerberichtsdaten werden in einer Reihe von Dateien gespeichert.
- Windows Update speichert alles in Flat Files,
- Der Icons-Cache wird in einer sehr seltsamen einzelnen Datei gespeichert, auf die anscheinend nicht über SQL usw. zugegriffen werden kann.
- Warum vermeiden so viele große Anwendungen die Verwendung von Datenbanken? Wäre es für Microsoft Outlook beispielsweise nicht vorteilhaft, eine echte Datenbank zu verwenden, anstatt das Rad neu zu erfinden, indem ein eigenes Format für PST-Dateien verwendet und einige Daten in der Registrierung gespeichert werden?
Wenn die Datenbank eine zusätzliche Ebene mit einer Gesamtkomplexität und einem geringfügigen Leistungsverlust hinzufügt, ist dies der Preis für den enormen Vorteil, den Code in den meisten Fällen zu vereinfachen, insbesondere wenn es um die Speicherung kleiner organisierter Datenblöcke anstelle großer Binärdateien geht Streams. Warum verwenden so wenige Produkte tatsächlich Datenbanken? Wahrscheinlich ist die einzige mir bekannte Anwendung, die Sqlite-Datenbank verwendet, Firefox und möglicherweise Microsoft Exchange (aber die letzte ist keine Desktop-Anwendung)?
Außerdem würde das nicht eine Reihe von Anwendungen, wie Microsoft Office oder Microsoft Expression, profitiert von einer mit Unified SQL - Datenbank , so dass es einfacher , die Anwendungen bereitstellen, um Update / Upgrade der Daten, um Daten auszutauschen zwischen diesen Anwendungen machen Backups , etc.?