(EN) Method and apparatus for efficiently performing nearest neighbor queries on a database of records wherein each record has a large number of attributes by automatically extracting a multidimensional index from the data. The method is based on first obtaining a statistical model of the content of the data in the form of a probability density function. This density is then used to decide how data should be reorganized on disk for efficient nearest neighbor queries. At query time, the model decides the order in which data should be scanned. It also provides the means for evaluating the probability of correctness of the answer found so far in the partial scan of data determined by the model. In this invention a clustering process is performed on the database to produce multiple data clusters. Each cluster is characterized by a cluster model. The set of clusters represent a probability density function in the form of a mixture model. A new database of records is built having an augmented record format that contains the original record attributes and an additional record attribute containing a cluster number for each record based on the clustering step. The cluster model uses a probability density function for each cluster so that the process of augmenting the attributes of each record is accomplished by evaluating each record's probability with respect to each cluster. Once the augmented records are used to build a database the augmented attribute is used as an index into the database so that nearest neighbor query analysis can be very efficiently conducted using an indexed look up process. As the database is queried, the probability density function is used to determine the order clusters or database pages are scanned. The probability density function is also used to determine when scanning can stop because the nearest neighbor has been found with high probability.
(FR) L'invention concerne un procédé et un appareil, permettant de traiter efficacement des demandes par recherche du voisinage le plus proche dans une base de données d'enregistrements, chaque enregistrement possédant un grand nombre d'attributs obtenus par extraction automatique d'un index multidimensionnel à partir des données. Ce procédé consiste d'abord à obtenir un modèle statistique du contenu des donnés, sous la forme d'une fonction de densité de probabilité. On utilise ensuite cette densité pour définir la manière de réorganiser les données sur un disque, pour traiter efficacement des demandes de recherche du voisinage le plus proche. Au moment de la demande, le modèle décide l'ordre dans lequel les données doivent être balayées. Il fournit également les moyens d'évaluer la probabilité d'exactitude de la réponse trouvée dans le balayage partiel des données déterminées par le modèle. Dans cette invention, un procédé d'agrégation est exécuté dans la base de données, afin de produire plusieurs grappes de données. Chaque grappe est caractérisée par un modèle de grappe. L'ensemble des grappes représente une fonction de densité de probabilité sous la forme d'un modèle de mélange. Une nouvelle base de données est construite, les enregistrements présentant un format plus grand qui contient les attributs d'enregistrement originaux, et des attributs d'enregistrement supplémentaires contenant un certain nombre de grappes pour chaque enregistrement sur la base de l'étape d'agrégation. Le modèle de grappe utilise une fonction de densité de probabilité pour chaque grappe, de sorte que le processus d'augmentation des attributs de chaque enregistrement est réalisé par évaluation d'une probabilité de chaque enregistrement par rapport à chaque grappe. Une fois qu'on a utilisé les enregistrements augmentés pour construire la base de données, les attributs augmentés sont utilisés comme index dans ladite base de données, de sorte que l'analyse d'une demande de voisinage le plus proche peut être traitée très efficacement au moyen d'un procédé de recherche d'index. Lorsque la base de données est demandée, la fonction de densité de probabilité est utilisée pour déterminer l'ordre dans lequel les grappes ou les pages de base de données sont balayées. La fonction de densité de probabilité est également utilisée pour déterminer le moment où le balayage doit s'arrêter, du fait que le voisin le plus proche a été trouvé avec une probabilité élevée.