[go: up one dir, main page]

FR3001067A1 - METHOD AND SYSTEM FOR PROCESSING DATA FOR SORTING WITHIN A SET OF DIGITAL ENTITIES - Google Patents

METHOD AND SYSTEM FOR PROCESSING DATA FOR SORTING WITHIN A SET OF DIGITAL ENTITIES Download PDF

Info

Publication number
FR3001067A1
FR3001067A1 FR1350313A FR1350313A FR3001067A1 FR 3001067 A1 FR3001067 A1 FR 3001067A1 FR 1350313 A FR1350313 A FR 1350313A FR 1350313 A FR1350313 A FR 1350313A FR 3001067 A1 FR3001067 A1 FR 3001067A1
Authority
FR
France
Prior art keywords
sorting
dimension
cube
filtering
phase
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
FR1350313A
Other languages
French (fr)
Other versions
FR3001067B1 (en
Inventor
Nicolas Sede
Romuald Poirot
Nicolas Pietrzak
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.)
COMPARIO
Original Assignee
COMPARIO
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 COMPARIO filed Critical COMPARIO
Priority to FR1350313A priority Critical patent/FR3001067B1/en
Priority to PCT/EP2014/050625 priority patent/WO2014108567A1/en
Publication of FR3001067A1 publication Critical patent/FR3001067A1/en
Application granted granted Critical
Publication of FR3001067B1 publication Critical patent/FR3001067B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

L'invention concerne un procédé de traitement de données pour effectuer un tri au sein d'un ensemble (104) d'entités numériques, dits enregistrements, chacun desdits enregistrements étant représenté par au moins une donnée numérique, dite valeur, associée à au moins un critère, dit de tri, et mémorisée dans une base de données (102), dite source, en association avec au moins une donnée d'identification dudit enregistrement, ledit procédé comprenant : - une étape de réception d'une requête, dite de tri, comprenant au moins une relation de filtrage visant un critère de tri, et - une phase d'obtention, à la volée et à partir de ladite base de données source (102), d'une base de données (108), dite cube de tri, comprenant une dimension associée à chaque critère de tri visé dans ladite requête de tri, chaque dimension : ▪ étant indépendante des autres dimensions dudit cube (108), et ▪ comprenant, un ou plusieurs membres, correspondant chacun à une valeur que peut prendre le critère de tri auquel est associée ladite dimension et mémorisant un identifiant d'au moins un enregistrement présentant ladite valeur pour ledit critère de tri, - une phase de filtrage dudit cube de tri (108) avec l'au moins une relation de filtrage composant ladite requête de tri ; et - une phase de détermination d'un résultat de tri, en fonction dudit filtrage. Elle concerne également un système mettant en œuvre un tel procédé.The invention relates to a data processing method for sorting within a set (104) of digital entities, called records, each of said records being represented by at least one numerical data, called value, associated with at least a criterion, called sorting, and stored in a database (102), said source, in association with at least one identification data of said record, said method comprising: a step of receiving a request, said sorting, comprising at least one filtering relation relating to a sorting criterion, and - a phase of obtaining, on the fly and from said source database (102), a database (108), so-called sorting cube, comprising a dimension associated with each sorting criterion referred to in said sorting request, each dimension: ▪ being independent of the other dimensions of said cube (108), and ▪ comprising one or more members, each corresponding to a value which can be taken by the sorting criterion associated with said dimension and storing an identifier of at least one record having said value for said sorting criterion, - a filtering phase of said sorting cube (108) with the at least one filtering relation composing said sorting request; and a phase of determining a sorting result, as a function of said filtering. It also relates to a system implementing such a method.

Description

- 1 - « Procédé et système de traitement de données pour effectuer un tri au sein d'un ensemble d'entités numériques » La présente invention concerne un procédé de traitement de données numériques pour réaliser un tri au sein d'un ensemble d'entités numériques, et plus particulièrement d'entités numériques représentant chacune des caractéristiques d'un produit physique ou d'un service. L'invention concerne plus particulièrement un procédé de tri d'informations relatives à des produits ou services représentés chacun par une entité numérique comprenant une représentation numérique des caractéristiques du produit ou du service. Plus particulièrement, l'invention concerne un traitement de données numériques pour réaliser un tri dans un catalogue électronique de produits et/ou de services, ou plus particulièrement de naviguer dans un tel catalogue, selon des critères de tri portant sur des informations relatives aux produits présents dans le catalogue et représentés chacun par une entité numérique mémorisées dans une ou des bases de données.The present invention relates to a method for processing digital data to perform a sorting within a set of entities. digital, and more particularly digital entities representing each of the characteristics of a physical product or service. The invention relates more particularly to a method of sorting information relating to products or services each represented by a digital entity comprising a digital representation of the characteristics of the product or service. More particularly, the invention relates to a digital data processing for sorting in an electronic catalog of products and / or services, or more particularly to navigate in such a catalog, according to sorting criteria relating to product information. present in the catalog and each represented by a digital entity stored in one or more databases.

Etat de la technique Actuellement, de nombreux sites Internet proposent des outils de tri d'informations de produits proposés à la vente dans des catalogues électroniques, avec l'objectif de fournir un ou des produits correspondant à des critères renseignés par l'utilisateur. Ces outils permettent à l'utilisateur de naviguer plus facilement et de manière plus ergonomique au sein d'un catalogue comprenant des milliers de produits et d'atteindre un groupe de produits qui l'intéresse et qu'il est susceptible d'acheter. Les outils de tri permettent aux utilisateurs de trier les produits d'une même famille selon plusieurs critères de tri proposés, tel que par exemple prix, marque, couleur, etc. Pour chacun des critères de tri proposés plusieurs valeurs de tri sont disponibles, telles que par exemple des tranches de prix lorsque le critère de tri est le prix. Un procédé de tri connu comprend, préalablement à toute requête de 35 tri d'un utilisateur, une étape préliminaire de pré-tri réalisant une - 2 - génération, à partir d'une ou plusieurs bases de données de produits, appelées bases de données source, d'une base de donnés multidimensionnelle, appelée cube, dans lequel tous les produits sont triés suivant tous les critères de tri, chaque critère de tri correspondant à une dimension du cube. Puis, lors de la réception d'une requête de tri, le procédé accède le cube aux dimensions concernées et le résultat du tri est fourni. Ce procédé présente plusieurs inconvénients dont celui de nécessiter une puissance de calcul importante lors de la génération du cube multidimensionnelle. De plus, pour prendre en compte une modification d'une donnée dans la base de données source, le cube multidimensionnel doit être régénéré à chaque modification, ce qui rend difficile, voire impossible, la possibilité, dans un tel procédé de tri, de prendre en compte des données changeant fréquemment, telles que par exemple une quantité disponible à la vente pour tel ou tel produit et éventuellement dans tel ou tel point de vente. Enfin, ce procédé permet de réaliser un tri avec des valeurs de tri prédéterminées pour les critères de tri. D'autres procédés de tri connus, ne comprennent pas une étape préliminaire de pré-tri. Ces procédés accèdent la base de données source à chaque réception d'une requête de tri et testent tous les critères de tri de la requête de tri sur chacun des produits. Ces procédés de tri présentent plusieurs inconvénients dont celui de nécessiter d'importantes ressources informatiques et un temps de réponse long, ces inconvénients s'empirant avec la fréquentation du site et la complexité des requêtes de tri.State of the art Currently, many websites offer tools for sorting information of products offered for sale in electronic catalogs, with the objective of providing a product or products corresponding to criteria entered by the user. These tools make it easier and more user-friendly to navigate through a catalog of thousands of products and reach a group of products that interests and is likely to buy. Sorting tools allow users to sort products from the same family according to several sorting criteria, such as price, brand, color, etc. For each of the sorting criteria proposed, several sorting values are available, such as, for example, price bands when the sorting criterion is the price. A known sorting method comprises, prior to any sorting request from a user, a preliminary pre-sorting step, generating from one or more product databases, called databases. source, a multidimensional database, called cube, in which all products are sorted according to all sort criteria, each sort criterion corresponding to a dimension of the cube. Then, upon receiving a sort request, the method accesses the cube to the dimensions concerned and the result of sorting is provided. This method has several drawbacks including the need to require significant computing power during the generation of the multidimensional cube. In addition, to take into account a modification of a piece of data in the source database, the multidimensional cube must be regenerated with each modification, which makes it difficult, if not impossible, in such a sorting process, to take account frequently changing data, such as for example a quantity available for sale for a particular product and possibly in a particular point of sale. Finally, this method makes it possible to carry out a sorting with predetermined sorting values for the sorting criteria. Other known sorting methods do not include a preliminary pre-sorting step. These methods access the source database each time a sort request is received and test all the sorting criteria of the sort request on each of the products. These sorting methods have several drawbacks, including the need to require large computer resources and a long response time, these drawbacks worsening with site traffic and the complexity of sorting requests.

Un but de l'invention est de pallier les inconvénients précités. Un autre but de l'invention est de proposer un procédé et un système de traitement de données réalisant un tri au sein d'un ensemble d'entités numériques plus flexible que les procédés et systèmes connus. Un autre but de l'invention est de proposer un procédé et un système de traitement de données réalisant un tri au sein d'un ensemble d'entités numériques, permettant la prise en compte de données changeant tout en nécessitant moins de ressources informatiques que les procédés actuels. Un autre but de l'invention est de proposer un procédé et un système de traitement de données réalisant un tri au sein d'un ensemble d'entités - 3 - numériques, permettant la prise en compte de données changeant tout en proposant un temps de réponse moins long que les procédés actuels.An object of the invention is to overcome the aforementioned drawbacks. Another object of the invention is to provide a method and a data processing system performing sorting within a set of digital entities more flexible than known methods and systems. Another object of the invention is to propose a method and a data processing system performing a sorting within a set of digital entities, allowing the taking into account of changing data while requiring fewer computer resources than the current processes. Another object of the invention is to propose a method and a data processing system performing a sorting within a set of digital entities, allowing the taking into account of changing data while proposing a time of response shorter than current processes.

Enoncé de l'invention L'invention propose d'atteindre au moins un de ces buts par un procédé de traitement de données pour effectuer un tri au sein d'un ensemble d'entités numériques, dits enregistrements, chacun desdits enregistrements étant représenté par au moins une donnée numérique, dite valeur, associée à au moins un critère, dit de tri, et mémorisée dans une base de données, dite source, en association avec au moins une donnée d'identification dudit enregistrement, ledit procédé comprenant : - une étape de réception d'une requête, dite de tri, comprenant au moins une relation de filtrage visant un critère de tri, et - une phase d'obtention, à la volée et à partir de ladite base de données source, d'une base de données, dite cube de tri, comprenant une dimension associée à chaque critère de tri visé dans ladite requête de tri, chaque dimension : ^ étant indépendante des autres dimensions dudit cube, et ^ comprenant, un ou plusieurs membres, correspondant chacun à une valeur que peut prendre le critère de tri auquel est associée ladite dimension et mémorisant un identifiant d'au moins un enregistrement présentant ladite valeur pour ledit critère de tri ; - une phase de filtrage dudit cube de tri avec l'au moins une relation filtrage composant ladite requête de tri ; - une phase de détermination d'un résultat de tri, en fonction dudit filtrage. Ainsi, le procédé selon l'invention permet d'obtenir, à la volée et suite à la réception d'une requête de tri, à partir d'une base de données source, un cube multidimensionnel comprenant une dimension pour chacun des critères de ladite requête de tri reçue. Suivant le procédé selon l'invention, une dimension du cube associée à un critère de tri est construite/générée/obtenue uniquement lors de la réception d'une première - 4 - requête de tri concernant ce critère de tri. Autrement dit, dans le cas où un critère de tri n'est concerné par aucune requête de tri reçue aucune dimension associée à ce critère de tri ne sera présente dans le cube multidimensionnel.SUMMARY OF THE INVENTION The invention proposes to achieve at least one of these objects by a data processing method for sorting within a set of digital entities, called recordings, each of said records being represented by less a numerical data, called value, associated with at least one criterion, called sorting, and stored in a database, said source, in association with at least one identification data of said record, said method comprising: a step of receiving a request, said sorting, comprising at least one filtering relation targeting a sorting criterion, and - a phase of obtaining, on the fly and from said source database, a database of data, said sorting cube, comprising a dimension associated with each sorting criterion referred to in said sorting request, each dimension: ^ being independent of the other dimensions of said cube, and ^ comprising, one or more members, cor each responding to a value that can be taken by the sorting criterion associated with said dimension and storing an identifier of at least one record having said value for said sorting criterion; a filtering phase of said sorting cube with the at least one filtering relation composing said sorting request; a phase of determining a sorting result, as a function of said filtering. Thus, the method according to the invention makes it possible to obtain, on the fly and following the reception of a sorting request, from a source database, a multidimensional cube comprising a dimension for each of the criteria of said sort request received. According to the method according to the invention, a dimension of the cube associated with a sorting criterion is constructed / generated / obtained only on receipt of a first sorting request concerning this sorting criterion. In other words, in the case where a sorting criterion is not concerned by any sorting request received, no dimension associated with this sorting criterion will be present in the multidimensional cube.

Le procédé selon l'invention permet donc d'éviter la construction d'un cube multidimensionnel comprenant une dimension pour chaque critère de tri de l'ensemble des critères de tri disponibles, préalablement à la réception de toute requête de tri. Ainsi, le procédé de tri selon l'invention nécessite une puissance de calcul moins grande pour la génération du cube multidimensionnel comparé aux procédés de l'état de la technique réalisant un pré-tri. De plus, le cube multidimensionnel généré dans le procédé selon l'invention est plus petit que celui généré dans les procédés de l'état de la technique relisant un pré-tri. Par conséquent, lors du changement d'une donnée dans la base de données source, la régénération du cube multidimensionnel peut être réalisée fréquemment sans pour autant nécessiter une puissance de calcul aussi grande que celui demandé par les procédés de l'état de la technique réalisant un pré-tri. Dans le procédé selon l'invention, une dimension associée à un critère de tri est construite uniquement suite à une requête concernant ce critère de tri. Il est donc possible avec le procédé de tri selon l'invention de réaliser un tri plus flexible et plus personnalisable, avec des valeurs de tri choisies par l'utilisateur, comparé aux procédés de l'état de la technique réalisant un pré-tri avec des valeurs de tri prédéterminées et imposées à l'utilisateur.The method according to the invention thus makes it possible to avoid the construction of a multidimensional cube comprising a dimension for each sorting criterion of all the sorting criteria available, before receiving any sorting request. Thus, the sorting method according to the invention requires a lower computation power for the generation of the multidimensional cube compared to the methods of the state of the art performing a pre-sorting. In addition, the multidimensional cube generated in the method according to the invention is smaller than that generated in the methods of the state of the art rereading a pre-sorting. Therefore, when changing data in the source database, the regeneration of the multidimensional cube can be performed frequently without requiring computing power as large as that required by the methods of the state of the art realizing a pre-sorting. In the method according to the invention, a dimension associated with a sorting criterion is constructed only following a request concerning this sorting criterion. It is therefore possible with the sorting method according to the invention to perform a more flexible and customizable sorting, with sorting values chosen by the user, compared to the methods of the state of the art performing a pre-sorting with predetermined sorting values imposed on the user.

De plus, lorsqu'une donnée concernant un critère de tri est modifiée avant la génération de la dimension associée à ce critère de tri, une telle modification ne nécessite pas la régénération du cube de tri. En outre, le procédé selon l'invention ne teste pas tous les critères de tri d'une requête tri sur toutes les entités de la base de données source mais uniquement sur celles présentes dans les dimensions du cube de tri. Par conséquent, le procédé selon l'invention permet de réaliser un tri en un temps de réponse plus court, tout en utilisant moins de ressources informatiques, comparés aux procédés de tri de l'état de la technique ne réalisant pas de pré-tri.35 - 5 - Selon l'invention, l'« identifiant » d'un enregistrement mémorisé par un membre d'une dimension peut être la donnée d'identification dudit enregistrement mémorisée dans la base de données source, ou une donnée, différente de ladite donnée d'identification calculée à partir de ladite donnée d'identification avec une fonction prédéterminée. Avantageusement, la requête de tri peut en outre comprendre une relation, dite de sortie, utilisée pour classer les enregistrements obtenus après la phase de filtrage, et en particulier les enregistrements dont les identifiants sont mémorisés dans un groupe final d'identifiants fournis par la phase de filtrage. Dans ce cas, le procédé selon l'invention peut en outre comprendre, après la phase de filtrage, une phase de classement des enregistrements vérifiant les relations de filtrage, en particulier les enregistrements dont les identifiants sont mémorisés dans le groupe final fourni par la phase de filtrage. D'une manière similaire voire identique à une relation de filtrage, chaque relation de sortie vise un critère de tri, i.e. une dimension du cube. Une relation de sortie peut présenter la même architecture qu'une relation de filtrage. Dans ce cas, la différence entre lesdites relations peut être concrétisée par formalisme par exemple. En variante, la requête de tri peut comprendre deux listes séparées : une première liste comprenant les relations de filtrage et une deuxième liste comprenant les relations de sortie.In addition, when data relating to a sorting criterion is modified before the generation of the dimension associated with this sorting criterion, such a modification does not require the regeneration of the sort cube. In addition, the method according to the invention does not test all the criteria for sorting a sort query on all the entities of the source database but only on those present in the dimensions of the sorting cube. Therefore, the method according to the invention makes it possible to perform sorting in a shorter response time, while using fewer computer resources, compared to the sorting methods of the state of the art not performing pre-sorting. According to the invention, the "identifier" of a record stored by a member of a dimension may be the identification data of said record stored in the source database, or a datum, different from said identification data calculated from said identification data with a predetermined function. Advantageously, the sorting request may furthermore comprise a so-called output relationship used to classify the records obtained after the filtering phase, and in particular the records whose identifiers are stored in a final group of identifiers provided by the phase. filtering. In this case, the method according to the invention may further comprise, after the filtering phase, a classification phase of the records verifying the filtering relations, in particular the records whose identifiers are stored in the final group provided by the phase. filtering. In a similar way, even identical to a filtering relation, each output relation aims at a sorting criterion, i.e. a dimension of the cube. An output relationship may have the same architecture as a filtering relationship. In this case, the difference between said relationships can be concretized by formalism for example. Alternatively, the sort request may comprise two separate lists: a first list including the filtering relations and a second list including the output relationships.

Préférentiellement, chaque dimension du cube peut comprendre autant de membres qu'il existe de valeurs différentes dans la base de données source, sur l'ensemble des enregistrements, pour le critère auquel ladite dimension est associée.Preferentially, each dimension of the cube may comprise as many members as there are different values in the source database, on the set of records, for the criterion to which said dimension is associated.

