FR3006787A1 - METHOD AND DEVICE FOR FACILITATED INTERROGATION OF A RELATIONAL DATA BASE - Google Patents

METHOD AND DEVICE FOR FACILITATED INTERROGATION OF A RELATIONAL DATA BASE Download PDF

Info

Publication number
FR3006787A1
FR3006787A1 FR1355219A FR1355219A FR3006787A1 FR 3006787 A1 FR3006787 A1 FR 3006787A1 FR 1355219 A FR1355219 A FR 1355219A FR 1355219 A FR1355219 A FR 1355219A FR 3006787 A1 FR3006787 A1 FR 3006787A1
Authority
FR
France
Prior art keywords
database
command
field
value
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1355219A
Other languages
French (fr)
Other versions
FR3006787B1 (en
Inventor
Aline Ficet
Cyril Doucerain
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Bull SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SA filed Critical Bull SA
Priority to FR1355219A priority Critical patent/FR3006787B1/en
Publication of FR3006787A1 publication Critical patent/FR3006787A1/en
Application granted granted Critical
Publication of FR3006787B1 publication Critical patent/FR3006787B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation

Abstract

L'invention concerne Dispositif (D) pour l'interrogation d'une base de données relationnelle (DB) consistant à interpréter une commande (M) pour générer un ensemble de requêtes (Rq) en langage SQL destinées à un système de gestion (DBS) de la base de données, dans lequel la commande est conforme à une grammaire distincte du langage SQL et interprétée à l'aide d'un ensemble de fichiers de configuration (CF).The invention relates to Device (D) for interrogating a relational database (DB) consisting in interpreting a command (M) for generating a set of queries (Rq) in SQL language intended for a management system (DBS) ) of the database, in which the command conforms to a grammar distinct from the SQL language and interpreted using a set of configuration files (CF).

Description

852-FR-014146-patentapplication-final 1 PROCÉDÉ ET DISPOSITIF POUR L'INTERROGATION FACILITÉE D'UNE BASE DE DONNÉES RELATIONNELLES DOMAINE DE L'INVENTION L'invention concerne les systèmes de gestion de base de données relationnelles et notamment à l'interrogation de tels systèmes par des utilisateurs.FIELD OF THE INVENTION The invention relates to relational database management systems and in particular to the interrogation of data bases. such systems by users.

CONTEXTE DE L'INVENTION Les bases de données relationnelles sont des structures de données organisées sous la forme de tables au sein desquelles les données sont indexées au moyen de clés.BACKGROUND OF THE INVENTION Relational databases are data structures organized in the form of tables within which data is indexed by means of keys.

Typiquement, une table comporte un ensemble d'enregistrements (ou « lignes ») indexés par une clé primaire. Les « colonnes » de la table représentent les champs. Un enregistrement comporte une valeur pour chacun des champs de la table. Les tables peuvent se référencer entre elles afin de structurer l'information, en comportant un champ ayant pour valeur une clé (dite alors « clé étrangère ») correspondant à un enregistrement d'une autre table. Il est bien connu d'associer une base de données relationnelle à un système de gestion afin d'assurer une interface destinée aux utilisateurs la base de données qui soit indépendante de la structure physique de la base de données. La figure 1 illustre une architecture haut-niveau typique de mise en oeuvre d'une base de données relationnelle. Un utilisateur U peut accéder à la base de données DB au travers d'un système de gestion de base de données DBS. La base de données DB et le système de gestion DBS peuvent appartenir à un même serveur fonctionnel S. 852-FR-014146-patentapplication-final 2 D'un point de vue fonctionnel, ce système de gestion de bases de données DBS peut se décomposer schématiquement en une interface d'accès aux données AI et une interface de traitement des requêtes RI. L'interface d'accès aux données AI vise à gérer les spécificités physiques d'implémentation de la base de données DB, par exemple à gérer les aspects de redondances, la répartition sur des machines serveurs distantes et éventuellement multiples, à gérer les différents protocoles d'accès possibles, à gérer les éventuels accès concurrents, etc. L'interface de traitement des requêtes RI permet d'assurer une interface unifiée à l'utilisateur U, quel que soit la base de données DB sous- j acente. Cette interface permet classiquement d'interroger la base par des requêtes Rq et de recevoir des réponses Rp. L'interrogation est généralement conforme à un langage d'interrogation structuré tel que le langage SQL (pour « Structure Query Language » en langue anglaise) qui est normalisé à la fois par l'ISO (International Standard Organization) et par l' ANSI (American National Standards Institute). Ce langage SQL permet, au moyen d'un ensemble de commandes (appelées « requêtes »), de manipuler les données au sein de la base de données DB. Ces commandes permettent d'effectuer notamment des recherches, d'ajouter des données, de mettre à jour (ou modifier) des données présentes, d'effacer des données, de créer ou de supprimer des tables, etc. Ce langage permet d'offrir une interface universelle, de sorte que sa connaissance permet à un utilisateur d'interagir avec toutes les bases de données. Toutefois, son utilisation reste difficile car elle nécessite une bonne connaissance de la topologie de la base de données sous-jacente DB, c'est-à-dire du nom des tables et des liens qui existent entre les tables. Certaines base de données DB peuvent être très complexes et comporter un très grand 852-FR-014146-patentapplication-final 3 nombre de tables, et cette connaissance peut être difficile à acquérir et demande un investissement préalable pour l'utilisateur U. En outre, même bon connaisseur de la structure topologique de la base de données DB, si celle-ci est au moins un peu complexe, l'interrogation de la base de données DB peut nécessiter plusieurs requêtes en SQL. Le processus est donc fastidieux, long et donc coûteux dans le cadre d'une utilisation industrielle ou professionnelle. En outre, il peut en résulter un risque d'erreurs non-négligeable, notamment un risque d'oublier de renseigner un champ dans une requête.Typically, a table has a set of records (or "rows") indexed by a primary key. The "columns" of the table represent the fields. A record has a value for each of the fields in the table. The tables can refer to each other in order to structure the information, by including a field whose value is a key (then called "foreign key") corresponding to a record of another table. It is well known to associate a relational database with a management system to provide an interface for users of the database that is independent of the physical structure of the database. Figure 1 illustrates a typical high-level architecture for implementing a relational database. A user U can access the DB database through a DBS database management system. The DB database and the DBS management system can belong to the same functional server S. 852-EN-014146-patentapplication-final 2 From a functional point of view, this DBS database management system can decompose schematically into an access interface to the data AI and a processing interface of the requests RI. The AI data access interface aims to manage the physical implementation specificities of the DB database, for example to manage the aspects of redundancies, the distribution on remote and possibly multiple server machines, to manage the various protocols. possible access to manage potential access to competitors, etc. The RI request processing interface provides a unified interface to the user U, regardless of the underlying DB database. This interface conventionally makes it possible to interrogate the database with Rq requests and to receive Rp responses. The interrogation is generally in accordance with a structured query language such as the SQL language (for "Structure Query Language" in English) which is standardized by both the International Standard Organization (ISO) and the American National Standards Institute (ANSI). This SQL language allows, by means of a set of commands (called "requests"), to manipulate the data within the database DB. These commands can be used to search, add data, update (or modify) existing data, erase data, create or delete tables, and more. This language makes it possible to offer a universal interface, so that its knowledge allows a user to interact with all the databases. However, its use remains difficult because it requires a good knowledge of the topology of the underlying database DB, that is to say the name of the tables and the links that exist between the tables. Some DB databases can be very complex and contain a very large number of tables, and this knowledge can be difficult to acquire and requires a prior investment for the user U. In addition, even if you know the topological structure of the DB database, if it is at least a bit complex, querying the DB database may require several SQL queries. The process is therefore tedious, long and therefore expensive in the context of industrial or professional use. In addition, it can result in a significant risk of errors, including a risk of forgetting to fill a field in a query.

RESUME DE L'INVENTION Le but de la présente invention est de fournir une solution palliant au moins partiellement les inconvénients précités. À cette fin, la présente invention propose un procédé d'interrogation d'une base de données relationnelle consistant à interpréter une commande pour générer un ensemble de requêtes en langage SQL destinées à un système de gestion de ladite base de données, dans lequel ladite commande est conforme à une grammaire distincte du langage SQL et dans lequel lesdites requêtes sont générées en fonction de la structure de ladite base de données relationnelle. Suivant des modes de réalisation préférés, l'invention comprend une ou plusieurs des caractéristiques suivantes qui peuvent être utilisées séparément ou en combinaison partielle entre elles ou en combinaison totale entre elles : ladite commande est prévue pour ajouter des données au sein de ladite base de données relationnelle et comporte au moins un objet, ledit au moins un objet comportant un type et une liste de champs associée audit type, ledit type correspondant à une table de ladite 852-FR-014146-patentapplication-final 4 base de données et chacun desdits champs correspondant à un champ de ladite table ; une affectation d'une valeur à un champ d'un premier objet est automatiquement réutilisée pour un champ d'un second objet, lesdits premier et second objets appartenant audit au moins un objet ; une valeur est affectée à un champ de ladite base de données en fonction d'indications fournies par des fichiers de configuration associés audit dispositif, lesdites indications précisant un mécanisme pour déterminer ladite valeur.SUMMARY OF THE INVENTION The object of the present invention is to provide a solution at least partially overcoming the aforementioned drawbacks. To this end, the present invention provides a method of querying a relational database of interpreting a command to generate a set of SQL queries for a management system of said database, wherein said command is consistent with a distinct grammar of the SQL language and in which said queries are generated according to the structure of said relational database. According to preferred embodiments, the invention comprises one or more of the following features which can be used separately or in partial combination with one another or in total combination with one another: said command is intended to add data within said database relational and comprises at least one object, said at least one object having a type and a list of fields associated with said type, said type corresponding to a table of said 852-EN-014146-patentapplication-final 4 database and each of said fields corresponding to a field of said table; assigning a value to a field of a first object is automatically reused for a field of a second object, said first and second objects belonging to said at least one object; a value is assigned to a field of said database based on indications provided by configuration files associated with said device, said indications specifying a mechanism for determining said value.

Un autre aspect de l'invention concerne un programme d'ordinateur comprenant des instructions qui, une fois chargées sur un système de traitement de l'information, sont aptes à mettre en oeuvre le procédé précédemment décrit.Another aspect of the invention relates to a computer program comprising instructions which, when loaded onto an information processing system, are able to implement the previously described method.

Un autre aspect de l'invention concerne un dispositif pour l'interrogation d'une base de données relationnelle consistant à interpréter une commande pour générer un ensemble de requêtes en langage SQL destinées à un système de gestion de ladite base de données, dans lequel ladite commande est conforme à une grammaire distincte du langage SQL et interprétée à l'aide d'un ensemble de fichiers de configuration. Suivant des modes de réalisation préférés, l'invention comprend une ou plusieurs des caractéristiques suivantes qui peuvent être utilisées séparément ou en combinaison partielle entre elles ou en combinaison totale entre elles : le dispositif dispose d'un module de traitement de commandes pour recevoir ladite commande prévue pour ajouter des données au sein de ladite base de données relationnelle et comportant au moins un objet, ledit au moins un objet comportant un type et une liste de 852-FR-014146-patentapplication-final champs associée audit type, ledit type correspondant à une table de ladite base de données et chacun desdits champs correspondant à un champ de ladite table ; le dispositif dispose des moyens pour réutiliser automatiquement une 5 affectation d'une valeur à un champ d'un premier objet pour un champ d'un second objet, lesdits premier et second objets appartenant audit au moins un objet ; une valeur est affectée à un champ de ladite base de données en fonction d'indications fournies par des fichiers de configuration associés audit dispositif, lesdites indications précisant un mécanisme pour déterminer ladite valeur ; le dispositif comporte en outre un module de génération pour traiter un premier fichier de configuration desdits fichiers de configuration et générer un second fichier de configuration interprétable par ledit module de traitement de commandes. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit d'un mode de réalisation préféré de l'invention, donnée à titre d'exemple et en référence aux dessins annexés.Another aspect of the invention relates to a device for querying a relational database consisting of interpreting a command to generate a set of SQL queries for a management system of said database, wherein said The command conforms to a separate grammar of the SQL language and interpreted using a set of configuration files. According to preferred embodiments, the invention comprises one or more of the following characteristics that can be used separately or in partial combination with one another or in total combination with one another: the device has a command processing module for receiving said command intended to add data within said relational database and comprising at least one object, said at least one object having a type and a list of 852-EN-014146-patentapplication-final fields associated with said type, said type corresponding to a table of said database and each of said fields corresponding to a field of said table; the device has means for automatically reusing an assignment of a value to a field of a first object for a field of a second object, said first and second objects belonging to said at least one object; a value is assigned to a field of said database according to indications provided by configuration files associated with said device, said indications specifying a mechanism for determining said value; the device further comprises a generation module for processing a first configuration file of said configuration files and generating a second configuration file interpretable by said command processing module. Other features and advantages of the invention will appear on reading the following description of a preferred embodiment of the invention, given by way of example and with reference to the accompanying drawings.

BREVE DESCRIPTION DES DESSINS La figure 1 représente schématiquement une architecture fonctionnelle d'un système composé d'une base de données et d'un système de gestion, conformément à l'état de la technique. La figure 2 représente schématiquement une architecture fonctionnelle d'un système composé d'une base de données et d'un système de gestion de la base de données, conformément à l'invention. La figure 3 illustre un exemple de structure d'une base de données relationnelle. 852-FR-014146-patentapplication-final 6 La figure 4 représente schématiquement une architecture fonctionnelle d'un système composé d'une base de données et d'un système de gestion, conformément à une mise en oeuvre de l'invention. La figure 5 illustre un exemple de structure d'une base de données relationnelle. DESCRIPTION DETAILLEE DE L'INVENTION La figure 2 représente une mise en oeuvre possible de l'invention dans lequel un dispositif D a été inséré entre le système de gestion DBS d'une ou plusieurs bases de données DB et le ou les utilisateurs U. À travers ce dispositif D, l'utilisateur U peut accéder à la base de données DB via le système de gestion de bases de données DBS.BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 schematically represents a functional architecture of a system composed of a database and a management system, according to the state of the art. FIG. 2 diagrammatically represents a functional architecture of a system composed of a database and a database management system, according to the invention. Figure 3 illustrates an example structure of a relational database. FIG. 4 schematically represents a functional architecture of a system composed of a database and a management system, in accordance with an implementation of the invention. Figure 5 illustrates an example structure of a relational database. DETAILED DESCRIPTION OF THE INVENTION FIG. 2 represents a possible implementation of the invention in which a device D has been inserted between the DBS management system of one or more DB databases and the user (s) U. Through this device D, the user U can access the database DB via the database management system DBS.

La base de données DB et le système de gestion DBS peuvent appartenir à un même serveur fonctionnel S. Ce serveur fonctionnel S peut bien évidemment être mis en oeuvre de différentes façons. Il peut par exemple s'agir d'un seul serveur physique (c'est-à-dire d'un ordinateur), ou bien de plusieurs ordinateurs : notamment le système de gestion DBS peut être déployé sur une machine différente de celle sur laquelle est déployée la base de données DB. Il peut également être prévu de déployer la base de données (et le système de gestion DBS) sur une pluralité de machines reliées en réseau. Cette pluralité de machines connectées peut même former une ferme d'ordinateurs. D'autres mises en oeuvre sont bien évidemment possibles. D'un point de vue fonctionnel également, ce système de gestion de bases de données DBS peut se décomposer schématiquement en une interface d'accès aux données AI et une interface de traitement des requêtes RI. 852-FR-014146-patentapplication-final 7 L'interface d'accès aux données AI vise à gérer les spécificités physiques d'implémentation de la base de données DB, par exemple à gérer les aspects de redondances, la répartition sur des machines serveurs distantes et éventuellement multiples, à gérer les différents protocoles d'accès possibles, à gérer les éventuels accès concurrents, etc. L'interface de traitement des requêtes RI permet d'assurer une interface unifiée à l'utilisateur U, quel que soit la base de données DB sous-jacente. Cette interface permet classiquement d'interroger la base par des requêtes Rq et de recevoir des réponses Rp. L'interrogation est généralement conforme à un langage d'interrogation structuré tel que le langage SQL (pour « Structure Query Language » en langue anglaise) qui est normalisé à la fois par l'ISO (International Standard Organization) et par l'ANSI (American National Standards Institute). En pratique, les interfaces d'accès aux données AI et de traitement des requêtes RI peuvent être mises en oeuvre par des modules logiciels distincts du système de gestion DBS ou bien être intégrées au sein d'un même module logiciel. L'architecture du serveur fonctionnel S comprenant la base de données DB et le système de gestion DBS peut être conforme aux différentes solutions proposées par l'état de la technique et donc différentes mises en oeuvre sont accessibles à l'homme du métier. Un aspect de l'invention concerne ce dispositif D pour l'interrogation d'une base de données relationnelle DB. Il peut être réalisé de différentes façons et notamment il peut être déployé sur une même machine que le système de gestion DBS ou bien sur une machine distincte. Ce dispositif permet de présenter aux utilisateurs U une interface différente du langage SQL et peut ainsi agir comme un interpréteur de plus haut niveau : l'utilisateur peut transmettre des commandes M conforme à une grammaire donnée, distincte du langage SQL, le dispositif D dispose 852-FR-014146-patentapplication-final 8 des moyens logiciels pour interpréter ces commandes et générer un ensemble de requêtes SQL destinées au système de gestion DBS. Cette interprétation peut notamment se faire à l'aide d'un ensemble de fichiers de configuration CF.The database DB and the management system DBS can belong to the same functional server S. This functional server S can of course be implemented in different ways. It can for example be a single physical server (that is to say a computer), or several computers: in particular the DBS management system can be deployed on a machine different from that on which is deployed the DB database. It can also be planned to deploy the database (and the DBS management system) on a plurality of machines connected to a network. This plurality of connected machines can even form a computer farm. Other implementations are of course possible. Also from a functional point of view, this DBS database management system can be schematically broken down into an AI data access interface and an RI request processing interface. 852-EN-014146-patentapplication-final 7 The AI data access interface aims to manage the physical implementation specificities of the DB database, for example to manage aspects of redundancy, distribution on server machines remote and possibly multiple, to manage the various possible access protocols, to manage the possible competitors access, etc. The RI request processing interface provides a unified interface to the user U, regardless of the underlying DB database. This interface conventionally makes it possible to interrogate the database with Rq requests and to receive Rp responses. The interrogation is generally in accordance with a structured query language such as the SQL language (for "Structure Query Language" in English) which is standardized by both the International Standard Organization (ISO) and the American National Standards Institute (ANSI). In practice, the access interfaces to the data AI and the processing of the requests RI can be implemented by software modules separate from the management system DBS or be integrated within the same software module. The architecture of the functional server S comprising the database DB and the management system DBS can be in accordance with the various solutions proposed by the state of the art and therefore different implementations are accessible to those skilled in the art. One aspect of the invention relates to this device D for interrogating a relational database DB. It can be realized in different ways and in particular it can be deployed on the same machine as the DBS management system or on a separate machine. This device makes it possible to present to users U a different interface of the SQL language and can thus act as a higher-level interpreter: the user can transmit M commands according to a given grammar, distinct from the SQL language, the device D has 852 -EN-014146-patentapplication-final 8 software means to interpret these commands and generate a set of SQL queries for the DBS management system. This interpretation can be done using a set of CF configuration files.

L'ensemble de fichiers de configuration, de même que l'ensemble de requêtes SQL Rq peuvent éventuellement se réduire à des singletons. Toutefois, un des avantages de l'invention est de permettre à l'utilisateur U de rédiger une commande unique possédant le même effet qu'une pluralité de requêtes SQL. Elle permet ainsi de simplifier la tâche de l'utilisateur U et en outre d'éviter des erreurs inhérentes à l'écriture de requêtes SQL complexes et nombreuses. Selon un mode de réalisation de l'invention, la grammaire permet de spécifier un ou plusieurs objets dans une commande M. Pour quelque objet, il est possible d'indiquer un type et de lui associer une liste de champs. La commande M peut par exemple être interprétée d'abord par une application logicielle de type « Shell » sur un système d'exploitation de la famille Unix. En ce cas, elle peut comporter un mot-clé permettant à cette application « shell » d'identifier le dispositif D et de lui transmettre la commande M reçue. En outre, le dispositif D peut mettre en oeuvre différents mécanismes y compris des mécanismes distincts de ceux de l'invention. Aussi, la commande M peut comporter un mot-clé permettant d'identifier ces mécanismes.The set of configuration files, as well as the set of SQL Rq queries can be reduced to singletons. However, one of the advantages of the invention is to allow the user U to write a single command having the same effect as a plurality of SQL queries. It thus simplifies the task of the user U and also avoids errors inherent to the writing of complex and numerous SQL queries. According to one embodiment of the invention, the grammar makes it possible to specify one or more objects in an order M. For some object, it is possible to indicate a type and to associate a list of fields with it. The command M can for example be interpreted first by a software application type "Shell" on a operating system of the Unix family. In this case, it may include a keyword allowing this application "shell" to identify the device D and to transmit the command M received. In addition, the device D can implement different mechanisms including mechanisms distinct from those of the invention. Also, the command M may include a keyword to identify these mechanisms.

Une telle commande peut par exemple avoir pour forme : Commande ajoute objetl, objet2, objet3... Le mot-clé « commande » permet d'indiquer qu'il s'agit d'une commande adressée au dispositif D. 852-FR-014146-patentapplication-final 9 Le mot clé « ajoute » indique qu'il s'agit d'une commande d'ajouts de données dans la base de données relationnelle DB. Il permet de mettre en oeuvre les mécanismes de l'invention. La commande M comprend ensuite au moins un objet, objetl, objet2, objet3... Ces objets permettent de préciser les données qui doivent être ajoutées au sein de la base de données DB. Ils peuvent comporter un type et une liste de champs associée à ce type. Une syntaxe possible est par exemple sous la forme suivante : Type=(champsl, champs2, champs3...) Le type permet d'identifier une table dans la base de données DB. Les champs correspondent aux champs (ou colonne) de cette table. Un champ de la commande peut contenir le nom du champ de la table et soit une valeur, soit un filtre. Un champ peut donc selon une des formes suivantes : Nom champ=valeur Nom champ,[filtre] Les crochés droits peuvent ainsi permettre d'indiquer qu'on a affaire à un filtre et non à une valeur. Un filtre permet sélectionner un ou plusieurs enregistrements dans la base de données DB.Such a command can for example have the form: Command adds objetl, object2, objet3 ... The keyword "command" indicates that it is a command addressed to the device D. 852-FR- 014146-patentapplication-final 9 The keyword "add" indicates that this is a command to add data to the DB relational database. It allows to implement the mechanisms of the invention. The command M then comprises at least one object, objectl, object2, object3 ... These objects make it possible to specify the data that must be added within the database DB. They can have a type and a list of fields associated with this type. A possible syntax is for example in the following form: Type = (fields1, fields2, fields3 ...) The type is used to identify a table in the DB database. The fields correspond to the fields (or column) of this table. A field in the command can contain the name of the table field and either a value or a filter. A field can therefore have one of the following forms: Name field = value Name field, [filter] The right sides can thus make it possible to indicate that one is dealing with a filter and not with a value. A filter allows you to select one or more records in the DB database.

Par exemple, le champ suivant equipement,[nom=node*] signifie que l'on souhaite sélectionner l'ensemble des équipements dont le champ « nom » a une valeur commençant la chaîne de caractères « node ».For example, the field next to equipment, [name = node *] means that one wishes to select all the equipment whose field "name" has a value starting the string "node".

La figure 3 montre un exemple de structure de la base de données DB, contenant 7 tables, Ti, T2, T3, T4, T5, T6, T7. Chaque table est identifiée par un nom (indiqué dans la zone grisée en haut de chaque table) et comporte plusieurs champs (ou lignes, indiquées au-dessous). Des symboles en forme de clés indiquent les clés pour chaque 852-FR-014146-patentapplication-final 10 table. Les tables sont liées entre elle de façon classique en soi dans une base de données relationnelle. Dans le cadre de cet exemple, on suppose que la table « Type » comporte déjà les enregistrements suivants : TypeAvion Capacité IdConstructeur A340 200 2 A320 400 2 B747 500 1 B787 250 1 On suppose également que la table « Constructeur » comporte également les enregistrements correspondant aux clés primaires 1 et 2 (respectivement avec pour valeur de NomConstructeur, Airbus et Boeing). On suppose également que l'on souhaite créer un nouvel aéroport, « Strasbourg Entzheim », lui assigner les avions de la série A300 (c'est-à- dire A320, A340...), et lui assigner deux vols, un en provenance de Paris et un à destination de Paris. Une commande possible peut être : Commande ajouter aeroport=(nom=SXB, NomVilleDesservie=StrabourgEntzheim), avion,(avion,[typeAvion=A31), vol=(AéroportDépart=SXB, heureDépart=1230, heureArrivée=1500, AeroportArrivee=ORY), vol=(AéroportDépart=ORY, heureDépart=1630, heureArrivée=1800, aeroportArrivée=SXB) Cette commande comporte donc un premier objet concernant le type « Aéroport ». Ce type correspond à la table « Aéroport » et il est associé à la liste de champs placés entre parenthèses. Dans ce premier objet, deux champs sont présents qui contiennent un nom de champs et une valeur. Le dispositif D peut vérifier s'il manque des champs obligatoires pour le type / table « Aéroport ». En effet, le dispositif D peut traiter la 852-FR-014146-patentapplication-final 11 commande M en fonction de la structure de la base de données relationnelle. Selon l'invention, en effet, le dispositif maintient une connaissance de la structure de la base DB afin de pouvoir interpréter les commandes M sans que celles-ci (et donc l'utilisateur M) ait besoin de les faire correspondre exactement à cette structure : le dispositif permet donc de faire une médiation intelligente afin de « masquer » la structure de la base. Ce n'est pas le cas ici : tous les champs sont bien présents. Si un champ obligatoire était manquant, le dispositif peut être prévu pour réutiliser une affectation d'une valeur à un champ d'un autre objet pour ce champ. Selon une mise en oeuvre, le dispositif va rechercher dans les objets précédents au sein de la commande M si ce champ a déjà été renseigné (par une valeur ou par un filtre). Autrement dit, chaque affectation d'une valeur ou d'un filtre à un champ donné est conservée en mémoire par le dispositif D afin de pouvoir être utilisée de nouveau pour un objet suivant. Ce mécanisme permet aux utilisateurs U de ne pas avoir à indiquer plusieurs fois une même donnée, contrairement à ce qui est nécessaire lorsqu'on doit écrire des requêtes en langage SQL. Cet avantage apparaîtra plus clairement plus loin. Le premier objet peut générer une requête en langage SQL suivante : INSERT INTO aeroport (NomAéroport, NomVilleDesservie) SELECT ' S XB ' , ' S trasb ourgEntzheim' Le second objet, « avion,(avion4typeAvion,A31) » permet de peupler la table « Avion ». Un filtre a été précisé pour le champ « typeAvion » afin de sélectionner l'ensemble des types d'avions dont le nom de type commence par la chaîne de caractères « A3 ». Par conséquent, deux « avions » sont 852-FR-014146-patentapplication-final 12 ajoutés dans la table « Avion », un pour le type « A320 » et un pour le type « A340 ». Le dispositif vérifie si les champs obligatoires sont tous présent dans l'objet correspondant. Ici, le champ « BaseAéroport » est absent. Toutefois, l'aéroport a été mentionné dans l'objet précédent. Selon le mécanisme précédemment décrit, cette assignation peut être ici réutilisée afin d'affecter la valeur « SXB » au champ « BaseAéroport ». Une requête en langage SQL de la forme suivante pour être alors générée : INSERT INTO avion (TypeAvion, BaseAeroport) SELECT tO.TypeAvion, '56' FROM type tO WHERE typeAvion='A3%%" Comme précédemment, le dispositif D peut utiliser sa connaissance de la structure de la base de données DB afin générer une telle requête.Figure 3 shows an example structure of the database DB, containing 7 tables, T1, T2, T3, T4, T5, T6, T7. Each table is identified by a name (indicated in the shaded area at the top of each table) and has several fields (or lines, shown below). Key-shaped symbols indicate the keys for each table-852-EN-014146-patentapplication-final. The tables are linked together in a conventional manner in a relational database. For the purpose of this example, it is assumed that the "Type" table already contains the following records: Aircraft Type Capability Id A340 200 2 A320 400 2 B747 500 1 B787 250 1 It is also assumed that the "Constructor" table also contains the corresponding records. primary keys 1 and 2 (respectively with the value of BuilderName, Airbus and Boeing). It is also assumed that we want to create a new airport, "Strasbourg Entzheim", assign it A300 series aircraft (ie A320, A340 ...), and assign two flights, one in from Paris and one to Paris. A possible command can be: Command add airport = (name = SXB, ServicedCityName = StrabourgEntzheim), plane, (plane, [airplane type = A31), flight = (Departing airport = SXB, departureTime = 1230, arrivalTime = 1500, AirportArrivee = ORY) , flight = (Departing airport = ORY, departureTime = 1630, arrivalTime = 1800, arrivalPort = SXB) This command therefore contains a first object concerning the type "Airport". This type corresponds to the "Airport" table and is associated with the list of fields enclosed in parentheses. In this first object, two fields are present that contain a field name and a value. The device D can check if there are missing mandatory fields for the type / table "Airport". Indeed, the device D can process the 852-EN-014146-patentapplication-final 11 command M according to the structure of the relational database. According to the invention, the device maintains a knowledge of the structure of the database DB in order to be able to interpret the commands M without these (and therefore the user M) needs to make them correspond exactly to this structure : the device allows to make an intelligent mediation to "hide" the structure of the database. This is not the case here: all fields are present. If a required field was missing, the device may be provided to reuse an assignment of a value to a field of another object for that field. According to one implementation, the device will search in the previous objects within the command M if this field has already been filled (by a value or by a filter). In other words, each assignment of a value or a filter to a given field is stored in memory by the device D so that it can be used again for a next object. This mechanism allows U users to not have to specify the same data multiple times, contrary to what is necessary when writing queries in SQL. This advantage will appear more clearly later. The first object can generate a query in the following SQL language: INSERT INTO airport (AirportName, ServicedCityName) SELECT 'S XB', 'S trasb ourgEntzheim' The second object, 'airplane, (airplane4typeAplane, A31)' populates the table ' Plane ". A filter has been specified for the "aircraftType" field to select all types of aircraft whose type name begins with the string "A3". As a result, two "aircraft" are added to the "Airplane" table, one for the "A320" type and one for the "A340" type. The device checks whether the required fields are all present in the corresponding object. Here, the "BaseAirport" field is missing. However, the airport was mentioned in the previous object. According to the mechanism previously described, this assignment can be reused here in order to assign the value "SXB" to the "Base Airport" field. An SQL query of the following form is then generated: INSERT INTO plane (AircraftType, BaseAeroport) SELECT tO.TypeAvion, '56' FROM type tO WHERE airplaneType = 'A3 %%' As previously, device D can use its knowledge of the structure of the database DB to generate such a request.

Cette connaissance peut être partiellement préalable à la réception de la commande M (notamment sur la structure topologique) mais aussi réactualisée et complétée lors de la réception de chaque commande M (notamment sur le contenu de la base DB). Ainsi, le dispositif génère automatiquement une requête SQL prévue pour rechercher les informations et créer la liaison avec la table « Type ». Ceci est effectué de façon transparente pour l'utilisateur U. De même, la clé étrangère « 56 » correspondant au champ « BaseAeroport » est automatiquement assignée par le dispositif D. Elle correspond à la clé primaire de l'enregistrement associé à l'aéroport de nom « SXB ». Cette clé peut être retrouvée par une requête simple dans la base DB ou bien elle a été mémorisé lors de l'ajout de l'aéroport « SXB » dans la base. Les deux objets suivants concernent le type « Vol ». Deux vols sont ajoutés et le dispositif D peut générer deux requêtes en langage SQL : 852-FR-014146-patentapplication-final 13 INSERT INTO vol (aeroportDepart, AerorportArrivee, HeureDepart, HeureArrivee) SELECT `SXB', 'ORY"1230', '1500'. INSERT INTO vol (aeroportDepart, AerorportArrivee, HeureDepart, HeureArrivee) SELECT 'ORY, `SXB"1800', '1930' Dans le cas où une requête omet un champ obligatoire mais que celui-ci ne peut pas être retrouvé sur la base des objets précédents de la requête, il est possible de générer un message d'erreur pour l'utilisateur U. Le dispositif D peut alors interrompre le traitement ou bien inviter l'utilisateur à indiquer la valeur (ou le filtre) pour le champ manquant et, une fois celui-ci renseignée, poursuivre le traitement. En outre, il peut être prévu de mettre en oeuvre un système d'acronyme afin de faciliter encore davantage l'utilisation de l'invention.This knowledge may be partially prior to the receipt of the command M (in particular on the topological structure) but also updated and completed upon receipt of each command M (including the content of the database DB). Thus, the device automatically generates a predicted SQL query to search for information and link to the "Type" table. This is done transparently for the user U. Similarly, the foreign key "56" corresponding to the field "BaseAeroport" is automatically assigned by the device D. It corresponds to the primary key of the registration associated with the airport name "SXB". This key can be found by a simple request in the database DB or it was stored when adding the airport "SXB" in the database. The following two objects relate to the "Flight" type. Two flights are added and the device D can generate two requests in SQL language: 852-EN-014146-patentapplication-final 13 INSERT INTO flight (airportpart, AerorportArrivee, startTime, hourArrivee) SELECT `SXB ',' ORY '1230', ' 1500 'INSERT INTO flight (airportDepart, AerorportArrivee, StartTime, HourArrivee) SELECT' ORY, `SXB '1800', '1930' In case a request omits a mandatory field but it can not be found on the base of the previous objects of the request, it is possible to generate an error message for the user U. The device D can then interrupt the processing or invite the user to indicate the value (or the filter) for the field missing and, once informed, continue the treatment. In addition, it may be provided to implement an acronym system to further facilitate the use of the invention.

Les fichiers de configuration CF peuvent en effet contenir une table mettant en correspondance un acronyme avec une table ou un champ de la base de données. La commande C peut alors faire mention des acronymes à la place des noms de tables ou de champs, et le dispositif D peut utiliser la table de correspondance contenue dans les fichiers de configuration CF pour générer les requêtes SQL avec les noms correspondants à ces acronymes. Ainsi, le dispositif D peut permettre de proposer une vue plus abstraite de la base à l'utilisateur U : les noms sont dépendants du concepteur de la base de données DB et ne sont pas forcément très parlants et pratiques pour l'utilisateur U. Celui-ci peut définir dans un fichier de configuration ces acronymes notamment pour les tables et champs qu'il utilise le plus souvent. Il peut ainsi écrire des commandes M plus rapidement, plus efficacement et avec bien moins de risques d'erreurs. Par conséquent, un type au sein d'une commande M correspond à une table de la base de données mais cette correspondance peut être 852-FR-014146-patentapplication-final 14 indirecte et passer par l'utilisation d'une table de correspondance ou par d'autres mécanismes d'indirection. Il en va de même pour la correspondance entre les champs associés aux types dans la commande M et les champs des tables de la base de données DB.The configuration files CF can indeed contain a table mapping an acronym to a table or field in the database. The command C can then mention the acronyms instead of the names of tables or fields, and the device D can use the correspondence table contained in the configuration files CF to generate the SQL queries with the names corresponding to these acronyms. Thus, the device D may make it possible to propose a more abstract view of the database to the user U: the names are dependent on the designer of the database DB and are not necessarily very meaningful and practical for the user U. It can define in a configuration file these acronyms especially for the tables and fields it uses most often. It can write M commands faster, more efficiently and with much less chance of errors. Consequently, a type within an M command corresponds to a table of the database but this correspondence can be indirect 852-EN-014146-patentapplication-final 14 and go through the use of a correspondence table or by other mechanisms of indirection. The same goes for the correspondence between the fields associated with the types in the command M and the fields of the tables of the database DB.

Un second mode de réalisation de l'invention consiste à faire usage de fichiers de configuration CF préalablement élaborées d'une façon particulière pour interpréter les commandes M et générer les commandes en langage SQL, Rq.A second embodiment of the invention consists in making use of configuration files CF previously prepared in a particular way for interpreting the commands M and generating the commands in the SQL language, Rq.

Notamment, ces fichiers de configuration peuvent être utilisés pour permettre de décider d'un comportement à adopter en cas d'absence d'affectation d'une valeur à un champ pour un objet donné. Il peut alors être indiqué au sein de ces fichiers de configuration CF de demander à l'utilisateur d'indiquer la valeur pour le champ manquant, ou bien une méthode pour déterminer automatiquement cette valeur. Selon un mode de réalisation, lorsqu'un champ d'un objet n'est pas renseigné dans la commande et que ce champ est toutefois obligatoire, afin de ne pas introduire d'incohérence dans la base de données DB, le dispositif D peut être prévu pour - réutiliser une affectation d'une valeur dans un autre objet pour ce champ, ainsi qu'il a été décrit précédemment. Utiliser les indications fournies par les fichiers de configuration pour déterminer cette valeur. Ces deux options peuvent être mises en oeuvre en séquence par le dispositif D de sorte que les indications des fichiers de configuration ne sont utilisés qu'en l'absence de la fourniture d'une valeur de ce champ dans l'ensemble des objets de la commande M. Les indications fournies par les fichiers de configuration CF permettent de préciser un mécanisme pour déterminer ladite valeur. 852-FR-014146-patentapplication-final 15 Ces indications peuvent être déterminées à partir d'autres fichiers de configuration et de la structure de la base de données DB. Le dispositif D peut donc avoir deux fonctions distinctes : la génération de ces indications et la génération des requêtes SQL. Ces deux fonctions peuvent être mises en oeuvre par deux modules fonctionnels du dispositif D, ainsi qu'indiqué sur la figure 4. Ces deux modules peuvent être des programmes d'ordinateurs distincts ou bien deux modules d'un même programme d'ordinateur. Un module de génération MI permet de générer les indications dans un (ou plusieurs) premiers fichiers de configuration CFI à partir d'un (ou plusieurs) seconds de fichiers de configuration CFO et de la structure de la base de données DB. La figure 5 montre un exemple de structure de la base de données DB, contenant 5 tables, Ti, T2, T3, T4, T5. Cet exemple est simpliste puisque ne comportant qu'un petit nombre de tables mais il permet de comprendre clairement les mécanismes mis en jeu par l'invention. Il peut s'appliquer à une base de données pour un commerce d'articles. Chaque article appartient à une catégorie d'articles (par exemple une marque, une série...). La base de données permet de stocker également les commandes d'articles. Une commande met en correspondance un article et une personne : la table « Correspondance » comporte donc des clés étrangères de la table « Article » et de la table « Personne », ainsi qu'une quantité et qu'un prix. Enfin, une table « Transaction » est ajoutée ; une transaction peut référencer plusieurs commandes d'articles. Un premier fichier de configuration CFO peut être tel que ci-dessous :30 852-FR-014146-patentapplication-final 16 Personne.CommandeArticle.recherche.type=intelligente Personne.CommandeArticle.recherche.valeur=identique(Personne.nom=Def ault) Personne.défaut=nom:Nom,prenom:Prenom,login:Nom- Prenom,mot pas s:0000 CommandeArticle.Articlesecherche.type=intelligente CommandeArticle.Articlesecherche.valeur=plus présent(CommandeArticle .id article) CommandeArticle.Transaction.recherche.type=intelligente CommandeArticle.Transaction.recherche.valeur=évalue(id article, quantité) CommandeArticle.Personne.recherche.type=intelligente CommandeArticle.Personne.recherche.valeur=identique(Personne.nom=No m) CommandeArticle.défaut=quantite:0,prix commande:0 Trans action.CommandeArticle.recherche.type=intelligente Trans action.CommandeArticle.recherche.v aleur=plus récente() Trans action.défaut=prix transaction:100,date:01/01/2001 Article.Catégorie.recherche.type=intelligente Article.Catégorie.recherche.valeur=identique(nom catégorie=Défaut) Article.défaut=nom article:Article,prix unitaire:100,description:aucune Catégorie.Article.recherche.type=intelligente Catégorie.Article.recherche.valeur=identique Catégorie.nom catégorie=test) Catégorie.défaut=nom catégorie=test,description: aucune,unite: aucune Ce fichier de configuration CFO peut être écrit une fois pour toute par un utilisateur de la base données, mais peut être modifié facilement à tout moment. 11 s'agit d'un avantage de l'invention de pouvoir facilement modifier ce fichier de configuration sans avoir à toucher au contenu ou à la structure de la base de données DB. 852-FR-014146-patentapplication-final 17 Ce fichier de configuration CFO permet notamment de préciser au moyen d'indications le mécanisme à mettre en oeuvre pour déterminer une valeur de champs manquante. Ces indications sont introduites, dans cet exemple d'implémentation, selon la grammaire suivante : Table.champ.recherche.X=valeur Pour chaque table, on peut ainsi indiquer un comportement distinct en fonction des champs. Le mot-clé « recherche » introduit les indications en question. Le caractère «X » indique que plusieurs indications sont possibles.In particular, these configuration files can be used to make it possible to decide on a behavior to adopt in case of absence of assignment of a value to a field for a given object. It can then be indicated within these CF configuration files to ask the user to indicate the value for the missing field, or a method to automatically determine this value. According to one embodiment, when a field of an object is not filled in the command and this field is however mandatory, so as not to introduce inconsistency in the database DB, the device D can be intended to - reuse an assignment of a value in another object for that field, as previously described. Use the indications provided by the configuration files to determine this value. These two options can be implemented in sequence by the device D so that the indications of the configuration files are used only in the absence of the supply of a value of this field in the set of objects of the command M. The indications provided by the configuration files CF make it possible to specify a mechanism for determining said value. 852-EN-014146-patentapplication-final 15 These indications can be determined from other configuration files and the structure of the DB database. The device D can therefore have two distinct functions: the generation of these indications and the generation of the SQL queries. These two functions can be implemented by two functional modules of the device D, as indicated in FIG. 4. These two modules can be separate computer programs or two modules of the same computer program. An MI generation module is used to generate the indications in one (or more) first CFI configuration files from one (or more) seconds of CFO configuration files and the structure of the DB database. Figure 5 shows an example structure of the database DB, containing 5 tables, T1, T2, T3, T4, T5. This example is simplistic since it contains only a small number of tables but it makes it possible to clearly understand the mechanisms involved in the invention. It can apply to a database for an article trade. Each article belongs to a category of articles (for example a brand, a series ...). The database also stores item orders. A command maps an article to a person: the "Correspondence" table contains foreign keys from the "Article" table and the "Person" table, as well as a quantity and a price. Finally, a "Transaction" table is added; a transaction can reference multiple item orders. A first CFO configuration file can be as follows: 30 852-EN-014146-patentapplication-final 16 Person.CommandArticle.research.type = intelligent Person.CommitArticle.research.value = same (Person.name = Def ault ) Person.default = name: Lastname, firstname: Firstname, login: Lastname- Firstname, lastname: 0000 ArticleCommand.ArticlesSearching.type = smart OrderArticle.Articlesresearch.value = no longer present (ItemControl.id article) ItemCommand.Transaction.research .type = intelligent ArticleOrder.Transaction.research.value = evaluates (item ID, quantity) ItemControl.No.customer.research.type = smart ItemControl.No.customer.research.value = same (Person.name = No m) ItemControl.default = quantity : 0, price quote: 0 Transaction.CommitArticle.research.type = smart Transaction.CommitArticle.research.value = most recent () Trans action.default = transaction price: 100, date: 01/01/2001 Article. Category.Search.Type = Smart Article.Category. search.value = identical (category name = Default) Article.default = article name: Article, price: 100, description: none Category.Article.research.type = intelligent Category.Article.research.value = identical Category.name category = test) Category.default = name category = test, description: none, unit: none This CFO configuration file can be written once and for all by a database user, but can be modified easily at any time. It is an advantage of the invention to be able to easily modify this configuration file without having to touch the content or the structure of the DB database. 852-EN-014146-patentapplication-final 17 This CFO configuration file makes it possible to specify by means of indications the mechanism to be used to determine a missing field value. These indications are introduced, in this example of implementation, according to the following grammar: Table.champ.recherche.X = value For each table, one can thus indicate a distinct behavior according to the fields. The keyword "search" introduces the indications in question. The character "X" indicates that several indications are possible.

Dans l'exemple ci-dessus, ces indications sont « type » et « valeur ». L'indication « Type » indique le type de comportement à adopter pour rechercher la valeur. Elle permet de préciser s'il s'agit d'interroger l'utilisateur en mode interactif ou bien, comme ici avec le mot-clé « intelligente », s'il s'agit de déterminer automatiquement cette valeur, ou bien d'autres comportements encore. L'indication « Valeur » permet de préciser comment la valeur doit être déterminée. Elle n'est pas utile dans le mode « interactif » mais permet, dans le mode « intelligent » d'indiquer plusieurs possibilités pour déterminer automatiquement la valeur.In the example above, these indications are "type" and "value". The "Type" indication indicates the type of behavior to be used to search for the value. It allows to specify whether to interrogate the user in interactive mode or, as here with the keyword "smart", whether to automatically determine this value, or other behaviors again. The indication "Value" makes it possible to specify how the value must be determined. It is not useful in the "interactive" mode but allows, in the "intelligent" mode to indicate several possibilities to automatically determine the value.

Par exemple, des mots-clés représentants des fonctions peuvent être intégrés dans la grammaire afin de permettre d'indiquer des comportements riches. Par exemples : « identique(diltre>) » permet de sélectionner un élément de la table selon le filtre donné. « plus présent(<colonne>) » : sélectionne l'élément le plus présent dans la colonne donnée « utilise existant(<table>, <filtre>) » : utilise un élément déjà existant dans la table donnée en entrée 852-FR-014146-patentapplication-final 18 « copie(<table>, <filtre>, <différence>) » :copie d'un élément existant dans la table en changeant quelque chose conformément à ce qui a été donné dans <différence> « disponible(<table>, <filtre>) » : liste les éléments d'une table avec un filtre si besoin (mettre à NULL si non nécessaire) Il est également possible d'indiquer des valeurs par défaut pour la création d'un nouvel enregistrement d'une table selon la grammaire : Table.defaut=valeurl, valeur2...For example, keyword representatives of functions can be embedded in the grammar to help indicate rich behaviors. For example: "identical (diltre>)" allows to select an element of the table according to the given filter. "No longer present (<column>)": selects the most present element in the given column "uses existing (<table>, <filter>)": uses an already existing element in the input table 852-EN- 014146-patentapplication-final 18 "copy (<table>, <filter>, <difference>)": copy of an existing item into the table by changing something according to what has been given in <difference> "available ( <table>, <filter>): list the elements of a table with a filter if necessary (set to NULL if not necessary) It is also possible to specify default values for the creation of a new record. a table according to the grammar: Table.defaut = valeurl, valeur2 ...

Cette valeur par défaut peut être utilisée si le comportement choisi est un mode « par défaut », ou bien si la recherche déclenchée par le comportement « intelligent » n' aboutit pas. Ce premier fichier de configuration CFO peut être traité par le module MI du dispositif D. Ce module MI va générer des indications interprétables par le module de traitement de commande MR du dispositif D. Ces indications interprétables sont insérées dans des seconds fichiers de configuration CFI. Ceux-ci peuvent par exemple être conformes à une grammaire XML (« eXtensible Markup Language »), standardisé par le W3C (World Wide Web Consortium). La génération de ces indications est effectuée également à partir de la connaissance de la structure de la base de données DB que possède (ou acquiert à la demande) le module de génération MI du dispositif D. Il peut être généré un fichier (ou une partie de fichier) de configuration CFI pour chaque table de la base de données, ou tout du moins pour chaque table « principale » de la base de données : l'utilisateur peut indiquer les tables pour lesquelles il souhaite que soit généré un fichier de configuration CFI. Pour une table donnée, le module MI récupère les champs de la table à partir de sa connaissance de la base de données DB et utilise le premier 852-FR-014146-patentapplication-final 19 fichier de configuration CFO pour générer des lignes (en XLM) du second fichier de configuration CFI. Puis, de façon récursive, il traite de la même façon, les tables de la base qui sont liées à cette première table.This default value can be used if the chosen behavior is a "default" mode, or if the search triggered by the "smart" behavior does not succeed. This first configuration file CFO can be processed by the module MI of the device D. This module MI will generate interpretable indications by the command processing module MR of the device D. These interpretable indications are inserted into second CFI configuration files. For example, they can conform to an XML ("eXtensible Markup Language") grammar, standardized by the W3C (World Wide Web Consortium). The generation of these indications is carried out also from the knowledge of the structure of the DB database that owns (or acquires on demand) the generation module MI of the device D. It can be generated a file (or a part of it). CFI configuration file) for each table in the database, or at least for each "main" table in the database: the user can specify the tables for which he wants to generate a CFI configuration file . For a given table, the MI retrieves the fields from the table from its knowledge of the DB database and uses the first 852-EN-014146-patentapplication-final 19 CFO configuration file to generate rows (in XLM ) of the second CFI configuration file. Then, recursively, it processes in the same way, the tables of the base which are related to this first table.

