Considérez un didacticiel commun pour les langages de programmation orientés objet comme C ++ ou Java: créez un système de traitement des commandes simple avec des objets représentant des comptes, des commandes, des articles, etc. (ou quelque chose de plus ou moins équivalent). Cela a un sens intuitif parfait, mais l'éléphant à la table à manger est que ce n'est pas réel car ce sont des objets en mémoire; dans un système réel, les comptes, les ordres, etc. ne vivent pas réellement en mémoire en premier lieu, ils vivent dans une base de données, avec la représentation en mémoire seulement un miroir éphémère de celle-ci.
Vous pouvez écrire vous-même beaucoup de code pour lire et écrire à partir de la base de données, mais c'est tellement fastidieux et sujet aux erreurs que personne ne le fait réellement.
Tout le monde finit par utiliser un ORM, mais ceux-ci sont si problématiques en soi qu'un célèbre journal les appelle «le Vietnam de notre industrie».
Je ne pense pas que ce soit un décalage entre objet et relationnel autant qu'un décalage entre le langage de programmation et la base de données étant des choses distinctes qui ne se connaissent pas . Conjecture: la solution est d'avoir un seul langage qui soit à la fois le langage de programmation et de requête de base de données, ce qui nécessiterait à son tour que le runtime du langage soit également la base de données, et le compilateur JIT soit également l'optimiseur de requête.
Voilà donc le résumé des problèmes que je vois. Ma question est, a encore quelqu'un non plus,
En fait construit un tel système unifié
A essayé mais n'a pas réussi à construire un tel système unifié
A écrit quelque chose de substantiel sur le sujet de la façon dont vous vous y prendriez, ou pourquoi ou pourquoi pas
Trouvez une autre façon de résoudre le problème?