Par exemple, et de manière non limitative, pour le critère de tri « COULEUR » chaque couleur différente, présente dans la base de données source sur l'ensemble des enregistrements, constitue un membre. Par exemple, si pour le critère de tri « COULEUR », l'ensemble des enregistrements présents dans la base de données source présente comme valeur soit « ROUGE », soit « VERT » soit « BLEU » alors la dimension - 6 - associée au critère de tri « COULEUR » comporte trois membres, à savoir « ROUGE », « VERT » et BLEU ». Selon un autre exemple non limitatif, pour le critère de tri « MARQUE » chaque marque différente, présente dans la base de données source sur l'ensemble des enregistrements, constitue un membre. Par exemple, si pour le critère de tri « MARQUE », l'ensemble des enregistrements présents dans la base de données source présente comme marque soit « BMW® », soit « AUDI® », soit « PORSCHE® » alors la dimension associée au critère de tri « MARQUE » comporte trois membres, à savoir « BMW® », « AUDI® » et « PORSCHE® ». Dans une version particulièrement préférée du procédé selon l'invention, la phase d'obtention du cube de tri peut comprendre les étapes suivantes : - détermination de tous les critères de tri visés dans la requête de tri, à savoir les critères de tris visés par les relations de filtrage et les relations de sortie de la requête de tri, - consultation d'un cube existant pour déterminer si ledit cube existant comprend, pour chacun des critères de tri visé dans la requête de tri, une dimension associée audit critère de tri : si oui, utilisation dudit cube existant comme cube de tri, sinon, complétion dudit cube existant avec chacune des dimensions manquantes à partir de la base de données source et utilisation dudit cube existant ainsi complété comme cube de tri. Ainsi, lorsqu'après la réception de la requête de tri, un cube existant comprend pour chaque critère de tri visé dans la requête de tri une dimension associée audit critère de tri, le cube existant est utilisé comme cube de tri. Une telle utilisation d'un cube existant évite toute génération d'une dimension ou toute consultation de la base de données source et permet ainsi de diminuer les ressources informatiques et le temps de réponse pour l'obtention du cube de tri. En outre, lorsqu'après la réception de la requête de tri, un cube existant comprend des dimensions associées à certains seulement des - 7 - critères de tri visés dans la requête de tri, ce cube existant peut être complété par la ou les dimensions associées à chacun des critères de tri manquants pour obtenir le cube de tri. Une telle utilisation d'un cube existant limite le nombre de dimensions à générer et par conséquent, la consultation de la base de données source, les ressources informatiques et le temps de réponse pour l'obtention du cube de tri. Lorsque plusieurs cubes existants comprennent chacun une ou des dimensions associée(s) à un ou plusieurs critères de tri visé(s) par la requête de tri, c'est le cube existant auquel il manque le moins grand nombre de dimensions, qui est complété pour obtenir le cube de tri. Chacun des cubes existant peut être un cube de tri préalablement généré ou obtenu pour une ou des requêtes de tri précédemment traitée(s). Lorsque suite à la réception d'une requête de tri aucun cube de tri n'existe, alors la phase d'obtention peut comprendre une étape de création d'un cube de tri comprenant une ou plusieurs dimensions, chaque dimension du cube ainsi créée étant ensuite alimentée par accès à la base de données source.For example, and without limitation, for the sorting criterion "COLOR" each different color, present in the source database on all records, constitutes a member. For example, if for the "COLOR" sorting criterion, all the records present in the source database have the value "RED", "GREEN" or "BLUE" then the dimension - 6 - associated with the criterion COLOR sorting consists of three members, namely "RED", "GREEN" and BLUE ". According to another non-limiting example, for the sorting criterion "MARK", each different mark, present in the source database on all the records, constitutes a member. For example, if for the "BRAND" sorting criterion, all records in the source database are marked as "BMW®" or "AUDI®" or "PORSCHE®", then the dimension associated with sorting criterion "BRAND" has three members, namely "BMW®", "AUDI®" and "PORSCHE®". In a particularly preferred version of the method according to the invention, the phase of obtaining the sorting cube may comprise the following steps: determining all the sorting criteria referred to in the sorting request, namely the sorting criteria referred to in the filtering relations and the output relations of the sorting request, - consulting an existing cube to determine whether said existing cube comprises, for each of the sorting criteria referred to in the sorting request, a dimension associated with said sorting criterion if so, use of said existing cube as a sort cube, otherwise, completion of said existing cube with each of the missing dimensions from the source database and use of said existing cube thus completed as a sort cube. Thus, when after receiving the sorting request, an existing cube includes for each sorting criterion referred to in the sorting request a dimension associated with said sorting criterion, the existing cube is used as a sort cube. Such use of an existing cube avoids any generation of a dimension or any consultation of the source database and thus reduces the computing resources and the response time to obtain the sort cube. In addition, when after receiving the sort request, an existing cube includes dimensions associated with only some of the sorting criteria referred to in the sorting request, this existing cube may be completed with the associated dimension (s). to each of the missing sort criteria to get the sort cube. Such use of an existing cube limits the number of dimensions to be generated and therefore, the consultation of the source database, the computing resources and the response time for obtaining the sorting cube. When several existing cubes each include one or more dimensions associated with one or more sorting criteria referred to by the sorting request, it is the existing cube that lacks the least number of dimensions, which is completed. to get the sort cube. Each of the existing cubes may be a sort cube previously generated or obtained for one or more sort requests previously processed (s). When, following the reception of a sorting request, no sorting cube exists, then the obtaining phase may comprise a step of creating a sorting cube comprising one or more dimensions, each dimension of the cube thus created being then powered by access to the source database.

Le procédé selon l'invention peut préférentiellement comprendre, une mémorisation, plus particulièrement en mémoire vive, d'un cube de tri utilisé pour une requête de tri donnée, en vue de son utilisation future pour une requête de tri à venir, soit tel qu'il est soit en ayant été préalablement complété par ajout d'au moins une dimension, tel que décrit plus haut. Ainsi, les ressources informatiques et le temps de réponse pour obtenir le cube de tri, et par conséquent pour réaliser le tri, sont diminués comparés aux procédés de l'état de la technique. Le procédé selon l'invention peut en outre comprendre une étape de 30 suppression d'un cube de tri, ou d'une dimension d'un cube de tri, préalablement généré(s) et chargé(s) en mémoire, si ce (cette) dernier(e) n'est pas utilisé(e) pour une durée prédéterminée, qui peut être ajustable. Dans une version du procédé selon l'invention où un cube existant est 35 réutilisé comme cube de tri, soit tel qu'il est, soit après avoir été complété - 8 - par ajout d'au moins une dimension manquante, la requête de tri reçue peut comprendre une donnée d'identification d'un tel cube existant. Un tel cube peut être mémorisé dans une base de cubes comprenant au moins un cube.The method according to the invention may preferentially comprise a storage, more particularly in RAM, of a sorting cube used for a given sorting request, with a view to its future use for a future sorting request, or such that it is either having been previously completed by adding at least one dimension, as described above. Thus, the computing resources and the response time to obtain the sorting cube, and consequently to perform the sorting, are reduced compared to the methods of the state of the art. The method according to the invention may further comprise a step of removing a sort cube, or a dimension of a sort cube, previously generated and loaded into memory, if this ( this last) is not used for a predetermined duration, which may be adjustable. In a version of the method according to the invention where an existing cube is reused as a sort cube, either as it is, or after being completed by adding at least one missing dimension, the sorting request received may include identification data of such an existing cube. Such a cube can be stored in a base of cubes comprising at least one cube.

Pour plus de réactivité et un temps de réponse plus faible, un tel cube existant ou une telle base de cube peut préférentiellement être mémorisé(e) dans des moyens de mémorisation vive, des moyens de mémorisation à accès direct ou encore des moyens de mémorisation volatiles. Ainsi, il est possible de créer et manipuler plusieurs cubes, chaque cube concernant un point de vente, une famille de produit, etc. Selon l'invention, la phase de filtrage fournit un groupe, dit final, comprenant les identifiants des enregistrements vérifiant la ou les relations de filtrage.For more responsiveness and a lower response time, such an existing cube or such a cube base may preferentially be stored in living storage means, direct access storage means or volatile storage means. . Thus, it is possible to create and manipulate several cubes, each cube concerning a point of sale, a product family, etc. According to the invention, the filtering phase provides a group, termed final, comprising the identifiers of the records verifying the filtering relation (s).

Dans une version particulière, la phase de filtrage peut comprendre, pour chaque relation de filtrage visant un critère de tri, une étape de filtrage, selon ladite relation de filtrage, des membres de la dimension du cube de tri associée audit critère de tri, indépendamment des autres relations de filtrage, chaque étape de filtrage fournissant un groupe, dit intermédiaire, comprenant un ou des identifiants d'un ou des enregistrements mémorisé(s) dans ladite dimension et vérifiant ladite relation de filtrage. Ainsi, l'application de chaque relation de filtrage sur le cube de tri, et plus particulièrement à la dimension associée au critère de tri visé par la relation de filtrage, retourne un groupe intermédiaire d'identifiants d'enregistrements dont les valeurs pour le critère de tri visé par la relation de filtrage vérifient la relation de filtrage. Avantageusement, pour au moins une relation de filtrage, et préférentiellement pour chaque relation de filtrage, le groupe intermédiaire fourni par ladite relation de filtrage, peut être obtenu en réalisant l'union de tous les identifiants d'enregistrements mémorisés par le ou les membres de ladite dimension satisfaisant ladite relation de filtrage. Une telle union permet d'éliminer les multiples occurrences d'un même enregistrement dans le groupe intermédiaire, dues au fait que cet - 9 - enregistrement est mémorisé par plusieurs membres de la dimension satisfaisant la relation de filtrage. Selon un exemple non limitatif, un critère de tri « PRIX » est associé à une dimension « PRIX » comprenant trois membres : « M1 :10E », « M2 :30E » et « M3 :60E ». Chaque membre de la dimension mémorise l'identifiant d'au moins un enregistrement dont le prix est égal au membre : M1={2,3}, M2={3,4} et M3={1,5}. Une relation de filtrage « RF1 :PRIX<50E » est appliquée à la dimension « PRIX » de manière indépendante. Les membres de la dimension D1 vérifiant la relation de filtrage sont M1 et M2 et le groupe intermédiaire fourni par la relation de filtrage, noté GI1, est obtenu en réalisant l'union des identifiants mémorisés par les membres M1 et M2, à savoir GI1={2,3,4}. Ainsi, l'union permet d'éliminer une occurrence de l'enregistrement 3 qui apparait à la fois dans le membre M1 et dans le membre M2. Avantageusement, le procédé selon l'invention peut comprendre une utilisation d'une table de hash pour réaliser l'union d'au moins deux membres.In a particular version, the filtering phase may comprise, for each filtering relationship targeting a sorting criterion, a filtering step, according to said filtering relation, of the members of the dimension of the sort cube associated with said sorting criterion, independently other filtering relationships, each filtering step providing a group, said intermediate, comprising one or more identifiers of one or more records stored in said dimension and checking said filtering relation. Thus, the application of each filtering relation on the sorting cube, and more particularly to the dimension associated with the sorting criterion targeted by the filtering relation, returns an intermediate group of record identifiers whose values for the criterion sorting referred to by the filtering relation verify the filtering relation. Advantageously, for at least one filtering relationship, and preferably for each filtering relationship, the intermediate group provided by said filtering relation can be obtained by performing the union of all the record identifiers stored by the one or more members of the filtering relationship. said dimension satisfying said filtering relation. Such a union makes it possible to eliminate the multiple occurrences of the same record in the intermediate group, due to the fact that this record is memorized by several members of the dimension satisfying the filtering relation. According to a nonlimiting example, a sorting criterion "PRICE" is associated with a dimension "PRICE" comprising three members: "M1: 10E", "M2: 30E" and "M3: 60E". Each member of the dimension stores the identifier of at least one record whose price is equal to the member: M1 = {2,3}, M2 = {3,4} and M3 = {1,5}. A filtering relationship "RF1: PRICE <50E" is applied to the "PRICE" dimension independently. The members of the dimension D1 verifying the relation of filtering are M1 and M2 and the intermediate group provided by the filtering relation, denoted GI1, is obtained by realizing the union of the identifiers memorized by the members M1 and M2, namely GI1 = {2,3,4}. Thus, the union makes it possible to eliminate an occurrence of the record 3 which appears both in the member M1 and in the member M2. Advantageously, the method according to the invention may comprise a use of a hash table to achieve the union of at least two members.

Dans ce cas, chaque membre de chaque dimension peut comprendre une table de hash dans laquelle sont mémorisées les identifiants mémorisés par ce membre. Autrement dit, chaque membre comprend une table de hash et un identifiant est mémorisé dans la case de cette table de hash correspondant à la valeur de hash calculée pour cet identifiant.In this case, each member of each dimension can comprise a hash table in which are memorized the identifiers memorized by this member. In other words, each member includes a hash table and an identifier is stored in the box of this hash table corresponding to the hash value calculated for this identifier.

Une telle table de hash d'un membre peut être générée au moment de la génération du membre, et peut être mise à jour à chaque mise à jour du membre. Dans le cas où une table de hash est utilisée pour réaliser l'union de deux membres d'une dimension, et plus généralement pour obtenir le groupe intermédiaire, le groupe intermédiaire peut également comprendre une table de hash, dans laquelle sont mémorisés tous les identifiants du groupe intermédiaire. Dans tous les cas, pour mémoriser un identifiant dans une table de hash, la valeur de hash de cet identifiant est calculée avec une fonction de - 10 - hash prédéterminée et commune à tous les membres de la dimension. Ensuite, la case de la table de hash est identifiée grâce à ladite valeur de hash. L'identifiant est ensuite mémorisé dans ladite case ainsi identifiée.Such a member's hash table can be generated at the time of the member's generation, and can be updated each time the member is updated. In the case where a hash table is used to achieve the union of two members of a dimension, and more generally to obtain the intermediate group, the intermediate group may also comprise a hash table, in which are stored all the identifiers intermediate group. In all cases, to memorize an identifier in a hash table, the hash value of this identifier is calculated with a predetermined hash function that is common to all members of the dimension. Then, the box of the hash table is identified by said hash value. The identifier is then stored in said box thus identified.

Avantageusement, la fonction de hash utilisée pour chaque dimension peut être fonction du type des données mémorisées dans cette dimension, en particulier du type et/ou du nombre de membres de cette dimension. Autrement dit, la fonction de hash utilisée par chaque dimension peut être spécifique à cette dimension.Advantageously, the hash function used for each dimension may be a function of the type of data stored in this dimension, in particular of the type and / or the number of members of this dimension. In other words, the hash function used by each dimension can be specific to that dimension.

Lorsque plusieurs relations de filtrage d'une requête de tri visent un même critère de tri, et par conséquent une même dimension du cube de tri, chacune de ces relations de filtrage : - est appliquée à la dimension concernée indépendamment de chacune des autres relations de filtrage, et fournit un groupe intermédiaire d'identifiants d'enregistrements indépendant de chacun des groupes intermédiaires d'identifiants d'enregistrements fourni par chacune des autres relations de filtrage.When several filtering relations of a sorting request are aimed at the same sorting criterion, and consequently the same dimension of the sort cube, each of these filtering relations: - is applied to the dimension concerned independently of each of the other relations of filtering, and provides an intermediate group of record identifiers independent of each of the record identifier intermediate groups provided by each of the other filtering relationships.

Selon un exemple non limitatif, lorsque deux relations de filtrage RF2 : COULEUR=bleu » et « RF3 : COULEUR=rouge » visent le critère de tri « CT2=COULEUR » alors chacune des relations de filtrage RT2 et RT3 est appliquée à la dimension « COULEUR » associée au critère de tri CT2 de manière indépendante et retourne un groupe intermédiaire, respectivement GI2 et GI3. Le groupe intermédiaire GI2 comprend tous les identifiants des enregistrements de couleur bleue, i.e. mémorisés par le membre « Bleu » de la dimension « COULEUR », et le groupe intermédiaire GI3 comprend tous les identifiants des enregistrements de couleur rouge, i.e. mémorisés par le membre « Rouge » de la dimension « COULEUR ». Lorsque la requête de tri comprend plusieurs relations de filtrage, ladite requête comprend également un ou plusieurs opérateurs booléens reliant lesdites relations de filtrage entre-elles. - 11 - La phase de filtrage peut alors comprendre une étape appliquant lesdits opérateurs booléens aux groupes intermédiaires d'identifiants d'enregistrements fournis par chacune des relations de filtrage, et fournissant le groupe final d'identifiants d'enregistrements vérifiant les relations de filtrage. Autrement dit, lorsque la requête de tri comprend deux relations de filtrage le résultat de la phase de filtrage du cube de tri est obtenu en appliquant la relation booléenne entre ces deux relations de filtrage aux groupes intermédiaires d'identifiants d'enregistrements retournés par chacune desdites deux relations de filtrage. Selon un exemple non limitatif, si la requête tri R comprend les relations de filtrage « (RF2 :COULEUR=Bleue) OU (RF3 :COULEUR=Rouge) » avec G12 le groupe intermédiaire fourni par la relation de filtrage RF2 et G13 le groupe intermédiaire fourni par la relation de filtrage RF3, alors, le groupe final GF fourni par l'application des deux relations de filtrage RF2 et RF3 est donné par « GF = G12 OU G13 », c'est-à-dire l'union des identifiants d'enregistrement présents dans G12 et dans G13. Par contre, si la requête tri comprend les relations de filtrage « (RF2 :COULEUR=Bleue) ET (RF3 :COULEUR=Rouge) », alors, le groupe final est donné par « GF = G12 ET G13 », c'est-à-dire l'intersection des identifiants d'enregistrement présents dans G12 et dans G13. Dans une version préférée de l'invention, le procédé selon l'invention peut comprendre, suite à une réception d'une requête de tri, une étape regroupant les relations de filtrage visant une même dimension, et donc un même critère de tri. La relation booléenne utilisée pour relier ces relations de filtrage visant une même dimension, et donc un même critère de tri, est alors un « OU ». La relation booléenne utilisée pour relier deux relations de filtrage, ou deux groupes de relations de filtrage, visant deux dimensions différentes, et donc deux critères de tri différents, est alors un « ET ». Avantageusement, le procédé selon l'invention peut comprendre une utilisation d'une table de hash pour appliquer un opérateur booléen à deux groupes intermédiaires, et plus généralement pour appliquer, les opérateurs - 12 - booléens reliant des relations de filtrage dans une requête de tri, aux groupes intermédiaires fournis par chacune de ces relations de filtrage . Dans ce cas, chaque groupe intermédiaire fourni par une relation de filtrage peut comprendre une table de hash dans laquelle sont mémorisés les identifiants faisant partie de ce groupe intermédiaire, tel que décrit plus haut. Le groupe final peut alors également comprendre une table de hash dans laquelle sont mémorisés les identifiants composant le résultat de l'application de la requête de tri.According to a nonlimiting example, when two filtering relations RF2: COLOR = blue "and" RF3: COLOR = red "refer to the sorting criterion" CT2 = COLOR "then each of the RT2 and RT3 filtering relations is applied to the dimension" COLOR "associated with the sort criterion CT2 independently and returns an intermediate group, respectively GI2 and GI3. The intermediate group GI2 includes all the identifiers of the blue color records, ie stored by the member "Blue" of the dimension "COLOR", and the intermediate group GI3 includes all the identifiers of the red color records, ie stored by the member " Red "of the" COLOR "dimension. When the sorting request comprises several filtering relations, said request also comprises one or more Boolean operators linking said filtering relations to one another. The filtering phase may then comprise a step applying said Boolean operators to the intermediate groups of record identifiers provided by each of the filtering relationships, and providing the final group of record identifiers verifying the filtering relationships. In other words, when the sorting request includes two filtering relations the result of the filtering phase of the sorting cube is obtained by applying the Boolean relation between these two filtering relations to the intermediate groups of record identifiers returned by each of said filtering relations. two filtering relationships. According to a nonlimiting example, if the sorting request R comprises the filtering relations "(RF2: COLOR = Blue) OR (RF3: COLOR = Red)" with G12 the intermediate group provided by the filtering relation RF2 and G13 the intermediate group provided by the filtering relation RF3, then, the final group GF provided by the application of the two filtering relations RF2 and RF3 is given by "GF = G12 OR G13", that is to say the union of the identifiers in G12 and G13. On the other hand, if the sorting query includes the filtering relations "(RF2: COLOR = Blue) AND (RF3: COLOR = Red)", then the final group is given by "GF = G12 AND G13", that is, ie the intersection of the registration identifiers present in G12 and in G13. In a preferred version of the invention, the method according to the invention may comprise, following a reception of a sorting request, a step grouping the filtering relations targeting the same dimension, and therefore the same sorting criterion. The Boolean relation used to link these filtering relations targeting the same dimension, and therefore the same sorting criterion, is then an "OR". The Boolean relation used to link two filtering relations, or two groups of filtering relations, aimed at two different dimensions, and therefore two different sorting criteria, is then an "AND". Advantageously, the method according to the invention can comprise a use of a hash table to apply a Boolean operator to two intermediate groups, and more generally to apply, the Boolean operators linking filtering relations in a sorting request. , to the intermediate groups provided by each of these filtering relationships. In this case, each intermediate group provided by a filtering relation may comprise a hash table in which are stored the identifiers belonging to this intermediate group, as described above. The final group can then also include a hash table in which are stored the identifiers composing the result of the application of the sorting request.

