En tant que développeur de logiciels, j'ai travaillé sur des projets allant de minuscules applications maison aux applications d'entreprise de taille moyenne. Dans presque tous les projets, j'ai utilisé une base de données ou j'ai regretté d'avoir choisi de ne pas l'utiliser depuis le début.
Maintenant, je me pose quelques questions sur les bases de données et leur utilisation dans les applications générales:
- Pourquoi Windows lui-même n'utilise aucune base de données SQL "centrale"? Par exemple:
- Les données de rapport d'erreurs sont stockées dans un tas de fichiers,
- Windows Update stocke tout dans des fichiers plats,
- Le cache des icônes est stocké dans un fichier unique très étrange qui ne semble pas être accessible via SQL, etc.
- Pourquoi tant de grandes applications évitent d'utiliser des bases de données? Par exemple, Microsoft Outlook ne gagnerait-il pas à utiliser une vraie base de données au lieu de réinventer la roue en ayant son propre format pour les fichiers .pst et en stockant certaines données dans le registre?
Si la base de données ajoute une couche supplémentaire d'une complexité globale et d'une perte de performances minime, c'est un énorme avantage de simplifier le code dans la plupart des circonstances, surtout quand il s'agit de stocker de petits morceaux de données organisés au lieu de gros binaires ruisseaux. Alors pourquoi si peu de produits utilisent réellement des bases de données? La seule application que je connaisse qui utilise réellement la base de données Sqlite est probablement Firefox, et peut-être Microsoft Exchange (mais la dernière n'est pas une application de bureau)?
De plus, un ensemble d'applications, comme Microsoft Office ou Microsoft Expression, ne bénéficierait-il pas d'une base de données SQL unifiée , facilitant le déploiement des applications, la mise à jour / mise à niveau des données, le partage de données entre ces applications, la réalisation de sauvegardes , etc.?