FR 2813132 A1 20020222 FR 0010662 A 20000816 La présente invention concerne un système d'interface d'accès aux données d'une base de données stockée dans des moyens de stockage correspondants. Plus particulièrement, l'invention se rapporte à un tel système dans lequel les moyens de stockage comportent au moins une zone de stockage des données proprement dites et une zone de stockage d'un dictionnaire de données de définition structurelle de cette base de données, la base de données étant accessible à travers des moyens formant interface d'accès. On sait que de façon générale, la conception d'une telle base de données et d'un système d'interface d'accès aux données de celle-ci, nécessite l'écriture de programmes spécifiques à chaque application. On conçoit cependant que ceci présente un certain nombre d'inconvénients notamment lorsque l'on souhaite modifier la structure de la base de données et/ou son système d'interface d'accès. II convient en effet alors de reprendre dans leur ensemble, les programmes correspondants pour y apporter les modifications souhaitées. On conçoit que ces modifications sont relativement longues et complexes à réaliser même par du personnel qualifié. Pour tenter de résoudre ces problèmes, on a déjà proposé dans le document US-A-5 950 190, des moyens formant interface graphique d'utilisateur à modification automatique et en dynamique pour des applications à des bases de données relationnelles. En fait, dans ce document, on explique qu'il est possible de modifier le dictionnaire de données de définition structurelle de la base de données et qu'à chaque démarrage, l'interface graphique d'utilisateur consulte ce dictionnaire pour s'adapter automatiquement aux modifications apportées à celui-ci. On conçoit que ceci présente l'avantage de permettre une modification relativement simple et rapide de la base de données et de son système d'interface, mais que les modifications que l'on peut apporter au système d'interface sont directement liées aux modifications que l'on peut apporter au dictionnaire de données de définition structurelle de la base de données qui sont en fait relativement restreintes. En effet, le dictionnaire de données de définition structurelle d'une base de données contient essentiellement des informations utilisées par la base de données pour réaliser des opérations internes à cette dernière, telles que par exemple une recherche dans une table ou une action liée à un changement structurel d'une table sur les tables qui lui sont liées. Le dictionnaire de données de définition structurelle ne contient donc que très peu d'informations sur l'interface d'accès à la base. Compte tenu des multiples façons de greffer une interface sur une base de données, imposer un format d'interface particulier revient alors à restreindre le champ d'application de celle-ci. Ce choix structurel pour une base de données est d'ailleurs en accord avec la méthode de développement dite des trois tiers utilisée dans l'industrie informatique, cette méthode consistant à séparer le développement d'une application en trois parties, à savoir les données, la logique et l'interface. Le dictionnaire de données de définition structurelle n'offre donc que très peu d'informations pour engendrer une interface. Ainsi pour représenter une table à travers une interface graphique d'utilisateur, on peut au mieux par exemple énumérer les noms de ses colonnes, ces noms étant disponibles dans le dictionnaire. Si l'on se repose uniquement sur ce dictionnaire, on n'a donc pas les moyens d'affiner cette interface en précisant par exemple les coordonnées d'affichage sur l'écran d'une colonne, sa couleur d'affichage, etc.. Afficher simplement le nom d'une colonne n'est pas non plus très convivial. En effet, très souvent les bases de données imposent des contraintes sur les noms des colonnes. Ainsi par exemple, l'utilisation du caractère "espace" est souvent proscrite, tandis que la taille du nom d'une colonne est limitée à quelques caractères. On conçoit alors qu'avec de telles limitations, il est très difficile de réaliser une interface intelligible et conviviale. De plus, ces modifications ne peuvent être apportées que par un personnel relativement qualifié. Le but de l'invention est donc de résoudre ces problèmes. A cet effet, l'invention a pour objet un système d'interface d'accès aux données d'une base de données stockée dans des moyens de stockage correspondants, comportant au moins une zone de stockage des données proprement dites et une zone de stockage d'un dictionnaire de données de définition structurelle de cette base de données, la base de données étant accessible à travers des moyens formant interface d'accès, caractérisé en ce que les moyens formant interface d'accès sont associés à un dictionnaire de descripteurs de.définition d'interface, accessible à travers des moyens de modification de son contenu pour permettre une programmation de la configuration des moyens formant interface par création, suppression ou modification de descripteurs dans le dictionnaire de descripteurs de définition d'interface et en ce qu'il est prévu des moyens d'actualisation automatique du dictionnaire de données de définition structurelle de la base de données pour adapter celle-ci à la configuration programmée des moyens formant interface d'accès. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant au dessin annexé qui représente un schéma synoptique illustrant la structure générale d'un système selon l'invention. Dans la suite de la description, on va utiliser le terme "interface" à plusieurs reprises pour désigner différents systèmes parmi lesquels des systèmes d'interface d'utilisateur de l'outil de développement, d'interface d'utilisateur de l'application réalisée grâce à cet outil de développement et d'interface logicielle avec la base de données à laquelle se rapporte plus particulièrement l'invention. On a en effet représenté sur cette figure, un système d'interface d'accès aux données d'une base de données stockée dans des moyens de stockage correspondants, désignés par la référence générale 1 sur cette figure, comportant au moins une zone de stockage des données proprement dites, désignée par la référence générale 2, et une zone de stockage d'un dictionnaire de données de définition structurelle de cette base de données, désignée par la référence générale 3, définissant par exemple les relations entre les tables de la base de données, les caractéristiques des colonnes constituant chaque table, etc. La base de données peut par exemple être formée par une base de type ORACLE, SQL Server, etc. De façon classique, cette base de données est accessible à travers des moyens formant interface d'accès désignés par la référence générale 4, formant par exemple une interface graphique d'utilisateur, une interface logicielle, etc. Selon l'invention, ces moyens formant interface d'accès sont associés à un dictionnaire de descripteurs de définition d'interface désigné par la référence générale 5, accessible à travers des moyens de modification de son contenu pour permettre une programmation de la configuration des moyens formant interface par création, suppression ou modification de descripteurs dans le dictionnaire de descripteurs de définition d'interface. De plus, il est prévu des moyens 6 d'actualisation automatique du dictionnaire 3 de données de définition structurelle de la base de données pour adapter celle-ci à la configuration programmée des moyens formant interface d'accès. En fait, les moyens formant interface peuvent par exemple être associés à une interface graphique d'utilisateur désignée par la référence générale 7, utilisée par exemple par la conception des applications. Cette interface graphique permet alors à un utilisateur d'accéder aux moyens formant interface d'accès et plus particulièrement au dictionnaire de des- cripteurs de définition d'interface pour assurer par exemple la programmation de celui-ci. Ces descripteurs sont déjà bien connus dans l'état de la technique, de sorte que l'on ne les décrira pas plus en détail par la suite. On notera simplement que ces descripteurs sont utilisés pour décrire par exemple un objet ou une fonction et sont exploités conformément à une convention préétablie. En fait, ceci permet de définir de façon extrêmement simple, l'interface d'accès aux données de la base de données. Ces moyens formant interface d'accès 4 sont également associés par exemple à des moyens 8 de stockage d'une librairie de descripteurs préétablis, sélectionnables et configurables par exemple par l'utilisateur, grâce à l'interface graphique 7 pour programmer la configuration des moyens formant interface selon une application préfabriquée. On conçoit en effet que des modèles de descripteurs correspondants à des applications prédéfinies, peuvent être préétablis et stockés dans les moyens de stockage 8, pour permettre à un utilisateur par exemple, grâce à l'interface graphique d'utilisateur 7, de sélectionner l'un ou l'autre de ces descripteurs pré- établis afin de créer sa propre application à partir d'un modèle préétabli d'application. II va de soi bien entendu que les moyens 8 de stockage de la librairie de descripteurs préétablis peuvent non seulement stocker des modèles de base de descripteurs, mais également des assemblages préétablis de modèles de base. Dans la présente demande, le terme "descripteur" se rapporte donc à un modèle de base de descripteur ou à un assemblage de descripteurs de base, car un tel assemblage peut également être défini par un descripteur d'assemblage faisant référence à des descripteurs de base. L'utilisation de ces descripteurs permet de simplifier la création ou la modification d'une application, car ceux-ci ne sont pas directement liés au dictionnaire de données de définition structurelle de la base de données. Lorsqu'un utilisateur par exemple souhaite créer ou modifier une base de données, il travaille alors à partir de la librairie de descripteurs préétablis pour constituer un dictionnaire de descripteurs de définition d'interface conforme à ses souhaits. Ceci se fait par création, suppression ou modification de descripteurs dans ce dictionnaire. Des descripteurs ayant déjà été utilisés, peuvent ainsi être repris par exemple par recopie. L'interface utilisateur est alors adaptée automatiquement de façon classique à partir d'informations correspondantes contenues dans les descrip- teurs. On conçoit qu'une telle structure permet à l'utilisateur de gagner beaucoup de temps lors du développement ou de la modification d'une application. Comme cela a été indiqué précédemment, des moyens d'actualisation automatique du dictionnaire 3 de données de définition structurelle de la base de données sont également utilisés pour adapter celle-ci à la configuration programmée des moyens formant interface d'accès. En fait, ces moyens d'actualisation peuvent être adaptés pour modifier celui-ci en dynamique afin de l'adapter en temps réel à la configuration program- mée des moyens formant interface d'accès au fur et à mesure que l'utilisateur établit ceux-ci. Ces moyens sont alors chargés d'optimiser la configuration du dictionnaire de données de définition structurelle de la base de données en fonction du dictionnaire de descripteurs de définition d'interface. C'est ainsi par exemple qu'à chaque descripteur peut être associé un programme de modification de la base de données. Ainsi par exemple, si l'utilisateur souhaite rajouter un champ de saisie d'une information dans une page en utilisant un certain nombre de descripteurs, il provoque l'exécution d'un programme de mise à jour associé qui crée une colonne dans une table de la base de données afin de servir de réceptacle pour les valeurs du champ. Comme cela a été indiqué précédemment, les descripteurs de définition d'interface ne sont pas directement liés au dictionnaire de données de définition structurelle de la base de données. Bien entendu, ces descripteurs de définition d'interface peuvent être relatifs à différentes fonctionnalités relatives à celle-ci; ces descripteurs concernant la structure de la base de données, des applications, des pages et des champs de celles-ci, etc... Des descripteurs peuvent également être associés à des informations d'accès aux données correspondantes de la base de données pour permettre un accès direct à celles-ci dans la base, c'est-à-dire sans consulter le dictionnaire 3 de données de définition structurelle de la base de données. En effet, cette opération n'est pas toujours très performante et contrairement aux opérations de création/modification de ce dictionnnaire, cette opération n'utilise pas une syntaxe standardisée et est donc très dépendante du moteur de base de données employé. On conçoit alors que grâce à une telle structure, il est possible de concevoir ou de modifier automatiquement en une seule opération, non seulement le système d'interface, mais également la structure de la base de données dans la mesure où la programmation d'un dictionnaire de descripteurs de définition d'interface se traduit automatiquement par la construction ou la modification d'un dictionnaire correspondant de données de définition structurelle de la base de données correspondante. Ceci présente un certain nombre d'avantages notamment au niveau de la rapidité de conception ou de modification du système, de l'extraction d'informations, de l'indépendance entre la définition des moyens formant interface et de la base de données proprement dite, et des possibilités de faire évoluer la base de données et son ou ses interfaces de façon très simple et rapide. On a indiqué précédemment que les moyens formant interface pouvaient être associés à une interface graphique d'utilisateur. II va de soi bien entendu que d'autres moyens d'accès peuvent être envisagés, par exemple à travers un logiciel ou autre, tel que par exemple un moteur de recherche appliqué à une base de données, un logiciel de facturation permettant de récupérer des sommes à facturer dans une base de données, un générateur de liste de destinataires de courrier, etc. A titre d'exemple d'application, on va décrire ci-après la définition d'une base de données et de son interface d'utilisateur. Dans cet exemple, on construit un site Web/Intranet pour gérer les bases de savoir d'une entreprise. Plus particulièrement, on va décrire la conception d'une base de savoir du département des ressources humaines de cette entreprise concernant la gestion des compétences des employés de celle-ci. Dans la mesure où l'on crée simultanément la base de données et son interface utilisateur, le concepteur du site Web a l'impression de manipuler des éléments d'un site Web et non pas directement ceux d'une base de données: La première étape de la création du site consiste à créer la base de données proprement dite. Le concepteur de ce site peut alors utiliser des modèles de site préfabriqués dont les descripteurs sont par exemple disponibles dans la librairie de descripteurs préétablis 8 pour une application de ce type. Dans ce cas, le concepteur peut alors sélectionner dans cette librairie, le modèle qu'il souhaite. En validant un choix, le concepteur provoque deux actions principales, dont la première est la recopie des descripteurs préétablis et sélectionnés des moyens de stockage de la librairie 8 dans le dictionnaire de descripteurs de définition d'interface 5. Ces descripteurs sont regroupés en multiples catégories (interface utilisateur, interface avec d'autres logiciels, structure de données associées, etc..). La seconde action principale consiste pour les moyens d'actualisation 6, à partir de ces descripteurs sélectionnés et stockés dans le dictionnaire 5, à remettre à jour automatiquement le dictionnaire de données de définition structurelle de la base de données 3 pour adapter celle-ci à la configuration programmée des moyens formant interface d'accès. Les tableaux suivants indiquent pour chaque action du concepteur du site, les descripteurs de site correspondants et les répercutions sur la base de données. La création manuelle du site, c'est-à-dire sans utiliser de descripteurs d'assemblage préétablis, est illustrée dans le tableau ci-dessous. Dans les exemples suivants, la colonne "descripteurs de site" décrit des descripteurs d'interface entrant dans deux catégories, à savoir, une première catégorie d'interface utilisateur contenant des informations pour engendrer une interface graphique d'utilisateur et une seconde catégorie de descripteurs de passerelle de base de données contenant des informations permettant d'accéder aux données de la base de données sans consulter au préalable le dictionnaire de données de définition structurelle de celle-ci. Action du concepteur Descripteurs de site Base de données Le concepteur crée un site vide en lui Interface Utilisateur Une base de données vide est créée dans donnant le nom Mon Site et l'adresse . Nom de Site (affiché à l'écran)= un emplacement spécifié en utilisant la Web htto://www.Mon.Site.com Mon Site commande SQL (CREATE DATABASE). . Adresse Web= Le mot de passe généré précédemment est http://www.mvcompanv.com associé à la base de données. Passerelle Base de données Bien que le site soit vide, la base de don- # Chemin d'accès à la base de don- nées doit comporter un minimum de tables nées = par exemple le chemin d'ac- pour permettre le fonctionnement du site. cès au fichier dans lequel est sauvé Par exemple, une table "utilisateurs" est physiquement la base de données. également créée. Cette dernière contiendra Sans ce chemin, il n'est pas possible la liste de tous les utilisateurs ainsi que de d'accéder à la base de données. leurs droits d'accès aux différentes applica- . Mot de passe base de données = tions. Mot de passe généré de façon aléatoire pour se connecter à la base de données. A la suite de la création de ce site général et dans la mesure où ce site peut contenir une application par département de l'entreprise, le concepteur va créer une application spécifique pour le département des ressources humaines. Cette application est en fait un regroupement logique de base de savoir. Dans l'application donnée à titre d'exemple, celle-ci regroupe la base de savoir décrivant les compétences de chaque employé dans l'entreprise et par exemple d'autres bases de savoir décrivant d'autres caractéristiques, telles que par exemple la grille des salaires, etc. De la même façon que le concepteur du site a la possibilité d'utiliser un modèle de site, il a la possibilité de générer automatiquement son application en utilisant un modèle préfabriqué d'application. Dans l'exemple donné, l'application peut être créée par exemple manuellement de la façon illustrée dans le tableau suivant. Action du concepteur Descripteurs d'application Base de données Le concepteur crée une application - Interface utilisateur Dans la mesure où une application en lui donnant le nom Ressources . Nom de l'application (affiché à l'écran) = est un regroupement logique, aucune Humaines. Ressources Humaines altération de la base de données n'est nécessaire. - Passerelle base de données . Préfixe table pour l'application = Afin de faciliter les manipulations futures de toutes les bases de savoir contenues dans l'application Ressources Humaines, l'outil génère un préfixe unique correspondant aux premiers caractères des noms des tables de cette application. Si le préfixe est RH, la table Compétences Employés (lorsqu'elle est créée) devra avoir le nom RH_Compétences, tandis que la grille des salaires devra avoir le nom RH_Grille. A noter que ce préfixe est déduit du nom de l'application mais est souvent différent dans la mesure où les contraintes portant sur les noms des objets de la base de données sont nombreuses (tailles limitées, l'utilisation de certains caractères n'est pas autorisée, etc... . Le concepteur du site peut également créer une base de savoir en gérant par exemple les CV dans une application de ressources humaines. La première étape de cette création consiste à créer une table associée à cette base de savoir. Les colonnes de celle-ci doivent alors être définies. Le concepteur peut gagner du temps en utilisant directement un modèle de la base de savoir. Cette création est illustrée dans le tableau suivant. Action du concepteur Descripteurs de base de savoir Base de données Le concepteur crée une base de Interface utilisateur Une table du nom RH_Compétences savoir en lui donnant le nom de . Nom de la base de savoir (affiché à est créée en utilisant la commande Compétences des Employés et en l'écran) = Compétences des employés SQL standard "CREATE TABLE". spécifiant qu'il souhaite que ce soit Bien que la structure de la table n'ait visuellement la première base de . ordre d'apparition dans le menu : pas encore été définie à ce niveau, savoir du menu de l'application Res- position de la base de savoir dans un une colonne Id est créée pour contesources Humaines. menu présentant les bases de savoir de nir l'identifiant unique de chaque l'application Ressources Humaines, ici la enregistrement. A noter que dans valeur est 1. certains cas, à une même base de savoir peut correspondre plusieurs Passerelle base de données tables. # Identifiant table dans l'application = l'outil génère à partir du nom de la base de savoir un identifiant unique pour la table associée à la base de savoir Compétences des employés. En l'occurrence, ici il s'agit de Employés. En utilisant cet identifiant et le préfixe défini pour l'application, l'outil peut retrouver facilement le nom de la table associée Préfixe _Identifiant->RH Compétences. Cet identifiant est également généré en tenant compte des contraintes portant sur les noms des objets de la base de données. La dernière étape consiste à structurer la base de savoir des compétences des employés. Le concepteur du site va alors définir les caractéristiques de la base de savoir des employés. Dans l'exemple donné, les compétences sont associées à un employé, donc la table RH Compétences doit avoir au moins deux colonnes Nom et Prénom pour chaque employé, une colonne Titre décrivant le niveau hiérarchique de l'employé dans l'entreprise et une colonne Date de naissance correspondant à sa date de naissance. A ce niveau, le concepteur peut définir chacun des champs en les sélectionnant dans un ensemble de types de champs proposés et stockés, ces derniers ayant un équivalent sous forme de base de données, mais pas nécessairement car il n'en existe pas toujours un. Ainsi par exemple, un champ pouvant prendre la valeur oui/non, correspond en fait à une colonne prenant les valeurs 1/0. L'utilisateur n'a pas à se soucier de ce problème dans la mesure où l'interface utilisateur fait automatiquement la conversion visuelle en affichant oui à la place de la valeur 1 et non à la place de la valeur 0. Le tableau ci-dessous illustre la création du champ date de naissance. Action du concepteur Descripteurs de champ Base de données Le concepteur crée un champ nommé - Interface utilisateur Une colonne du type Date avec le Date de naissance. II précise que . Nom du champ (affiché à l'écran) = Date nom DateDeNa est créée en utilisant celui-ci doit contenir une date. Ce de naissance la commande SQL standard 'ALTER champ doit être obligatoirement en . Ordre d'apparition sur l'écran : ici la TABLE ADD COLUMN'. Comme le saisie et affiché en 3ême position (après valeur est 3. concepteur a spécifié qu'il souhaitait les champs Nom et Prénom). Par . Masque de saisie: Date (cela permet de ordonner les enregistrements par ailleurs, il demande à ce que les enre- s'assurer que l'utilisateur saisit bien une rapport à cette colonne, on crée un gistrements décrivant les employés date et non pas un nombre par exemple). index de table afin de rendre cette soient toujours classés par date. . Champ obligatoire : Oui (si l'utilisateur opération plus rapide. Si à l'avenir, le n'entre pas de valeur, un message est concepteur décidait au travers de généré). l'outil de conception de ne plus or- . Ordonné : Oui (toute liste de compéten- donner par rapport à cette colonne, ces sera ordonnée par rapport à la date cet index serait détruit. de naissance). Passerelle base de données # Identifiant table dans l'application = l'outil génère à partir du nom du champ un identifiant unique, par exemple DateDeNa pour la colonne associée de la table RH_Compétences. Cet identifiant est également généré en tenant compte des contraintes portant sur les noms des objets de la base de données. On notera que d'une manière générale, les accès à la base de données font appel à un langage SQL DDL (Data Definition Language) standardisé et relativement simple, mis en oeuvre de façon classique par les moyens d'actualisation 6. Ceci permet alors de rendre le système selon l'invention indépendant du moteur de base de données utilisé. II est bien entendu possible de lier des bases de savoir entre elles et donc de lier des tables entre elles. Des champs de base de savoir peuvent correspondre à plusieurs colonnes de la base de données. On conçoit alors qu'une fois l'ensemble des descripteurs du site et de ses sous-constituants défini, l'interface graphique d'utilisateur peut être engendrée facilement. Dès lors qu'un utilisateur consulte par exemple la liste des compétences, les opérations suivantes se produisent 1) extraction des descripteurs de site pour pouvoir afficher un message de bienvenue en haut de la page, tel que par exemple "bienvenue sur le site de Mon Site (http://www.mycompany.com) ; 2) extraction des descripteurs d'applications pour offrir un menu principal avec l'ensemble des applications du site à savoir Ressources Humaines (option sélectionnée), Recherche et Développement, Marketing, etc .... 3) extraction des descripteurs de base de savoir pour afficher la liste des bases de savoir propres à l'application Ressources Humaines, à savoir par exemple Compétences et Grilles des Salaires, etc .... ; et 4) extraction des descripteurs de champs de la base de données Compétences pour offrir à l'utilisateur un filtre de recherche permettant de lister des compétences en les ordonnant par rapport à la date de naissance des personnes concernées. En étendant le modèle simplifié des descripteurs d'interface présenté précédemment, on peut définir des interactions plus complexes avec l'utilisateur, par exemple en faisant varier le nombre de critères de recherche autorisés, en utilisant une interface pour permettre la saisie de compétences qui iront alimenter la base de compétences, en rendant le formulaire de saisie plus esthétique en fournissant les informations sur les emplacements des différents champs ou en regroupant les champs en sections, etc.... On conçoit alors que grâce à un tel système, la création et la modification d'une base de données sont extrêmement rapides et simples dans la mesure où le concepteur travaille sur les descripteurs du système d'interface, le dictionnaire de données de définition structurelle de la base de données étant adapté automatiquement à celui-ci. REVENDICATIONS 1. Système d'interface d'accès aux données d'une base de données stockée dans des moyens de stockage correspondants (1), comportant au moins une zone (3) de stockage des données proprement dites et une zone (2) de stockage d'un dictionnaire de données de définition structurelle de cette base de données, la base de données étant accessible à travers des moyens formant interface d'accès (4), caractérisé en ce que les moyens formant interface d'accès (4) sont associés à un dictionnaire (5) de descripteurs de définition d'interface, accessible à travers des moyens (7,8) de modification de son contenu pour permettre une programmation de la configuration des moyens formant interface par création, suppression ou modification de descripteurs dans le dictionnaire (5) de descripteurs de définition d'interface et en ce qu'il est prévu des moyens (6) d'actualisation automatique du dictionnaire (3) de données de définition structurelle de la base de données pour adapter celle-ci à la configuration programmée des moyens formant interface d'accès. 2. Système selon la revendication 1, caractérisé en ce que les des- cripteurs de définition d'interface sont associés à des informations d'accès aux données correspondantes de la base de données. 3. Système selon la revendication 1 ou 2, caractérisé en ce que les moyens formant interface sont associés à une interface graphique d'utilisateur (7). 4. Système selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens (6) d'actualisation automatique du dictionnaire de données de définition structurelle de la base de données, sont adaptés pour modifier celui-ci en dynamique afin de l'adapter en temps réel à la configuration programmée des moyens formant interface d'accès. 5. Système selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens formant interface sont associés à des moyens (8) de stockage d'une librairie de descripteurs préétablis, sélectionnables et configurables pour programmer la configuration des moyens d'interface selon une application préfabriquée.