Dans une version préférée, la phase de classement peut comprendre une application indépendante et unitaire de chaque relation de sortie au groupe final d'identifiants fourni par l'étape de filtrage. Selon l'invention, au moins une relation de sortie vise un critère de tri et peut comprendre un opérateur de tri et une valeur de tri. Dans ce cas, et selon une version particulière, l'application d'une relation de sortie, et préférentiellement de chaque relation de sortie, peut comprendre les étapes suivantes : - filtrage de la dimension concernée par la relation de sortie, c'est-à-dire la dimension associée au critère de tri visé par la relation de sortie, ledit filtrage fournissant un groupe intermédiaire d'identifiants vérifiant la relation de sortie ; et - détermination de l'intersection dudit groupe intermédiaire ainsi obtenu avec le groupe final fournit par la phase de filtrage, ladite intersection fournissant les identifiants présents à la fois dans le groupe intermédiaire et dans le groupe final. L'étape de filtrage d'une dimension avec une relation de sortie peut avantageusement être réalisée d'une manière similaire, ou de la même manière que, l'étape de filtrage d'une dimension avec une relation de filtrage, telle que décrite plus haut, y compris l'utilisation d'une table de hash. L'étape de détermination de l'intersection peut être réalisée par utilisation de tables de hash telle que décrite plus haut dans le cadre d'une intersection, i.e. dans la cadre de l'application d'un opérateur booléen « ET ». - 13 - L'application d'une relation de sortie peut comprendre, après l'étape de détermination de l'intersection, une étape associant les identifiants fournis par l'intersection avec la relation de sortie. Lorsque la requête de tri comprend plusieurs relations de sortie, chaque relation de sortie est appliquée indépendamment au groupe final fourni par la phase de filtrage. La phase de classement peut alors comprendre une étape de concaténation des résultats fournis par chacune des relations de sortie, ladite phase de classement fournissant alors une liste obtenue par ladite étape de concaténation.In a preferred version, the ranking phase may comprise an independent and unitary application of each output relationship to the final group of identifiers provided by the filtering step. According to the invention, at least one output relationship is for a sorting criterion and may include a sort operator and a sort value. In this case, and according to a particular version, the application of an output relationship, and preferably of each output relation, can comprise the following steps: filtering the dimension concerned by the output relationship, that is, that is, the dimension associated with the sorting criterion targeted by the output relationship, said filtering providing an intermediate group of identifiers checking the output relationship; and - determining the intersection of said intermediate group thus obtained with the final group provided by the filtering phase, said intersection providing the identifiers present both in the intermediate group and in the final group. The step of filtering a dimension with an output relationship may advantageously be performed in a similar manner, or in the same manner as, the step of filtering a dimension with a filtering relation, as described above. top, including the use of a hash table. The step of determining the intersection can be performed using hash tables as described above in the context of an intersection, i.e. in the context of the application of a Boolean operator "AND". The application of an output relationship may include, after the step of determining the intersection, a step associating the identifiers provided by the intersection with the output relationship. When the sort request includes several output relationships, each output relationship is applied independently to the final group provided by the filtering phase. The classification phase can then include a step of concatenating the results provided by each of the output relationships, said classification phase then providing a list obtained by said concatenation step.

Plus généralement, selon l'invention, lorsqu'un opérateur booléen est appliqué à deux ensembles d'identifiants : - chaque ensemble d'identifiants pouvant être : mémorisé par un membre d'une dimension, ou un groupe intermédiaire fourni par une relation de filtrage appliquée à une dimension, un groupe intermédiaire fourni par une relation de sortie appliquée à une dimension, ou le groupe final fourni par l'étape de filtrage, - chaque opérateur booléen pouvant être : ^ une union, par conséquent un « OU », ou ^ une intersection, par conséquent un « ET » ; au moins un, préférentiellement chacun, de ces ensembles peut comprendre une table de hash dans laquelle sont mémorisés les identifiants de cet ensemble et, l'opérateur booléen peut être appliqué à ces deux ensembles en utilisant la table de hash d'au moins l'un desdits deux ensembles. Dans ce cas, l'ensemble obtenu par l'application de l'opérateur booléen peut également comprendre une table de hash dans laquelle sont mémorisés les identifiants.More generally, according to the invention, when a Boolean operator is applied to two sets of identifiers: each set of identifiers can be: stored by a member of a dimension, or an intermediate group provided by a filtering relation applied to a dimension, an intermediate group provided by an output relation applied to a dimension, or the final group provided by the filtering step, - each Boolean operator being: a union, hence an "OR", or ^ an intersection, hence an "AND"; at least one, preferably each, of these sets may comprise a hash table in which the identifiers of this set are stored and, the boolean operator can be applied to these two sets using the hash table of at least one one of said two sets. In this case, the set obtained by the application of the Boolean operator may also comprise a hash table in which the identifiers are stored.

Avantageusement, au moins une dimension du cube de tri, peut comprendre au moins une liste dans laquelle les membres de ladite dimension peuvent être ordonnés selon une fonction prédéterminée s'appliquant audits membres. - 14 - Selon un exemple non limitatif, les membres d'une dimension associée au critère de tri « PRIX », i.e. toutes les valeurs différentes de prix que prend le critère de tri « PRIX » dans la base de données source sur l'ensemble des enregistrements, peuvent être ordonnés selon une valeur de prix croissante ou une valeur de prix décroissante. Selon un autre exemple non limitatif, les membres d'une dimension associée au critère de tri « MARQUE », i.e. tous les noms différents de marque que prend le critère de tri « MARQUE » dans la base de données source sur l'ensemble des enregistrements, peuvent être ordonnées selon un ordre alphabétique. Autrement dit, les membres peuvent être classés dans la dimension « MARQUE » par ordre alphabétique. Ainsi, dans le cas de l'exemple non limitatif donné plus haut, les membres « BMW® », « AUDI® » et « PORSCHE® » de la dimension « MARQUE » seront ordonnés dans l'ordre alphabétique suivant : « AUDI® » ;« BMW® » ; « PORSCHE® ». Dans une version particulière, au moins une dimension, et préférentiellement chacune des dimensions, peut comprendre une liste dans laquelle les membres de ladite dimension sont ordonnées selon un ordre, dit ordre de filtrage, utilisant une fonction de comparaison considérant toutes les variantes d'une même valeur comme égales. Dans un exemple non limitatif, selon l'ordre de filtrage les valeurs 7 et 7.0 sont égales.Advantageously, at least one dimension of the sorting cube may comprise at least one list in which members of said dimension may be ordered according to a predetermined function applying to member audits. - 14 - According to a nonlimiting example, the members of a dimension associated with the sorting criterion "PRICE", ie all the different values of price that the sorting criterion "PRICE" takes in the source database on the set records, can be ordered according to a rising price value or a decreasing price value. According to another nonlimiting example, the members of a dimension associated with the sorting criterion "MARK", ie all the different brand names that the sorting criterion "MARK" takes in the source database on all the records , can be ordered in alphabetical order. In other words, members can be classified in the "BRAND" dimension in alphabetical order. Thus, in the case of the non-limiting example given above, the "BMW®", "AUDI®" and "PORSCHE®" members of the "BRAND" dimension will be ordered in the following alphabetical order: "AUDI®" "BMW®"; "PORSCHE®". In a particular version, at least one dimension, and preferably each of the dimensions, may comprise a list in which the members of said dimension are ordered according to an order, said filtering order, using a comparison function considering all the variants of a same value as equal. In a non-limiting example, according to the filtering order, the values 7 and 7.0 are equal.

Dans une version préférée de l'invention, au moins une dimension, et préférentiellement chacune des dimensions, peut comprendre une liste ordonnée dans laquelle les membres de ladite dimension sont ordonnées selon un ordre, dit ordre de sortie, utilisant une fonction de comparaison considérant toutes les variantes d'une même valeur comme différentes.In a preferred version of the invention, at least one dimension, and preferably each dimension, may comprise an ordered list in which the members of said dimension are ordered according to an order, called an output order, using a comparison function considering all variants of the same value as different.

Selon un exemple non limitatif, selon l'ordre de sortie les valeurs 7 et 7.0 sont différentes et la valeur 7.0 est supérieure à la valeur 7. Une liste ordonnée selon l'ordre de sortie est par conséquent forcément ordonnée selon l'ordre de filtrage. Autrement dit, deux enregistrements égaux selon l'ordre de filtrage sont forcément contigus selon l'ordre de sortie. - 15 - Selon l'invention, au moins une relation de filtrage et/ou une relation de sortie visant un critère de tri peut être composé d'un opérateur, dit de tri. Plus particulièrement, une relation de filtrage et/ou une relation de sortie visant un critère de tri peut être composée d'un opérateur de tri et au moins une valeur, dite de tri, pour ledit opérateur et/ou ledit critère de tri. Dans le cas où une dimension, associée à un critère de tri visé par une relation, de filtrage ou de sortie, comprend une liste ordonnée, en particulier selon l'ordre de sortie, le filtrage de cette dimension selon ladite relation peut avantageusement comprendre les étapes suivantes : - identification, dans ladite liste ordonnée, d'au moins un membre, dit membre de bord, de ladite dimension qui respecte ou qui ne respecte plus ladite relation, - sélection en fonction dudit au moins un membre de bord de chaque identifiant d'enregistrement mémorisé par chaque membre respectant ladite relation. L'identification d'au moins un membre de bord peut comprendre une identification de l'index de ce membre de bord, les autres membres respectant ladite relation étant déterminés en fonction dudit index.According to a nonlimiting example, according to the output order, the values 7 and 7.0 are different and the value 7.0 is greater than the value 7. An ordered list according to the output order is therefore necessarily ordered according to the filtering order . In other words, two equal records according to the filtering order are necessarily contiguous according to the output order. According to the invention, at least one filtering relation and / or an output relation relating to a sorting criterion can be composed of an operator, called sorting operator. More particularly, a filtering relation and / or an output relationship targeting a sorting criterion can be composed of a sorting operator and at least one sorting value for said operator and / or said sorting criterion. In the case where a dimension, associated with a sorting criterion targeted by a relation, of filtering or of output, comprises an ordered list, in particular according to the output order, the filtering of this dimension according to said relation can advantageously comprise the following steps: identification, in said ordered list, of at least one member, said edge member, of said dimension which respects or no longer respects said relationship, selection based on said at least one edge member of each identifier registered by each member respecting said relationship. The identification of at least one edge member may comprise an identification of the index of this edge member, the other members respecting said relationship being determined according to said index.

Pour une relation comprenant deux valeurs de tri, telle que par exemple une relation composée de l'opérateur « ENTRE A et B » avec A et B deux valeurs de tri, le filtrage de la dimension peut comprendre une identification de deux membres de bords dans la liste triée. Dans une version particulière, le filtrage de la dimension peut comprendre, avant l'identification d'un membre de bord, une identification d'un membre, dit de référence, respectant la relation dans la liste ordonnée et en particulier de son index dans la liste ordonnée. Dans ce cas, le ou les membres de bord sont identifiés en partant dudit membre de référence, en particulier de son index, en parcourant la liste triée dans un sens et/ou dans l'autre. Le membre de référence peut par exemple être le membre de la dimension correspondant à la valeur de tri renseignée dans la relation. Dans une version particulière, l'identification du membre de référence dans la liste ordonnée peut être préférentiellement réalisée par recherche binaire dans ladite liste ordonnée. - 16 - Préférentiellement, la phase de détermination du résultat de tri peut comprendre une étape de comptage du nombre d'identifiants d'enregistrements différents vérifiant la requête de tri, en particulier du nombre d'identifiants d'enregistrement différents vérifiant chaque relation de sortie. La phase de détermination du résultat de tri peut en outre comprendre une étape d'affichage dudit nombre d'identifiants d'enregistrement différents vérifiant la requête de tri, en particulier du nombre d'identifiants d'enregistrement différents vérifiant chaque relation de sortie en association avec chaque relation de sortie. Une telle étape de comptage et/ou une telle étape d'affichage peut comprendre un comptage/un affichage d'un nombre d'identifiants d'enregistrement différents présents dans le groupe final d'identifiants d'enregistrement fourni par la phase de filtrage.For a relation comprising two sorting values, such as for example a relation composed of the operator "BETWEEN A and B" with A and B two sorting values, the filtering of the dimension may comprise an identification of two edge members in the sorted list. In a particular version, the filtering of the dimension may comprise, before the identification of an edge member, an identification of a reference member, respecting the relation in the ordered list and in particular of its index in the ordered list. In this case, the edge member (s) are identified starting from said reference member, in particular his index, by browsing the sorted list in one direction and / or in the other. The reference member may for example be the member of the dimension corresponding to the sorting value entered in the relation. In a particular version, the identification of the reference member in the ordered list may preferably be performed by binary search in said ordered list. Preferably, the phase of determining the sorting result may comprise a step of counting the number of different record identifiers verifying the sorting request, in particular the number of different record identifiers checking each output relationship. . The phase of determining the sorting result may further comprise a step of displaying the number of different registration identifiers verifying the sorting request, in particular the number of different registration identifiers checking each output relationship in association with each output relationship. Such a counting step and / or such a display step may include counting / displaying a number of different record identifiers present in the final group of record identifiers provided by the filtering phase.

La fourniture d'un tel résultat de comptage et/ou l'affichage peuvent être réalisés de manière dynamique à chaque ajout ou suppression d'une relation de filtrage et/ou d'une relation de sortie, par exemple au travers d'une interface utilisateur. Ainsi, il est possible pour un utilisateur de visualiser si le résultat du tri qu'il est en cours de réaliser correspond ou non à des enregistrements proposés dans le catalogue et d'éviter de formuler des requêtes de tri ayant pour résultat zéro enregistrements. La phase de détermination du résultat de tri peut en outre comprendre une étape d'affichage d'au moins une donnée relative à au moins un enregistrement vérifiant la requête de tri, en particulier à au moins un enregistrement vérifiant une relation de sortie en association avec ladite relation de sortie. Une telle étape d'affichage peut comprendre un affichage d'au moins une donnée relative à au moins un enregistrement dont l'identifiant se trouve dans le groupe final d'identifiants d'enregistrement fourni par la phase de filtrage ou un identifiant retourné par l'application d'une relation de sortie. Avantageusement, l'étape d'affichage peut réaliser un affichage d'une liste comprenant au moins une partie, ou un nombre prédéterminé, - 17 - d'enregistrements dont les identifiants se trouvent dans le groupe final fourni par la phase de filtrage ou fourni par une relation de sortie. L'information affichée pour chaque enregistrement peut comprendre un résumé, ou une partie ou la totalité des caractéristiques dudit enregistrement, chargé(es) depuis la base de données source en utilisant l'identifiant de l'enregistrement. L'information ou la donnée affichée peut comprendre une ou plusieurs informations/données préalablement choisie(s). Un tel affichage peut être réalisé préférentiellement une fois que la requête de tri est entièrement formulée par l'utilisateur. Alternativement, un tel affichage peut être réalisé de manière dynamique à chaque ajout ou suppression d'une relation de filtrage et/ou d'une relation de sortie.The supply of such a counting result and / or the display can be performed dynamically each time a filter relationship and / or an output relationship is added or deleted, for example through an interface user. Thus, it is possible for a user to visualize whether or not the result of the sorting that is being performed corresponds to the records proposed in the catalog and to avoid formulating sorting queries resulting in zero records. The phase of determining the sorting result may further comprise a step of displaying at least one datum relating to at least one record verifying the sorting request, in particular to at least one record checking an output relationship in association with said output relationship. Such a display step may comprise a display of at least one datum relating to at least one record whose identifier is in the final group of registration identifiers provided by the filtering phase or an identifier returned by the application of an exit relationship. Advantageously, the display step can perform a display of a list comprising at least a part, or a predetermined number, of records whose identifiers are in the final group provided by the filtering phase or provided by an exit relationship. The information displayed for each record may include a summary, or some or all of the features of said record, loaded from the source database using the record's identifier. The information or data displayed may include one or more information / data previously selected (s). Such a display can be realized preferentially once the sorting request is entirely formulated by the user. Alternatively, such a display can be dynamically performed whenever adding or deleting a filter relationship and / or an output relationship.

Une relation de sortie fournissant un nombre d'enregistrement nul peut être ignorée lors de l'affichage, et plus particulièrement lors de la phase de détermination du résultat. Le procédé de tri selon l'invention peut en outre comprendre, suite à une modification dans ladite base de données source, une phase de mise à jour d'un cube de tri préalablement obtenu et concerné par ladite modification, ladite phase de mise à jour comprenant les étapes suivantes : - identification dudit ancien cube de tri préalablement obtenu, dit ancien cube de tri, par exemple par consultation d'un référentiel de cubes chargés, un tel référentiel listant pour tous les cubes chargés les dimensions du cube, - récupération d'une liste des dimensions dudit ancien cube de tri, - chargement d'un nouveau cube en fonction desdites dimensions et à partir de ladite base de données source modifiée, et - remplacement dudit ancien cube de tri par le nouveau cube. Avantageusement, pendant l'étape de remplacement, le procédé selon l'invention peut comprendre une interdiction de toute opération sur l'ancien cube de tri. - 18 - Lorsqu'une dimension est ajoutée à l'ancien cube de tri pendant la phase de mise à jour alors cette dimension peut être ignorée lors du chargement du nouveau cube. Cette dimension devra alors être à nouveau ajoutée, cette fois directement au nouveau cube.An output relationship providing a zero record number may be ignored during display, and more particularly during the result determination phase. The sorting method according to the invention may further comprise, following a modification in said source database, a phase of updating a sorting cube previously obtained and concerned by said modification, said update phase. comprising the following steps: identification of said former sorting cube previously obtained, said old sorting cube, for example by consulting a repository of loaded cubes, such a referential listing for all the cubes loaded the dimensions of the cube, - recovery of a list of dimensions of said old sort cube, - loading a new cube according to said dimensions and from said modified source database, and - replacing said old sorting cube with the new cube. Advantageously, during the replacement step, the method according to the invention may include a prohibition of any operation on the old sorting cube. - 18 - When a dimension is added to the old sort cube during the update phase then this dimension can be ignored when loading the new cube. This dimension will have to be added again, this time directly to the new cube.

Lorsqu'une dimension de l'ancien cube de tri n'existe plus lors du chargement du nouveau cube, par exemple parce que la modification apportée à la base de données source comprend/provoque une suppression de cette dimension, cette dimension est ignorée lors du chargement du nouveau cube.When a dimension of the old sort cube no longer exists when the new cube is loaded, for example because the change to the source database includes / causes a deletion of that dimension, that dimension is ignored when loading the new cube.