La grammaire du fichier généré peut par exemple être alors sous la forme suivante : <table 1 occurrence,"1"> <table2 obligatoire," non" occurrence," 1 " fk," table2 id" pk, " id" sortie="nom"> <interactif>A quel table2 voulez-vous lier ce tablel ?</interactif> <recherche type="intelligente">le plus présent</recherche> <disponible>disponible(<table>,<filtre>)</disponible> <défaut>colonnel,xxx,colonne2=yyy,colonne3=zzz</défaut> </table2> </tablel> Le terme « occurrence » représente le nombre d'éléments pouvant être ajoutés à la table (ce chiffre est soit 1 si c'est la table courante qui contient la clé qui pointe vers une autre table, soit multiple si c'est une clé d'une autre table qui pointe sur la table courante) Le terme « obligatoire » indique si le champ est obligatoire ? (s'il ne l'est pas, alors il ne sera pas ajouté s'il n'y a pas de méthode de recherche précisé). Le terme « fk » est la clé étrangère vers laquelle la table initiale pointe Le terme « pk » est la clé primaire de la table pointée Le terme « sortie » est la colonne à afficher, s'il faut afficher une colonne du nouvel élément ajouté (il peut y en avoir plusieurs). 852-FR-014146-patentapplication-final 20 Le terme « interactif » indique la question à poser à l'utilisateur si l'on est dans le mode interactif. Le terme « recherche » indique la méthode de recherche du champ à ajouter (non utilisé en cas de mode interactif).The grammar of the generated file can for example be in the following form: <table 1 occurrence, "1"> <table2 mandatory, "no" occurrence, "1" fk, "table2 id" pk, "id" output = " name "> <interactive> Which table2 do you want to link to this table? </ interactive> <type search =" smart "> the most present </ search> <available> available (<table>, <filter>) </ available> <default> colonnel, xxx, column2 = yyy, column3 = zzz </ default> </ table2> </ tablel> The term "occurrence" represents the number of items that can be added to the table (this number is either 1 if the current table contains the key that points to another table, ie multiple if it is a key from another table that points to the current table) The term "mandatory" indicates if the field is mandatory ? (If it is not, then it will not be added if there is no specified search method). The term "fk" is the foreign key to which the initial table points The term "pk" is the primary key of the pointed table The term "output" is the column to be displayed, if it is necessary to display a column of the new added element (There may be several) 852-EN-014146-patentapplication-final 20 The term "interactive" indicates the question to ask the user if one is in the interactive mode. The term "search" indicates the search method of the field to be added (not used in interactive mode).

