Brevet FR3095706A1 — publié le 20201106

Description Titre de l'invention : CALCUL D'AGRÉGATION AGNOSTIQUE DE MODÈLE DE JONCTION DANS DES OPÉRATIONS DE REQUÊTE DE BASE DE DONNÉES Domaine technique 100011 La présente invention concerne le domaine des opérations de requête de hases de données et plus particulièrement l'exécution d'une fonction d'agrégation sur des données dans une ou plusieurs tables d'une hase de données. Technique antérieure [0002] En science des données, une requête de base de données peut être soit une requête de sélection, soit une requête d'action. Une requête de sélection est une requête de récupération de données, tandis qu'une requête d'action demande des opérations supplémentaires sur les données, telles que l'insertion, la mise à jour ou la suppression. En règle générale, la requête de sélection fonctionne sur un champ d'une table. À cet égard, une table est la composante fondamentale d'une base de données. Dans une base de données, chaque table comprend zéro ligne ou plus et une colonne ou plus. Une base de données relationnelle, en tant qu'espèce d'une base de données numérique générale, comprend un ensemble de tables formellement décrites à partir desquelles les données peuvent être consultées ou rassemblées de nombreuses façons différentes sans avoir à réorganiser les tables de la base de données. À cette fin, dans une table de base de données relationnelle, chaque ligne peut être identifiée de façon unique par une clé primaire qui peut inclure un ou plusieurs ensembles de valeurs de colonnes. Dans la plupart des scénarios, la clé primaire est une seule colonne d'une table correspondante. [0003] L'utilisateur standard et l'interface de programmation d'application (API) d'une base de données relationnelle est le langage de requête structuré (SQL - acronyme de l'anglais Structured Query Language). Les instructions SQL sont utilisées à la fois pour les requêtes interactives d'informations provenant d'une base de données relationnelle et pour la collecte de données pour des rapports. En SQL, l'équivalent de la requête de sélection est l'instruction de requête SELECT avec une clause WHERE permettant de récupérer des enregistrements d'une relation, limitant les résultats à ceux qui répondent à un critère spécifique. Notamment, la requête de sélection dans la production d'un ensemble de résultats d'enregistrements peut être suivie d'une fonction de calcul, à savoir unc fonction d'agrégation fonctionnant sur l'ensemble de résultats. Une fonction d'agrégation typique inclut l'opération SQL SUMO qui additionne les valeurs numériques d'une colonne spécifiée de l'ensemble de résultats, ou l'opération SQL COUNT() qui fournit un comptage du nombre d'enregistrements dans l'ensemble 2 de résultats. [0004] Lorsqu'elle est exécutée sur une seule table dans une hase de données, une fonction d'agrégation nécessite peu de gestion. Il suffit de sélectionner la colonne appropriée de la table pour l'agrégation et de spécifier que la fonction d'agrégation précise est suffisante pour obtenir un résultat exact. Cependant, cela n'est pas vrai à travers une sortance de tables multiples. A cet égard, le SQL prévoit la notion de jonction de table. Une jonction de table, implémentée via l'opérateur SQL JOIN, permet de joindre ensemble les enregistrements de deux tables différentes pour produire une table composite. Différentes variantes de l'opération de jonction comprennent une jonction intérieure, une jonction gauche, une jonction droite et une jonction complète. De même, le produit d'une opération de jonction elle-même peut faire l'objet d'une autre opération de jonction par rapport à une table différente. Selon la nature de l'opération de jonction, l'ensemble de résultats typique peut inclure un même nombre de lignes que chaque table contribuant à l'opération de jonction. Mais, à l'occasion, l'inverse peut entraîner une condition de "sortance". [0005] Dans une condition de sortante, l'ensemble de résultat d'une opération de jonction inclut plus de lignes que chacune des tables contributriccs de l'opération de jonction, c'est-à-dire une relation d'un-à-plusieurs. Ainsi, les fonctions d'agrégation, telles qu'une opération de comptage ou une opération de somme, peuvent produire des résultats inexacts en raison des lignes supplémentaires de l'ensemble de résultats de l'opération de jonction. Pour combattre les conséquences néfastes des conditions de sortance, une stratégie connue consiste à diriger une opération de comptage avant et après la jonction de table pour s'assurer qu'une sortance indésirable ne s'est pas produit. Les approches plus sophistiquées mettent en oeuvre l'opérateur DISTINCT de SQL tout en s'appuyant sur une connaissance a priori du modèle d'opération de jonction produisant l'ensemble de résultats et si l'ensemble de résultats reflète ou non une relation un-à-un, une relation plusieurs-à-plusieurs, ou la relation problématique un-à-plusieurs. Mais, comme on peut le voir, en l'absence d'une connaissance a priori du modèle de l'opération de jonction, il est difficile de garantir l'exactitude du résultat d'une fonction d'agrégation effectuée sur l'ensemble de résultats d'une opération de jonction. Résumé de l'invention [0006] Les modes de réalisation de la présente invention comblent les lacunes de l'état de l'art en ce qui concerne un calcul d'agrégation dans des opérations de requête de base de données et fournissent un procédé, un système et un produit de prograrmine informatique nouveaux et non évidents pour le calcul de fonction d'agrégation agnostique de modèle de jonction dans des opérations de requête de base de données. Dans un mode de réalisation de l'invention, le procédé comprend d'abord un 3 chargement d'un document de code source dans une mémoire d'un ordinateur, par exemple, une abstraction de langage de balisage SQL. Ensuite, le document de code source est analysé pour identifier des différentes opérations de requête de base de données. Par la suite, en réponse à une identification d'une fonction d'agrégation dans l'une des différentes opérations de requête de hase de données dans laquelle des enregistrements dans des tables multiples sont joints ensemble dans une jonction de table, le procédé récupère dans la mémoire de l'ordinateur une multiplicité de clés primaires, chacune correspondant à une table différente parmi les tables multiples et également un objet de l'une des tables référencé par la fonction d'agrégation identifiée. Le procédé calcule en outre une existence d'une condition de sortance associée à la jonction de table. Enfin, à condition que la condition de sortance ne soit pas calculée, le procédé invoque une implémentation non sensible à la sortance de la fonction d'agrégation par rapport à l'objet. Mais, dans à l'inverse, à condition que la condition de sortance soit calculée, le procédé invoque une implémentation sensible à la sortance, différente, de la fonction d'agrégation par rapport à l'objet. [0007] Dans un aspect du mode de réalisation, l'implémentation non sensible à la sortance de la fonction d'agrégation est une opération SQL, par exemple SUMO, AVGO, STDDEV() ou COUNTD. En tant que telle, l'implémentation sensible à la sortance, différente, de la fonction d'agrégation extrait des valeurs uniques pour l'objet de chacune des tables multiples en utilisant une clé correspondante parmi les clés primaires et effectue ensuite l'implémentation non sensible à la sortance de la fonction d'agrégation sur les valeurs uniques extraites. Dans un autre aspect du mode de réalisation, l'existence de la condition de sortance est calculée lorsque la table sous-jacente n'a pas été jointe par une clé correspondante parmi les clés primaires. De même, une absence de la condition de sortance est calculée (ce qui signifie que la condition de sortance n'existe pas), lorsque la table sous-jacente a été jointe par la clé correspondante parmi les clés primaires. [0008] Dans un autre mode de réalisation de l'invention, un système de traitement de données de requête de base de données est configuré pour le calcul de fonction d'agrégation agnostique de modèle de jonction dans les opérations de requête de base de données. Le système comprend un système informatique hôte qui comprend un ou plusieurs ordinateurs, chacun avec mémoire et au moins un processeur. Le système comprend également un système de gestion de base de données relationnelle s'exécutant dans la mémoire de l'ordinateur et agissant sur une multiplicité de tables différentes dans une ou plusieurs bases de données stockées dans un stockage fixe couplé au système informatique hôte. Le système comprend en outre un module de calcul de fonction d'agrégation agnostique de modèle de jonction qui comprend des instructions de programme informatique s'exécutant dans la mémoire du système in- formatique hôte. [0009] À cet égard, les instructions de programme permettent pendant l'exécution dans la mémoire de l'ordinateur le chargement d'un document de code source dans la mémoire, l'analyse du document de code source pour identifier différentes opérations de requête de base de données et répondre à l'identification d'une fonction d'agrégation dans l'une des différentes opérations de requête de base de données dans laquelle des enregistrements dans des tables multiples sont jointes ensemble dans une jonction de table. La réponse comprend la récupération dans la mémoire de l'ordinateur d'une multiplicité de clés primaires, chacune correspondant à une table différente parmi les tables multiples et également un objet de l'une des tables référencé par la fonction d'agrégation identifiée. La réponse comprend en outre le calcul d'une existence d'une condition de sortante associée à la jonction de table. Enfin, la réponse comprend, à la condition que la condition sortance ne soit pas calculée, l'invocation d'une implémentation non sensible à la sortance de la fonction d'agrégation par rapport à l'objet, niais à l'inverse à condition que la condition de sortance soit calculée, l'invocation d'une implémentation sensible à la sortance, différente, de la fonction d'agrégation par rapport à l'objet. [0010] D'autres aspects de l'invention seront exposés en partie dans la description qui suit et en partie seront évidents dans la description, ou pourront être appris par la pratique de l'invention. Les aspects de l'invention seront réalisés et atteints au moyen des éléments et combinaisons particulièrement indiqués dans les revendications en annexe. Il est entendu que la description générale qui précède et la description détaillée qui suit sont toutes deux données à titre d'exemple et explicatives et ne sont pas restrictives à l'égard de l'invention, telle que revendiquée. Brève description des dessins [0011] Les dessins accompagnant, qui sont incorporés dans le présent fascicule et en font partie intégrante, illustrent des modes de réalisation de l'invention et servent, avec la description, à expliquer les principes de l'invention. Les modes de réalisation illustrés ici sont actuellement préférés, étant entendu, toutefois, que l'invention ne se limite pas aux arrangements précis et aux instruments montrés, dans lesquels : [0012] [fig.1] La figure 1 illustre de manière imagée un procédé de calcul de fonction d'agrégation agnostique de modèle de jonction dans des opérations de requête de base de données ; [0013] [fig.2] La figure 2 est une illustration schématique d'un système de traitement de données de requête de base de données configuré pour le calcul de fonction d'agrégation agnostique de modèle de jonction dans des opérations de requête de base de données ; et, 100141 Ifig.31 La figure 3 est un organigramme illustrant un procédé de calcul de fonction d'agrégation agnostique de modèle de jonction clans des opérations de requête de base de données. Description des modes de réalisation [0015] Les modes de réalisation de l'invention permettent le calcul de fonction d'agrégation agnostique de modèle de jonction dans des opérations de requête de bases de données. Conformément à un mode de réalisation de l'invention, un document de code source est reçu en mémoire d'un ordinateur et analysé afin (l'identifier une multiplicité d'opérations de requête de base de données. Une fonction d'agrégation associée à une jonction de table est détectée parmi les opérations de requête de base de données et, en réponse à la détection de la fonction d'agrégation associée à la jonction de table, une table soumise à la jonction de table est identifiée avec sa clé primaire. Sur la base de la table sous-jacente, une condition de sortance est déterminée comme existante ou non sur la base du fait que la table sous-jacente a été jointe ou non par la clé primaire. Dans le cas où une condition de sortance est déterminée comme n'existant pas, une implémentation non sensible à la sortance, standard, de la fonction d'agrégation est invoquée, mais à l'inverse, la clé primaire est utilisée pour calculer une forme sensible à la sortance de la fonction d'agrégation. Dc cette façon, un résultat correct de la fonction d'agrégation est garanti sans connaître a priori un modèle de jonction qui pré-conditionne la fonction d'agrégation. [0016] Dans une illustration supplémentaire, la figure 1 illustre de manière imagée un procédé de calcul de fonction d'agrégation agnostique de modèle de jonction dans les opérations de requête de base de données. Comme le montre la figure 1, la logique 190 de traitement de fonction d'agrégation agnostique de modèle de jonction traite le code source 100 incorporant une abstraction de SQL et situé à l'intérieur, une forme abstraite d'une invocation d'une fonction d'agrégation abstraite 120 d'une fonction d'agrégation SQL 160 agissant sur un objet 130 de une ou plusieurs tables 150 d'une base de données 140. La fonction d'agrégation abstraite 120 peut être incluse dans le code source 100 en relation avec une opération de jonction de table joignant une ou plusieurs des tables 150 y compris une table sous-jacente parmi les tables 150 comprenant l'objet 130. [0017] En tant que telle, la logique 190 de traitement de fonction d'agrégation agnostique de modèle de jonction calcule si la jonction de table de l'opération produit ou non une condition de sortance. Par exemple, la logique 190 de traitement de fonction d'agrégation agnostique de modèle de jonction identifie la table sous-jacente parmi les tables 150 pour l'objet 130 de la fonction d'agrégation abstraite 120 et détermine si la table sous-jacente parmi les tables 150 a été jointe ou non dans la jonction de table par 6 une clé primaire 180 correspondant à la table sous-jacente parmi les tables 150. Plus précisément, la nature de chaque jonction dans la requête est examinée de manière à catégoriser la jonction comme effectuant une sortante de la requête ou non, selon qu'une clé unique est détectée sur un côté de la jonction. Le côté quelconque de la jonction qui possède une clé unique est considéré comme ledit côté. Cependant, chaque fois que les deux côtés de la jonction ont chacun une clé unique, on peut conclure qu'il existe une jonction "une-à-une" et qu'aucune condition de sortance n'est trouvée. [0018] Cependant, si une clé unique ne peut pas être détectée d'un côté de la jonction ou de l'autre côté de lajonction, la jonction ne peut pas être facilement classée comme condition d'absence de sortance et la jonction est supposée avoir produit une condition de sortance, même si la possibilité demeure qu'aucune condition de sortance n'existe. Si c'est le cas, la jonction est marquée comme sortance et après que chaque jonction a été marquée comme effectuant une sortance sur un côté ou l'autre, l'arbre de jonction pour la jonction est parcouru pour détecter quelles tables n'ont pas effectué de sortance globalement dans la requête. Seules les tables qui n'apparaissent jamais sur un côté d'un "plusieurs-à-un" ou d'un "un-à-plusieurs" sont considérés comme n'ayant pas effectué de sortance. Si c'est le cas, aucune condition de sortance n'est calculée. Dans le cas contraire, la logique 190 de traitement de fonction d'agrégation agnostique de modèle de jonction calcule une condition de sortance sans tenir compte du modèle de jonction sous-jacent de la jonction de table. [0019] A la condition que la logique 190 de traitement de fonction d'agrégation agnostique de modèle de jonction ne calcule pas une condition de sortance, la logique 190 de traitement de fonction d'agrégation agnostique de modèle de jonction invoque simplement une fonction d'agrégation SQL réelle 160 pour la fonction agrégation abstraite 120 sur l'objet 130. Mais, à la condition que la logique 190 de traitement de fonction d'agrégation agnostique de modèle de jonction calcule une condition de sortance, la logique 190 de traitement de fonction d'agrégation agnostique de modèle de jonction prétraite l'objet 130 dans une fonction d'agrégation sensible à la sortance 170 avant d'invoquer la fonction d'agrégation SQL 160 en extrayant tout d'abord des tables jointes parmi les tables 150 dans un ensemble d'enregistrements résultants, des enregistrements correspondant à des valeurs uniques pour l'objet 130 selon la clé primaire 180. Par la suite, la fonction d'agrégation sensible à la sortance 170 invoque la fonction d'agrégation SQL 160 sur l'ensemble d'enregistrements résultants. [0020] Le procédé décrit en relation avec la figure 1 peut être mis en oeuvre dans un système de traitement de données de requêtes de base de données. Dans une autre illustration, la figure 2 montre schématiquement un système de traitement de données de requête de base de données configuré pour le calcul de fonction d'agrégation agnostique de modèle de jonction dans des opérations de requête de base de données. Le système 7 comprend un système informatique hôte 240 qui comprend un ou plusieurs ordinateurs, chacun avec mémoire et au moins un processeur. Le système informatique hôte 240 prend en charge l'opération d'un système de gestion de hase de données relationnelle (SGBDR) 280 gérant l'accès aux enregistrements dans différentes tables 260 d'une ou plusieurs hases de données 250, chaque enregistrement comprenant une clé primaire 270. Le système informatique hôte 240 est couplé de manière communicative par l'intermédiaire du réseau de communication informatique 230 à différents dispositifs informatiques clients 210 fournissant des interfaces utilisateur 220 respectives pour invoquer différentes opérations de requête de hase de données dans le SGBDR 280 sur les tables 260 de la ou des hases de données 250, comprenant une ou plusieurs fonctions d'agrégation SQL 200 telles que SUMO, COUNTQ, AVG() et STDDEV O. [0021] Notamment, le système comprend un module de fonction d'agrégation agnostique de modèle de jonction 300. Le module 300 comprend des instructions de programme informatique permettant lors de l'exécution dans la mémoire du système informatique hôte 240 l'analyse d'un document de code source 290A d'instructions de requête de hase de données SQL abstraites afin d'y identifier une fonction d'agrégation abstraite 290C pour une fonction correspondante parmi les fonction d'agrégation SQL 200, pour un objet dans une des tables 260 incluses comme partie d'une table jointe 290B. En réponse à cette identification, les instructions de programme du module 300 permettent le calcul, qu'il y ait ou non une condition de sortante. Par exemple, ce calcul peut se faire en identifiant une table sous-jacente parmi les tables 260 jointes par la table jointe 260 pour l'objet qui fait l'objet de la fonction d'agrégation abstraite 290C, et pour déterminer si la table sous-jacente a été jointe ou non selon la clé correspondante parmi les clés 270. Si ce n'est pas le cas, une condition de sortance est calculée. [0022] Les instructions de programme du module 300 permettent encore, lors du calcul une condition de sortance, d'invoquer une implémentation sensible à la sortance de la fonction d'agrégation 290C par rapport à l'objet. L'implémentation sensible à la sortance extrait d'abord des tables jointes parmi les tables 260 les enregistrements avec des valeurs uniques de l'objet avant d'invoquer la fonction correspondante parmi les fonctions d'agrégation SQL réelles sur les enregistrements extraits. Mais, à l'inverse, à condition que la condition de sortance ne soit pas calculée, la fonction correspondante parmi les fonctions d'agrégation SQL peut être invoquée directement sur l'objet de la table sous-jacente parmi les tables. [0023] Dans une illustration encore plus détaillée du fonctionnement du module de fonction d'agrégation agnostique de modèle de jonction 300, la figure 3 est un organigramme illustrant un procédé de calcul de fonction d'agrégation agnostique de modèle de jonction dans des opérations de requête de base de données. A partir du bloc 305, le code source représentatif d'une forme abstraite de différentes opérations de requête de 8 hase de données SQL est chargé dans la mémoire d'un ordinateur et dans le bloc 310, le code source est analysé pour identifier différentes formes abstraites d'une ou plusieurs fonctions d'agrégation SQL. Dans le bloc de décision 315, on détermine si une forme abstraite localisée d'une fonction d'agrégation SQL agit ou non sur un objet d'une table soumise à une opération de jonction de table. Si ce n'est pas le cas, dans le bloc de décision 320, tant qu'il reste des opérations de requête supplémentaires à traiter dans le code source, le procédé retourne au bloc 310. Sinon, le procédé se termine dans le bloc 355. [0024] Dans le bloc de décision 315, s'il est déterminé qu'une forme abstraite localisée d'une fonction d'agrégation SQL agit sur un objet d'une table soumise à une opération de jonction de table, dans le bloc 325, l'objet sur lequel agit la forme abstraite de la fonction d'agrégation SQL est déterminé et dans le bloc 330, une table sous-jacente pour cet objet est identifiée. Dans le bloc 335, une clé primaire pour la table sous-jacente est récupérée et dans le bloc de décision 340, il est déterminé si la table sous-jacente a été jointe ou non dans l'opération de jonction de table à l'aide de la clé primaire récupérée. Si c'est le cas, dans le bloc 345, la forme SQL de la fonction d'agrégation abstraite est invoquée sur l'objet. Mais, dans le cas où il est déterminé que la table sous-jacente a été jointe dans l'opération de jonction de table sans utiliser la clé primaire, dans le bloc 350 une implémentation sensible à la sortance de la forme SQL de la fonction d'agrégation abstraite est invoquée en prétraitant d'abord les tables jointes pour enregistrer des valeurs uniques des objets et ensuite, dans le bloc 345 la forme SQL de la fonction d'agrégation abstraite est invoquée sur les enregistrements des tables pré-traitées. De cette façon, la forme SQL de la fonction d'agrégation abstraite peut être invoquée sans tenir compte de la connaissance a priori du modèle de jonction de la jonction de table indiquant une condition de sortance. [0025] La présente invention peut être incorporée dans un système, un procédé, un programme informatique ou toute combinaison de ceux-ci. Le programme informatique peut comprendre un support de stockage lisible par ordinateur ou un support sur lequel se trouvent des instructions de programme lisibles par ordinateur pour amener un processeur à exécuter des aspects de la présente invention. Le support de stockage lisible pal- ordinateur peut être un dispositif tangible qui peut conserver et stocker des instructions à utiliser par un dispositif d'exécution d'instructions. Le support de stockage lisible par ordinateur peut être, par exemple, un dispositif de stockage électronique, un dispositif de stockage magnétique, un dispositif de stockage optique, un dispositif de stockage électromagnétique, un dispositif de stockage semiconducteur ou toute combinaison appropriée de ce qui précède, sans toutefois s'y limiter [0026] Les instructions de programme lisibles par ordinateur décrites ici peuvent être télé- 9 chargées à partir d'un support de stockage lisible par ordinateur ou sur un ordinateur externe ou un périphérique de stockage externe via un réseau, sur les dispositifs de calcul/traitement respectifs. Les instructions lisibles par ordinateur peuvent être exécutées entièrement sur l'ordinateur de l'utilisateur, en partie sur l'ordinateur de l'utilisateur, en tant que progiciel autonome, en partie sur l'ordinateur de l'utilisateur et en partie sur un ordinateur distant ou entièrement sur l'ordinateur ou le serveur distant. Certains aspects de la présente invention sont décrits ici à l'aide d'organigrammes et/ou de schémas fonctionnels de procédés, d'appareils (systèmes) et de produits de programmes informatiques sur la base des modes de réalisation de l'invention. Il est entendu que chaque bloc des organigrammes et/ou des schémas fonctionnels, ainsi que les combinaisons de blocs des organigrammes et/ou des schémas fonctionnels, peuvent être réalisés au moyen d'instructions de programme lisibles par ordinateur. [0027] Ces instructions de programme lisibles par ordinateur peuvent être fournies à un processeur d'un ordinateur à usage général, d'un ordinateur à usage spécifique ou d'un autre appareil de traitement de données programmable pour produire une machine, de sorte que les instructions, qui sont exécutées par l'intermédiaire du processeur de l'ordinateur ou d'un autre appareil de traitement de données programmable, créent des moyens pour exécuter les fonctions/actions spécifiées dans le ou les blocs des organigrammes et/ou des schémas fonctionnels. Ces instructions de programme lisibles par ordinateur peuvent également être stockées dans un support de stockage lisible par ordinateur qui peut diriger un ordinateur, un appareil de traitement de données programmable et/ou d'autres dispositifs pour fonctionner d'une manière particulière, de sorte que le support de stockage lisible par ordinateur dans lequel sont stockées des instructions comprend un article de fabrication comprenant des instructions qui exécutent des aspects des fonctions/actions spécifiées dans le ou les blocs des organigrammes et/ou des schémas fonctionnels. [0028] Les instructions de programme lisibles par ordinateur peuvent également être chargées sur un ordinateur, un autre appareil de traitement de données programmable ou un autre dispositif pour provoquer l'exécution d'une série d'étapes opérationnelles sur l'ordinateur, un autre appareil programmable ou un autre dispositif pour produire un procédé exécuté par ordinateur, de sorte que les instructions qui exécutent sur l'ordinateur, un autre appareil programmable ou un autre dispositif mettent en oeuvre les fonctions/actions indiquées dans le ou les blocs des organigrammes et/ou des schémas fonctionnels. [0029] L'organigramme et les schémas fonctionnels présentés dans les figures illustrent l'architecture, la fonctionnalité et le fonctionnement d'implémentations possibles de systèmes, de procédés et de produits de programmes informatiques sur la base des diverses modes de réalisation de la présente invention. À cet égard, chaque bloc de l'organigramme ou des schémas fonctionnels peut représenter un module, un segment ou une partie d'instructions, qui comprend une ou plusieurs instructions exécutables pour mettre en oeuvre la ou les fonctions logiques spécifiées. Dans certaines implémentations alternatives, les fonctions notées dans le bloc peuvent se produire dans l'ordre indiqué dans les figures. Par exemple, deux blocs montrés successivement peuvent, en fait, être exécutés sensiblement simultanément, ou les blocs peuvent parfois être exécutés dans l'ordre inverse, sur la base de la fonctionnalité impliquée. Il convient également de noter que chaque bloc des schémas fonctionnels et/ou des organigrammes, et les combinaisons de blocs des schémas fonctionnels et/ou des organigrammes, peuvent être mis en oeuvre par des systèmes matériels spéciaux qui effectue les fonctions ou les actes spécifiés ou exécutent des combinaisons de matériel spécial et d'instructions informatiques. [0030] Tl sera en outre entendu que les termes "comprend" et/ou "comprenant", lorsqu'ils sont utilisés dans la présente spécification, précisent la présence de caractéristiques, entiers, étapes, opérations, éléments et/ou composants indiqués, mais n'excluent pas la présence ou l'ajout d'une ou plusieurs autres caractéristiques, entiers, étapes, opérations, éléments, composants et/ou groupes de ceux-ci. [0031] La description de la présente invention a été présentée à des fins d'illustration et de description, mais ne se veut pas exhaustive ou limitée à l'invention sous la forme divulguée. De nombreuses modifications et variations seront apparentes aux hommes du métier sans s'écarter de la portée et de l'esprit de l'invention. Le mode de réalisation a été choisi et décrit afin d'expliquer au mieux les principes de l'invention et son application pratique, et de permettre à d'autres hommes du métier de comprendre l'invention pour diverses modes de réalisation avec diverses modifications adaptées à l'usage particulier envisagé. 11 [Revendication I] [Revendication 2] [Revendication 3] [Revendication 4] REVENDICATIONSProcédé de calcul d'une fonction d'agrégation agnostique de modèle de jonction comprenant les étapes consistant à : le chargement d'un document de code source dans une mémoire d'un ordinateur ; l'analyse du document de code source pour identifier différentes opérations de requête de hase de données ; et, en réponse à une identification d'une fonction d'agrégation dans l'une des différentes opérations de requête de hase de données dans laquelle des enregistrements dans des tables multiples sont joints ensemble dans une jonction de table, l'exécution des étapes consistant à : la récupération dans la mémoire de l'ordinateur d'une multiplicité de clés primaires, chacune correspondant à une table différente parmi les tables multiples et également un objet de l'une des tables référencé par la fonction d'agrégation identifiée ; le calcul d'une existence d'une condition de sortance associée à la jonction de table ; et, à condition que la condition de sortance ne soit pas calculée, l'invocation d'une implémentation non sensible à la sortance de la fonction d'agrégation par rapport à l'objet, mais à l'inverse à condition que la condition de sortance soit calculée, l'invocation d'une implémentation sensible à la sortance, différente, de la fonction d'agrégation par rapport à l'objet. Procédé selon la revendication 1, dans lequel l'implémentation non sensible à la sortance de la fonction d'agrégation est une opération de langage de requête structuré (SQL), et dans lequel l'implémentation sensible à la sortance, différente, de la fonction d'agrégation extrait des valeurs uniques pour l'objet de chacune des tables multiples en utilisant une clé correspondante parmi les clés primaires et effectue ensuite l'implémentation non sensible à la sortance de la fonction d'agrégation sur les valeurs uniques extraites. Procédé selon la revendication 2, dans lequel l'opération SQL est une opération SQL choisie dans le groupe constitué par SUMO, AVGO, STDDEVO et COUNTO. Procédé selon la revendication 1, dans lequel l'existence de la condition de sortance est calculée lorsque la table sous-jacente n'a pas été jointe par une clé correspondante parmi les clés primaires et une absence de la 12 [Revendication 5] [Revendication 6] [Revendication 7] condition de sortance est calculée lorsque la table sous-jacente a été jointe par la clé correspondante parmi les clés primaires. Procédé selon la revendication 2, dans lequel le code source est une abstraction de langage de balisage de SQL. Système de traitement de données de requête de hase de données configure pour le calcul d'une fonction d'agrégation agnostique de modèle de jonction dans des opérations de requête de hase de données, le système comprenant : un système informatique hôte comprenant un ou plusieurs ordinateurs, chacun avec mémoire et au moins un processeur ; un système de gestion de hase de données relationnelle s'exécutant dans la mémoire de l'ordinateur et agissant sur une multiplicité de tables différentes dans une ou plusieurs hases de données stockées dans un stockage fixe couplé au système informatique hôte ; et, un module de calcul de fonction d'agrégation agnostique de modèle de jonction comprenant des instructions de programme informatique exécutées dans la mémoire du système informatique hôte, les instructions de programme exécutant les étapes consistant à : le chargement d'un document de code source dans la mémoire ; l'analyse du document de code source pour identifier différentes opérations de requête de base de données ; et, en réponse à une identification d'une fonction d'agrégation dans l'une des différentes opérations de requête de base de données dans laquelle des enregistrements dans des tables multiples sont joints ensemble dans une jonction de table, l'exécution des étapes consistant à : la récupération dans la mémoire de l'ordinateur d'une multiplicité de clés primaires, chacune correspondant à une table différente parmi les tables multiples et également un objet de l'une des tables référencé par la fonction d'agrégation identifiée ; le calcul d'une existence d'une condition de sortance associée à la jonction de table ; et, à condition que la condition de sortance ne soit pas calculée, l'invocation d'une implémentation non sensible à la sortance de la fonction d'agrégation par rapport à l'objet, mais à l'inverse à condition que la condition de sortante soit calculée, l'invocation d'une implémentation sensible à la sortance, différente, de la fonction d'agrégation par rapport à l'objet. Système selon la revendication 6, dans lequel l'implémentation non 13 [Revendication 8] [Revendication 9] [Revendication 10] [Revendication 11] sensible à la sortante de la fonction d'agrégation est une opération de langage de requête structuré (SQL), et dans lequel l'implémentation sensible à la sortante, différente, de la fonction d'agrégation extrait des valeurs uniques pour l'objet de chacune des tables multiples en utilisant une clé correspondante parmi les clés primaires et effectue ensuite l'implémentation non sensible à la sortance de la fonction d'agrégation sur les valeurs uniques extraites. Système selon la revendication 7, dans lequel l'opération SQL est une opération SQL choisie dans le groupe constitué par SUMO, AVG(), STDDEVO et COUNTO. Système selon la revendication 6, dans lequel l'existence de la condition de sortancc est calculée lorsque la table sous-jacente n'a pas été jointe par une clé correspondante parmi les clés primaires et une absence de la condition de sortance est calculée lorsque la table sous-jacente a été jointe par la clé correspondante parmi les clés primaires. Système selon la revendication 7, dans lequel le code source est une abstraction de langage de balisage de SQL. Produit de programme informatique pour calculer une fonction d'agrégation agnostique de modèle de jonction, le produit de programme informatique comprenant un support de stockage lisible par ordinateur ayant des instructions de programme incorporées avec celui-ci, les instructions de programme exécutables par un dispositif pour amener le dispositif à exécuter un procédé comprenant les étapes consistant à : le chargement d'un document de code source dans une mémoire d'un ordinateur ; l'analyse du document de code source pour identifier différentes opérations de requête de base de données ; et, en réponse à une identification d'une fonction d'agrégation dans l'une des différentes opérations de requête de base de données dans laquelle des enregistrements dans des tables multiples sont joints ensemble dans une jonction de table, l'exécution des étapes consistant à : la récupération dans la mémoire de l'ordinateur d'une multiplicité de clés primaires, chacune correspondant à une table différente parmi les tables multiples et également un objet de l'une des tables référencé par la fonction d'agrégation identifiée ; le calcul d'une existence d'une condition de sortance associée à la jonction de table ; et, à condition que la condition de sortance ne soit pas calculée, 14 [Revendication 12] [Revendication 13] [Revendication 14] [Revendication 15] l'invocation d'une implémentation non sensible à la sortance de la fonction d'agrégation par rapport à l'objet, mais à l'inverse à condition que la condition de sortante soit calculée, l'invocation d'une implémentation sensible à la sortante, différente, de la fonction d'agrégation par rapport à l'objet. Produit de programme informatique selon la revendication 11, dans lequel l'implémentation non sensible à la sortance de la fonction d'agrégation est une opération de langage de requête structuré (SQL), et dans lequel l'implémentation sensible à la sortante, différente, de la fonction d'agrégation extrait des valeurs uniques pour l'objet de chacune des tables multiples en utilisant une clé correspondante parmi les clés primaires et effectue ensuite l'implémentation non sensible à la sortance de la fonction d'agrégation sur les valeurs uniques extraites. Produit de programme informatique selon la revendication 12, dans lequel l'opération SQL est une opération SQL choisie dans le groupe constitué par SUMO, AVG(), STDDEVQ et COUNTQ. Produit de programme informatique selon la revendication 11, dans lequel l'existence de la condition de sortance est calculée lorsque la table sous-jacente n'a pas été jointe par une clé correspondante parmi les clés primaires et une absence de la condition de sortante est calculée lorsque la table sous-jacente a été jointe par la clé correspondante parmi les clés primaires. Produit de programme informatique selon la revendication 12, dans lequel le code source est une abstraction de langage de balisage de SQL.