Une telle mise à jour permet de limiter le temps pendant lequel un cube de tri n'est pas accessible et d'optimiser le temps de mise à jour d'un cube. Une telle mise à jour permet de réaliser des mises à jour de données de manière fréquente sans pour autant bloquer l'accès au cube de tri, i.e. sans pour autant bloquer le processus de tri, et tout en maintenant une grande disponibilité du cube de tri pour réaliser des tris. Une telle mise à jour permet en outre de réaliser des mises à jour de données sans pour autant mettre fin à une requête de tri en cours de traitement. Une requête de tri utilise toujours le cube de tri sur lequel elle a commencé à être appliquée. Le procédé de tri selon l'invention peut en outre comprendre, suite à une modification dans ladite base de données source, une phase de mise à jour d'une dimension d'un cube de tri préalablement obtenu et concerné par ladite modification, ladite phase mise à jour comprenant les étapes suivantes : - identification de ladite dimension, dite ancienne dimension, dudit cube de tri, par exemple par consultation d'un référentiel de cubes chargés, un tel référentiel listant pour tous les cubes de tri les dimensions du cube de tri, - chargement d'une nouvelle dimension en fonction de ladite base de données source modifiée, et remplacement de l'ancienne dimension par la nouvelle dimension dans ledit cube de tri. - 19 - Avantageusement, pendant l'étape de remplacement, le procédé selon l'invention peut comprendre une interdiction de toute opération sur la dimension concernée. Lorsque la dimension concernée n'existe plus dans la base de données source, cette dimension est supprimée du cube préalablement chargé. Une telle mise à jour permet de réaliser des mises à jour de données de manière fréquente sans pour autant bloquer l'accès au cube de tri, i.e. sans pour autant bloquer le processus de tri, et tout en maintenant une grande disponibilité du cube de tri pour réaliser des tris.Such an update makes it possible to limit the time during which a sort cube is not accessible and to optimize the update time of a cube. Such an update makes it possible to carry out data updates frequently without blocking access to the sorting cube, ie without blocking the sorting process, and while maintaining a high availability of the sorting cube. to perform sorting. Such an update also makes it possible to carry out data updates without terminating a sorting request during processing. A sort query always uses the sort cube on which it began to be applied. The sorting method according to the invention may further comprise, following a modification in said source database, a phase of updating a dimension of a sort cube previously obtained and concerned by said modification, said phase update comprising the following steps: identification of said dimension, said old dimension, of said sorting cube, for example by consulting a repository of loaded cubes, such a referential listing for all the sorting cubes the dimensions of the cube of sorting, - loading a new dimension according to said modified source database, and replacing the old dimension with the new dimension in said sorting cube. Advantageously, during the replacement step, the method according to the invention may include a prohibition of any operation on the dimension concerned. When the dimension no longer exists in the source database, this dimension is removed from the previously loaded cube. Such an update makes it possible to carry out data updates frequently without blocking access to the sorting cube, ie without blocking the sorting process, and while maintaining a high availability of the sorting cube. to perform sorting.

Une telle mise à jour permet en outre de réaliser des mises à jour de données sans pour autant mettre fin à une requête de tri en cours de traitement. Par ailleurs, lors d'une telle mise à jour, toutes les autres dimensions du cube qui ne sont pas concernées par la mise à jour sont accessibles et peuvent être utilisées pour appliquer des relations de filtrage ou de sortie. De plus, une telle mise à jour permet de mettre à jour uniquement la dimension concernée, et évite de régénérer l'ensemble du cube de tri. Les ressources informatiques sont ainsi optimisées et le temps de mise à jour limité.Such an update also makes it possible to carry out data updates without terminating a sorting request during processing. In addition, during such an update, all other dimensions of the cube that are not affected by the update are accessible and can be used to apply filtering or output relationships. In addition, such an update makes it possible to update only the dimension concerned, and avoids regenerating the entire sort cube. IT resources are optimized and the update time is limited.

Le procédé de tri selon l'invention peut en outre comprendre, suite à une modification dans ladite base de données source d'un enregistrement, une phase de mise à jour dudit enregistrement dans une dimension, ladite phase mise à jour comprenant les étapes suivantes : - obtention d'une dimension dite, nouvelle dimension, par copie de l'ancienne dimension ; - identification de tous les membres de ladite nouvelle dimension concernés par ladite mise à jour ; - pour chacun desdits membres identifiés de ladite nouvelle dimension : suppression de l'identifiant dudit enregistrement mémorisé par ledit membre, et si ledit identifiant était le seul identifiant mémorisé par ledit membre alors suppression dudit membre de ladite dimension, ou - 20 - mémorisation de l'identifiant dudit enregistrement par ledit membre, et si ledit membre n'existe pas, ajout dudit membre à la bonne position dans ladite dimension ; lorsqu'au moins un membre est supprimée/ajouté dans ladite nouvelle dimension, mise à jour de la position de tous les membres suivant ledit membre dans ladite nouvelle dimension, - remplacement de ladite ancienne dimension par la nouvelle dimension ainsi modifiée.The sorting method according to the invention may further comprise, following a modification in said source database of a record, a phase of updating said record in one dimension, said updated phase comprising the following steps: - obtaining a so-called dimension, new dimension, by copy of the old dimension; - identification of all the members of the said new dimension concerned by the said update; for each of said identified members of said new dimension: deletion of the identifier of said record stored by said member, and if said identifier was the only identifier stored by said member then deletion of said member of said dimension, or storage of identifying said record by said member, and if said member does not exist, adding said member to the correct position in said dimension; when at least one member is deleted / added in said new dimension, updating the position of all the members following said member in said new dimension, - replacing said old dimension with the new dimension thus modified.

L'étape d'identification de tous les membres de la nouvelle dimension concernés par la mise à jour d'un enregistrement peut être réalisée par identification de tous les membres mémorisant l'identifiant dudit enregistrement, et préférentiellement l'index de tous les membres dans la nouvelle dimension mémorisant l'identifiant dudit enregistrement. Avantageusement, chaque dimension peut comprendre une table de hash, dite dictionnaire, spécifique à cette dimension et comprenant pour chaque enregistrement dont l'identifiant est mémorisé par au moins un membre de cette dimension, une liste de tous les membres de cette dimension mémorisant l'identifiant de cet enregistrement. Avec une telle table de hash dictionnaire, l'étape d'identification de tous les membres concernés par la mise à jour d'un enregistrement peut comprendre les étapes suivantes : - calcul d'une valeur hash pour l'identifiant de l'enregistrement, - identification de la case de la table de hash dictionnaire correspondant à cette valeur de hash, - identification dans cette case, d'une liste de membres correspondant à cet identifiant, et mémorisant cet identifiant, Préférentiellement, la liste mémorisée pour un enregistrement dans la table de hash, peut comprendre l'index, dans la dimension, de chaque membre mémorisant l'identifiant de l'enregistrement. La table de hash peut être créée lors de la création de la dimension et alimentée à chaque ajout d'un membre dans une dimension d'un cube. - 21 - La table de hash peut être mise à jour à chaque mise à jour d'un membre de la dimension. De plus, lorsqu'un membre est ajouté ou est supprimé d'une dimension l'index de tous les membres suivant le membre ajouté/supprimé est également mis à jour. Suivant un exemple de réalisation préféré mais non limitatif du procédé selon l'invention, chaque membre d'une dimension peut comprendre un méta-membre, le méta-membre comprenant le membre et son index au sein de ladite dimension. Une telle architecture permet une réalisation simplifiée et rapide des opérations de mise à jour d'un enregistrement au sein d'une dimension. Lorsque la mise à jour d'un enregistrement dans la base de données concerne plusieurs dimensions d'un cube dans ce cas, le procédé selon l'invention peut comprendre, une étape de mise à jour comprenant les étapes suivantes : - identification de toutes les dimensions du cube à mettre à jour, - mise à jour de chacune desdites dimension par une phase de mise à jour d'une dimension telle que décrite plus. Dans une version avantageuse nullement limitative, le procédé selon l'invention peut comprendre une réalisation d'une seule mise à jour à la fois. Ainsi, il est possible de mieux contrôler les mises à jour à réaliser et ne pas consacrer toutes les ressources informatiques à réaliser des mises à jour. Pour ce faire, le procédé selon l'invention peut comprendre, pour chaque mise à jour à réaliser, une détermination d'une valeur associée à ladite mise à jour.The step of identifying all the members of the new dimension concerned by the updating of a recording can be carried out by identifying all the members memorizing the identifier of said record, and preferably the index of all the members in the record. the new dimension storing the identifier of said record. Advantageously, each dimension can comprise a hash table, called dictionary, specific to this dimension and comprising for each record whose identifier is stored by at least one member of this dimension, a list of all the members of this dimension storing the identifier of this record. With such a dictionary hash table, the step of identifying all the members concerned by the update of a record may comprise the following steps: calculation of a hash value for the identifier of the record, identification of the box of the hash dictionary corresponding to this value of hash, identification in this box, of a list of members corresponding to this identifier, and storing this identifier, preferably, the list stored for a record in the hash table, can include the index, in the dimension, of each member storing the identifier of the record. The hash table can be created when creating the dimension and populated each time a member is added to a dimension of a cube. - 21 - The hash table can be updated whenever a member of the dimension is updated. In addition, when a member is added or removed from a dimension, the index of all members following the added / deleted member is also updated. According to a preferred but non-limiting embodiment of the method according to the invention, each member of a dimension may comprise a meta-member, the meta-member comprising the member and its index within said dimension. Such an architecture allows a simplified and rapid realization of the update operations of a record within a dimension. When the update of a record in the database concerns several dimensions of a cube in this case, the method according to the invention may comprise an update step comprising the following steps: - identification of all the dimension of the cube to be updated, - updating each of said dimension by an update phase of a dimension as described more. In an advantageous version that is in no way limitative, the method according to the invention may comprise a realization of a single update at a time. Thus, it is possible to better control the updates to be made and not to devote all the computer resources to make updates. To do this, the method according to the invention may comprise, for each update to be performed, a determination of a value associated with said update.

Le procédé selon l'invention peut en outre comprendre une inscription de cette valeur dans une file d'attente de mises à jour. Dès qu'une mise à jour est traitée, la valeur associée à cette mise à jour et mémorisée dans la file d'attente, est effacée de la liste d'attente. Puis, la mise à jour correspondante à la valeur suivante dans la file d'attente est réalisée. - 22 - La file d'attente de mises à jour peut être une file FIFO (pour « First In First Out » en anglais). La valeur associée à une mise à jour peut correspondre à la requête de mise à jour construite selon un modèle donné. Par exemple la valeur d'une mise à jour peut être obtenue par concaténation d'une combinaison quelconque d'au moins deux des données suivantes dans un ordre prédéterminé : - un verbe décrivant la mise à jour, par exemple « Update » - au moins un mot décrivant le type d'élément à mettre à jour, par exemple « cube », ou « dimension », ou « enregistrement », etc. - la donnée d'identification de l'élément à mettre à jour, par exemple : ^ pour un cube : une donnée d'identification du cube, ^ pour une dimension d'un cube : une donnée d'identification du cube et le critère de tri correspondant à la dimension, ^ pour un enregistrement dans l'ensemble des dimensions d'un même cube : une donnée d'identification du cube et l'identifiant de l'enregistrement, et pour un enregistrement dans une dimension d'un cube : une donnée d'identification du cube, le critère de tri correspondant à la dimension et l'identifiant de l'enregistrement.The method according to the invention may further comprise an inscription of this value in a queue of updates. As soon as an update is processed, the value associated with this update and stored in the queue is deleted from the waiting list. Then the corresponding update to the next value in the queue is performed. - 22 - The update queue can be a FIFO (for "First In First Out"). The value associated with an update may correspond to the update request constructed according to a given model. For example, the value of an update can be obtained by concatenating any combination of at least two of the following data in a predetermined order: - a verb describing the update, for example "Update" - at least a word describing the type of element to be updated, for example "cube", or "dimension", or "registration", etc. - the identification data of the element to be updated, for example: ^ for a cube: a cube identification data, ^ for a dimension of a cube: a cube identification data and the criterion of sort corresponding to the dimension, ^ for a record in the set of dimensions of the same cube: a data of identification of the cube and the identifier of the recording, and for a recording in a dimension of a cube : a cube identification data, the sorting criterion corresponding to the dimension and the identifier of the recording.

Le procédé selon l'invention peut en outre comprendre, pour chaque mise à jour à réaliser, une vérification de l'unicité de ladite mise à jour. Pour cela, le procédé selon l'invention peut comprendre une inscription de toutes les valeurs associées à toutes les mises à jour à réaliser dans une table de hash, en plus de leur inscription dans la file d'attente de mises à jour. Cette table de hash peut être créée en même temps que la création de la file d'attente de mises à jour. La vérification de l'unicité d'une mise à jour peut alors être réalisée de la manière suivante : -23- - détermination d'une valeur associée à ladite mise à jour, - détermination d'une valeur de hash à partir de ladite valeur associée à ladite mise à jour et d'une fonction de hachage prédéterminée, et - vérification, en fonction de ladite valeur de hash, de l'existence ou non de ladite valeur associée à la mise à jour dans une table de hash mémorisant une valeur associée à au moins une mise à jour en attente de réalisation. Si la mise à jour correspond à une mise à jour déjà en attente alors, alors elle est ignorée. Sinon, la valeur associée à la mise à jour est ajoutée : - dans la file d'attente de mises à jour, et - dans la table de hash, à la case correspondant à la valeur de hash calculée.The method according to the invention may further comprise, for each update to be performed, a verification of the uniqueness of said update. For this, the method according to the invention may include an inscription of all the values associated with all the updates to be made in a hash table, in addition to their registration in the queue of updates. This hash table can be created at the same time as the creation of the update queue. The verification of the uniqueness of an update can then be performed in the following way: -23- - determination of a value associated with said update, - determination of a value of hash from said value associated with said update and a predetermined hash function, and - checking, according to said hash value, whether or not said value associated with the update is in a hash table storing a value associated with at least one pending update. If the update corresponds to an update already pending then, then it is ignored. Otherwise, the value associated with the update is added: - in the update queue, and - in the hash table, to the box corresponding to the calculated hash value.

Lorsqu'une valeur associée à une mise à jour est effacée de la file d'attente de mises à jour, par exemple parce que la mise à jour correspondante est sur le point d'être réalisée, alors elle est également effacée de la table de hash.When a value associated with an update is deleted from the update queue, for example because the corresponding update is about to be made, then it is also cleared from the update table. hash.

Selon un autre aspect de l'invention, il est proposé un système comprenant des moyens agencés pour réaliser toutes les étapes du procédé selon l'invention.According to another aspect of the invention, there is provided a system comprising means arranged to perform all the steps of the method according to the invention.

D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée d'un mode de mise en oeuvre nullement limitatif, et des dessins annexés sur lesquels : - la FIGURE 1 est une représentation schématique d'un exemple de réalisation d'un système selon l'invention ; - la FIGURE 2 est une représentation schématique d'un exemple d'une dimension d'un cube de tri selon l'invention ; - la FIGURE 3 est une représentation schématique d'un exemple d'un procédé de tri selon l'invention ; - 24 - - la FIGURE 4 est une représentation schématique d'un exemple d'une phase d'obtention, à la volée, d'un cube de tri pouvant être mise en oeuvre dans le procédé selon l'invention ; - la FIGURE 5 est une représentation schématique d'un exemple d'une phase de filtrage ou d'une phase de classement pouvant être mise en oeuvre dans le procédé de tri selon l'invention ; - le FIGURE 6 est une représentation schématique d'un exemple de vérification de l'unicité d'une mise à jour pouvant être mise en oeuvre dans le procédé selon l'invention ; et - le FIGURE 7 est une représentation schématique d'un exemple de traitement d'une mise à jour pouvant être mis en oeuvre dans le procédé selon l'invention. Il est bien entendu que les modes/exemples de réalisation qui sont décrits dans la suite ne sont nullement limitatifs. On pourra notamment imaginer des variantes de l'invention ne comprenant qu'une sélection de caractéristiques décrites par la suite isolées des autres caractéristiques décrites, si cette sélection de caractéristiques est suffisante pour conférer un avantage technique ou pour différencier l'invention par rapport à l'état de la technique antérieur. Cette sélection comprend au moins une caractéristique de préférence fonctionnelle sans détails structurels, ou avec seulement une partie des détails structurels si cette partie uniquement est suffisante pour conférer un avantage technique ou pour différencier l'invention par rapport à l'état de la technique antérieur.Other advantages and characteristics of the invention will appear on examining the detailed description of an embodiment which is in no way limitative, and the appended drawings in which: FIG. 1 is a schematic representation of an example of embodiment of a system according to the invention; FIG. 2 is a schematic representation of an example of a dimension of a sorting cube according to the invention; FIG. 3 is a schematic representation of an example of a sorting method according to the invention; FIG. 4 is a diagrammatic representation of an example of a phase for obtaining, on the fly, a sorting cube that can be used in the method according to the invention; FIG. 5 is a diagrammatic representation of an example of a filtering phase or of a classification phase that can be implemented in the sorting method according to the invention; FIG. 6 is a schematic representation of an exemplary verification of the uniqueness of an update that can be implemented in the method according to the invention; and FIG. 7 is a schematic representation of an example of an update processing that can be implemented in the method according to the invention. It is understood that the modes / embodiments which are described below are in no way limiting. It will be possible, in particular, to imagine variants of the invention comprising only a selection of characteristics described subsequently isolated from the other characteristics described, if this selection of characteristics is sufficient to confer a technical advantage or to differentiate the invention with respect to the state of the art. This selection comprises at least one feature preferably functional without structural details, or with only a part of the structural details if this part alone is sufficient to confer a technical advantage or to differentiate the invention from the state of the prior art.

En particulier toutes les variantes et tous les modes/exemples de réalisation décrits sont combinables entre eux si rien ne s'oppose à cette combinaison sur le plan technique. Sur les figures, les éléments communs à plusieurs figures conservent les mêmes références.In particular all the variants and all the modes / examples of embodiment described are combinable with each other if nothing stands in the way of this combination on a technical level. In the figures, the elements common to several figures retain the same references.

La FIGURE 1 est une représentation schématique d'un système de tri selon l'invention. Le système de tri 100 selon l'invention représenté sur la FIGURE 1 permet de réaliser un traitement de données pour réaliser un tri au sein d'un - 25 - ensemble d'enregistrements mémorisés dans une base de données sources 102. Chaque enregistrement est une représentation numérique d'un produit ou d'un service et comprend au moins une valeur numérique représentant une caractéristique de ce produit ou de service selon un critère de tri, tel que le prix, la couleur, la taille, la disponibilité à la vente ou le stock dans un point de vente, etc. Chaque enregistrement est identifié par une donnée d'identification au sein de la base de donnes source 102 et peut être définie pour une fiche produit 104 par exemple. La base de données source 102 peut être mémorisée sur un ou plusieurs appareils disposés sur un même site ou plusieurs sites Le système 100 comprend un module 106, dit fournisseur de données, pour accéder la base de données source 102 et générer, à partir de la base de données, et à la volée, au moins un cube 108, dit de tri, comprenant au moins une dimension, chaque dimension étant associée à un pour un critère de tri. Le système 100 comprend en outre un référentiel de cubes 110 dans laquelle est/sont mémorisé(s) le ou les cubes de tri 108. Préférentiellement, le référentiel de cube 110 est mémorisé dans une mémoire RAM d'un appareil informatique. Le système 100 comprend en outre une interface utilisateur 112 permettant à un utilisateur de formuler un requête de tri 114 comprenant une ou plusieurs relations de de tri 116 portant chacune sur un critère de tri.FIGURE 1 is a schematic representation of a sorting system according to the invention. The sorting system 100 according to the invention shown in FIG. 1 makes it possible to perform a data processing to perform sorting within a set of records stored in a source database 102. Each record is a digital representation of a product or service and includes at least one numerical value representing a characteristic of that product or service according to a sorting criterion, such as price, color, size, availability for sale, or stock at a point of sale, etc. Each record is identified by identification data within the source database 102 and may be defined for a product record 104 for example. The source database 102 may be stored on one or more devices arranged on the same site or several sites. The system 100 comprises a module 106, called a data provider, for accessing the source database 102 and generating, from the database, and on the fly, at least one sorting cube 108, comprising at least one dimension, each dimension being associated with one for a sorting criterion. The system 100 further comprises a repository of cubes 110 in which is / are stored (s) the sort cubes 108. Preferably, the cube repository 110 is stored in a RAM memory of a computer device. The system 100 further comprises a user interface 112 enabling a user to formulate a sorting request 114 comprising one or more sorting relations 116 each relating to a sorting criterion.