Le terme « disponible » indique les éléments montrés à l'utilisateur en cas de mode interactif pour l'aider à connaître les éléments disponibles (par défaut l'algorithme recherche le plus présent dans la table). Enfin le terme « défaut » indique une valeur par défaut des colonnes (si applicable) Ainsi, pour l'exemple donné ci-dessous, un fichier de configuration CFI en langage XML peut être : <CommandeArticle occurrence=1> <Article obligatoire=oui occurrence=1 fk=id article pk=id article sortie=nom article> <interactif>A quel Article voulez-vous lier CommandeArticle ?</interactif> <recherche type=intelligente>plus présent(CommandeArticle.id article ) </recherche> <disponible>disponible(Article, NULL)</disponible> </Article> <Transaction obligatoire=oui occurrence=1 fk=id transaction pk=id transaction sortie=nom article> <interactif>A quel Transaction voulez-vous lier CommandeArticle ?</interactif> <recherche type=intelligente>évalue(id article, quantité)</recherche> <disponible>disponible(Transaction, NULL)</disponible> 852-FR-014146-patentapplication-final 21 </Transaction> <Personne obligatoire=oui occurrence=1 fk=id personne pk=id_ personne sortie=nom article> <interactif>A quel Personne voulez-vous lier CommandeArticle ?</interactif> <recherche type=intelligente>identique(Personne.nom,Nom)</recherc he> <disponible>disponible(Personne, NULL)</disponible> </Personne> <défaut>quantité=0,prix commande=0</défaut> </CommandeArticle> Ce fichier de configuration CFI peut ensuite être utilisé pour permettre au module MR de gérer les commandes M et générer les requêtes Rq en langage SQL correspondantes. La grammaire de la commande M peut prendre plusieurs formes, mais est distincte de celle du langage SQL. Elle peut être similaire à celle décrite précédemment. L'exemple ci- dessous donne une autre mise en oeuvre de cette grammaire. Dans cet exemple, la commande M est de la forme : Ajouter{ Personne (nom,'Dupont', prénom=' Martin', login,'DupontMartin', mot passe,'0000') CommandeArticle(quantité=' 1') 1 Cette commande M vise à ajouter une personne (c'est-à-dire un client) dans la base de données et, dans le même temps, une commande d'article. Il s'agit-là d'une action typique pour une activité commerciale et le fait de 852-FR-014146-patentapplication-final 22 permettre un ajout simple d'une commande concernant un nouveau client en une seule commande confère un avantage substantiel au mécanisme de l'invention. La commande M comporte deux objets : Un objet introduit par le type « Personne » et avec une liste de champs associés ; Un objet introduit par le type « CommandeArticle » et avec un unique champ associé, « quantité=1 ».The term "available" indicates the elements shown to the user in interactive mode to help him know the available elements (by default, the algorithm searches the most present in the table). Finally, the term "default" indicates a default value of the columns (if applicable). Thus, for the example given below, a CFI configuration file in XML language can be: <ArticleCommand occurrence = 1> <Mandatory article = yes instance = 1 fk = article id pk = article ID output = article name> <interactive> To which Article do you want to link ArticleOrder? </ interactive> <type search = intelligent> no longer present (ArticleOrder.id article) </ search> <available> available (Article, NULL) </ available> </ Article> <Required transaction = yes occurrence = 1 fk = transaction id pk = transaction id output = article name> <interactive> To which Transaction do you want to bind ArticleOrder? </ interactive> <type search = intelligent> evaluates (article ID, quantity) </ search> <available> available (Transaction, NULL) </ available> 852-EN-014146-patentapplication-final 21 </ Transaction> <Person mandatory = yes occurrence = 1 fk = id person pk = person_id output = article name> <interactive> At which Pe Do you want to bind ArticleOrder? </ interactive> <type search = intelligent> same (Person.name, Name) </ search> available <available> (Person, NULL) </ available> </ Person> <default> quantity = 0, order price = 0 </ default> </ ArticleOrder> This CFI configuration file can then be used to allow the MR module to handle the M commands and generate the corresponding SQL Rq queries. The grammar of the M command can take many forms, but is distinct from that of the SQL language. It may be similar to that described above. The example below gives another implementation of this grammar. In this example, the M command is of the form: Add {Person (name, 'Dupont', first name = 'Martin', login, 'DupontMartin', password, '0000') ItemCommand (quantity = '1') 1 This M command aims to add a person (that is, a client) to the database and, at the same time, an article order. This is a typical action for a commercial activity and the fact of allowing a simple addition of an order for a new customer in a single order confers a substantial advantage on the customer. mechanism of the invention. The M command has two objects: An object introduced by the "Person" type and with a list of associated fields; An object introduced by the type "ArticleControl" and with a single associated field, "quantity = 1".

