Quelles sont les principales raisons ( à part "l'indépendance de la base de données" ) pour lesquelles la plupart des projets informatiques semblent aujourd'hui ignorer la richesse des fonctionnalités qui existent dans les moteurs de base de données modernes tels qu'Oracle 11g et SQL Server 2008?
Ou, pour emprunter le blog de la Déclaration d'Helsinki qui le présente ainsi:
Au cours des vingt dernières années, nous observons que les fonctionnalités (caractéristiques) qui nous sont disponibles dans le SGBD, ont augmenté de façon exponentielle. Ces fonctionnalités nous ont permis de créer des applications de base de données. C'est ce que nous avons tous commencé à faire dans les années 90 en plein essor.
Mais alors à l'aube du nouveau millénaire, quelque chose s'est produit. Et ce quelque chose a rendu mystérieusement insignifiant le rôle du SGBD dans un projet d'application de base de données. (...) A partir du nouveau millénaire, nous poussons toute la logique applicative du SGBD vers des serveurs de niveau intermédiaire. La fonctionnalité des éléments implémentés en dehors du SGBD a explosé, et le SGBD riche en fonctionnalités est à peine utilisé pour autre chose que le stockage en ligne.
Nous parlons de trucs comme
- Procédures stockées utilisées comme API de données (pour la sécurité et pour éviter un trafic réseau excessif)
- Vues matérialisées
- Déclencheurs au lieu de
- Requêtes hiérarchiques (connexion par)
- Géographie (types de données spatiales)
- Analytics (lead, lag, rollup, cube, etc.)
- Base de données privée virtuelle (VPD)
- Audit au niveau de la base de données
- Requêtes Flashback
- Génération XML et transformation XSL dans la base de données
- Appels HTTP de la base de données
- Planificateur de travaux en arrière-plan
Pourquoi ces fonctionnalités ne sont-elles pas utilisées? Pourquoi la plupart des développeurs Java, .NET et PHP s'en tiennent-ils à l'approche "SELECT * FROM mytable"?