Le système 100 comprend également un module 118, gestionnaire, pour recevoir et appliquer une requête tri 114 sur un cube de tri 108. Le système 100 comprend en outre une liste 120 d'attente de mises à jour mémorisant pour chaque mise à jour une donnée d'identification de la mise à jour et une table de hash 122 associée à la liste 120 d'attente de mises à jour, mémorisant chacun une donnée d'identification de chaque mise à jour à réaliser, et utilisés respectivement pour réaliser une seule mise à jour à la fois dans la base de données de cube 110 et pour s'assurer de l'unicité de chaque mise à jour à réaliser. Lorsqu'une mise à jour doit être réalisée, une donnée d'identification est déterminée pour cette mise à jour selon une règle prédéterminée, par - 26 - exemple par concaténation de données composant la requête de mise à jour. Cette donnée d'identification est ensuite testée pour déterminer si elle n'est pas déjà mémorisée dans la liste de mise à jour 120. Pour ce faire, la donnée d'identification est fournie en entrée d'une fonction de hachage associée à la table de hash 122 qui fournit une valeur de hash. Avec la valeur de hash ainsi déterminée, une case 124, de la table de hash 122 est identifiée. Ensuite, la donnée d'identification de la mise à jour est recherchée dans cette case 124,. Si cette donnée d'identification est déjà présente dans cette case 124,, alors cette mise à jour n'est pas considérée car elle est déjà dans la file d'attente de mise à jour. Sinon, elle est d'une part inscrite dans cette case 124, de la table de hash 122 et d'autre part mise dans la file d'attente 120 en dernière position. La file d'attente 120 peut être une file FIFO. Lorsqu'une mise à jour est sur le point d'être réalisée alors sa donnée d'identification est supprimée de la file d'attente 120 et de la table de hash 122. Le système 100 comprend en outre un module 126 de mise à jour réalisant la gestion des mises à jour en fonction d'une ou des requêtes de mise(s) à jour 128 reçue(s) par exemple depuis une interface 130 de mises à jour qui peut être une interface d'administration de la base de données source 102. La FIGURE 2 est une représentation schématique d'un exemple d'une dimension d'un cube de tri, par exemple une dimension du cube de tri 108 de la FIGURE 1. La dimension 200 représentée sur la FIGURE 2 comprend une liste 202 de méta-membres, notés 2041-204n. Chaque méta-membre 204 comprend un membre 206 et un index 208 30 de ce membre 206 dans la dimension 200. Chaque membre 206 de la dimension correspond à une valeur différente que peut prendre le critère de tri auquel est associée la dimension 200, sur l'ensemble des enregistrements présents dans la base de données source. - 27 - Par exemple, si le critère de tri est le « PRIX » et que pour ce critère de tri l'ensemble des enregistrements de la base de données présentent uniquement trois valeurs différentes qui sont 100E, 200E et 300E alors la dimension 200 associée à ce critère aura trois membres qui sont le membre 100E, le membre 200E et le membre 300E. Pour chaque membre 206, la dimension comprend un méta-membre 204 comprenant ce membre. Chaque membre 206 de la dimension 200 mémorise l'identifiant de chaque enregistrement de la base de données source qui présente, pour le critère de tri auquel est associée la dimension 200, une valeur égale à ce membre. Par exemple, le membre 100E mémorise l'identifiant de chaque enregistrement présentant pour le critère de tri « PRIX » une valeur de 100E, i.e. l'identifiant de chaque enregistrement dont le prix est de 100E. Pour chaque membre 206, l'identifiant d'un enregistrement est mémorisé dans une table de hash 210, et plus particulièrement dans une case 212, de la table de hash 210 correspondant à la valeur de hash calculée pour cet identifiant selon une fonction de hachage prédéterminée et commune à toutes les dimensions du cube de tri comprenant la dimension 200. Autrement dit, pour inscrire un identifiant d'un enregistrement dans un membre 206, tout d'abord une valeur de hash est calculée avec une fonction de hachage prédéterminée prenant en entrée l'identifiant de l'enregistrement. Une fois la valeur de hash calculée, la case 212, de la table de hash 210 dans laquelle l'identifiant doit être mémorisé. Une fois la case identifié, l'identifiant est inscrite dans cette case 212, de la table de hash 210. La dimension 200 comprend une liste ordonnée 214 des méta-membres, et donc des membres, de la dimension 200 selon un ordre, dit de sortie, utilisant une fonction de comparaison, appelée comparaison de sortie, réalisant une comparaison de valeurs, en particulier numériques, en considérant toutes les variantes d'une même valeur comme différentes. Par exemple, la comparaison de sortie considère que les valeurs 7 et 7.0 sont différentes. Cette liste ordonnée selon l'ordre de sortie est forcément ordonnées selon un ordre, dit de filtrage, utilisant une fonction de comparaison, appelée comparaison de filtrage, réalisant une comparaison de valeurs, en particulier numériques, en considérant toutes les variantes d'une - 28 - même valeur comme égales. Par exemple, la comparaison de filtrage considère que les valeurs 7 et 7.0 sont égales. La dimension 200 comprend en outre une table de hash 216, dit dictionnaire, commune à tous les membres 206 de la dimension 200, par 5 conséquent commune à tous les méta-membres 204 de la dimension 200. Cette table de hash dictionnaire 216 mémorise pour chaque enregistrement dont l'identifiant est enregistré par au moins l'un des membres 206 de la dimension 200, l'identifiant de l'enregistrement en association avec une liste des index, dans la liste triée 202, de tous les 10 membres 206 de la dimension, mémorisant l'identifiant de cet enregistrement. Pour ce faire, une valeur de hash est calculée pour chaque identifiant. Puis, en fonction de cette valeur de hash, une case 218, est identifiée dans la table de hash dictionnaire 216. Puis l'identifiant ainsi que la liste des index 15 associée à cet identifiant sont mémorisés dans cette case 218, de la table 216. La dimension 200 comprend en outre une fonction de conversion, associée à cette dimension, et permettant de convertir une chaine de caractère en membre et vice versa. 20 La FIGURE 3 est une représentation schématique d'un exemple de réalisation d'un procédé de tri selon l'invention. Le procédé 300 comprend une étape 302 de réception d'une requête 25 de tri, par exemple par le module gestionnaire 118 depuis une interface utilisateur 112. La requête de tri peut être reçue au travers d'un réseau de communication filaire ou non. La requête de tri comprend au moins une relation de filtrage, chaque relation de filtrage vise un critère de tri et comprend un opérateur de tri et 30 une valeur de tri. Lorsque la requête de tri comprend plusieurs relations de filtrage, elle comprend également au moins un opérateur booléen reliant ces relations de filtrage entre-elles. L'opérateur booléen peut par exemple être l'opérateur booléen « ET » correspondant à une intersection ou l'opérateur booléen « OU » correspondant à une union. - 29 - La requête de tri comprend également au moins une relation de sortie, chaque relation de sortie vise un critère de tri et comprend un opérateur de tri et une valeur de tri. Les relations de filtrage sont regroupées dans la requête de tri dans une première liste et les relations de sortie sont regroupées dans la requête de tri dans une deuxième liste. Puis, une phase 304 d'obtention d'un cube de tri est réalisée. La phase d'obtention 304 du cube de tri comprend une étape 306 réalisant une analyse de la requête de tri pour déterminer tous les critères de tri visés par la requête de tri, à savoir tous les critères de tri visés par les relations de filtrage et par les relations de sortie. La phase d'obtention du cube de tri 304 comprend ensuite, une étape 308, de génération d'un cube de tri, par exemple le cube de tri 108, comprenant une dimension pour chaque critère de tri visé dans ladite requête de tri et déterminé lors de l'étape 306. Chaque dimension du cube de tri ainsi obtenu est indépendante des autres dimensions du cube de tri et peut présenter une architecture identique ou similaire à celle de la dimension 200 de la FIGURE 2, à savoir que : - chaque dimension comprend un ou plusieurs membres, correspondant chacun à une valeur différente que peut prendre le critère de tri auquel est associée ladite dimension sur l'ensemble des enregistrements de la base de données source, et - chaque membre d'une dimension mémorise un identifiant d'au moins un enregistrement présentant pour ledit critère une valeur correspondant à ce membre. Une phase 310 de filtrage applique chaque relation de filtrage de la requête de tri, indépendamment des autres relations de filtrage, aux membres de la dimension du cube de tri concernée par la relation de filtrage. Chaque relation de filtrage retourne un groupe intermédiaire d'identifiants numériques, préférentiellement mémorisé dans une table de hash également. L'ensemble des groupes ainsi créés est ensuite utilisé pour fournir un groupe final d'identifiants numériques. - 30 - Une phase 312 de classement applique chaque relation de sortie de la requête de tri, indépendamment des autres relations de sortie, au groupe final fourni par la phase de filtrage 310 afin de classer les identifiants du groupe final. Cette phase 312 fournit une liste obtenue par concaténation des couples (relation de sortie/enregistrements) obtenue par application unitaire des relations de sortie de la requête de tri. Lors d'une phase 314, un résultat de filtrage est fourni en fonction du groupe final d'identifiants numériques fourni à par la phase de filtrage 310 et/ou de la liste fournie par la phase de classement 312.The system 100 also includes a module 118, manager, for receiving and applying a sort request 114 on a sort cube 108. The system 100 further comprises a list of waiting lists of updates storing for each update a data item. identification of the update and a hash table 122 associated with the list of waiting updates 120, each storing an identification data of each update to be performed, and used respectively to make a single bet update both in the 110 cube database and to ensure the uniqueness of each update to be made. When an update has to be performed, an identification data is determined for this update according to a predetermined rule, for example by concatenation of data constituting the update request. This identification data is then tested to determine if it is not already stored in the update list 120. To do this, the identification data is provided at the input of a hash function associated with the table. hash 122 that provides a hash value. With the hash value thus determined, a box 124 of the hash table 122 is identified. Then, the identification data of the update is searched in this box 124,. If this identification data is already present in this box 124 ,, then this update is not considered because it is already in the update queue. Otherwise, it is on the one hand written in this box 124 of the hash table 122 and secondly put in the queue 120 in the last position. The queue 120 may be a FIFO queue. When an update is about to be made then its identification data is removed from the queue 120 and the hash table 122. The system 100 further comprises an update module 126 managing the updates according to one or more update requests 128 received for example from an update interface 130 which may be an administration interface of the database source 102. FIGURE 2 is a schematic representation of an example of a dimension of a sort cube, for example a dimension of the sort cube 108 of FIGURE 1. The dimension 200 shown in FIGURE 2 includes a list 202 of meta-members, noted 2041-204n. Each meta-member 204 comprises a member 206 and an index 208 of this member 206 in the dimension 200. Each member 206 of the dimension corresponds to a different value that can be taken by the sorting criterion with which the dimension 200 is associated, on the other hand. set of records present in the source database. For example, if the sorting criterion is the "PRICE" and for this sorting criterion all the records in the database have only three different values which are 100E, 200E and 300E then the associated dimension 200 this criterion will have three members who are member 100E, member 200E and member 300E. For each member 206, the dimension includes a meta-member 204 including that member. Each member 206 of the dimension 200 stores the identifier of each record of the source database which has, for the sorting criterion with which the dimension 200 is associated, a value equal to this member. For example, the member 100E stores the identifier of each record presenting for the sorting criterion "PRICE" a value of 100E, i.e. the identifier of each record whose price is 100E. For each member 206, the identifier of a record is stored in a hash table 210, and more particularly in a box 212, of the hash table 210 corresponding to the hash value calculated for this identifier according to a hash function predetermined, and common to all dimensions of the sort cube comprising the dimension 200. In other words, to register an identifier of a record in a member 206, first of all a hash value is calculated with a predetermined hash function taking into account input the identifier of the record. Once the hash value has been calculated, the box 212 of the hash table 210 in which the identifier must be stored. Once the box has been identified, the identifier is written in this box 212, of the hash table 210. The dimension 200 comprises an ordered list 214 of the meta-members, and therefore members, of the dimension 200 according to an order, said output, using a comparison function, called output comparison, performing a comparison of values, in particular numerical values, considering all the variants of the same value as different. For example, the output comparison assumes that the values 7 and 7.0 are different. This ordered list according to the output order is necessarily ordered according to an order, called filtering, using a comparison function, called filtering comparison, performing a comparison of values, in particular numerical values, considering all the variants of a - 28 - same value as equal. For example, the filter comparison assumes that the values 7 and 7.0 are equal. The dimension 200 further comprises a hash table 216, called dictionary, common to all the members 206 of the dimension 200, therefore common to all the meta-members 204 of the dimension 200. This hash dictionary table 216 stores for each record whose identifier is registered by at least one of the members 206 of the dimension 200, the identifier of the record in association with a list of the indexes, in the sorted list 202, of all the members 206 of the dimension, storing the identifier of this record. To do this, a hash value is calculated for each identifier. Then, according to this hash value, a box 218 is identified in the dictionary hash table 216. Then the identifier and the list of indexes 15 associated with this identifier are stored in this box 218 of the table 216 The dimension 200 further comprises a conversion function, associated with this dimension, for converting a string to a member and vice versa. FIGURE 3 is a schematic representation of an exemplary embodiment of a sorting method according to the invention. The method 300 comprises a step 302 for receiving a sorting request, for example by the manager module 118 from a user interface 112. The sorting request can be received through a wired communication network or not. The sorting request comprises at least one filtering relation, each filtering relation is aimed at a sorting criterion and comprises a sorting operator and a sorting value. When the sorting request includes several filtering relations, it also comprises at least one Boolean operator linking these filtering relations to one another. The Boolean operator can for example be the Boolean operator "AND" corresponding to an intersection or the Boolean operator "OR" corresponding to a union. The sort request also includes at least one output relationship, each output relationship is for a sorting criterion and includes a sort operator and a sort value. The filtering relationships are grouped in the sort request into a first list and the output relationships are grouped in the sort request in a second list. Then, a phase 304 for obtaining a sort cube is performed. The obtaining phase 304 of the sorting cube comprises a step 306 performing an analysis of the sorting request to determine all the sorting criteria targeted by the sorting request, namely all the sorting criteria targeted by the filtering relations and by the relations of exit. The phase of obtaining the sorting cube 304 then comprises, a step 308, of generating a sorting cube, for example the sorting cube 108, comprising a dimension for each sorting criterion referred to in said sorting request and determined in step 306. Each dimension of the sorting cube thus obtained is independent of the other dimensions of the sort cube and may have an architecture identical or similar to that of dimension 200 of FIGURE 2, namely that: - each dimension comprises one or more members, each corresponding to a different value that the sorting criterion associated with said dimension may have on the set of records of the source database, and each member of a dimension stores an identifier of at least one record showing for said criterion a value corresponding to that member. A filtering phase 310 applies each filtering relation of the sorting request, independently of the other filtering relations, to the members of the dimension of the sort cube concerned by the filtering relation. Each filtering relation returns an intermediate group of numerical identifiers, preferentially stored in a hash table as well. The set of groups thus created is then used to provide a final group of numerical identifiers. A ranking phase 312 applies each output relationship of the sort request, independently of the other output relationships, to the final group provided by the filtering phase 310 in order to classify the identifiers of the final group. This phase 312 provides a list obtained by concatenation of the pairs (output relationship / records) obtained by unitary application of the output relations of the sorting request. During a phase 314, a filtering result is provided depending on the final group of digital identifiers provided by the filtering phase 310 and / or the list provided by the classification phase 312.

La phase de détermination du résultat peut comprendre une mesure comprenant un comptage, et éventuellement un affichage, du nombre total d'identifiants numériques présents dans le groupe final ou dans chaque couple (relation de sortie/enregistrements).The result determination phase may comprise a measurement comprising a count, and possibly a display, of the total number of digital identifiers present in the final group or in each pair (output relationship / records).

La FIGURE 4 est une représentation schématique d'un exemple d'une phase d'obtention à la volée d'un cube de tri, pouvant être mise en oeuvre dans le cadre du procédé selon l'invention. L'exemple représenté sur la FIGURE 4 peut par exemple constituer la phase d'obtention 304 du procédé 300 de la FIGURE 3. La phase d'obtention 400 d'un cube de tri, représentée sur le FIGURE 4, comprend une étape 306 d'analyse de la requête et une étape 308 de génération du cube de tri telle que décrite plus haut. L'étape 308 de génération du cube de tri comprend les étapes 25 suivantes. Une étape 402 détermine si la requête de tri reçue comprend une donnée d'identification, dite clef, d'un cube existant à utiliser. Si à l'étape 402 une clef de cube est spécifiée dans la requête de tri, à l'étape 404, la clef du cube spécifiée dans la requête de tri est utilisée pour 30 déterminer le cube à utiliser, par exemple par consultation d'un référentiel des cubes de tri, tel que le référentiel de cubes 110 de la FIGURE 1. Si, à l'étape 404 aucun cube ne correspond à cette clef ou le cube correspondant à cette clef n'existe plus/pas, alors un nouveau cube de tri est créé et chargé en se basant sur les données de la base de données 35 source à l'étape 406, par exemple par l'intermédiaire du fournisseur de - 31 - données 106 de la FIGURE 1. Ce nouveau cube, créé puis chargé, est ensuite utilisé comme cube de tri. Si, à l'étape 404, un cube existant est identifié pour la clef spécifiée dans la requête de tri, par exemple dans le référentiel de cubes 110 de la FIGURE 1, alors une étape 408 teste le cube existant pour déterminer si le cube existant comprend toutes les dimensions visées par la requête de tri, par exemple par consultation des dimensions existantes et chargées dans le cube existant. Si toutes les dimensions visées par la requête de tri existent, i.e. aucune dimension visée dans la requête de tri n'est manquante dans le cube existant, le cube existant est adopté comme cube de tri à l'étape 410 et la requête de tri peut être appliquée au cube de tri. Si à l'étape 408, au moins une dimension visée par la requête de tri est manquante dans le cube identifié alors à l'étape 412 chaque dimension manquante est construite, puis chargée et enfin ajoutée au cube existant à partir des données de la base de données source, par exemple par le fournisseur de données 106 de la FIGURE 1. Le cube ainsi complété à l'étape 412 est adopté comme cube de tri lors de l'étape 414.FIGURE 4 is a schematic representation of an example of a phase of obtaining on the fly a sort cube, which can be implemented in the context of the method according to the invention. The example shown in FIG. 4 may, for example, constitute the obtaining phase 304 of the method 300 of FIG. 3. The obtaining phase 400 of a sorting cube, represented in FIG. 4, comprises a step 306 of FIG. query analysis and a step 308 of generating the sort cube as described above. Step 308 of generating the sort cube includes the following steps. A step 402 determines whether the received sort request comprises an identification data item, called a key, of an existing cube to be used. If in step 402 a cube key is specified in the sort request, in step 404, the cube key specified in the sort request is used to determine the cube to be used, for example by looking up the cube. a repository of the sorting cubes, such as the cubes repository 110 of FIG. 1. If, in step 404, no cube corresponds to this key or the cube corresponding to this key no longer exists / not, then a new Sort cube is created and loaded based on the data of the source database at step 406, for example through the data provider 106 of FIG. 1. This new cube, created then loaded, is then used as a sort cube. If, at step 404, an existing cube is identified for the key specified in the sort request, for example in the cube repository 110 of FIGURE 1, then a step 408 tests the existing cube to determine if the existing cube includes all the dimensions targeted by the sorting request, for example by consulting the existing dimensions and loaded into the existing cube. If all the dimensions targeted by the sorting request exist, ie no dimension referred to in the sorting request is missing in the existing cube, the existing cube is adopted as the sort cube in step 410 and the sorting request can be to be applied to the sort cube. If at step 408, at least one dimension targeted by the sorting request is missing in the cube identified then at step 412, each missing dimension is constructed, loaded, and finally added to the existing cube from the database data. source data, for example by the data provider 106 of FIG. 1. The cube thus completed in step 412 is adopted as a sort cube in step 414.

Si à l'étape 402, aucune clef de cube n'est spécifiée dans la requête de tri, alors l'étape 416 détermine s'il existe un cube préalablement chargé, par exemple par consultation d'un référentiel de cubes, qui peut être le référentiel de cubes 110 de la FIGURE 1. Une telle consultation peut être réalisée par le module gestionnaire 118 de la FIGURE 1. Ainsi, on détermine si un cube existant et chargé comprend au moins une dimension visée par la requête. Si plusieurs cubes comprenant au moins une dimension visée par la requête existent et sont chargées, alors c'est le cube existant qui comprend le plus de dimensions visées par la requête qui est utilisé.If at step 402, no cube key is specified in the sort request, then step 416 determines whether there is a previously loaded cube, for example by viewing a cube repository, which can be the cubes repository 110 of FIG. 1. Such a consultation can be performed by the manager module 118 of FIG. 1. Thus, it is determined whether an existing and loaded cube comprises at least one dimension targeted by the request. If multiple cubes with at least one dimension targeted by the query exist and are loaded, then the existing cube that contains the most dimensions of the query is used.

