Vous êtes sur la page 1sur 3

Organisations Indexes

Dfinitions prliminaires 1. 2. 3. Index = table permettant dassocier une cl darticle (donne dapplication) ladresse relative de cet article (position dans le fichier) Mthodes daccs index = faon daller chercher des articles (donnes dapplication) dans un fichier partir dorganisation indexe ( index primaire) Densit dun index = quotient du nombre de cls dans lindex sur le nombre darticles du fichier. Ainsi, un index dense possde autant de cls quil y a darticles dans le fichier. Si le fichier est tri, on peut utiliser un index non dense (ex : la cl la plus grande des articles de chaque bloc avec ladresse relative du bloc) Index hirarchis = index sur un index, sur un index, pour acclrer la recherche de la cl dans lindex Index discriminants ou non = sur une donne discriminante ou non (identifiant un article de manire unique ou non) Index plaant = qui range les articles dans lordre des cls et les restitue dans lordre en lecture squentielle de la mmoire Index primaire = qui est bas sur la cl des articles, permet de les ranger en mmoire (au passage, acclre laccs sur cl) Index secondaire = un acclrateur daccs, cet index est non-discriminant

4. 5. 6. 7. 8.

Introduction Les organisations indexes ncessitent la cration d'un index tri sur lequel sont appliques les recherches dichotomiques d'une valeur de cl discriminante ou non. Le fichier tant lui-mme tri sur cl, l'index correspondant est de type primaire non dense. Cet index peut tre vu comme une table de couples (val_cl, adr_page) o val_cl est la plus petite cl des articles stocks dans la page rfrence par adr_page. Lorsque l'index est de grande taille, on le dcompose en une arborescence dont chaque nud a une taille infrieure ou gale une page. Le nud sommet de l'arborescence est appel racine de l'index. Lors de la recherche d'une valeur de cl dans l'index, un examen de la racine permet de dterminer la partie de l'arbre dans laquelle se poursuivra la recherche en renvoyant sur un nud de niveau immdiatement infrieur. L'examen de ce nud permet son tour d'affiner l'intervalle de recherche. Ce processus rcursif s'applique jusqu' rencontrer un nud ou une feuille (nud de plus bas niveau de l'arbre) contenant la valeur de cl cherche et l'adresse de la page associe. Les organisations arborescentes se diffrencient par le principe suivant lequel est gre la dynamicit de l'index hirarchique. Ce principe dtermine les performances obtenues tant au niveau du nombre d'E/S ncessaires pour parcourir l'index qu'au niveau du taux d'occupation de chaque nud de la hirarchie. Un arbre balanc est galement appel arbre-B, B-tree ou arbre quilibr. Intuitivement, il est possible de construire une arborescence dynamique de la faon suivante. Lorsqu'un index est de grande taille, il est possible d'indexer son tour le fichier contenant cet index et ce, de faon rcursive jusqu' ce que l'index de plus haut niveau (la racine) tienne sur une seule page. Compte tenu de la dynamicit de l'index, la racine elle-mme peut crotre et ne plus tenir dans une page. On rajoute alors un niveau la hirarchie d'index. La hirarchie grossit donc par la racine de telle sorte que tous les chemins de la racine aux feuilles ont mme longueur. La dfinition formelle d'un arbre-B est donne ci-dessous et est illustre sur l'exemple de la Figure 2. Un arbre-B d'ordre m est un arbre tel que

(i) chaque nud contient k cls tries, avec m k 2m sauf la racine pour laquelle k vrifie 1 k 2m. (ii) tout nud non feuille a (k+1) fils. Le ime fils a des cls comprises les (i-1)me et ime cls du pre. (iii) l'arbre est quilibr.
31 10 15 24 34 50 60 70

58

11 12 13 17 18

25 29

32 33

35 38 39

52 53

62 64

75 80

Figure 1. arbre-B d'ordre 2

Question 1 Compte tenu de la dfinition formelle des arbre-B, quelle seront les hauteurs minimale et maximale (nombre de niveaux) d'un arbre-B d'ordre m contenant n cls ? Question 2 Quels sont les critres de choix de l'ordre d'un arbre-B si l'on utilise cette structure pour construire un index ? Question 3 Quel est l'intrt que la structure d'un index arborescent soit quilibre ? Question 4 Dans les applications relles, les cls d'accs peuvent tre de taille variable. En dduire le format de stockage du nud d'un arbre-B. Quelle est l'utilit des bornes m et 2m fixes pour le nombre k de cls par nud et comment faut-il interprter ces bornes dans de cas de cls de taille variable ? Question 5 Reprsenter l'arbre-B de la Figure 1 aprs insertion des cls 37 puis 36. Question 6 Reprsenter l'arbre-B de la Figure 1 aprs suppression des cls 17 puis 31. Question 7 De nombreuses applications excutent des traitements squentiels tris sur leurs fichiers. La structure d'arbre-B est-elle bien adapte ce type de traitements ? Combien d'E/S ncessite un parcours squentiel tri de toutes les cls de l'arbre-B prsent Figure 1 ? Proposer une optimisation de cette structure permettant de lire uniquement les feuilles de l'arbre lors d'un parcours squentiel tri. Cette organisation est connue sous le nom arbre-B+. Discuter des avantages des arbres B+ par rapport aux arbres B.

Accs par index multiples


Dans le domaine des bases de donnes, les recherches d'articles se font gnralement sur des critres multiples (exemple: rechercher les voitures de puissance suprieure 10 cv et de marque Citron). Les organisations de fichier indexes avec un seul index privilgient le traitement du critre de recherche le plus frquemment employ sur un fichier, en ordonnanant les articles sur disque en fonction de ce critre. Pour traiter efficacement des recherches multi-critres, il est possible de grer plusieurs indexes pour un mme fichier. La solution consiste utiliser un index principal plaant (les donnes sont tries selon cet index) et des indexes annexes, appels indexes secondaires. Un index secondaire est constitu sur un attribut (ou plusieurs) discriminant ou non et donne pour chaque valeur de lattribut les identifiants (souvent les adresses relatives) des articles ayant cette valeur. Lattribut (ou le groupe dattributs) ainsi index est appel cl secondaire. Lors d'une recherche sur cl secondaire, laccs lindex secondaire (un arbre B ou B+) dlivre les identifiants de tous les articles satisfaisant le critre de recherche. Ces articles sont ensuite rcuprs un un via leurs identifiants, raison d'au plus une E/S par article. La cration d'un index secondaire introduit un cot de stockage important. De plus, toute mise jour du fichier de donnes entrane la mise jour de tous les index secondaires portant sur ce fichier. L'utilisation d'index secondaires doit donc tre restreinte des critres de recherche frquents. Question 1 On dsire utiliser une organisation base sur une technique d'arbre-B+ pour indexer les articles d'un fichier selon plusieurs attributs, A1 tant cl primaire (plaante) et A2, A3, Ap tant des cls secondaires. Prcisez comment doivent tre modifies les algorithmes dinsertion, mise--jour et suppression darticles en fichiers. Question 2 Dans le mme contexte o le fichier est plac sur A1 et index sur les cls secondaires A2, A3, Ap, prcisez lalgorithme dexcution dune restriction de critre ( A1 = v1 & A2 = v2 & Ap = vp). Comment peut-on optimiser la recherche des articles pertinents ? Comment modifier lalgorithme si certains et ( & ) sont remplacs par des ou ( | ), en supposant une forme normale disjonctive (et de ou) ? Question 3 Dans le mme contexte o le fichier est plac sur A1 et index sur les cls secondaires A2, A3, Ap, prcisez lalgorithme dexcution dune restriction de critre ( A1 = v1 & A2 = v2 & Ap = vp & B1 = v1 & B2 = v2 & ), les Bi tant des attributs non indexs. Compte tenu dune frquence prvisionnelle dinterrogation et de mise jour sur un attribut, prcisez comment choisir si un attribut gagne tre index ou non ?

Vous aimerez peut-être aussi