Brevet FR2799855A1 — publié le 20010420

La présente invention concerne d'une façon générale la consultation de bases de données informatiques. La consultation de données telles que celles d'un un catalogue de produits destinées à audience large pose un certain nombre de problemes, liés à la présentation de ces données, leur hierarchisation, et l'optimisation des ressources informatiques mises en #uvre. A l'heure actuelle, la présentation des données est généralement effectuée par l'intermédiaire d'un tableau bi-dimensionnel, chaque ligne concernant une donnée, et chaque colonne contenant dans la ligne considérée un attribut ou propriété de cette donnee Cette approche présente des inconvénients majeurs dès l'ensemble des données présenté dépasse quelque dizaines, et devient humainement impraticable avec quelques centaines de données. De plus, certains utilisateurs seront intéressés par certaines propriétés des données et d'autres, cet intérêt pouvant d'ailleurs varier tres vite dans le temps, même pour un même utilisateur. Les techniques d'hiérarchisation permettent de façon connue de classifier les données en catégories et sous-catégories, et pour permettre de retrouver une information, divers regroupements, l'intermédiaire d'un langage de requête, comme ( Syntax Query Language ) permettront à l'utilisateur averti d'effectuer divers classements qui lui conviennent. Cette approche est malheureusement un travail de spécialiste, très peu adaptée au grand public qui est en général pas capable de construire facilement rapidement une requête SQL ou autre. C'est pourquoi utilisateur n'a en général à sa disposition qu'un nombre limité de types de requêtes prédéterminées, auxquelles il n'a aucun accès permettant de les modifier. L'un des problèmes de cette approche est qu'il est souvent pratiquement impossible de prévoir au départ les besoins exacts de l'utilisateur, et donc de créer toutes requêtes adéquates. Il est alors courant d'arriver à situation aberrante, où l'utilisateur doit virtuellement déjà connaître la réponse à sa question, et l'endroit où l'information est stockée. I1 ressort de ce qui précède que l'optimisation des ressources informatiques est un problème majeur, souvent eludé, et qui devient fondamental dans une architecture ient/serveur mise en #uvre par exemple sur l'Internet. Ainsi deux types de problèmes existent et doivent être traités. Le premier est lié à la quantité d'informations envoyées du serveur au client. Le deuxième est lié à 'accès de bases de données présente dans le serveur, qui 'avère extrêmement coûteux en temps processeur en mémoire vive, ce qui ralentit fortement les temps de réponse dans un environnement client/serveur lorsque le nombre de clients en cours de session est élevé. La présente invention vise à pallier ces limitations de l'état de l'art et à proposer un procédé permette d'organiser une table de données de manière hiérarchisée à partir du contenu des colonnes la table. Plus précisément, l'invention a pour obj de réorganiser la hiérarchie des données présentées, en attribuant un ordre quelconque aux colonnes de la table, ceci de manière interactive et autonome, par exemple en présentant ces données hiérarchisées par menus déroulants. A cet effet, la présente invention propose un procédé pour créer une structure hiérarchique variable permettant à un utilisateur de déclencher par choix successifs une action parmi une pluralité actions dans système informatique, le procédé étant caractérisé en qu'il comprend les étapes consistant à - créer une table de données à plusieurs lignes à plusieurs colonnes, à chaque ligne correspondant action respective, tandis qu'au moins deux colonnes de clés contiennent des données de catégories desdites actions et qu'une colonne d'action contient des données désignant les différentes actions que la structure hiérarchique doit permettre de déclencher ; - définir un ordre de parcours d'au moins un sous- ensemble de l'ensemble des colonnes de clés ; et - en utilisant ledit ordre de parcours, créer une structure arborescente de noeuds comportant un nombre niveaux noeuds égal au nombre de colonnes de clés dudit sous-ensemble augmenté de un, chaque n#ud contenant moins rubrique correspondant à une donnée catégorie ou d'action de la table de données et identificateur, un premier niveau de la structure de noeuds contenant un n#ud unique dont une pluralité rubriques correspondent à une pluralité de données catégories présentes dans la colonne de catégorie de la table données figurant en premier dans l'ordre de parcours, et chaque niveau suivant le premier niveau contenant, rattachés respectivement au n#ud ou à chaque n#ud du niveau immédiatement inférieur, un ensemble de noeuds égal au nombre de rubriques dans ledit n#ud auquel ils sont rattachés, et chaque identificateur de n#ud niveau supérieur au premier niveau étant construit une combinaison de l'identificateur du n#ud du niveau immédiatement inférieur auquel il est rattaché et d'une rubrique contenue dans ce même n#ud. Des aspects préférés, mais non limitatifs, du procède selon l'invention sont les suivants le procédé comprend en outre l'étape consistant à afficher sélectivement des menus de sélection en utilisant les rubriques contenues dans les différents n#uds. le procédé comprend en outre l'étape consistant afficher une représentation de la structure arborescente avec rubriques. * chaque n#ud contient un ou plusieurs éléments chaque élément contenant une rubrique, des données associees à un n#ud de niveau inférieur, et des données associees à un n#ud de niveau supérieur. * pour le n#ud de premier niveau, les données éléments contenus dans ce n#ud comprennent une donnée indiquant qu'il n'existe pas de n#ud de niveau inférieur. * pour chaque n#ud de dernier niveau, les données des éléments contenus dans ce n#ud comprennent une donnée indiquant qu'il n'existe pas de n#ud de niveau supérieur * le procédé comprend une étape intermédiaire consistant, pour chaque n#ud, à élaborer une chaîne caractères constituée par la concaténation des contenus de la table de données pour une ligne donnée et dans ordre de colonnes indiqué par l'ordre défini. le procédé comprend en outre les étapes consistant pour chaque nouvelle chaîne de caractères élaborée, à associer à cette chaîne un n#ud de niveau immédiatement inférieur, et à mémoriser le couple chaîne/n#ud, - à chaque élaboration d' une chaîne de caractères, à verifier si un couple chaîne/nceud contenant cette même chaine a déjà été mémorisé, - dans l'affirmative, à associer à la chaîne élaborée le n#ud de niveau immédiatement inférieur constitué par le second élément du couple dejà mémorisé. D'autres aspects, buts et avantages la présente invention apparaîtront mieux à la lecture de la description détaillée suivante d'une forme réalisation préférée de celle-ci, donnée à titre exemple non limitatif et faite en référence aux dessins annexés, sur lesquels les figures la et lb illustrent schématiquement deux types de parcours d'une structure arborescente, la figure 2 est un logigramme illustrant un algorithme de génération de noms pour une ligne d'une table suivant un ordre donné, la figure 3 est un logigramme illustrant un algorithme d'organisation de données utilisant l'algorithme de génération de la figure 2, les figures 4a à 4c illustre le contenu des noeuds obtenus avec l'algorithme de la figure 3 pour les quatre produits d'une table de données indiquée plus loin à titre d'exemple, et les figures 5a à 5d illustrent le déroulement des menus pour quatre classements possibles définissant quatre modes de consultation. Par convention dans la description qui suit, on indiquera ci-dessous avec la première lettre en majuscules le nom d'une variable, et avec première lettre en minuscules le contenu ou valeur d' variable. Définitions a) Table de données Une table de données, dans le contexte de la présente invention, est un tableau à deux dimensions, chaque ligne correspondant à une donnée, et chaque colonne de la ligne considérée contenant une caracteristique ou propriété de cette donnée. On notera ici le procédé de stockage de ces informations n'est pas à considérer ici. Ainsi la table de données peut provenir d'un fichier texte ou binaire, résulter de l'exécution d'une procédure locale ou déportée, être directement constituée d'une table appartenant à une base de données, ou encore résulter d'une requête type SQL ( Syntax Query Language ) par exemple. Table de données homogènes table de données, dans le contexte utilisé ici, est dite homogène si toutes les caractéristiques d'une donnée existent pour toutes les autres données. Par exemple, si une caractéristique est nommée "Couleur", et si toutes les données présentées possedent une caractéristique "Couleur" non vide, alors la table est homogène. Dans le cas ou une table de données n'est pas homogène, il est possible de la rendre homogène en étendant la définition d'une ou plusieurs caractéristiques. Par exemple, pour la caractéristique "Couleur", si l'ensemble des couleurs disponible est Rouge , Vert ou Bleu , la notion "Pas de couleur" peut être attribuée à toutes les données pour lesquelles la caractéristique couleur n'a pas de sens. L'ensemble des couleurs disponibles devient alors Rouge, Vert, Bleu, Pas de couleur . Ce processus peut en général être appliqué pour tout type de données. Selon un autre exemple, avec une donnée Booléenne (de type Oui / Non ), la valeur Non peut être attribuée dans le cas ou elle n'a pas de sens. De même, pour une donnée numérique, la valeur 0 peut servir de marqueur particulier. c) Table de hachage Une table de hachage permet d'associer une donnée à valeur, créant ainsi des paires (clé, valeur). Une table de hachage est généralement utilisée dans le contexte de bases de données, permettant un accès rapide, voire immédiat, à une ou plusieurs colonnes jugées importantes, et généralement nommées clés. Cette organisation favorise la vitesse d'exécution liée à une recherche, au détriment de l'espace utilisé pour stocker données. Elle permet de répondre aux questions est- que la donnée X existe ? ou encore quelle est la valeur de la clé Y ? sans avoir à effectuer une boucle explicite sur l'ensemble des données existantes. d) Dictionnaire Un dictionnaire, dans le contexte la présente invention, est une table de hachage associant un code à une chaîne de caractères. L'utilisation d` dictionnaire peut permettre dans la plupart des de réduire l'espace nécessaire au stockage ou à la transmission d'une table de données, dans le cas ou celle-ci contient une répétition importante de chaînes de caractères longues toutes identiques. Un dictionnaire peut aussi permettre d'étendre le nombre de langues d'interface pour une table de données, sans avoir à modifier les données elles-mêmes. e) Menu Déroulant Un menu déroulant est un objet graphique permettant d'afficher un espace données hiérarchisé suivant une organisation fixe. Il composé d'un ou de plusieurs menus, chacun contenant ou plusieurs éléments de menu. Ces éléments de menu peuvent être liés à d'autres menus, qui sont alors considerés comme des sous-menus du menu contenant cet élément menu. Cet objet est généralement réactif au clavier ou la souris, permettant d'afficher ou de masquer les sous menus au gré de l'utilisateur, par le passage du pointeur de la souris sur un élément donné, ou le clic d'un bouton la souris. A chaque instant, il existe au plus un menu affiché pour chaque niveau de hiérarchie, ce qui principe, permet d'afficher à l'écran la structure d'un espace de données important dans un espace très réduit. On va maintenant décrire en détail un système et un procédé pour l'organisation automatique du contenu d'une table de données, la hiérarchie étant directement établie par le contenu des colonnes. De plus, l'ordre des colonnes peut être modifié ou spécifié à souhait, sans nécessiter d'accès à la source de donnée externe ou locale d'origine: Ces deux points répondent directement aux contraintes d'hiérarchisation et d'optimisation évoquées plus haut. Dans la description qui suit, on a choisi à titre d'exemple de présenter les données sous forme menu déroulant. Il est également possible de les présenter par exemple sous forme d'arbre, la différence entre deux structures étant principalement liée à l'ordre de parcours des éléments, l'ordre étant dit depth-first (priorité à la profondeur, voir figure la) pour un arbre, et breadth-first (priorité à la largeur, voir figure lb) pour un menu. Le passage d'une représentation à l'autre ne posera aucun problème particulier en pratique. Un aspect essentiel de la présente invention repose sur l'utilisation de tables de hachage, et d'un nommage adéquat des menus en cours de création. L'utilisation de tables de hachage optimise la recherche d'un objet en fonction d'une clé ou catégorie, la clé utilisee ici étant précisément la dénomination utilisée dans les menus. La donnée Di peut être représentée par suite de chaînes de caractères, correspondant à la valeur de chaque colonne c(i,j), placées suivant un ordre donné, arbitraire. Ainsi une table de m colonnes sur n lignes adoptera, avec la définition donnée plus haut, la configuration suivante Donnée Colonne 0 Colonne 1 Colonne j Colonne m c(0,0) c(0,1) c(O,j) c m) c(1,0) c(1,1) c(l,j) c m) c(i,0) c(i,l) c(i,j) c ' m) c(n,0) c(n,l) c(n,j) c m) Par ailleurs, pour chaque ligne du tableau correspondant à une donnée Di, on établit une variable noms(Di) de la façon suivante :. noms(Di) = {c(1,0), c(1,0)-c(i,l), ..., c(i,0)-c(i,l)-...-c(ij), ..., c(i,0)-c(i,l)-.., c(i,m)} On comprend qu'il s'agit d'une variable multidimensionnelle contenant, en une position j donnée, la concatenation des chaînes de caractères correspondant aux valeurs des cellules des colonnes 0 à j pour ligne considérée, séparées deux à deux par des tirets. Pour prendre un exemple concret, on ici considérer un extrait d'une table de données qui pourrait correspondre au produits du catalogue d'un magasin électronique d'articles de sport Table I (n = 4, m = 3 ) Numéro article Type Produit Marque Nom 1 Chaussures Reebok The Answer 2 Chaussures Reebok After Shock Mid 3 Chaussures Adidas Real Deal 4 Accessoires Shimano VTT Rider (Note : toutes les marques citées ici sont des marques déposées. On comprend que, pour l'article numéro 1, on a Noms(l) = {" Chaussures ", "Chaussures-Reebok"," Chaussures-Reebok-ne Answer"} Cette dénomination met en évidence que le produit No. 1 devrait se trouver dans le menu "Chaussures", qui permet lui-même d'accéder au menu "Chaussures-Reebok", et enfin au nom du produit. Le résultat obtenu est un regroupement automatique en fonction des caractéristiques des produits, mis en évidence directement par la fonction dénomination. Ainsi l'on peut voir très clairement que produit No. 2, dont les noms sont: Noms(2) = { " Chaussures "," Chaussures-Reebok"," Chaussures-Reebok-After Shock Mid " appartient au même groupe que le produit No. 1. Selon la présente invention, on forme les variables Noms en utilisant soit l'ordre croissant des colonnes 0 à 1, comme effectué ci-dessus, soit en utilisant un ordre de colonnes fixé par une variable Ordre, que l' detaillera plus loin, de façon à pouvoir parcourir catégories définies dans ces colonnes selon toute priorité souhaitée. Plus particulièrement, en considérant deux colonnes, quatre classements sont possibles, à savoir deux classements en prenant chaque colonne une à une, sans tenir compte de l'autre colonne, et deux classements considérant chaque colonne, puis avec une priorité inférieure l'autre colonne. Dans le cas général, le nombre N(m) d'ordres possible est la somme de tous les arrangements de m objets pris p à p, pour p variant de 1 à m, soit nombre augmente très rapidement avec le nombre de colonnes; en effet, N(2) = 4, N(3) = 15, N(4) = 64... algorithmes utilisés selon la présente invention seront plus compréhensibles en introduisant la notion objet, présente dans les langages orientés objet, comme le langage Java (marque déposée) de Sun Microsystems, ou le langage C++ par exemple. Deux objets sont utilisés ici, à savoir un objet de type Noeud, et un objet de type Elément. Ces ets adoptent une structure arborescente : un N#ud donné possède un N#ud Parent unique (sauf s'il s'agit noeud de niveau le plus élevé) et un ou plusieurs Noeuds enfants (sauf s'il s'agit d'un n#ud de niveau le plus ). Un objet de type Elément possède - un Message, qui constitue ce qui doit etre affiché dans un menu, - un N#ud Parent, - un N#ud Enfant. On le représente sous la forme {Message, Parent, Enfant} On notera ici que, dans le cas où un Elément n'a pas d'enfant, alors la variable Nom (voir ci-dessous du N#ud Enfant prend la valeur pull . Un objet de type N#ud possède un Nom, - un Niveau de profondeur positif, commençant à 0, un Lien, constitué d'un objet de type Elément, - une Liste, constituée par un tableau d'Eléments. Le Lien est en fait l'Elément dans le N#ud Parent qui permet d'arriver à ce Noeud. On représente ici un objet N#ud sous la forme {Nom, Niveau, Lien, {Liste} } En référence maintenant à la figure 2, va décrire un algorithme de génération de la variable multidimensionnelle Noms telle que décrite plus haut pour une ligne i d'une table donnée. utilise ici les conventions suivantes est le nombre de colonnes de la table ; (i,j) est la valeur de la colonne j à la ligne i, comme indiqué plus haut; chaîne{x} est une fonction créant une chaîne de caractère constituée par x ; concaténation (x, y) est une fonction créant un chaîne caractères constituée par chaîne{x} suivi de chaîne ; Ordre indique un ordre donné de parcours de tout ou partie des différentes colonnes 0 à m-1 d'une table, et Ordre désigne la numéro de la colonne au kième emplacement de Ordre, k variant entre 0 et m-1 (ou entre 0 et entier inférieur à m-1 si l'ordre concerne seulement un sous-ensemble des colonnes de catégories). L'étape 210 de la figure 2 est une étape de création d'un premier élément liste[0] d'une liste pour la ligne i, l'élément liste[0] étant constitué par chaîne{c(i, ordre[0]}, à savoir la chaîne de caractères constituée par l'élément contenu dans la ligne i et dans la colonne fixée par la valeur ordre[0]. A l'étape 220 est effectuée une incrémentation progressive d'une variable Col, en partant de 1 jusqu à m-1. L'étape 230 consiste à mettre à jour la liste, construisant l'élément liste[col] par concaténation de la valeur précédemment établie liste[col-1] et en effectuant l'opération consistant à compléter la chaîne liste[col-1] par un tiret puis par la chaîne chaîne{c(i, ordre[col] , c'est-à-dire par le contenu de la table dans la i-' ligne et dans la colonne fixée par la valeur ordre[col]. L'etape 240 constitue un test pour déterminer si toutes colonnes pour la ligne i ont été parcourues (dans ordre fixé par la valeur de Ordre). Dans la négative le programme retourne à l'étape 220 pour compléter l'élément Liste. Dans l'affirmative, la liste (égale à liste[m-1]) est retournée (étape 250). Pour prendre un exemple concret, on va considérer la troisième ligne de la table donnée plus haut, avec une valeur Ordre égale à (2,l,3). valeur de liste[3] délivrée par l'algorithme de la figure 2 est alors égale à Adidas-Chaussures-Real Deal . On comprend donc que l'algorithme de la figure 2 est capable d'engendrer successivement tous les éléments de la variable multidimensionnelle Noms pour la ligne i considérée. La figure 3 illustre l'algorithme principal d'organisation de données selon la présente invention. Dans la case 310, on applique à l'algorithme informations suivantes - une table de données de n lignes x m colonnes , - une variable Ordre désiré, à savoir un ordre donné de nombres entiers successifs compris entre 1 et m- 1 L'étape 320 est une étape d'initialisation consistant - à créer un Noeud racine appelé root , dont le est 0 , dont le niveau est 0, dont le Lien adopte valeur pull (absence de lien), et enfin dont Liste d'Eléments est vide, et - à créer une table de hachage h(nom,n#ud), - à ajouter dans la table de hachage un couple ( 0 , root) (par une fonction d'ajout dénommée h. add) L'étape 330 permet de parcourir successivement toutes les lignes i de la table, de la première à la dernière. Pour chaque ligne, l'étape 340 fait appel à l'algorithme de génération de noms de la figure 2 pour créer un ensemble de Noms noms(i, Ordre) constitué liste[0], ..., liste[m-1]. Chacun de ces noms est dénomme nom (j), avec j variant de 0 à m-1. Cette étape indique également que le Noeud Parent pour les Eléments qui seront créés à chaque étape 380 (voir ci-dessous) est le Noeud root défini plus haut. L'étape 350 permet de traiter successivement les m valeurs de Nom(j). Pour chaque valeur nom(j), l'étape 360 détermine il existe dans la table de hachage un couple contenant (j) comme premier élément du couple, c'est-à-dire si l'on a déjà associé un objet Noeud à nom (j) dans la table de hachage. Dans l'affirmative, le programme passe à l'étape 370, où l'on établit que le Noeud Parent de l'élément en question est celui figurant dans la table de hachage association avec nom(j). Dans la négative, le programme passe à l'étape dans laquelle - on crée un Elément e = élémentIc (i, Ordre (j) parent, null}, c'est-à-dire un élément dont le Message est la chaîne de caractères c(i,Ordre(j)), dont le N#ud Parent parent, et dont le Noeud Enfant est pull (absence Noeud Enfant) ; - on fixe une valeur de Niveau (valeur niveau) égale à la valeur de Niveau du N#ud Parent incrémentée de 1 (niveau - parent.niveau+l) ; - crée un Noeud n égal à {nom (j), niveau, e, {vide}}, c'est-à-dire un Noeud qui possède comme Nom nom (j , comme Niveau la valeur niveau indiquée ci- dessus, comme Lien l'élément e créé plus haut, et comme Liste un contenu vide ; - on ajoute l'Elément dans la Liste du N#ud Parent ; - on assigne à e un Noeud Enfant constitué par (fonction e.enfant = n) ; - enfin on effectue la fonction h.add d'ajout noeud n associé à nom (j) dans la table de hachage par la fonction h.add(nom(j),n). Le programme passe ensuite à l'étape 370 décrite plus haut. Après l'étape 370, le programme teste en 390 toute la liste de Noms nom (j) a été parcourue. Dans négative, le programme retourne à l'étape 350 pour traiter le nom suivant. Dans l'affirmative, le programme passe à une étape 400 dans laquelle - on crée l'élément e = élément(c ',m), parent, null , c'est-à-dire l'Elément qui possède comme Nom la chaîne c(i,m) de la table, comme Nceud Parent parent, et comme Noeud Enfant la valeur null (absence de noeud enfant) ; - on ajoute l'Elément e dans la Liste du N#ud Parent. L'étape suivante 410 teste si toutes lignes de la table ont été parcourues. Dans la négative, on repasse à 1 étape 330 pour traiter la ligne suivante et dans l'affirmative, le programme passe à l'étape 420 dans laquelle on peut maintenant créer les differents menus à partir des éléments créés à l'étape 4 ces menus répondant par exemple à l'action d'une souris. En référence maintenant aux figures 4a à 4c, on a illustré la construction progressive des n#uds correspondant à la table à quatre lignes indiquée plus haut avec l'algorithme décrit en référence à la figure 3. Chaque rectangle correspond à un N#ud, la partie supérieure du rectangle contenant le Nom du Noeud et sa partie inférieure contenant le ou les messages du ou des éléments associés à ce noeud, c'est-à-dire figurant dans Liste pour ce N#ud, messages qui seront affichés comme articles sélectionnables individuellement dans les menus. La structure de n#uds complète est illustrée dans le bas de la figure 4c. La figure 5a illustre la structure de menus obtenus en appliquant les algorithmes décrits ci-dessus en utilisant comme ordre (1, 2, 3) c'est-à-dire l'ordre de la table originale. La figure 5b illustre quant à elle la structure de menus obtenue en utilisant comme Ordre (2,1,3). La figure 5c illustre la structure obtenue en utilisant comme Ordre (1,3). Enfin la figure 5d illustre la structure obtenue en utilisant comme Ordre (2,3). On notera ainsi que la variable Ordre peut presenter une dimension égale à m-1 (cas figures 5a et 5b), mais qu'elle peut aussi présenter dimension inférieure à m-1 (cas des figures 5c et , auquel cas le nombre de niveaux dans la hiérarchie menus est diminué d'autant. Avantageusement, dans une mise en oeuvre pratique, on propose à l'utilisateur, par exemple dans un menu indépendant ou par dialogue et sélection dans une fenêtre specifique, l'ordre à utiliser, celui-ci étant indiqué en clair à l'utilisateur. Dans l'exemple indiqué ci-dessus, si l'utilisateur souhaite utiliser l'ordre (2,1,3), on peut lui désigner le choix correspondant par choix par marque, puis par produit, puis par nom de produit ? . Bien entendu, la présente invention est nullement limitée à la forme de réalisation décrite, mais l'homme du métier saura y apporter toute variante modification conforme à son esprit. En particulier, bien que la description qui précède ait fait référence à des produits classés selon différentes clés ou catégories (ici type de produit et marque), l'invention s'applique à toute sorte d'informations déclenchant des actions dans un système informatique local ou en réseau) et organisées selon au moins deux groupes de catégories. REVENDICATIONS 1. Procédé pour créer une structure hiérarchique variable permettant à un utilisateur de déclencher par choix successifs une action parmi une pluralité d'actions dans un système informatique comprenant un processeur et une memoire, le procédé étant caractérisé en ce qu'il comprend les étapes consistant à créer dans le système informatique et y mémoriser une table de données (c(i,j)) à plusieurs lignes (i) et à plusieurs colonnes (j), à chaque ligne correspondant une action respective, tandis qu'au moins deux colonnes de clés contiennent des données de catégories desdites actions et qu'une colonne d'action contient des données désignant les différentes actions que la structure hiérarchique doit permettre de déclencher ; - définir par interaction entre le système informatique et l'utilisateur un ordre de parcours (Ordre) d'au moins un sous-ensemble de l'ensemble des colonnes de clés ; et - en utilisant ledit ordre de parcours, créer à l'aide du processeur, et mémoriser dans la mémoire, une structure arborescente de noeuds (Noeuds) comportant un nombre de niveaux de n#uds égal au nombre de colonnes de clés dudit sous-ensemble augmenté de un, chaque noeud contenant au moins une rubrique (Message) correspondant à une donnée de catégorie ou d'action de la table données et un identificateur (Nom), un premier niveau la structure de noeuds contenant un noeud unique dont pluralité de rubriques correspondent à une pluralité de données de catégories présentes dans la colonne de catégorie de la table de données figurant en premier dans l'ordre de parcours, et chaque niveau suivant le premier niveau contenant, rattachés respectivement au noeud ou à chaque noeud du niveau immédiatement inférieur, un ensemble de nceuds égal au nombre de rubriques dans ledit noeud auquel ils sont rattachés, et chaque identificateur de noeud de niveau supérieur au premier niveau étant construit par une combinaison de l'identificateur du noeud du niveau immédiatement inférieur auquel il est rattaché et d'une rubrique contenue dans ce même noeud. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape consistant à afficher sélectivement dans le système informatique des menus de sélection en utilisant les rubriques contenues dans les différents noeuds. 3. Procédé selon la revendication caractérisé en ce il comprend en outre l'étape consistant à afficher dans le système informatique une représentation de la structure arborescente avec ses rubriques. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que chaque noeud contient un ou plusieurs éléments (Élément), chaque élément contenant une rubrique (Message), des données (Parent associées à un noûud niveau inférieur, et des données (Enfant) associées a un noeud de niveau supérieur. 5. Procédé selon la revendication 4 caractérisé en ce que, pour le noeud de premier niveau, les données des éléments contenus dans ce noeud comprennent une donnée ( 0 ) indiquant qu'il n'existe pas de n#ud de niveau inférieur 6. Procédé selon l'une des revendications 4 et 5, caractérisé en ce que, pour chaque n#ud de dernier niveau, données des éléments contenus dans ce n#ud comprennent une donnée (null) indiquant qu'il n'existe pas de n#ud de niveau supérieur. 7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce qu'il comprend une étape intermédiaire consistant, pour chaque n#ud, à élaborer à aide du processeur et à mémoriser une chaîne de caracteres (Nom) constituée par la concaténation des contenus (i, j) ) de la table de données pour une ligne donnée dans un ordre de colonnes indiqué par l'ordre défini. 8. Procédé selon la revendication 7, caractérisé en ce qu'il comprend en outre les étapes effectuées par le processeur et consistant - pour chaque nouvelle chaîne de caractères élaborée, à associer à cette chaîne un n#ud de niveau immédiatement inférieur (N#ud Parent), et à mémoriser dans la mémoire, le couple chaîne/n#ud (h (nom, n#ud)), - à chaque élaboration d'une chaîne de caractères, à vérifier si un couple chaîne/n#ud contenant cette même chaîne a déjà été mémorisé, - dans l'affirmative, à associer à la chaîne élaborée le n#ud de niveau immédiatement inférieur constitué par le second élément du couple déjà mémorisé.