• Aucun résultat trouvé

Structures de données multidimensionnelles

4.4 Structures de stockage et d’accès

4.4.3 Structures de données multidimensionnelles

Structures de données avec clés multi-dimensionnelles

Les structures de données multidimensionnelles permettent l'accès aux enregistrements de données basé sur plusieurs valeurs de clés d'accès. Nous appelons clé multidimensionnelle l'ensemble de ces clés d'accès. Elle doit être unique, mais n'a pas besoin d'être toujours minimale. Par structure de données multidimensionnelle (multi-dimensional data structure, en anglais) nous entendons une structure de données qui admet une clé multidimensionnelle. Par exemple, à partir de la table EMPLOYÉ nous pouvons définir une structure de données bidimensionnelle dont la clé d'accès se compose de deux attributs : le numéro d'employé et l'année d'entrée en service. Le numéro d'employé qui forme la première partie de la clé bidimensionnelle est toujours unique. L'attribut «Année d'entrée en service» qui en constitue la deuxième partie sert de clé d'accès additionnelle dont les valeurs ne sont pas nécessairement uniques.

Condition de symétrie

À l'inverse des structures arborescentes, dans les structures de données multidimensionnelles aucune partie de clé ne doit imposer la séquence de stockage des enregistrements de données physiques. Une structure de données multidimensionnelle est symétrique si elle permet l'accès à partir de plusieurs clés sans donner la préférence à une clé spécifique ou une combinaison de clés particulière. À titre d'exemple, pour notre table EMPLOYÉ il faudrait que les deux composants de la clé bidimensionnelle (le numéro d'employé et l'année d'entrée en service) aient le même poids et garantissent l'efficacité des accès lors d’une requête d’interrogation.

Une importante structure de données multidimensionnelle s'appellefichier grille (grid file, en anglais).

Fichier grille

Définition du fichier grille

Un fichier grille est une structure de données multidimensionnelle qui possède les propriétés suivantes :

„ elle permet l'accès à partir d'une clé multidimensionnelle de manière symétrique, en ce sens qu'aucune dimension n'est dominante ;

„ elle permet de lire un enregistrement de données quelconque après deux accès, le premier pour atteindre un index grille, le deuxième pour atteindre la page de données recherchée.

Index grille Un fichier grille consiste en un index grille et un fichier

contenant des pages de données. L'index grille représente un espace multidimensionnel où chaque dimension correspond à une partie de la clé d'accès multidimensionnelle. Pour insérer des enregistrements de données, l'index est subdivisé en cellules dans chaque dimension en alternance. À la figure 4-13, dans l'exemple avec une clé d'accès bidimensionnelle, l'éclatement des cellules se fait alternativement selon le numéro d'employé et l'année d'entrée en service. Les points de subdivision ainsi obtenus dans chaque dimension constituent la graduation de l'index grille.

Chaque cellule de l'index grille correspond à une page de données et contient au moins n mais au plus 2*n entrées. Les cellules vides de l’index grille doivent être fusionnées en cellules plus grandes afin que les pages de données associées contiennent le minimum d'entrées requis. Comme dans le précédent exemple illustrant la méthode de la division, nous admettons de nouveau que chaque page de données contient au maximum quatre entrées (n = 2).

Figure 4-13

Comme l'index grille est généralement très volumineux, il doit être stocké dans une unité de mémoire auxiliaire comme les enregistrements de données. En revanche, l'ensemble des points de subdivision est de petite taille et peut donc résider en mémoire centrale. Chaque accès à un enregistrement de données spécifique procède comme suit : tout d'abord, à partir de k valeurs de clés dans

EMPLOYÉ

Construction du fichier grille

Fichier G1

un fichier grille à k dimensions, le système parcourt la graduation pour déterminer l'intervalle où se trouve la valeur de chaque attribut constituant la clé de recherche. Les intervalles ainsi connus permettent d'accéder directement à une section précise de l'index grille. Chaque cellule de l'index contient le numéro de la page où sont stockés des enregistrements de données. Un deuxième accès à la page de données indiquée permet finalement de savoir si la page contient l'enregistrement de données recherché ou non.

Deux accès garantis pour rechercher un enregistrement Leprincipe des deux accès aux pages est garanti pour rechercher

un enregistrement de données quelconque dans un fichier grille. Plus précisément, l'opération de recherche requiert au maximum deux accès aux pages stockées dans la mémoire secondaire : le premier pour atteindre la bonne section dans l'index grille, le second pour accéder à la bonne page de données.

Un exemple de recherche Par exemple, la recherche de l'employé No E18 engagé en 1969,

se déroule de la manière suivante dans le fichier grille G4 à la figure 4-13 : le numéro d'employé E18 est compris dans l'intervalle E15 à E30, plus exactement dans la moitié droite du fichier grille.

L'année d’entrée en service 1969 est comprise entre 1960 et 1970 et se trouve donc dans la moitié supérieure. En utilisant ces deux indications sur la graduation, le système de bases de données effectue un premier accès à l’index grille pour obtenir l'adresse de la page de données. Un deuxième accès atteint cette page qui contient les enregistrements de données recherchés, identifiés par les clés d'accès (E18,1969) et (E24,1964).

Soutien efficace aux requêtes d’intervalle Un fichier grille à k dimensions permet de traiter des

interrogations pour extraire soit un enregistrement de données particulier, soit un ensemble d'enregistrements appartenant à un domaine spécifique. Dans une requête singulière (point query, en anglais), le résultat obtenu est un enregistrement de données identifié par k clés d'accès. Il est possible de formuler une requête singulière partielle en spécifiant seulement une partie de la clé. Une requête d’intervalle (range query, en anglais) permet d'effectuer la recherche sur un domaine particulier de chacune des k parties de la clé. Le résultat comprend tous les enregistrements de données pour lesquels les valeurs des attributs constituant la clé appartiennent aux domaines

désirés. Il est aussi possible de spécifier des domaines seulement pour une partie de la clé, nous parlons alors de requête d’intervalle partielle.

Réduction de l’espace de recherche

La recherche de l'enregistrement de données (E18,1969), expliquée précédemment, est un exemple de requête singulière. Si nous connaissons seulement l'année d'entrée en service, nous recherchons l'employé par une requête singulière partielle en spécifiant l'année 1969. Nous formulons une requête d’intervalle (partielle) lorsque nous désirons connaître par exemple tous les employés engagés entre 1960 et 1969. En retournant à la figure 4-13, nous nous trouvons alors dans la moitié supérieure de l'index grille G4, et la recherche se limite donc aux deux pages de données dans cette partie de l'index. Ainsi, grâce au fichier grille multidimensionnel, nous obtenons des résultats d’une requête d’intervalle, partielle ou non, sans devoir parcourir tout le fichier.

Soutien aux systèmes d’information géographique

Au cours des dernières années, des recherches sont menées pour étudier et proposer différentes structures de données multidimensionnelles, capables d’implanter efficacement des clés d’accès multi-attributs de manière symétrique. Malgré l'application encore limitée, à l'heure actuelle, des structures de données multidimensionnelles dans les systèmes de bases de données relationnelles, elles jouent un rôle de plus en plus important dans les processus de recherche d’information orientés web. Les systèmes d’information géographique, topologique et géométrique ont particulièrement besoin de telles structures pour le traitement efficace des requêtes.