Si à l'étape 416 au moins un cube existant est identifié, alors l'étape 408 est réalisée. Si à l'étape 416 aucun cube existant n'est identifié alors l'étape 406 préalablement décrite est réalisée et un nouveau cube de tri est généré entièrement. - 32 - II est important de noter que le nouveau cube généré à l'étape 406 ne comprend que les dimensions visées dans la requête de tri reçue. Il est également important de noter que la ou les dimensions ajoutée(s) à l'étape 412 correspondant chacune à une dimension visée dans la requête de tri et absente du cube existant. Chaque dimension générée, à l'étape 406 ou à l'étape 412, peut préférentiellement présenter l'architecture de la dimension 200 de la FIGURE 2.If at step 416 at least one existing cube is identified, then step 408 is performed. If at step 416 no existing cube is identified then step 406 previously described is performed and a new sort cube is generated entirely. It is important to note that the new cube generated in step 406 includes only the dimensions referred to in the received sort request. It is also important to note that the dimension (s) added in step 412 each corresponding to a dimension referred to in the sort request and absent from the existing cube. Each dimension generated, in step 406 or step 412, may preferentially present the architecture of dimension 200 of FIG. 2.

La FIGURE 5 est une représentation schématique d'un exemple d'une phase appliquant une ou des relations de filtrage, c'est-à-dire une phase de filtrage, ou d'une phase appliquant une ou des relations de sortie, c'est-à-dire une phase de classement, pouvant être mise en oeuvre dans le procédé selon l'invention. La phase 500 représentée sur la FIGURE 5 peut être la phase de filtrage 310 de la FIGURE 3, lorsque les relations appliquées sont des relations de filtrage. La phase 500 représentée sur la FIGURE 5 peut être la phase de classement 312 de la FIGURE 3, lorsque les relations appliquées sont des relations de sortie. Pour rappel, une requête de tri comprend une ou plusieurs relations de filtrage et une ou plusieurs relations de sortie. Lorsque la requête de tri comprend plusieurs relations de filtrage, elle comprend également un ou des opérateurs booléens reliant, chacun, deux relations de filtrage entre-elles. Les opérateurs booléens sont la plupart du temps un « ET » booléen correspondant à une intersection ou un « OU » booléen correspondant à une union. Chaque relation, de filtrage ou de sortie, vise un critère de tri et donc s'applique à une dimension associée audit critère de tri. Chaque relation comprend un opérateur de tri, et éventuellement au moins une valeur de tri. La phase 500 est réalisée une fois que le cube de tri est obtenu, c'est-à-dire un cube de tri comprenant une dimension pour chaque critère de tri. Chaque dimension du cube de tri à laquelle s'applique la requête de tri - 33 - présente préférentiellement l'architecture de la dimension 200 de la FIGURE 2. L'étape 500 comprend une étape 502 appliquant unitairement une relation à une dimension du cube de tri.FIGURE 5 is a schematic representation of an example of a phase applying one or more filtering relations, that is to say a filtering phase, or a phase applying one or more output relationships, that is to say a classification phase, which can be implemented in the method according to the invention. The phase 500 shown in FIG. 5 may be the filtering phase 310 of FIG. 3 when the applied relationships are filtering relationships. The phase 500 shown in FIGURE 5 may be the rank phase 312 of FIGURE 3 when the applied relationships are output relationships. As a reminder, a sort request includes one or more filtering relationships and one or more output relationships. When the sorting request comprises several filtering relations, it also comprises one or more Boolean operators each linking two filtering relations to one another. Boolean operators are most often a Boolean "AND" corresponding to an intersection or a Boolean "OU" corresponding to a union. Each relationship, filtering or output, is a sorting criterion and therefore applies to a dimension associated with said sorting criterion. Each relationship includes a sort operator, and possibly at least one sort value. Phase 500 is performed once the sort cube is obtained, i.e., a sort cube comprising one dimension for each sort criterion. Each dimension of the sort cube to which the sort request applies preferably has the architecture of dimension 200 of FIG. 2. Step 500 comprises a step 502 unitarily applying a relation to a dimension of the cube of sorting.

Cette étape 502 est réalisée indépendamment pour chacune des relations se trouvant dans la requête de tri, même si deux relations, de filtrage ou de sortie, visent la même dimension. L'étape 502 appliquant une relation à une dimension peut comprendre une étape optionnelle 504 d'identification d'un membre de la dimension, dit membre de référence, correspondant à la valeur de tri spécifiée dans la relation. L'étape 504 d'identification, dans une liste ordonnée des membres, du membre de référence correspondant à la valeur de tri, c'est-à-dire du membre de référence. Préférentiellement, cette étape d'identification peut être réalisée par recherche binaire. L'index du membre de référence est mémorisé. Un tel index peut être l'index 208 de la FIGURE 2. Ensuite, lors d'une étape 506, au moins un membre, dit de bord, est identifié dans la liste ordonnée des membres de la dimension dans un sens et/ou dans l'autre sens. Une fois au moins un membre de bord identifié, tous les membres satisfaisant la relation sont identifiés lors de cette étape 506. L'étape 502 comprend, après l'étape 506, une étape 508, optionnelle, réalisant l'union des identifiants d'enregistrement mémorisés dans chacun des membres satisfaisant la relation, lorsque plusieurs membres d'une 25 même dimension satisfont la relation. Selon un exemple préféré non limitatif, une table de hash mémorisée dans chaque membre est utilisée, telle que par exemple la table de hash 210 de la FIGURE 2. Pour ce faire, une table de hash d'un membre choisi parmi les membres satisfaisant la relation est copiée, par exemple la table de hash du 30 membre de référence ou d'un membre de bord. Puis, pour chacun des autres membres vérifiant la relation, les opérations suivantes sont réalisées : - pour chaque identifiant du membre, calcule de la valeur de hash pour cet identifiant, - 34 - la table de hash obtenue par copie contient-elle un identifiant mémorisé dans la case associée à cette valeur de hash : - si non, inscription de cet identifiant dans cette case, - si oui, cet identifiant est déjà présent dans le groupe intermédiaire et ne sera pas mémorisé. La table de hash obtenue par copie et ainsi complétée comprend l'union des identifiants d'enregistrements mémorisés par l'ensemble des membres de la dimension respectant la relation. A l'étape 510 un groupe intermédiaire comprenant ou correspondant à cette table de hash est fourni pour la relation. Il est important de rappeler que, l'étape 502, comprenant les étapes 504-510, est réalisée pour chaque relation de la requête de tri et fournit, pour chaque relation, un groupe intermédiaire d'identifiants d'enregistrements mémorisés dans une table de hash.This step 502 is performed independently for each of the relationships in the sort request, even if two relations, filtering or output, are aimed at the same dimension. Step 502 applying a one-dimensional relationship may include an optional step 504 of identifying a dimension member, referred to as a reference member, corresponding to the sort value specified in the relationship. The step 504 of identifying, in an ordered list of members, the reference member corresponding to the sorting value, that is to say the reference member. Preferably, this identification step can be performed by binary search. The index of the reference member is stored. Such an index can be the index 208 of FIG. 2. Then, during a step 506, at least one member, referred to as edge, is identified in the ordered list of the members of the dimension in a direction and / or in the other way. Once at least one identified edge member, all the members satisfying the relation are identified in this step 506. The step 502 comprises, after the step 506, an optional step 508, performing the union of the identifiers of stored in each of the members satisfying the relationship, when several members of the same dimension satisfy the relationship. According to a nonlimiting preferred example, a hash table stored in each member is used, such as for example the hash table 210 of FIG. 2. To do this, a hash table of a member chosen from the members satisfying the The relationship is copied, for example, the hash table of the reference member or a member of the board. Then, for each of the other members checking the relation, the following operations are performed: - for each identifier of the member, calculates the value of hash for this identifier, - 34 - the hash table obtained by copy contains a memorized identifier in the box associated with this value of hash: - if not, registration of this identifier in this box, - if yes, this identifier is already present in the intermediate group and will not be memorized. The hash table obtained by copy and thus completed includes the union of record identifiers stored by all the members of the dimension respecting the relationship. In step 510 an intermediate group comprising or corresponding to this hash table is provided for the relationship. It is important to remember that step 502, comprising steps 504-510, is performed for each relation of the sorting request and provides, for each relation, an intermediate group of record identifiers stored in a table. hash.

Lorsque la phase 500 est une phase de filtrage, par exemple la phase 310 de la FIGURE 3, l'étape 502 est suivie d'une étape 512 appliquant les opérateurs booléens reliant deux relations de filtrage aux groupes intermédiaires fournie par l'application de chaque relation de filtrage, c'est- à-dire par la réalisation d'une étape 502 pour chaque relation de filtrage. Lorsque l'opérateur booléen reliant deux ou plusieurs relations de filtrage est un « OU » booléen alors c'est l'union des groupes intermédiaires fournis pour ces relations de filtrage qui est déterminée. Pour ce faire, une table de hash d'un des groupes intermédiaire est choisie et l'algorithme décrit plus haut en référence à l'étape 508 est réalisée avec pour chacun des autres groupes intermédiaires. Lorsque l'opérateur booléen reliant deux ou plusieurs relations de filtrage est un « ET » booléen alors c'est l'intersection des groupes intermédiaires fournis pour ces relations de filtrage qui est déterminée. Pour ce faire, une table de hash d'un des groupes intermédiaire est choisie. Puis les opérations suivantes sont réalisées : - pour chaque identifiant de la table de hash choisie, calcule de la valeur de hash pour cet identifiant, - 35 - chacune des table de hash des autres groupes intermédiaires contient-elle un identifiant mémorisé dans la case associée à cette valeur de hash : - si non, suppression de cet identifiant de la table de hash choisie, et plus particulièrement de la case associée à sa valeur de hash, si oui, conserver cet identifiant, lequel existe déjà dans la table de hash choisie. L'étape 512 fournit ainsi un groupe final d'identifiants mémorisés dans une table de hash. Ces identifiants sont ceux des enregistrements vérifiant la requête de tri. Dans le cas où la phase 500 est une phase de classement, l'étape 502 est suivie des étapes suivantes : - une étape 514, réalisée pour chaque relation de sortie, et déterminant, pour chaque relation de sortie, l'intersection du groupe intermédiaire fourni par l'application unitaire de cette relation de sortie à une dimension, avec le groupe final préalablement fourni par la phase de filtrage : un couple (relation de sortie ; identifiants du groupe final vérifiant la relation de sortie) est alors obtenu, et - une étape 516, fournissant une liste de couples (relation de sortie ; enregistrements) obtenu par concaténation des couples (relation de sortie ; enregistrements) fournis par les relations de sortie de la requête de tri. L'intersection d'un groupe intermédiaire fourni par l'application d'une relation de sortie à une dimension avec le groupe final fourni par la phase de filtrage peut être réalisée de la même manière que l'application de l'opérateur booléen « ET » décrite ci-dessus.When the phase 500 is a filtering phase, for example the phase 310 of FIGURE 3, the step 502 is followed by a step 512 applying the Boolean operators connecting two filtering relations to the intermediate groups provided by the application of each filtering relationship, that is, by performing step 502 for each filtering relationship. When the Boolean operator connecting two or more filtering relations is a Boolean "OU" then the union of the intermediate groups provided for these filtering relations is determined. To do this, a hash table of one of the intermediate groups is chosen and the algorithm described above with reference to step 508 is performed with each of the other intermediate groups. When the Boolean operator connecting two or more filtering relations is a Boolean "AND" then it is the intersection of the intermediate groups provided for these filtering relationships that is determined. To do this, a hash table of one of the intermediate groups is chosen. Then the following operations are performed: - for each identifier of the hash table chosen, calculates the hash value for this identifier, - each of the hash tables of the other intermediate groups contains an identifier stored in the associated box to this hash value: - if no, delete this identifier from the chosen hash table, and more specifically from the box associated with its hash value, if yes, keep this identifier, which already exists in the hash table chosen . Step 512 thus provides a final group of identifiers stored in a hash table. These identifiers are those of the records verifying the sort request. In the case where the phase 500 is a classification phase, the step 502 is followed by the following steps: a step 514, performed for each output relationship, and determining, for each output relationship, the intersection of the intermediate group provided by the unitary application of this one-dimensional output relationship, with the final group previously provided by the filtering phase: a pair (output relationship, end group identifiers verifying the output relationship) is then obtained, and a step 516, providing a list of couples (output relationship; records) obtained by concatenation of the pairs (output relationship; records) provided by the output relations of the sort request. The intersection of an intermediate group provided by the application of a one-dimensional output relationship with the final group provided by the filtering phase can be performed in the same way as the application of the Boolean operator "AND Described above.

La FIGURE 6 est une représentation schématique d'un exemple d'une vérification de l'unicité d'une mise à jour, pouvant être mise en oeuvre dans le procédé selon l'invention. - 36 - Une telle vérification peut être réalisée après réception d'une requête de mise à jour, suite à une modification réalisée au niveau de la base de données source. La vérification 600 représentée en FIGURE 6 comprend une étape 602 de réception d'une requête de mise à jour. Ensuite une étape 604 de vérification de l'unicité de la mise à jour est réalisée. Cette étape 604 comprend une étape 606, calculant une donnée d'identification pour la mise à jour. Cette donnée est calculée en concaténant les éléments de la requête de mise à jour. Une valeur de hash est calculée pour cette donnée d'identification en utilisant une fonction de hachage, à l'étape 608. Une étape 610, consulte une table de hash, par exemple la table de hash 122 de la FIGURE 1, dans laquelle les données d'identification des mises à jour en attente de réalisation sont mémorisées. Les opérations suivantes sont réalisées : - identification d'une case de la table de hash correspondant à la valeur de hash calculée - comparaison de la donnée d'identification à chacune des données d'identification déjà mémorisées dans cette case : ^ si elle ne correspond à aucune donnée d'identification déjà mémorisée alors mémorisation de la donnée d'identification dans cette case de la table de hash et dans une file d'attente de mises à jour, par exemple la file d'attente de mises à jour 120 de la FIGURE 1 ; ^ si elle correspond à une donnée d'identification déjà mémorisée, alors la requête de mise à jour est ignorée.FIGURE 6 is a schematic representation of an example of a verification of the uniqueness of an update, which can be implemented in the method according to the invention. Such a verification can be carried out after receiving an update request, following a modification made at the source database level. The check 600 shown in FIGURE 6 includes a step 602 of receiving an update request. Then a step 604 of checking the uniqueness of the update is performed. This step 604 includes a step 606, computing an identification data for the update. This data is calculated by concatenating the elements of the update request. A hash value is calculated for this identification data using a hash function at step 608. A step 610 consults a hash table, for example, the hash table 122 of FIGURE 1, in which the hash values are computed. credentials for updates awaiting completion are stored. The following operations are performed: identification of a box of the hash table corresponding to the calculated hash value, comparison of the identification data with each of the identification data already stored in this box: if it does not correspond no identification data already stored then storing the identification data in this box of the hash table and in an update queue, for example the queue of updates 120 of the FIGURE 1 ; if it corresponds to an identification data already stored, then the update request is ignored.

La FIGURE 7 est une représentation schématique d'un exemple de traitement d'une mise à jour pouvant être mise en oeuvre dans le procédé selon l'invention. L'exemple de traitement 700 représenté sur la FIGURE 7 comprend une étape 702 consultant une liste d'attente de mise à jour, par exemple la - 37 - liste d'attente 120 de la FIGURE 1, et sélectionnant la mise à jour à réaliser qui est en première position dans la liste d'attente. A l'étape 704, la mise à jour est analysée pour déterminer le type de mise à jour, à savoir une mise à jour d'un cube, d'une dimension d'un cube ou d'un enregistrement dans une dimension ou d'un enregistrement pour chaque dimension d'un cube. Si à l'étape 704, il est déterminé que la mise à jour à traiter est une mise à jour d'une dimension ou d'un cube alors, une étape 706 réalise une identification du cube ou de la dimension concernée, puis une copie de ce cube ou de cette dimension à mettre à jour. Lors d'une étape 708, la copie du cube ou de la dimension est mise à jour. Lors d'une étape 710 le cube ou la dimension à mettre à jour est remplacée par la copie mise à jour du cube, respectivement la dimension.FIGURE 7 is a schematic representation of an example of an update processing that can be implemented in the method according to the invention. The processing example 700 shown in FIGURE 7 includes a step 702 consulting an update waiting list, for example the waiting list 120 of FIGURE 1, and selecting the update to be performed. who is in first position on the waiting list. In step 704, the update is analyzed to determine the type of update, namely an update of a cube, a dimension of a cube or a record in a dimension, or a record for each dimension of a cube. If at step 704, it is determined that the update to be processed is an update of a dimension or a cube then, a step 706 performs an identification of the cube or dimension concerned, then a copy of this cube or dimension to update. In a step 708, the copy of the cube or dimension is updated. During a step 710, the cube or dimension to be updated is replaced by the updated copy of the cube, respectively the dimension.

Si à l'étape 704, il est déterminé que la mise à jour à traiter est une mise à jour d'un enregistrement dans une dimension, respectivement dans un cube, alors les étapes suivantes sont réalisées pour cette dimension, respectivement pour chaque dimension du cube.If in step 704, it is determined that the update to be processed is an update of a record in a dimension, respectively in a cube, then the following steps are performed for this dimension, respectively for each dimension of cube.

Une étape 712 réalise une copie de cette dimension. Lors d'une étape 713 la liste des nouveaux membres concernés par l'enregistrement mis à jour sont récupérés, par exemple par consultation du fournisseur de données 106 de la FIGURE 1. La liste des nouveaux membres correspond à la liste des membres qui mémorisent un identifiant de l'enregistrement après mise à jour de l'enregistrement. Puis, lors d'une étape 714, la liste des anciens membres contenant l'enregistrement sont identifiés, par consultation d'une table de hash, dit dictionnaire, telle que la table de hash dictionnaire 216 de la FIGURE 2, stockant pour chaque enregistrement une liste des index des membres de cette dimension mémorisant cet enregistrement. Pour ce faire les opérations suivantes sont réalisées : - calcul d'une valeur hash pour l'identifiant de l'enregistrement, - identification de la case de la table de hash dictionnaire correspondant à cette valeur de hash, et -38- - identification dans cette case, d'une liste de membres correspondant à cet identifiant, et mémorisant cet identifiant. En fonction de la liste des nouveaux membres et de la liste des anciens membres, les membres à mettre à jour sont déterminés et sont mis à jour lors d'une étape 716, en travaillant sur la copie, réalisée à l'étape 712, de la dimension concernée par la mise à jour. Les membres mis à jour sont les membres qui diffèrent entre les deux listes préalablement déterminées, à savoir : - les membres qui se trouvaient dans la liste des anciens membres, mais plus dans les nouveaux : dans ce cas l'identifiant de l'enregistrement est supprimé de chacun de ces membre. Si un membre existant dans la copie ne comprend plus aucun identifiant d'enregistrement alors ce membre est supprimé de la copie de la dimension ; et les membres qui ne se trouvaient pas dans la liste des anciens membres, mais qui figurent désormais dans la liste des nouveaux : dans ce cas l'identifiant de l'enregistrement est ajouté à chacun de ces membres. Si un nouveau membre manque dans la copie alors ce nouveau membre est ajouté à la copie de la dimension. A chaque mise à jour d'un enregistrement, la table de hash dictionnaire 216 est également mise à jour lors d'une étape 718. Si la dimension comprend une liste ordonnée des membres de la dimension, par exemple la liste 214 de la FIGURE 2 triée selon l'ordre de sortie, et qu'une mise à jour d'un membre provoque la création de ce membre ou la suppression de ce membre, alors la liste ordonnée est également mise à jour lors de l'étape 718. Puis lors d'une étape 720, la dimension à mettre à jour est remplacée par sa copie ainsi modifiée lors des étapes 716 et 718.A step 712 makes a copy of this dimension. In a step 713 the list of the new members concerned by the updated recording is retrieved, for example by consulting the data provider 106 of FIGURE 1. The list of new members corresponds to the list of the members who memorize a identifier of the record after updating the record. Then, during a step 714, the list of the old members containing the record are identified, by consulting a hash table, called dictionary, such as the dictionary hash table 216 of FIGURE 2, storing for each record a list of the indexes of the members of this dimension memorizing this record. To do this, the following operations are performed: calculation of a hash value for the identifier of the record, identification of the box of the hash table corresponding to this hash value, and identification in the this box, a list of members corresponding to this identifier, and memorizing this identifier. Based on the list of new members and the list of old members, the members to be updated are determined and updated at a step 716, working on the copy, made at step 712, of the dimension affected by the update. The updated members are the members who differ between the two previously determined lists, namely: - the members who were in the list of the old members, but more in the new ones: in this case the identifier of the registration is deleted from each of these members. If an existing member in the copy no longer includes any record identifier then that member is removed from the copy of the dimension; and the members who were not in the list of old members, but who are now included in the list of new members: in this case the identifier of the registration is added to each of these members. If a new member is missing in the copy then this new member is added to the copy of the dimension. At each update of a record, the dictionary hash table 216 is also updated in a step 718. If the dimension includes an ordered list of the members of the dimension, for example list 214 of FIGURE 2 sorted according to the output order, and that a member update causes that member to be created or deleted, then the ordered list is also updated in step 718. Then in a step 720, the dimension to be updated is replaced by its copy thus modified during steps 716 and 718.

