Considera un tutorial comune per linguaggi di programmazione orientati agli oggetti come C ++ o Java: crea un semplice sistema di elaborazione degli ordini con oggetti che rappresentano account, ordini, articoli ecc. (o qualcosa di più o meno equivalente). Ha un senso intuitivo perfetto, ma l'elefante al tavolo da pranzo è che non è reale perché questi sono oggetti in memoria; in un sistema reale, i conti, gli ordini ecc in realtà non vivono in memoria in primo luogo, vivono in un database, con la rappresentazione della memoria solo un suo mirror di breve durata.
Potresti scrivere tu stesso un sacco di codice per leggere e scrivere dal database, ma è talmente noioso e soggetto a errori che nessuno in realtà lo fa.
Tutti finiscono per usare un ORM, ma sono talmente problematici che un famoso documento li chiama "il Vietnam della nostra industria".
Non penso che sia una discrepanza tra oggetto e relazionale tanto quanto una mancata corrispondenza tra il linguaggio di programmazione e il database essendo cose separate che non si conoscono l'un l'altro . Congettura: la soluzione è quella di avere un'unica lingua che sia il linguaggio di programmazione e di interrogazione del database, che a sua volta richiederebbe che il runtime della lingua sia anche il database e che il compilatore JIT sia anche Query Optimizer.
Quindi questo è il riassunto dei problemi che vedo. La mia domanda è, qualcuno ha ancora entrambi,
-
Realmente costruito come un sistema unificato
-
Ho provato ma non sono riuscito a creare un sistema così unificato
-
Scritto qualcosa di sostanziale sull'argomento di come si andrebbe a costruire tale, o perché o perché no
-
Trova un modo alternativo per risolvere il problema?