Come sviluppatore di software, ho lavorato su progetti che vanno da piccole app fatte in casa a applicazioni aziendali di medie dimensioni. In quasi tutti i progetti ho utilizzato un database o mi sono pentito di aver scelto di non usarlo dall'inizio.
Ora mi sto chiedendo alcune cose sui database e il loro utilizzo in applicazioni generali:
- Perché Windows stesso non utilizza alcun database SQL "centrale"? Per esempio:
- Errori I dati di report sono archiviati in un gruppo di file,
- Windows Update archivia tutto in file flat,
- La cache delle icone è memorizzata in un singolo file molto strano a cui non sembra possibile accedere tramite SQL, ecc.
- Perché così tante grandi applicazioni evitano l'uso di database? Ad esempio, Microsoft Outlook non otterrebbe utilizzando un database reale invece di reinventare la ruota avendo il proprio formato per i file .pst e memorizzando alcuni dati nel registro?
Se il database aggiunge un ulteriore livello di complessità complessiva e una piccola perdita di prestazioni, è il prezzo di un enorme vantaggio di rendere il codice più semplice nella maggior parte delle circostanze, specialmente quando si tratta di archiviare piccoli blocchi di dati organizzati di grandi flussi binari. Quindi, perché così pochi prodotti stanno effettivamente utilizzando i database? Probabilmente l'unica applicazione che conosco che effettivamente utilizza il database Sqlite è Firefox, e forse Microsoft Exchange (ma l'ultima non è un'applicazione desktop)?
Inoltre, non un set di applicazioni, come Microsoft Office o Microsoft Expression, beneficiano di un database SQL unificato , rendendo più facile la distribuzione delle applicazioni, aggiornare / aggiornare i dati, condividere i dati tra queste applicazioni, effettuare backup, ecc.?