Nous allons maintenant décrire quelques exemples non limitatifs de relation de filtrage et, pour chaque relation de filtrage un exemple d'application non limitative de ladite relation de filtrage sur une dimension du cube de tri.35 - 39 - Relation de filtrage « Egal » Cette relation de filtrage comprend un opérateur « Egal » et une valeur de tri au format texte, laquelle représente le ou les membres contenant les enregistrements à retourner.We will now describe some nonlimiting examples of filtering relation and, for each filtering relation, an example of non-limiting application of said filtering relation on a dimension of the sorting cube.35 - 39 - "Equal" filtering relation This Filtering relation includes an "Equal" operator and a text sorting value, which represents the member (s) containing the records to be returned.

Cette valeur est convertie en utilisant une fonction de conversion associée à la dimension et permettant la conversion d'une chaine de caractère en membre. Ceci nous donne le membre de référence à rechercher. Si la valeur ne peut pas être convertie, le filtrage ne s'applique pas, et une valeur « Tous » est retournée. Sinon, les étapes suivantes sont réalisées : - recherche de l'index, également appelée position, de référence en effectuant une recherche binaire du membre de référence dans la liste ordonnée selon l'ordre de sortie ; o si la position de référence est négative, alors elle est remplacée par son complément binaire ; en commençant par la position de référence, dans l'ordre croissant, tester successivement chaque membre de la liste jusqu'à trouver le dernier membre respectant la condition d'égalité, selon l'ordre filtrage. - en commençant par la position de référence, dans l'ordre décroissant, tester successivement chaque membre jusqu'à trouver le dernier membre respectant la condition d'égalité, en utilisant l'ordre filtrage.This value is converted using a conversion function associated with the dimension and allowing the conversion of a string into a member. This gives us the reference member to search. If the value can not be converted, filtering does not apply, and an "All" value is returned. Otherwise, the following steps are performed: search for the index, also called reference position, by performing a binary search of the reference member in the ordered list according to the output order; o if the reference position is negative, then it is replaced by its binary complement; starting from the reference position, in ascending order, successively test each member of the list until finding the last member respecting the equality condition, according to the order of filtering. - starting from the reference position, in descending order, successively test each member until finding the last member respecting the equality condition, using the filtering order.

Les deux membres ainsi trouvés sont les membres de bord. Les membres situés entre les deux membres de bord, eux compris, sont les membres satisfaisant la relation de filtrage, et contiennent les enregistrements à retourner : le groupe intermédiaire retourné correspond à l'union de tous ces enregistrements.The two members thus found are the members on board. The members located between the two members of board, them included, are the members satisfying the relation of filtering, and contain the recordings to return: the intermediary group returned corresponds to the union of all these recordings.

Relation de filtrage « Supérieur » Cette relation de filtrage comprend un opérateur « Supérieur » et une valeur de tri au format texte, laquelle représente la borne inférieure de la liste des membres de la dimension. - 40 - Cette valeur est convertie en utilisant la fonction de conversion associée à la dimension et permettant la conversion d'une chaine de caractère en membre. Cette conversion donne le membre de référence. Si la valeur ne peut pas être convertie, le filtrage ne s'applique pas, et une valeur « Tous » est retournée. Sinon, les étapes suivantes sont réalisées : - recherche de la position de référence en effectuant une recherche binaire du membre de référence dans la liste ordonnée selon le l'ordre de sortie ; ^ si la position est positive, alors elle est incrémentée (position = position + 1). ^ si la position est négative, alors elle est remplacée par son complément binaire. - en commençant par la position de référence, dans l'ordre croissant, tester successivement chaque membre jusqu'à trouver le premier membre respectant la condition de supériorité, en application de l'ordre de filtrage : ce membre est le membre de bord. Ce membre de bord, ainsi que tous les membres suivants, sont les 20 membres satisfaisant la relation de filtrage et contiennent les enregistrements à retourner : le groupe intermédiaire retourné correspond à l'union de tous ces enregistrements. Relation de filtrage « Inférieur » 25 Cette relation de filtrage comprend un opérateur « Inférieur » et une valeur de tri au format texte, laquelle représente la borne supérieure de la liste des membres de la dimension. Cette valeur est convertie en utilisant la fonction de conversion de la dimension permettant la conversion d'une chaine de caractère en membre. 30 Cette conversion donne le membre de référence. Si la valeur ne peut pas être convertie, le filtrage ne s'applique pas, et une valeur « Tous » est retournée. Sinon les étapes suivantes sont appliquées : -41- - recherche de la position de référence en effectuant une recherche binaire du membre de référence dans la liste ordonnée selon l'ordre de sortie ; - si la position est positive, alors elle est décrémentée (position = position - 1). - si la position est négative, alors elle est remplacée par son complément binaire moins 1 (position = -position - 1). en commençant par la position de référence, dans l'ordre décroissant, tester successivement chaque membre jusqu'à trouver le premier membre respectant la condition d'infériorité, en application de l'ordre de filtrage. Ce membre est le membre de bord. Ce membre de bord ainsi que tous les membres précédents satisfont la relation de filtrage et contiennent les enregistrements à retourner : le groupe intermédiaire retourné correspond à l'union de tous ces enregistrements. Relation de filtrage « Supérieur ou égal » Cette relation de filtrage comprend un opérateur « Supérieur ou égal » et une valeur de tri au format texte, laquelle représente la borne inférieure de la liste des membres de la dimension. Cette valeur est convertie en utilisant la fonction de conversion de la dimension relisant une conversion de la chaine de caractère en membre. Cette conversion donne le membre de référence. Si la valeur ne peut pas être convertie, le filtrage ne s'applique pas, et une valeur « Tous » est retournée. Sinon, les étapes suivantes sont réalisées : - recherche de la position de référence en effectuant une recherche binaire du membre de référence dans la liste ordonnée selon l'ordre de sortie : ^ si la position est négative, alors elle est remplacée par son complément binaire ; - en commençant par la position de référence, dans l'ordre décroissant, tester successivement chaque membre jusqu'à trouver le dernier membre respectant la condition de supériorité ou d'égalité, en application de l'ordre de filtrage ; - 42 - Ce membre est le membre de bord. Ce membre ainsi que tous les membres suivants satisfont la condition de tri et contiennent les enregistrements à retourner : le groupe intermédiaire retourné correspond à l'union de tous ces enregistrements."Superior" filtering relationship This filtering relationship includes a "Top" operator and a text sorting value, which represents the lower bound of the list of dimension members. - 40 - This value is converted using the conversion function associated with the dimension and allowing the conversion of a string to a member. This conversion gives the reference member. If the value can not be converted, filtering does not apply, and an "All" value is returned. Otherwise, the following steps are performed: - search for the reference position by performing a binary search of the reference member in the ordered list according to the output order; ^ if the position is positive, then it is incremented (position = position + 1). ^ if the position is negative, then it is replaced by its binary complement. - starting with the reference position, in ascending order, successively test each member until finding the first member respecting the condition of superiority, in application of the filtering order: this member is the edge member. This board member, along with all subsequent members, are the 20 members satisfying the filtering relationship and contain the records to be returned: the returned intermediate group is the union of all these records. This filtering relationship includes an "Inferior" operator and a text sorting value, which represents the upper bound of the list of dimension members. This value is converted using the dimension conversion function to convert a string to a member. This conversion gives the reference member. If the value can not be converted, filtering does not apply, and an "All" value is returned. Otherwise the following steps are applied: -41- - search for the reference position by performing a binary search of the reference member in the ordered list according to the output order; - if the position is positive, then it is decremented (position = position - 1). - if the position is negative, then it is replaced by its binary complement minus 1 (position = -position - 1). starting from the reference position, in descending order, successively testing each member until finding the first member respecting the inferiority condition, in application of the filtering order. This member is the member on board. This board member and all the previous members satisfy the filtering relation and contain the records to be returned: the returned intermediate group corresponds to the union of all these records. "Greater than or equal" filtering relationship This filtering relationship includes a "Greater than or equal" operator and a text sorting value, which represents the lower bound of the list of dimension members. This value is converted using the conversion function of the dimension reading a conversion from the string to a member. This conversion gives the reference member. If the value can not be converted, filtering does not apply, and an "All" value is returned. Otherwise, the following steps are performed: - search for the reference position by performing a binary search of the reference member in the ordered list according to the output order: ^ if the position is negative, then it is replaced by its binary complement ; - starting with the reference position, in descending order, successively test each member until finding the last member respecting the condition of superiority or equality, in application of the filtering order; - 42 - This member is the member on board. This member and all subsequent members satisfy the sort condition and contain the records to return: the returned intermediate group is the union of all these records.

Relation de filtrage « Inférieur ou égal » Cette relation de filtrage comprend un opérateur « Inférieur ou égal » et une valeur de tri au format texte, laquelle représente la borne supérieure de la liste des membres de la dimension."Less than or equal" filtering relationship This filtering relationship includes a "Less than or equal" operator and a text sorting value, which represents the upper bound of the list of dimension members.

Cette valeur est convertie en utilisant la fonction de conversion d'une chaine de caractère en membre, associée à la dimension. Cette conversion donne le membre de référence. Si la valeur ne peut pas être convertie, le filtrage ne s'applique pas, et une valeur « Tous » est retournée.This value is converted using the conversion function from a string to a member, associated with the dimension. This conversion gives the reference member. If the value can not be converted, filtering does not apply, and an "All" value is returned.

Sinon, les étapes suivantes sont réalisées : - recherche de la position de référence en effectuant une recherche binaire du membre de référence dans la liste ordonnée selon l'ordre de sortie : ^ si la position est négative, alors elle est remplacée par son complément binaire moins 1 (position = -position - 1) ; - en commençant par la position de référence, dans l'ordre croissant, tester successivement chaque membre jusqu'à trouver le premier membre respectant la condition d'infériorité ou d'égalité, en application de l'ordre de filtrage. Ce membre est le membre de bord. Ce membre de bord ainsi que tous les membres précédents satisfont la relation de filtrage et contiennent les enregistrements à retourner : le groupe intermédiaire retourné correspond à l'union de tous ces enregistrements.Otherwise, the following steps are performed: - search for the reference position by performing a binary search of the reference member in the ordered list according to the output order: ^ if the position is negative, then it is replaced by its binary complement minus 1 (position = -position - 1); starting from the reference position, in ascending order, successively testing each member to find the first member respecting the condition of inferiority or equality, in application of the filtering order. This member is the member on board. This board member and all the previous members satisfy the filtering relation and contain the records to be returned: the returned intermediate group corresponds to the union of all these records.

Relation de filtrage « Entre » Cette relation de filtrage est une combinaison des relations de filtrage « Supérieur ou égal » et « Inférieur ». Cette relation de filtrage comprend deux valeurs de tri au format texte, lesquelles représentent respectivement la borne inférieure et la borne supérieure à appliquer. - 43 - Le fonctionnement est ensuite identique aux deux relations de filtrage précitées. Ces relations de filtrage sont décrites plus haut."Between" filtering relationship This filtering relationship is a combination of the "Greater or equal" and "Lower" filtering relationships. This filtering relation comprises two sorting values in text format, which respectively represent the lower bound and the upper bound to be applied. The operation is then identical to the two above-mentioned filtering relations. These filtering relationships are described above.

Nous allons maintenant décrire quelques exemples non limitatifs de relation de sortie et, pour chaque relation de sortie un exemple d'application non limitative sur une dimension. Relation de sortie « Egal » Cette relation de sortie comprend l'opérateur « Egal » et nécessite une valeur au format texte, laquelle représente le ou les membres contenant les enregistrements à retourner. Cette valeur est convertie en utilisant la fonction de conversion d'une chaine de caractère en membre associé à la dimension. Ceci donne le 15 membre de référence. Si la valeur ne peut pas être convertie, la relation de sortie est ignorée (rien n'est retourné). Les étapes suivantes sont réalisées : - recherche de la position de référence en effectuant une 20 recherche binaire du membre de référence dans la liste ordonnée selon l'ordre de sortie ; ^ si la position est négative, alors elle est remplacée par son complément binaire, - en commençant par la position de référence, dans l'ordre 25 croissant, tester successivement chaque membre de la liste jusqu'à trouver le dernier membre respectant la condition d'égalité, en application de l'ordre de filtrage. - en commençant par la position de référence, dans l'ordre décroissant, tester successivement chaque membre jusqu'à 30 trouver le dernier membre respectant la condition d'égalité, en application de l'ordre de filtrage. Les deux membres ainsi trouvés sont les membres de bords. Ces membres de bord ainsi que les membres situés entre eux, contiennent les enregistrements à retourner et composant le groupe intermédiaire pour 35 cette relation de sortie. - 44 - Pour obtenir l'ensemble des couples relation de sortie/enregistrements à retourner, il faut appliquer les transformations suivantes à chacun des membres trouvés précédemment : - convertir le membre en texte en utilisant la fonction de conversion, associée à la dimension, permettant la conversion d'un membre en chaine de caractère, - réaliser l'intersection des enregistrements du membre avec les enregistrements issus de l'application des relations de filtrage, - créer une relation de sortie composée du critère de tri de la dimension, de l'opération « Egal », et d'une valeur de tri correspondant au membre au format texte, - créer un couple contenant la relation de sortie et les enregistrements fournis par l'intersection. Le résultat de l'application de cette relation de sortie est la liste des couples relation de sortie/enregistrements ainsi créés. Relation de sortie « Supérieur » La relation de sortie comprend l'opérateur « Supérieur » et nécessite une valeur au format texte, laquelle représente la borne inférieure de la liste 20 ordonnée des membres de la dimension. Cette valeur est convertie en utilisant la fonction de conversion d'une chaine de caractère en membre, associée à la dimension. Ceci donne le membre de référence. Si la valeur ne peut pas être convertie, la relation de sortie est 25 ignorée (rien n'est retourné). Les étapes suivantes sont appliquées : - recherche de la position de référence en effectuant une recherche binaire du membre de référence dans la liste ordonnée selon l'ordre de sortie, 30 - si la position est positive, alors elle est incrémentée (position = position + 1). - si la position est négative, alors elle est remplacée par son complément binaire. - en commençant par la position de référence, dans l'ordre 35 croissant, tester successivement chaque membre jusqu'à trouver - 45 - le premier membre respectant la condition de supériorité, en application de l'ordre de filtrage. Ce membre est le membre de bord. Ce membre ainsi que tous les membres suivants, contiennent les informations à retourner.We will now describe some non-limiting examples of output relationships and for each output relationship an example of non-limiting application on one dimension. "Equal" output relationship This output relationship includes the "Equal" operator and requires a text value, which represents the member (s) containing the records to be returned. This value is converted using the function of converting a string into a member associated with the dimension. This gives the reference member. If the value can not be converted, the output relationship is ignored (nothing is returned). The following steps are performed: search for the reference position by performing a binary search of the reference member in the ordered list according to the output order; If the position is negative, then it is replaced by its binary complement, starting from the reference position, in ascending order, successively testing each member of the list until finding the last member complying with the condition. equality, in application of the filtering order. starting from the reference position, in descending order, successively testing each member up to find the last member respecting the equality condition, in application of the filtering order. The two members thus found are the edge members. These edge members as well as the members between them contain the records to be returned and make up the intermediate group for this output relationship. - 44 - To obtain the set of output relationship pairs / records to return, the following transformations must be applied to each of the members found previously: - convert the member to text using the conversion function, associated with the dimension, allowing the conversion of a member into a string of characters, - to make the intersection of the records of the member with the records resulting from the application of the filtering relations, - to create an output relation composed of the sorting criterion of the dimension, the 'Equal' operation, and a sort value corresponding to the member in text format, - create a pair containing the output relationship and the records provided by the intersection. The result of the application of this output relationship is the list of output relationship pairs / records thus created. "Superior" output relationship The output relationship includes the "Superior" operator and requires a text value, which represents the lower bound of the ordered list of the members of the dimension. This value is converted using the conversion function from a string to a member, associated with the dimension. This gives the reference member. If the value can not be converted, the output relationship is ignored (nothing is returned). The following steps are applied: - search for the reference position by performing a binary search of the reference member in the ordered list according to the output order, 30 - if the position is positive, then it is incremented (position = position + 1). - if the position is negative, then it is replaced by its binary complement. starting from the reference position, in ascending order, successively testing each member until the first member satisfying the superiority condition is applied, in application of the filtering order. This member is the member on board. This member and all subsequent members contain the information to return.

Pour obtenir l'ensemble des couples relation de sortie/enregistrements à retourner, il faut effectuer les opérations suivantes : - calculer l'union des enregistrements contenus dans les membres précédemment trouvés, - réaliser l'intersection de l'union précédemment calculé et des enregistrements issus de l'application des relations de filtrage, - créer un couple contenant la relation de sortie et les enregistrements fournis par l'intersection. Le résultat de l'application de cette relation de sortie est l'unique couple relation de sortie/enregistrements ainsi créé.To obtain the set of output relationship pairs / records to return, perform the following operations: - calculate the union of the records contained in the previously found members, - make the intersection of the previously calculated union and the records from the application of filtering relations, - create a couple containing the output relationship and the records provided by the intersection. The result of applying this output relationship is the unique output relationship / record pair thus created.

Relation de sortie « Tous » Cette relation de sortie comprend l'opérateur « Tous » et ne nécessite aucune valeur. Elle signifie que tous les membres de la dimension visée constituent une relation de sortie, i.e. tous les membres de la dimension vérifient la relation de sortie. Pour obtenir l'ensemble des couples relation de sortie/enregistrements à retourner, il faut appliquer les transformations suivantes à chacun de tous les membres de la dimension visée : - convertir le membre en texte en utilisant la fonction de conversion, associée à la dimension, permettant la conversion d'un membre en chaine de caractère, - réaliser l'intersection des enregistrements du membre avec les enregistrements issus de l'application des relations de filtrage. - créer une relation de sortie composée du critère de tri de la dimension, de l'opération « Egal », et d'une valeur de tri correspondant au membre au format texte, - créer un couple contenant la relation de sortie et les enregistrements fournis par l'intersection. Le résultat de l'application de cette relation de sortie est la liste des couples relation de sortie/enregistrements ainsi créés. -46- Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention."All" output relationship This output relationship includes the "All" operator and does not require any value. It means that all members of the target dimension are an output relationship, i.e. all members of the dimension are checking the output relationship. To obtain the set of output relationship pairs / records to be returned, the following transformations must be applied to each of the members of the targeted dimension: - convert the member to text using the conversion function, associated with the dimension, allowing the conversion of a member into a string of characters, - making the intersection of the member's records with the records resulting from the application of the filtering relations. - create an output relationship composed of the dimension sort criterion, the "Equal" operation, and a sort value corresponding to the member in text format, - create a pair containing the output relationship and the records provided by the intersection. The result of the application of this output relationship is the list of output relationship pairs / records thus created. Of course, the invention is not limited to the examples which have just been described and many adjustments can be made to these examples without departing from the scope of the invention.