Comme précédemment expliqué, ces champs d'objets correspondent directement ou indirectement à des champs des tables correspondant (directement ou indirectement aussi) aux types. Le premier objet est d'abord analyser par le module MR du dispositif D. Ce premier objet vise à ajouter un nouveau client dans la base et les champs passés en paramètres renseignent tous les champs obligatoires de la table « Personne ». Le module de traitement de commandes MR peut donc aisément générer la requête Rq en langage SQL pour ajouter ce client.As previously explained, these object fields correspond directly or indirectly to fields of the corresponding tables (directly or indirectly also) to the types. The first object is first analyzed by the MR module of the device D. This first object aims to add a new client in the database and the fields passed in parameters fill in all the mandatory fields of the "Person" table. The command processing module MR can therefore easily generate the query Rq in SQL language to add this client.

Le second objet vise à ajouter une nouvelle commande. Le module MR détecte que certains champs obligatoire de la table « CommandeArticle » ne sont pas renseignés. Seul le champ « quantité » a été renseigné, alors que la table doit comporter l'identifiant (ou clé) d'une personne (un client), d'un article, et d'une transaction, ainsi que le prix.The second object is to add a new command. The MR module detects that some mandatory fields in the "ItemControl" table are not filled. Only the "quantity" field has been entered, whereas the table must include the identifier (or key) of a person (a customer), an article, and a transaction, as well as the price.

