La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

30/05/2014© Robert Godin. Tous droits réservés.1 8 Organisations unidimentionnelles : indexage et hachage n Sélection basée sur une clé d'accès – recherche.

Présentations similaires


Présentation au sujet: "30/05/2014© Robert Godin. Tous droits réservés.1 8 Organisations unidimentionnelles : indexage et hachage n Sélection basée sur une clé d'accès – recherche."— Transcription de la présentation:

1 30/05/2014© Robert Godin. Tous droits réservés.1 8 Organisations unidimentionnelles : indexage et hachage n Sélection basée sur une clé d'accès – recherche associative – Ex: Chercher le plant dont le noCatalogue = 10 n Sériel – lire tout le fichier en pire cas – O(N) n Indexage – O(log(N)) – sélection par intervalle n Hachage – ~O(1)

2 30/05/2014© Robert Godin. Tous droits réservés Indexage n Index et clé d'index (index key) – valeur de la clé =>adresse de(s) l'enregistrement Index dense secondaire

3 30/05/2014© Robert Godin. Tous droits réservés.3 Fichier séquentiel indexé n Non dense n Index plus petit n Accès séquentiel rapide n Primaire

4 30/05/2014© Robert Godin. Tous droits réservés.4 Index séquentiel hiérarchique n Ex: ISAM de IBM n Zone de débordement n Réorganisations chroniques

5 30/05/2014© Robert Godin. Tous droits réservés Indexage par Arbre-B et variantes n Arbre-B (B-arbre, B-tree) – forme d index hiérarchique – équilibré – O(log(N)) en pire cas n Réorganisation dynamique – division/fusion des blocs – taux d occupation minimum de 50%

6 30/05/2014© Robert Godin. Tous droits réservés Arbre-B+ n Hypothèse initiale : clé simple et unique n Nœud = bloc

7 30/05/2014© Robert Godin. Tous droits réservés.7 Structure d une feuille n 1. Remplie à moitié au minimum FBM f /2 n = nombre de clés FBM f n 2. Clés triées : i < j C i < C j n 3. Clés d'une feuille < clés de la suivante n 4. Au même niveau (équilibré) n C i : Clé n R i : reste de l'enregistrement ou référence S : Pointeur sur le bloc suivant dans la liste des feuilles

8 30/05/2014© Robert Godin. Tous droits réservés.8 Structure dun bloc interne n 1. Remplie à moitié au minimum: – Ordre I /2 n = nombre de pointeurs Ordre I n 2. Clés triées : i < j C i < C j n 3. C i-1 <= Clés sous P i-1 < C i

9 30/05/2014© Robert Godin. Tous droits réservés Recherche dans un arbre-B+

10 30/05/2014© Robert Godin. Tous droits réservés.10 Rechercher 43

11 30/05/2014© Robert Godin. Tous droits réservés Complexité de la recherche et hauteur de l'arbre n FBM f = 20 et Ordre I = 200 n Hauteur = nombre de niveaux n Hauteur 2 N 2 * 10 = 20 clés (pire cas) n Hauteur 3 N 2 * 100 * 10 = clés n Hauteur 4 N 2 * 100 * 100 * 10 = clés n Hauteur 5 N 2 * 100 * 100 * 100 * 10 = clés n Hauteur H N 2* Ordre I /2 H-2 * FBM f /2 pour H 2 n H 2 + log OrdreI /2 (N /(2* FBM f /2 )) – O(log N)

12 30/05/2014© Robert Godin. Tous droits réservés.12 Hauteur moyenne n H ~ 1 + log OrdreMoyenI (N / FB f ) – OrdreMoyen I = 2/3 Ordre I – FB f = 2/3 FBM f n Index secondaire – FB f ~ OrdreMoyen I – H = log OrdreMoyenI (N)

13 30/05/2014© Robert Godin. Tous droits réservés Insertion dans un arbre-B+ n FBM = 3, Ordre I = 4

14 30/05/2014© Robert Godin. Tous droits réservés.14 Débordement et division n Insertion de 30 n Débordement et la division du bloc 0 n 40 est promue n Nouvelle racine

15 30/05/2014© Robert Godin. Tous droits réservés.15 Insertion de 25

16 30/05/2014© Robert Godin. Tous droits réservés.16 Insertion de 10 n Débordement et la division du bloc 0 n 25 est promue

17 30/05/2014© Robert Godin. Tous droits réservés.17 Insertion de 70

18 30/05/2014© Robert Godin. Tous droits réservés.18 Insertion de 50 n Débordement et la division du bloc 1 n 60 est promue

19 30/05/2014© Robert Godin. Tous droits réservés.19 Insertion de 53

20 30/05/2014© Robert Godin. Tous droits réservés.20 Insertion de 45 n Division du bloc 1 n 50 est promue n Division de la racine

21 30/05/2014© Robert Godin. Tous droits réservés Suppression dans un arbre-B+ n Cas simple – minimum préservé – pas la première

22 30/05/2014© Robert Godin. Tous droits réservés.22 Première clé du bloc et pas la première feuille n Remplacer dans le parent (si pas « aîné »)