Claims (17)

REVENDICATIONS1. Procédé (300) de traitement de données pour effectuer un tri au sein d'un ensemble (104) d'entités numériques, dits enregistrements, chacun desdits enregistrements étant représenté par au moins une donnée numérique, dite valeur, associée à au moins un critère, dit de tri, et mémorisée dans une base de données (102), dite source, en association avec au moins une donnée d'identification dudit enregistrement, ledit procédé (300) comprenant : - une étape (302) de réception d'une requête, dite de tri, comprenant au moins une relation de filtrage visant un critère de tri, et - une phase (304, 400) d'obtention, à la volée et à partir de ladite base de données source (102), d'une base de données (108), dite cube de tri, comprenant une dimension (200) associée à chaque critère de tri visé dans ladite requête de tri, chaque dimension (200) : ^ étant indépendante des autres dimensions (200) dudit cube (108), et ^ comprenant, un ou plusieurs membres (204,206), correspondant chacun à une valeur que peut prendre le critère de tri auquel est associée ladite dimension (200) et mémorisant un identifiant d'au moins un enregistrement présentant ladite valeur pour ledit critère de tri, - une phase (310,500) de filtrage dudit cube de tri (108) avec l'au moins une relation de filtrage composant ladite requête de tri ; et - une phase (314) de détermination d'un résultat de tri, en fonction dudit filtrage.REVENDICATIONS1. A method (300) of data processing for sorting within a set (104) of digital entities, called records, each of said records being represented by at least one numerical data item, called value, associated with at least one criterion , said sorting, and stored in a database (102), said source, in association with at least one identification data of said record, said method (300) comprising: - a step (302) of receiving a query, called sorting, comprising at least one filtering relation targeting a sorting criterion, and - a phase (304, 400) for obtaining, on the fly and from said source database (102), a database (108), called sort cube, comprising a dimension (200) associated with each sorting criterion referred to in said sorting request, each dimension (200): ^ being independent of the other dimensions (200) of said cube ( 108), and comprising ^, one or more members (204,206), co each corresponding to a value that can take the sorting criterion which is associated with said dimension (200) and storing an identifier of at least one record having said value for said sorting criterion, - a phase (310,500) for filtering said cube of sorting (108) with the at least one filtering relation composing said sorting request; and a phase (314) for determining a sorting result, as a function of said filtering. 2. Procédé (300) selon la revendication 1, caractérisé en ce que :-48- - la phase de filtrage (310,500) fournit au moins un identifiant d'au moins un enregistrement qui vérifie l'au moins une relation de filtrage, et - la requête de tri comprend en outre au moins une relation, dite de sortie, visant un critère de tri ; et en ce que ledit procédé comprend en outre, après la phase de filtrage, une phase (312,500), dite de classement, dudit au moins un enregistrement en fonction de ladite au moins une relation de sortie.2. Method (300) according to claim 1, characterized in that: the filtering phase (310,500) provides at least one identifier of at least one record which verifies the at least one filtering relation, and - The sorting request further comprises at least one relationship, called output, for a sorting criterion; and in that said method further comprises, after the filtering phase, a so-called classification phase (312,500) of said at least one record as a function of said at least one output relationship. 3. Procédé (300) selon l'une quelconque des revendications précédentes, caractérisé en ce que la phase (304,400) d'obtention du cube de tri (108) comprend les étapes suivantes : - détermination (306) de tous les critères de tri visés dans la requête de tri, - consultation (408) d'un cube existant pour déterminer si ledit cube existant comprend, pour chacun des critères de tri visés dans la requête de tri, une dimension associée audit critère de tri : - si oui, utilisation (410) dudit cube existant comme cube de tri, - sinon, complétion (412) dudit cube existant avec chacune des dimensions manquantes à partir de la base de données source (102) et utilisation dudit cube existant ainsi complété comme cube de tri.3. Method (300) according to any one of the preceding claims, characterized in that the phase (304,400) for obtaining the sort cube (108) comprises the following steps: - determination (306) of all sorting criteria referred to in the sorting request, - consulting (408) an existing cube to determine if said existing cube comprises, for each of the sorting criteria referred to in the sorting request, a dimension associated with said sorting criterion: - if yes, using (410) said existing cube as a sort cube, - otherwise, completing (412) said existing cube with each of the missing dimensions from the source database (102) and using said existing cube thus completed as a sort cube. 4. Procédé (300) selon la revendication 3, caractérisé en ce que la requête de tri comprend une donnée d'identification dudit cube existant dans une base de cubes (110) comprenant au moins un cube (108).4. Method (300) according to claim 3, characterized in that the sorting request comprises an identification data of said cube existing in a base of cubes (110) comprising at least one cube (108). 5. Procédé (300) selon l'une quelconque des revendications précédentes, caractérisé en ce que la phase de filtrage (310,500) comprend, pour chaque relation de filtrage visant un critère de tri, une étape (502) de filtrage, selon ladite relation de filtrage, des membres de la dimension (200) du cube de tri (108) associée audit critère de tri, indépendamment-49- des autres relations de filtrage, ladite étape de filtrage (502) fournissant un groupe, dit intermédiaire, comprenant les identifiants de tous les enregistrements mémorisés dans ladite dimension (200) et vérifiant ladite relation de filtrage.5. Method (300) according to any one of the preceding claims, characterized in that the filtering phase (310,500) comprises, for each filtering relationship targeting a sorting criterion, a filtering step (502), according to said relation filtering, members of the dimension (200) of the sort cube (108) associated with said sorting criterion, independently of the other filtering relationships, said filtering step (502) providing a group, said intermediate, comprising the identifiers of all records stored in said dimension (200) and verifying said filtering relation. 6. Procédé (300) selon la revendication 5, caractérisé en ce que, lorsque la requête de tri comprend plusieurs relations de filtrage, ladite requête comprend également un ou plusieurs opérateurs booléens reliant lesdites relations de filtrage entre elles, la phase de filtrage (310,500) comprenant en outre une étape (512) appliquant lesdits opérateurs booléens aux groupes intermédiaires d'identifiants fournis par chacune des relations de filtrage, et fournissant un groupe, dit final, d'identifiants d'enregistrements.6. Method (300) according to claim 5, characterized in that, when the sorting request comprises several filtering relations, said request also comprises one or more Boolean operators connecting said filtering relations with each other, the filtering phase (310,500 ) further comprising a step (512) applying said Boolean operators to the intermediate groups of identifiers provided by each of the filtering relationships, and providing a group, said final, of record identifiers. 7. Procédé (300) selon les revendications 2 et 6, caractérisé en ce que la 15 phase de classement (312,500) comprend, pour au moins une, et préférentiellement pour chaque, relation de sortie, les étapes suivantes : - filtrage (502), selon ladite relation de sortie, des membres de la dimension (200) visée par la relation de sortie, ledit filtrage fournissant un groupe intermédiaire d'identifiants 20 d'enregistrements vérifiant ladite relation de sortie ; et - détermination (514) de l'intersection dudit groupe intermédiaire ainsi obtenu avec le groupe final fourni par la phase (310,500) de filtrage dudit cube de tri (108) selon l'au moins une relation de filtrage. 257. Method (300) according to claims 2 and 6, characterized in that the classification phase (312,500) comprises, for at least one, and preferably for each, output relationship, the following steps: - filtering (502) in said output relationship, members of the dimension (200) targeted by the output relationship, said filtering providing an intermediate group of record identifiers checking said output relationship; and - determining (514) the intersection of said intermediate group thus obtained with the final group provided by the phase (310,500) of filtering said sorting cube (108) according to the at least one filtering relation. 25 8. Procédé (300) selon la revendication 7, caractérisé en ce que, lorsque la requête de tri comprend plusieurs relations de sortie, la phase de classement (312,500) comprend une application unitaire et indépendante de chacune desdites relations de sortie, ladite phase de classement 30 (312,500) comprenant en outre une étape (516) de concaténation des résultats fournis par chacune des relations de sortie, ladite phase de classement (312,500) fournissant une liste obtenue par ladite concaténation.- 50 -A method (300) according to claim 7, characterized in that, when the sorting request comprises a plurality of output relationships, the ranking phase (312,500) comprises a unitary and independent application of each of said output relationships, said phase of ranking (312,500) further comprising a step (516) of concatenating the results provided by each of the output relationships, said ranking step (312,500) providing a list obtained by said concatenation. 9. Procédé (300) selon l'une quelconque des revendications précédentes, caractérisé en ce que la phase (314) de détermination du résultat de tri comprend une étape de comptage du nombre d'enregistrements différents vérifiant la requête de tri.9. Method (300) according to any one of the preceding claims, characterized in that the phase (314) for determining the sorting result comprises a step of counting the number of different records verifying the sorting request. 10. Procédé (300) selon l'une quelconque des revendications précédentes, caractérisé en ce que la phase (314) de détermination du résultat de tri comprend en outre une étape d'affichage d'au moins une donne relative à au moins un enregistrement vérifiant la requête de tri.10. Method (300) according to any one of the preceding claims, characterized in that the phase (314) for determining the sorting result further comprises a step of displaying at least one item relating to at least one record. checking the sort request. 11. Procédé (300) selon l'une quelconque des revendications précédentes, caractérisé en ce qu'au moins une dimension (200) du cube de tri (108) comprend au moins une liste ordonnée (214) dans laquelle les membres (204,206) de ladite dimension (200) sont ordonnés selon une relation prédéterminée s'appliquant audits membres (204,206).11. Method (300) according to any one of the preceding claims, characterized in that at least one dimension (200) of the sort cube (108) comprises at least one ordered list (214) in which the members (204,206) of said dimension (200) are ordered according to a predetermined relationship applying to member audits (204,206). 12. Procédé (300) selon la revendication 11, caractérisé en ce que, au moins une relation de filtrage, respectivement au moins une relation de sortie, visant un critère de tri est composée d'un opérateur, dit de tri, et d'au moins une valeur, dite de tri, pour ledit critère de tri, et en ce que le filtrage d'une dimension (200) selon la dite relation de filtrage, respectivement ladite relation de sortie, comprend les étapes suivantes : - identification (506), dans ladite liste ordonnée (214), d'au moins un membre, dit membre de bord, de ladite dimension (200) qui respecte ou qui ne respecte plus ladite relation, et - sélection (506-510) en fonction dudit au moins un membre de bord de chaque identifiant d'enregistrement mémorisé par chaque membre respectant ladite relation.12. Method (300) according to claim 11, characterized in that, at least one filtering relationship, respectively at least one output relationship, targeting a sorting criterion is composed of an operator, said sorting, and at least one so-called sorting value for said sorting criterion, and in that the filtering of a dimension (200) according to said filtering relation, respectively said output relation, comprises the following steps: - identification (506 ), in said ordered list (214), at least one member, said edge member, of said dimension (200) which respects or no longer respects said relation, and - selection (506-510) according to said at least least one edge member of each record identifier stored by each member respecting said relationship. 13. Procédé (300) selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend, suite à une modification dans ladite base de données source (102), une phase (700) de mise à jour d'un cube de tri (108) préalablement obtenu et concerné par ladite modification, ladite phase (700) de mise à jour d'un cube de tri (108) comprenant les étapes suivantes :- 51 - - identification (706) dudit cube de tri préalablement obtenu, dit ancien cube de tri, - récupération d'une liste des dimensions dudit ancien cube de tri, - chargement d'un nouveau cube en fonction desdites dimensions et à partir de ladite base de données source modifiée, et - remplacement (710) dudit ancien cube de tri par ledit nouveau cube. 1013. Method (300) according to any one of the preceding claims, characterized in that it comprises, following a modification in said source database (102), a phase (700) for updating a cube. sort (108) previously obtained and concerned by said modification, said phase (700) of updating a sort cube (108) comprising the following steps: - 51 - - identification (706) of said previously obtained sorting cube , said old sort cube, - retrieving a list of dimensions of said old sorting cube, - loading a new cube according to said dimensions and from said modified source database, and - replacing (710) said old sorting cube by said new cube. 10 14. Procédé (300) selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend, suite à une modification dans ladite base de données source (102), une phase (700) de mise à jour d'une dimension (200) d'un cube de tri (108) préalablement obtenu et concerné par ladite 15 modification, ladite phase de mise à jour (700) d'une dimension (200) comprenant les étapes suivantes : - identification (706) de ladite dimension (200), dite ancienne dimension, dudit cube de tri (108), - chargement d'une nouvelle dimension en fonction de ladite 20 base de données source modifiée, et - remplacement (710) de l'ancienne dimension par la nouvelle dimension dans ledit cube de tri.14. Method (300) according to any one of the preceding claims, characterized in that it comprises, following a modification in said source database (102), a phase (700) for updating a dimension. (200) of a sort cube (108) previously obtained and concerned by said modification, said update phase (700) of a dimension (200) comprising the following steps: - identification (706) of said dimension (200), said old dimension, said sorting cube (108), - loading a new dimension according to said modified source database, and - replacing (710) the old dimension by the new dimension in said sort cube. 15. Procédé (300) selon l'une quelconque des revendications précédentes, 25 caractérisé en ce qu'il comprend, suite à une modification dans ladite base de données source (102) d'un enregistrement, une phase (700) de mise à jour dudit enregistrement dans une dimension (200) comprenant les étapes suivantes : - obtention (712) d'une dimension dite, nouvelle dimension, par 30 copie de l'ancienne dimension ; - identification (713,714,716) de tous les membres de ladite nouvelle dimension concernés par ladite mise à jour ; - pour chacun desdits membres identifiés de ladite nouvelle dimension :- 52 - ^ suppression de l'identifiant dudit enregistrement mémorisé par ledit membre, ou ^ mémorisation de l'identifiant dudit enregistrement par ledit membre ; - lorsqu'au moins un membre est supprimé/ajouté dans ladite nouvelle dimension, mise à jour (718) de la position de tous les membres suivant ledit membre dans ladite nouvelle dimension, - remplacement (720) de ladite ancienne dimension par la nouvelle dimension ainsi modifiée. 1015. Method (300) according to any one of the preceding claims, characterized in that it comprises, following a modification in said source database (102) of a record, a phase (700) of setting day of said recording in a dimension (200) comprising the steps of: - obtaining (712) a so-called dimension, new dimension, by copying the old dimension; - identification (713,714,716) of all the members of the said new dimension concerned by the said update; for each of said identified members of said new dimension: deletion of the identifier of said record stored by said member, or storage of the identifier of said record by said member; - when at least one member is deleted / added in said new dimension, updated (718) of the position of all the members following said member in said new dimension, - replacement (720) of said old dimension by the new dimension thus modified. 10 16. Procédé (300) selon l'une quelconque des revendications 13 à 15, caractérisé en ce qu'il comprend, pour chaque mise à jour, une vérification (604) de l'unicité de ladite mise à jour, ladite vérification (604) comprenant les étapes suivantes : 15 - détermination (606) d'une valeur associée à ladite mise à jour, - détermination (608) d'une valeur de hash à partir de ladite valeur associée à ladite mise à jour, et - vérification (610), en fonction de ladite valeur de hash, de l'existence ou non de ladite valeur associée à la mise à jour dans 20 une table de hash (122) mémorisant une valeur associée à au moins une mise à jour en attente de réalisation.16. Method (300) according to any one of claims 13 to 15, characterized in that it comprises, for each update, a check (604) of the uniqueness of said update, said check (604 ) comprising the steps of: - determining (606) a value associated with said update, - determining (608) a hash value from said value associated with said update, and - checking ( 610), depending on said hash value, whether or not said value associated with updating in a hash table (122) storing a value associated with at least one update waiting to be realized . 17. Système (100) comprenant les moyens agencés pour réaliser toutes les étapes du procédé (300) selon l'une quelconque des revendications 25 précédentes.17. System (100) comprising the means arranged to carry out all the steps of the method (300) according to any one of the preceding claims.
FR1350313A 2013-01-14 2013-01-14 METHOD AND SYSTEM FOR PROCESSING DATA FOR SORTING WITHIN A SET OF DIGITAL ENTITIES Expired - Fee Related FR3001067B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1350313A FR3001067B1 (en) 2013-01-14 2013-01-14 METHOD AND SYSTEM FOR PROCESSING DATA FOR SORTING WITHIN A SET OF DIGITAL ENTITIES
PCT/EP2014/050625 WO2014108567A1 (en) 2013-01-14 2014-01-14 Method and system for processing data for performing a sort within a set of numerical entities

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1350313A FR3001067B1 (en) 2013-01-14 2013-01-14 METHOD AND SYSTEM FOR PROCESSING DATA FOR SORTING WITHIN A SET OF DIGITAL ENTITIES

Publications (2)

Publication Number Publication Date
FR3001067A1 true FR3001067A1 (en) 2014-07-18
FR3001067B1 FR3001067B1 (en) 2015-01-30

Family

ID=49111287

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1350313A Expired - Fee Related FR3001067B1 (en) 2013-01-14 2013-01-14 METHOD AND SYSTEM FOR PROCESSING DATA FOR SORTING WITHIN A SET OF DIGITAL ENTITIES

Country Status (2)

Country Link
FR (1) FR3001067B1 (en)
WO (1) WO2014108567A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009004231A2 (en) * 2007-06-13 2009-01-08 Compario Information sorting method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009004231A2 (en) * 2007-06-13 2009-01-08 Compario Information sorting method

Also Published As

Publication number Publication date
WO2014108567A1 (en) 2014-07-17
FR3001067B1 (en) 2015-01-30

Similar Documents

Publication Publication Date Title
CN101821735A (en) Generating metadata for association with collection of content items
US7996418B2 (en) Suggesting long-tail tags
FR3043816B1 (en) METHOD FOR SUGGESTION OF CONTENT EXTRACTED FROM A SET OF INFORMATION SOURCES
JP2017054214A (en) Determination device, learning device, information distribution device, determination method, and determination program
FR2801991A1 (en) Method for searching for images in an image database using imaging matching where to speed the search process the images in the database are defined according to an index that is representative of their visual contents
EP2227755B1 (en) Method for analysing a piece of multimedia content and corresponding computer software product and analysis device
EP1912170A1 (en) Computer device for propagation correlation
KR20190119743A (en) Apparatus for providing contents information and method thereof
CN107451204A (en) A kind of data query method, apparatus and equipment
FR3018933A1 (en) METHOD FOR DETERMINING THE STATE OF AN AIRCRAFT EQUIPMENT
FR3001067A1 (en) METHOD AND SYSTEM FOR PROCESSING DATA FOR SORTING WITHIN A SET OF DIGITAL ENTITIES
EP1984873A1 (en) Assistance method and device for building the arborescence of an electronic document group
EP2876565B1 (en) Processing of data relating to objects
US20140278797A1 (en) Attribute-based-categorical-popularity-assignment apparatus and method
US7890538B2 (en) System and method for converting and storing data values
CN113836379A (en) Intelligent recommendation method and system based on customer image
EP3948574A1 (en) System for storing data redundantly, corresponding method and computer program
CN114417890B (en) Comment content reply method and device, electronic equipment and storage medium
FR2901037A1 (en) Reference structural pattern generating method for computer, involves determining reference structural pattern per group of determined primary structural patterns, where reference pattern represents patterns of group
WO2013117872A1 (en) Method for identifying a set of sentences in a digital document, method for generating a digital document, and associated device
FR3010206A1 (en) METHOD FOR MANAGING A USER DATABASE ON A MULTIMEDIA CONTENT PLATFORM
FR2953312A1 (en) METHOD FOR GENERATING A RESULT OF A SEARCH USED BY A SEARCH ENGINE
FR2864856A1 (en) Short text e.g. telegram, information extraction and processing system, has module to extract information, and module to process information and narrowcasting of search results of relations between informations or their comparisons
EP2245555A1 (en) Method of identifying a multimedia document in a reference base, corresponding computer program and identification device
CN115422447A (en) Recommendation system and method applied to information resource platform

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

ST Notification of lapse

Effective date: 20160930