Comme il a été mentionné plus haut, une valeur manquante de ce champ peut être recherchée dans les autres objets de la commande M, et notamment dans l'objet précédent. Ici, un identifiant (ou clé) de personne a été renseigné par l'objet précédent. Le lien est donc automatiquement effectué par le dispositif D entre le client qui a été ajouté et la commande d'article : la commande 852-FR-014146-patentapplication-final 23 d'article concerne, implicitement, le client qui est ajouté dans la même commande M. Son identifiant est donc utilisé pour renseigner le champ Id personne de la table « CommandeArticle ». Le champ « id article » n'est renseigné dans aucun des objets de la commande M. Le fichier de configuration CFI indique que ce champ est obligatoire (« Article obligatoire=oui ») et un mode intelligent est disponible. Une indication précise que la recherche doit concerner l'article le plus présent : « <recherche type=intelligente> plus présent(CommandeArticle.id article) </recherche> » Le dispositif D peut alors effectuer une recherche pour déterminer l'article le plus vendu à partir de la base de données DB et renseigner le champ « id article » à partir du résultat de cette recherche. De même, le champ « id transaction » n'est renseigné dans aucun des objets de la commande M. Le fichier de configuration CFI indique que ce champ est obligatoire (« Transaction obligatoire=oui ») et un mode intelligent est disponible. Une indication précise que la recherche fait appel à une fonction d'évaluation : <recherche type=intelligente>évalue(id article, quantité)</recherche> Cette fonction d'évaluation consiste à multiplier la quantité par la valeur « Article.prix unitaire », de l'article identifié par la clé « id article ». Le dispositif D crée alors un nouvel enregistrement dans la table « Transaction » avec pour valeurs de champs, le prix de la transaction ainsi évalué, la date courant et un nouvel identifiant. Ce nouvel identifiant est ensuite utiliser pour renseigner le champ « Id transaction » de la table « CommandeArticle ». De la même façon, le champ « prix commande » est obligatoire et il peut être rempli en utilisant l'évaluation préalablement faite pour le champ « prix transaction ». 852-FR-014146-patentapplication-final 24 Ainsi, un minimum de données et d'actions ont été nécessaire pour l'utilisateur U pour entrer des données complexes dans la base de données DB. En outre, l'automatisation de l'évaluation de valeurs ou la réutilisation automatique de valeurs précédemment déterminées permet de minimiser les risques d'erreurs et d'incohérences. Bien entendu, la présente invention n'est pas limitée aux exemples et au mode de réalisation décrits et représentés, mais elle est susceptible de nombreuses variantes accessibles à l'homme de l'art.As mentioned above, a missing value of this field can be found in the other objects of the command M, and in particular in the previous object. Here, an identifier (or key) of person has been filled in by the previous object. The link is thus automatically performed by the device D between the customer that has been added and the article order: the order 852-EN-014146-patentapplication-final 23 article relates, implicitly, the customer who is added in the same command M. Its identifier is used to populate the Person Id field of the "ArticleControl" table. The "article id" field is not filled in any of the M command objects. The CFI configuration file indicates that this field is mandatory ("Required item = yes") and a smart mode is available. An indication that the search should be for the most current article: "<type search = smart> no longer present (ArticleOrder.id article) </ search>" Device D can then perform a search to determine the most sold from the database DB and fill in the field "article id" from the result of this search. Similarly, the field "id transaction" is not filled in any of the objects of the order M. The CFI configuration file indicates that this field is mandatory ("Mandatory transaction = yes") and a smart mode is available. A precise indication that the search uses an evaluation function: <type search = intelligent> evaluates (item ID, quantity) </ search> This evaluation function consists of multiplying the quantity by the value "Article.unit price" ", Of the article identified by the key" id article ". The device D then creates a new record in the "Transaction" table with field values, the price of the transaction thus evaluated, the current date and a new identifier. This new identifier is then used to fill in the "Transaction ID" field of the "ArticleControl" table. In the same way, the field "price order" is obligatory and it can be filled using the evaluation previously made for the field "price transaction". 852-EN-014146-patentapplication-final 24 Thus, a minimum of data and actions were necessary for the user U to enter complex data in the DB database. In addition, automating the evaluation of values or automatic re-use of previously determined values minimizes the risk of errors and inconsistencies. Of course, the present invention is not limited to the examples and to the embodiment described and shown, but it is capable of numerous variants accessible to those skilled in the art.