23 30/05/2014© Robert Godin. Tous droits réservés.23 Première clé du bloc et pas la première feuille n Remonter tant que l'enfant est l « aîné »

24 30/05/2014© Robert Godin. Tous droits réservés.24 Violation du minimum : redistribution si possible n Ajuster séparateur

25 30/05/2014© Robert Godin. Tous droits réservés.25 Violation du minimum : fusion

26 30/05/2014© Robert Godin. Tous droits réservés.26 Cas de fusion de feuilles et de redistribution au niveau du parent

27 30/05/2014© Robert Godin. Tous droits réservés.27 Cas de fusion de feuilles et de redistribution au niveau du parent (suite)

28 30/05/2014© Robert Godin. Tous droits réservés.28 Cas de fusion en cascade

29 30/05/2014© Robert Godin. Tous droits réservés.29 Cas de fusion en cascade (suite) : réduction de la hauteur

30 30/05/2014© Robert Godin. Tous droits réservés Arbre-B Arbre-B Arbre-B + n Clés non dupliquées n Ordre < n Hauteur >

31 30/05/2014© Robert Godin. Tous droits réservés Autres variantes du concept d'arbre-B n Redistribuer plutôt que diviser – occupation moyenne 67% => 86% n Diviser deux en trois – Arbre-B* n Ordre variable – clés de taille variable n Arbre B préfixe – comprimer les clés diminue la hauteur n Algorithme de chargement en lot – feuilles consécutives – taux de remplissage prédéterminé

32 30/05/2014© Robert Godin. Tous droits réservés.32 Cas d'une clé non unique n Arbre-B + primaire sur une clé non unique – IDE difficile n Arbre B + secondaire avec clés répétées – clé d accès + pointeur (unique) n Arbre B + secondaire avec collection de références – listes inversées dans les feuilles n Arbre B + secondaire avec référence à une collection d'enregistrements – Index groupant ( clustering index ) n organisation primaire par grappe et index secondaire sur même clé n Arbre B + secondaire avec référence à collection de références – listes inversées à part n Arbre B + avec vecteurs booléens – index « bitmap »

33 30/05/2014© Robert Godin. Tous droits réservés Réalisation de l'accès par IDE à l'aide d'une organisation par index n Index primaire – IDE = id_fichier, valeur de la clé unique – nécessite le passage par l index n IDE logique – index secondaire – clé d index = IDE

34 30/05/2014© Robert Godin. Tous droits réservés Sélection par intervalle ou préfixe n Arbre B + – recherche de la valeur minimale – parcours des feuilles jusqu à la valeur maximale

35 30/05/2014© Robert Godin. Tous droits réservés Index sur une clé composée n Clé composée ~ clé simple formée de la concaténation des champs n Sélection par préfixe de la clé composée

36 30/05/2014© Robert Godin. Tous droits réservés Index bitmap n couleurYeux = brun et sexe = M – ET =

37 30/05/2014© Robert Godin. Tous droits réservés Arbre digital (trie) n Chaque niveau : position d'un symbole de la clé vue comme une séquence de symboles s 1 s 2 …s n

38 30/05/2014© Robert Godin. Tous droits réservés Hachage n Hachage ou adressage dispersé (hashing) n Fonction h(clé de hachage) => l'adresse d'un paquet n Fichier = tableau de paquets (bucket) – ~ARRAY paquet [0..TH-1] – TH : taille de l'espace d'adressage primaire n Habituellement paquet = bloc n Pas d index à traverser : O(1) en meilleur cas n Sélection par égalité (pas intervalle)

39 30/05/2014© Robert Godin. Tous droits réservés Hachage statique

40 30/05/2014© Robert Godin. Tous droits réservés Problème de débordement dû aux collisions n Méthode de résolution des collisions – Adressage ouvert n AC+1, AC+2,....., n-1, 0, 1,....AC-1 – Chaînage

41 Hachage Cuckoo n Combiner 2 organisations par hachage – - 2 fonctions différentes n Si collision – Prendre la place – Pousser la clé déjà présente dans lautre organisation n Répéter au besoin n Si plus de place – Réorganiser … n Garantie de 2 accès – Occupation sous 50% 30/05/2014© Robert Godin. Tous droits réservés.41

42 30/05/2014© Robert Godin. Tous droits réservés.42 Fonction de hachage n Répartition uniforme des clés dans [0..TH-1] – h(clé) = clé MOD TH n TH est premier – h(clé) = clé p MOD TH n TH et p sont relativement premiers – h(clé) = ( s i ) MOD TH n s i est une sous-séquence des bits de la clé n Clé non numérique – représentation binaire vue comme un entier

43 30/05/2014© Robert Godin. Tous droits réservés.43 Hachage vs indexage n O(1) en meilleur cas vs O(log(N)) n Pas d espace supplémentaire d index n Gaspillage d espace si TH trop > n Performance dégradée si TH trop < n Gestion plus délicate – déterminer h et TH – maintenance : réorganisations n Clé non numérique ? – représentation binaire vue comme un entier

