Per i sistemi semplicistici, con esigenze di archiviazione dei dati molto semplici, ho spesso utilizzato un livello dati personalizzato che persisteva in XML. Tuttavia, per rispondere correttamente alla tua domanda, dovremo esaminarla dal punto di vista della maggior parte delle grandi aziende.
Why are we even keeping SQL and a SQL database as the back-end?
Una delle migliori risposte che posso darti è che i database tendono a sopravvivere ai sistemi che li utilizzano di gran lunga. I dati aziendali hanno un significato molto tempo dopo che la tecnologia del front-end è diventata obsoleta. Il codice di refactoring o riscrittura (un'attività non presa alla leggera quando si tratta di sistemi di grandi dimensioni) è molto più semplice del refactoring o della riprogettazione di un database. Oltre a non disporre degli strumenti e delle tecniche necessarie (TDD / refactoring automatico, ecc.), Quando si lavora con dati esistenti, ci sono molti altri fattori da considerare, come il tempo di inattività (cambiare le cose in un DB da 20 TB richiede un po 'di tempo ).
Inoltre - SQL, è un ottimo 4GL per l'accesso ai dati. Estrae gran parte della complessità e consente comunque prestazioni eccellenti (quando le cose sono fatte correttamente).
Why doesn't the ORM just persist objects to XML or a binary file(s)? Why bother with all the overheads and difficulties of administering a database server?
Se pensi a quello che stai dicendo per un minuto, ti renderai conto che stai descrivendo di nuovo un server di database. L'utilizzo effettivo dei database del meccanismo di archiviazione è un file binario altamente ottimizzato. Se non si utilizza un server DB, si finisce per reinventare gli indici e quindi reinventare le transazioni atomiche. Inoltre, se pensi che amministrare un DB sia un problema, probabilmente non hai provato ad amministrare milioni di file XML disparati.
Is this the way of the future?
Il mondo DB cambierà sicuramente molto nei prossimi anni, con "NoSQL" che mostra molti vantaggi. Tuttavia, la necessità di un modo maturo, affidabile per archiviare, recuperare e manipolare i dati non va da nessuna parte.