Claims (10)

REVENDICATIONS1. Procédé d'interrogation d'une base de données relationnelle (DB) consistant à interpréter une commande (M) pour générer un ensemble de requêtes (Rq) en langage SQL destinées à un système de gestion (DBS) de ladite base de données, dans lequel ladite commande est conforme à une grammaire distincte du langage SQL et dans lequel lesdites requêtes sont générées en fonction de la structure de ladite base de données relationnelle.REVENDICATIONS1. A method of querying a relational database (DB) comprising interpreting a command (M) for generating a set of queries (Rq) in SQL for management system (DBS) of said database, in wherein said command is in accordance with a distinct grammar of the SQL language and wherein said requests are generated according to the structure of said relational database. 2. Procédé selon la revendication 1, dans lequel ladite commande est prévue pour ajouter des données au sein de ladite base de données relationnelle (DB) et comporte au moins un objet, ledit au moins un objet comportant un type et une liste de champs associée audit type, ledit type correspondant à une table de ladite base de données et chacun desdits champs correspondant à un champ de ladite table.2. Method according to claim 1, wherein said command is intended to add data within said relational database (DB) and comprises at least one object, said at least one object having a type and a list of associated fields. type audit, said type corresponding to a table of said database and each of said fields corresponding to a field of said table. 3. Procédé selon la revendication 2, dans lequel une affectation d'une valeur à un champ d'un premier objet est automatiquement réutilisée pour un champ d'un second objet, lesdits premier et second objets appartenant audit au moins un objet.The method of claim 2, wherein assigning a value to a field of a first object is automatically reused for a field of a second object, said first and second objects belonging to said at least one object. 4. Procédé selon l'une des revendications 2 ou 3, dans lequel une valeur est affectée à un champ de ladite base de données (DB) en fonction d'indications fournies par des fichiers de configuration (CF), lesdites indications précisant un mécanisme pour déterminer ladite valeur.4. Method according to one of claims 2 or 3, wherein a value is assigned to a field of said database (DB) according to indications provided by configuration files (CF), said indications specifying a mechanism to determine said value. 5. Programme d'ordinateur comprenant des instructions qui, une fois chargées sur un système de traitement de l'information, sont aptes à mettre en oeuvre le procédé selon l'une des revendications 1 à 4.30852-FR-014146-patentapplication-final 265. Computer program comprising instructions which, when loaded onto an information processing system, are able to implement the method according to one of claims 1 to 4.30852-EN-014146-patentapplication-final 26 6. Dispositif (D) pour l'interrogation d'une base de données relationnelle (DB) consistant à interpréter une commande (M) pour générer un ensemble de requêtes (Rq) en langage SQL destinées à un système de gestion (DBS) de ladite base de données, dans lequel ladite commande est conforme à une grammaire distincte du langage SQL et interprétée à l'aide d'un ensemble de fichiers de configuration (CF).6. Device (D) for querying a relational database (DB) consisting of interpreting a command (M) to generate a set of queries (Rq) in SQL for a management system (DBS) of said database, wherein said command conforms to a grammar distinct from the SQL language and interpreted using a set of configuration files (CF). 7. Dispositif selon la revendication 6, disposant d'un module de traitement de commandes (RM) pour recevoir ladite commande (M) prévue pour ajouter des données au sein de ladite base de données relationnelle (DB) et comportant au moins un objet, ledit au moins un objet comportant un type et une liste de champs associée audit type, ledit type correspondant à une table de ladite base de données et chacun desdits champs correspondant à un champ de ladite table.7. Device according to claim 6, having a command processing module (RM) for receiving said command (M) provided for adding data within said relational database (DB) and comprising at least one object, said at least one object having a type and a list of fields associated with said type, said type corresponding to a table of said database and each of said fields corresponding to a field of said table. 8. Dispositif selon la revendication 7, disposant des moyens pour réutiliser automatiquement une affectation d'une valeur à un champ d'un premier objet pour un champ d'un second objet, lesdits premier et second objets appartenant audit au moins un objet.8. Device according to claim 7, having means for automatically reusing an assignment of a value to a field of a first object for a field of a second object, said first and second objects belonging to said at least one object. 9. Dispositif selon l'une des revendications 7 ou 8, dans lequel une valeur est affectée à un champ de ladite base de données (DB) en fonction d'indications fournies par des fichiers de configuration (CF) associés audit dispositif (D), lesdites indications précisant un mécanisme pour déterminer ladite valeur.9. Device according to one of claims 7 or 8, wherein a value is assigned to a field of said database (DB) according to indications provided by configuration files (CF) associated with said device (D) , said indications specifying a mechanism for determining said value. 10. Dispositif selon la revendication précédente, comportant en outre un module de génération (MI) pour traiter un premier fichier de configuration (CFO) desdits fichiers de configuration et générer un second852-FR-014146-patentapplication-final 27 fichier de configuration (CFI) interprétable par ledit module de traitement de commandes (MR).510. Device according to the preceding claim, further comprising a generation module (MI) for processing a first configuration file (CFO) of said configuration files and generate a second852-EN-014146-patentapplication-final 27 configuration file (CFI) ) interpretable by said command processing module (MR) .5
FR1355219A 2013-06-06 2013-06-06 METHOD AND DEVICE FOR FACILITATED INTERROGATION OF A RELATIONAL DATA BASE Active FR3006787B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1355219A FR3006787B1 (en) 2013-06-06 2013-06-06 METHOD AND DEVICE FOR FACILITATED INTERROGATION OF A RELATIONAL DATA BASE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1355219A FR3006787B1 (en) 2013-06-06 2013-06-06 METHOD AND DEVICE FOR FACILITATED INTERROGATION OF A RELATIONAL DATA BASE