44 Connaissances à priori sur les clés n Calculer une fonction de hachage adaptée n Hachage parfait n Hachage minimal parfait n Hachage qui préserve lordre 30/05/2014© Robert Godin. Tous droits réservés.44

45 30/05/2014© Robert Godin. Tous droits réservés.45 Calcul d espace n Heuristique : Taux d occupation moyen ~ 80% – TauxOccupation = N/(TH FB) 0.8 n Taux de débordement moyen sous distribution uniforme [Merrett, 1984 #217] : – FB = 1~ 30% – FB = 10 ~ 5% – FB = 100 ~1%

46 30/05/2014© Robert Godin. Tous droits réservés Hachage dynamique n Adaptation de TH et h aux variations du volume des données n ~ arbre-B – division et fusion de paquets (blocs) n Deux variantes de base – linéaire – extensible

47 30/05/2014© Robert Godin. Tous droits réservés Hachage linéaire n Adaptation de TH – suite d expansions n Début de dième expansion, d {0, 1, …} – TH passera de 2 d à 2 d+1 – adresse du paquet : h d (clé) = b d-1, b d-2,…, b 1, b 0 d = 2

48 30/05/2014© Robert Godin. Tous droits réservés.48 Insertion de h(clé) = n Bloc #01 2 déborde n Division du bloc p = #00 2 (pas #01 2 ) n p := p+1

49 30/05/2014© Robert Godin. Tous droits réservés.49 Insertion de h(clé) = n Bloc #11 2 déborde

50 30/05/2014© Robert Godin. Tous droits réservés.50 Insertion de , et

51 30/05/2014© Robert Godin. Tous droits réservés.51 Insertion de n Bloc #10 2 déborde et est divisé

52 30/05/2014© Robert Godin. Tous droits réservés.52 Insertion de n Bloc #101 2 déborde – zone d expansion ! n Fin de l expansion n p := 0 n d := d+1 = 3 d = 3

53 30/05/2014© Robert Godin. Tous droits réservés Variantes du hachage linéaire n Variante du contrôle de la division – algorithme de base n débordement => division : taux d occupation ~ 60% – division/fusion contrôlée par taux d occupation n Variante de gestion des débordements – hachage linéaire au niveau suivant n Variante de division – biais dans les chaînages (à droite de p) – expansions partielles n diviser n blocs en n+1 – fonction de hachage exponentielle n Gestion de l espace d adressage primaire – préserver la contiguïté de l espace malgré expansions ?

54 30/05/2014© Robert Godin. Tous droits réservés Hachage extensible n Ajoute un niveau d indirection n Répertoire d'adresses de paquets – espace supplémentaire – accès disque supplémentaire pour répertoire n antémémoire n Bloc qui déborde est divisé – pas de dégradation due au chaînage – pire cas : 2 transferts

55 30/05/2014© Robert Godin. Tous droits réservés.55 Analogie avec arbre digital n Répertoire vu comme arbre digital n Chemin = suffixe n Pas de lien direct entre suffixe et #bloc

56 30/05/2014© Robert Godin. Tous droits réservés.56 Insertion de h(clé) = n Débordement et division du bloc #1 n Utilisation d un bit de plus

57 30/05/2014© Robert Godin. Tous droits réservés.57 «Remplacer» l'arbre digital par un répertoire n « Compléter » l arbre

58 30/05/2014© Robert Godin. Tous droits réservés.58 Arbre digital => un répertoire n Bijection chemin indice Sens de lecture des indices

59 30/05/2014© Robert Godin. Tous droits réservés.59 Insertion de h(clé) = avec répertoire

60 30/05/2014© Robert Godin. Tous droits réservés.60 Cas de dédoublement de répertoire : insertion de h(clé) = Profondeur locale dépasse profondeur globale

61 30/05/2014© Robert Godin. Tous droits réservés.61 Hachage extensible (suite) n Occupation d espace – comportement oscillatoire assez prononcé n entre.53 et.94 n moyenne : ln 2 =.69 n Variation – contrôle de la division par taux d occupation – gestion des débordements

62 30/05/2014© Robert Godin. Tous droits réservés Réalisation de l'accès par IDE avec le hachage n Hachage statique – bloc d ancrage fixe – IDE = idFichier, #blocAncrage, #séquence n HASH CLUSTER d Oracle – applicable dans le cas non unique n Cas d une clé de hachage unique – IDE = id_fichier, valeur de la clé unique – nécessaire avec hachage dynamique

63 30/05/2014© Robert Godin. Tous droits réservés Hachage sur une clé non unique et effet de grappe n Regroupement des mêmes valeurs de clé – v 1 = v 2 h(v 1 ) = h(v 2 )

64 30/05/2014© Robert Godin. Tous droits réservés Hachage secondaire n Hachage sur – (clé de hachage, IDE)

65 30/05/2014© Robert Godin. Tous droits réservés Tableau comparatif des organisations


Télécharger ppt "30/05/2014© Robert Godin. Tous droits réservés.1 8 Organisations unidimentionnelles : indexage et hachage n Sélection basée sur une clé d'accès – recherche."

Présentations similaires


Annonces Google