Come sviluppatore di software, ho lavorato su progetti che vanno dalle piccole app fatte in casa alle applicazioni aziendali di medie dimensioni. In quasi tutti i progetti ho usato un database o mi sono pentito di non averlo usato fin dall'inizio.
Ora, mi chiedo alcune cose sui database e sul loro utilizzo in applicazioni generali:
- Perché Windows stesso non utilizza alcun database SQL "centrale"? Per esempio:
- I dati relativi alla segnalazione degli errori sono memorizzati in un mucchio di file,
- Windows Update archivia tutto in file flat,
- La cache delle icone è memorizzata in un singolo file molto strano a cui non sembra accedere tramite SQL, ecc.
- Perché così tante applicazioni di grandi dimensioni evitano di usare database? Ad esempio, Microsoft Outlook non guadagnerebbe utilizzando un vero database invece di reinventare la ruota avendo il proprio formato per i file .pst e archiviando alcuni dati nel registro?
Se il database aggiunge un ulteriore livello di una complessità complessiva e una piccola perdita di prestazioni, è un prezzo di un enorme vantaggio di semplificare il codice nella maggior parte dei casi, soprattutto quando si tratta di archiviare piccoli blocchi di dati organizzati anziché grandi binari flussi. Allora perché così pochi prodotti utilizzano effettivamente i database? Probabilmente l'unica applicazione che conosco che utilizza effettivamente il database Sqlite è Firefox e forse Microsoft Exchange (ma l'ultima non è un'applicazione desktop)?
Inoltre, un insieme di applicazioni, come Microsoft Office o Microsoft Expression, non trarrebbe vantaggio dall'avere un database SQL unificato , rendendo più semplice la distribuzione delle applicazioni, l'aggiornamento / l'aggiornamento dei dati, la condivisione dei dati tra tali applicazioni, per eseguire i backup , eccetera.?