Publications (2)

Publication Number Publication Date
FR3006787A1 true FR3006787A1 (en) 2014-12-12
FR3006787B1 FR3006787B1 (en) 2016-11-11

Family

ID=49237311

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1355219A Active FR3006787B1 (en) 2013-06-06 2013-06-06 METHOD AND DEVICE FOR FACILITATED INTERROGATION OF A RELATIONAL DATA BASE

Country Status (1)

Country Link
FR (1) FR3006787B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002031625A2 (en) * 2000-10-13 2002-04-18 Cytaq, Inc. A system and method of translating a universal query language to sql
US20050256889A1 (en) * 2000-05-03 2005-11-17 Microsoft Corporation Methods, apparatus, and data structures for annotating a database design schema and/or indexing annotations
US7904487B2 (en) * 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050256889A1 (en) * 2000-05-03 2005-11-17 Microsoft Corporation Methods, apparatus, and data structures for annotating a database design schema and/or indexing annotations
WO2002031625A2 (en) * 2000-10-13 2002-04-18 Cytaq, Inc. A system and method of translating a universal query language to sql
US7904487B2 (en) * 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JARKE M ET AL: "AN OPTIMIZING PROLOG FRONT-END TO A RELATIONAL QUERY SYSTEM", SIGMOD RECORD, ACM, NEW YORK, NY, US, vol. 14, no. 2, 18 June 1984 (1984-06-18), pages 296 - 306, XP000747235, ISSN: 0163-5808, DOI: 10.1145/971697.602298 *

