C'est ici que la rencontre des esprits, c'est-à-dire des esprits des développeurs et des administrateurs de bases de données, doit inévitablement se produire. L'utilisation de Business Logic (BL) et le stockage de ce type dans une base de données peuvent avoir un impact qui peut glorifier ou horrifier sa mise en œuvre.
Pour certains produits de SGBDR, il existe des bibliothèques / outils / API de qualité supérieure pour la logique d'entreprise et les infrastructures d'objet que l'on pourrait rapidement apprendre et utiliser dans leurs applications. Pour les autres SGBDR, il n’existe pas de bibliothèques / outils / API.
Auparavant, les applications client / serveur établissaient le pont en BL via les procédures stockées (SP). Pour des produits tels qu'Oracle et SQL Server, cela a été fait tôt. Lorsque des bases de données open source telles que PostgreSQL et MySQL ont été créées, ceux qui les utilisaient risquaient d'innover avec les procédures stockées dans BL. PostgreSQL a mûri très rapidement dans ce domaine, car non seulement des procédures stockées ont été mises en œuvre, mais également la possibilité de créer des langages client. MySQL a pratiquement cessé d'évoluer dans le monde des procédures stockées et est apparu sous la forme d'un langage simplifié avec de nombreuses restrictions. Ainsi, quand il s'agit de BL, vous êtes complètement à la merci de MySQL et de son langage de procédure stockée.
Il ne reste en réalité qu'une seule question: quel que soit le SGBDR, le BL doit-il résider en tout ou en partie dans la base de données?
Pensez au développeur. Lorsque les choses tournent mal dans une application, le processus de débogage oblige le développeur à entrer et à sortir d'une base de données pour suivre les modifications de données qui peuvent ou non être correctes par intermittence. C'est comme coder une application C ++ et appeler du code Assembler au milieu. Vous devez basculer du code source, des classes et des structures vers des interruptions, des registres et des décalages AND BACK !!! Cette prise de débogage à ce même niveau.
Les développeurs peuvent peut-être concevoir une méthode d’exécution à grande vitesse de BL en conjonction avec des configurations de langage (drapeaux de compilation pour C ++, différents paramètres pour PHP / Python, etc.) via des objets métier conservés en mémoire plutôt que dans une base de données. Certains ont essayé de relier cette idéologie pour un code d'exécution plus rapide dans la base de données en écrivant des bibliothèques dans lesquelles le débogage des procédures stockées et des déclencheurs est bien intégré à la base de données et apparemment utilisable.
Ainsi, le développeur est mis au défi de développer, de déboguer et de maintenir le code source et le BL dans deux langues.
Maintenant, pensez à la DBA. L'administrateur de base de données souhaite que la base de données reste la plus légère possible dans les procédures stockées. L'administrateur de base de données peut voir dans BL un élément externe à la base de données. Pourtant, lorsque SQL appelle les données nécessaires pour BL, le SQL doit être simple et efficace.
Maintenant, pour la rencontre des esprits !!!
Le développeur code les SP et utilise les méthodes iteractive. DBA regarde le SP. DBA détermine qu'une seule instruction SQL peut remplacer les méthodes iteractive écrites par le développeur. Le développeur voit que l'instruction SQL suggérée par le DBA nécessite l'appel d'un autre code lié au BL ou à un SQL qui ne suit pas les plans d'exécution normaux de l'instruction SQL.
À la lumière de cela, la configuration, le réglage des performances et le codage SP deviennent une fonction de la profondeur et de l'intensité des données de BL pour la récupération des données. Plus le BL est profond et approfondi, plus il doit y avoir de développeurs et d'administrateurs de base de données sur la même page en ce qui concerne la quantité de données et la puissance de traitement attribuées à la base de données.
CONCLUSION
Le mode de récupération des données doit toujours impliquer les camps de développeur et de DBA. Des concessions doivent toujours être faites quant aux méthodes de codage et aux paradigmes d'extraction de données qui peuvent fonctionner ensemble, pour une vitesse et une efficacité optimales. Si la préparation des données à manipuler par le code source n’est effectuée qu’une fois avant que le code n’obtienne les données, le DBA doit dicter l’utilisation du code SQL simplifié et moyen. Si le BL est quelque chose avec lequel le DBA n'est pas en accord, les rênes sont alors entre les mains du développeur. C'est pourquoi l'administrateur de base de données doit se voir et faire partie de l'équipe de projet et non pas une île pour lui-même, tandis que le développeur doit laisser à l'administrateur de base de données le soin de peaufiner le code SQL s'il le justifie.