Also Published As

Publication number Publication date
FR3006787B1 (en) 2016-11-11

Similar Documents

Publication Publication Date Title
Capriolo et al. Programming Hive: Data warehouse and query language for Hadoop
Greenwald et al. Oracle essentials: Oracle database 12c
Lin et al. Scaling big data mining infrastructure: the twitter experience
US7937410B2 (en) Generic archiving of enterprise service oriented architecture data
Macedo et al. Redis cookbook: Practical techniques for fast data manipulation
US20190370290A1 (en) Querying a data source on a network
WO2014186057A1 (en) Supporting combination of flow based etl and entity relationship based etl
US9507838B2 (en) Use of projector and selector component types for ETL map design
US20230306059A1 (en) Tool to build and store a data model and queries for a graph database
WO2018075817A1 (en) Streamlined creation and updating of olap analytic databases
CN110019251A (en) A kind of data processing system, method and apparatus
EP2297681A1 (en) Method for data management in a collaborative service-oriented workshop
US20200012643A1 (en) Method for managing and executing decoders and transformations using linked data and a service layer
Kumar et al. Modern Big Data processing with Hadoop: Expert techniques for architecting end-to-end Big Data solutions to get valuable insights
WO2009147311A1 (en) Method for process management in a collaborative service-oriented workshop
Spaggiari et al. Architecting HBase applications: a guidebook for successful development and design
US20230081067A1 (en) System and method for query acceleration for use with data analytics environments
EP1537497A2 (en) Method for organizing a digital database in a traceable form
Kwietniewski et al. Transforming XML documents as schemas evolve
O'higgins MongoDB and Python: Patterns and processes for the popular document-oriented database
FR3006787A1 (en) METHOD AND DEVICE FOR FACILITATED INTERROGATION OF A RELATIONAL DATA BASE
Li Distributed architecture design of big data platform
US11650841B2 (en) Data mover
Liu et al. Modeling fuzzy relational database in HBase
US11657046B1 (en) Performant dropping of snapshots by converter branch pruning

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11