1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Structures de données avancées : Principales structures de fichiers
Structures de données avancées : B arbres
Structures de données avancées : Principales structures de données
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures de données avancées : MTH ( Multidimensional trie hashing )
Structures de données avancées : Introduction
Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc.
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
Chap. 1 Structures séquentielles : listes linéaires
Cours 8 Arbres équilibrés
Structures de données linéaires
LOGO Responsable du cours Mlle Amina GHRAB : 1 ère année IAG Institut Supérieur de Gestion de Tunis.
OCaml – Les arbres L3 MI.
Chapitre VII. Tri Tri par tas Tri rapide.
RECURSIVITE ARBRES BINAIRES
II. Chaînage, SDD séquentielles
Arbre Rouge Noir.
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
Bases de données lexicales
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Les fichiers indexés (Les B-arbres)
LA STRUCTURE D'ARBRE-B Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
LES ARBRES IUP 2 Génie Informatique
Structures de données IFT-10541
IFT Structures de données
Indexes à Arbres et Indexes à Hachage
Indexes à Arbres et Indexes à Hachage


Arbres binaires complets
Exposé en structures de données

Structures de données IFT-2000
326 UMLV Méthodes de classement destinées à de grandes masses de données Applicables à des fichiers séquentiels Complexité : évaluée surtout en nombre.

Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Retour sur les listes ordonnées Département dinformatique et de génie logiciel Édition Septembre 2009.
201 UMLV  Type « dictionnaire » sous-ensembles finis de E (ordonné) avec les opérations : Ens_vide :  Ens Ajouter : Ens x Elément  Ens Enlever.

Le langage C Structures de données
MIGO ET COMPLEXITE1 ARBRES EQUILIBRES Définition : On dit qu’un arbre binaire est H équilibré si en tout nœud de l’arbre, les hauteurs des sous-arbres.
Arbres binaires et tables de hachage
II. Chaînage, SDD séquentielles
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
ETNA – 1ème année Guillaume Belmas –
Structures de données avancées : Arbres ‘Left Leaning Red-Black’
Structures de données avancées : MBT ( Multidimensional B-trees )
B.Shishedjiev - Modèle relationnel
Structures de données avancées : B arbres
Structures de données avancées : Variantes des B arbres
Structures de données avancées : Range Partionning: RP*
Structures de données avancées TH ( Hachage digital ) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Principales structures de données
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Semaine 10 Les algorithmes de recherche Les structures arborescentes Département d’informatique et de génie.
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
CSI2510 Structures des Données et Algorithmes
CSI25101 Maps et Dictionnaries. CSI25102 Un dictionnaire (dictionary) est un modèle abstrait de base de données. tel une file à priorité, un dictionnaire.
4/25/2017 4:30 PM Arbres (2,4) CSI2510 CSI2510.
CSI25101 Tri Plus efficace. CSI25102 Tri récursif Le tri récursif divise les données de grande taille en deux presque moitiés et est appelé récursivement.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Page: 1-Ali Walid Gestion de fichiers. B-Arbre +.
. Le B-Arbre.
Transcription de la présentation:

1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc d’adresses Bloc d’éléments Blocs de 4096 octets - adresses de 4 octets capacité maximale d’un fichier : octets

2 UMLV  OPÉRATIONS DE BASE Lecture / écriture de blocs - transferts « tampon-bloc » OPÉRATIONS AJOUTERun article à un fichier ENLEVER MODIFIER RECHERCHER COÛT des opérations en nombre d’accès aux blocs REPRÉSENTATION des pointeurs : adresse de bloc + adresse relative dans le bloc Les articles contenant une information donnée dans un fichier

3 UMLV  EXEMPLE D’ORGANISATION SÉQUENTIELLE 1 G0 5 KO 8 M0 et blocs de 512 octets 1 … K0

4 UMLV  ORGANISATION DES FICHIERS FICHIERS SÉQUENTIELS - Liste chaînée de blocs - Pour suppression d’article : article « disponible » ou bit de présence. - Suite de transformations : fichier de mise à jour et algorithme de fusion.

5 UMLV  FICHIERS HACHÉS Coût moyen d’une opération : 1 + n / bB accès b : nombre d ’articles par bloc Bloc-table a 1 a 2 akak h(x)‏ Si B bien choisi RECHERCHE : 2 lectures de bloc MODIFICATION : 2 lectures de bloc + 1 écriture de bloc bloc 0 B

6 UMLV  FICHIERS INDEXÉS bloc index bloc - Articles ordonnés / leur clé  recherche dichotomique dans les blocs-index  recherche séquentielle dans les blocs d ’articles COÛT MOYEN d’une opération : - Possibilité d’avoir deux index

7 UMLV  B-ARBRES - nombre de fils par nœud (  racine) dans (  m/2 ,…, m)‏ COÛT MOYEN d’une opération : 1 + log m/2  n/b 

8 UMLV  Manipulation d’ensembles avec les opérations ÉLEMENT (x, A)‏ AJOUTER (x, A)‏ ENLEVER (x, A)‏ O(log a n)‏ Permet la recherche d’intervalles Souvent utilisés dans les bases de données B-arbres

9 UMLV  Un (a,b) - arbre est un arbre planaire qui vérifie : 1. La racine est une feuille ou possède au moins 2 fils. 2. Tout nœud interne possède entre a et b fils. 3. Toutes les feuilles sont au même niveau a  2b  2a - 1 B - arbres  b = 2a - 1 (m = b)‏ arbres arbres  arbres bicolores

10 UMLV  Représentation des ensembles (3, 5) - arbre pour {4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 23, 30, 32, 34, 36, 38, 40, 42} Nœuds internes de la forme (a o, k 1, a 1, k 2, …, k b-1, a b-1 ) avec a i sous-arbre (pointeur sur un bloc)‏ k i clé Propriétés : k 1 < k 2 < … < k b-1, feuilles de a i-1 < k i  feuilles de a i.

11 UMLV  TAILLES 1 = b o 3 = b 1 9 = b ² nombre de feuilles  b hauteur hauteur  log b nombre d’éléments

12 UMLV  1 2 = 2 4 = 2.a 8 = 2.a² a =  m/2  nombre de feuilles  2.a h -1 (si h  1)‏ hauteur  1 + log a nombre de feuilles Taux de remplissage des blocs  Taux minimum  50 % si b = 2a-1

13 UMLV  IMPLANTATION typedef int Element; { le type des clés } typedef struct node { int n ; { nombre de sous-arbres } Element k [ b] ; { k [ 1], …, k [ b-1] } struct node * a [ b] ; { a [ 0], a [ 1], …, a [ b-1] } } Node; typedef Node* Tree; // renvoie l’indice du lien d’insertion int position (Element x ; Tree A ) ; { plus grand i tel que A  k [ i ]  x, } { 0 si i n ’existe pas : x < A  k [1] }

14 UMLV  function ELEMENT (Element x ; Tree A) : boolean ; int p ; begin if (A est vide ) then return (false)‏ else begin p : = position (x, A) ; if (p > 0 ) and (x = A  k [ p ] ) then return (true)‏ else return (ELEMENT (x, A  a [ p ] )) ; end ;

15 UMLV  B-ARBRES de recherche (variante)‏ Les nœuds internes contiennent des éléments Nœud interne : (a o, e 1, a 1, e 2, …e m, a m )‏ - e 1 < e 2 < … < e m - éléments de a i-1 < e i < éléments de a i - tout nœud (sauf la racine) contient entre m et 2 m éléments [a = m + 1, b = 2a -1 = 2m + 1]

16 UMLV  AJOUT D’UN ELEMENT, m= AJOUT DE AJOUT DE

17 UMLV  A un B-arbre x élément à ajouter à A AJOUTER (x, A) = (B 1, y, B 2 )‏ y élément qui a été « chassé » par x ; B 1, B 2 obtenus par partage éventuel de A. B 1 et B 2 sont des B-arbres fonction AJOUT dans ARBRE (x, A) ; début (B 1, y, B 2 )  AJOUTER (x, A) ; si (y indéfini) alors { B2 est vide } retour (B 1 )‏ sinon retour fin ; B 1 B 2 y

18 UMLV  fonction AJOUTER (x, A) ; début si (A vide) alors retour (feuille contenant  x   sinon début p  position de x dans le bloc-racine de A si (p > 0 et x = k p ) alors {x déjà dans A} retour ( A, -,  )‏ sinon début { continuer dans a p } (B 1, y, B 2 )  AJOUTER ( x, a p ) si (y indéfini) alors début a p  B 1 ; retour (A, -,  ) fin sinon { y chassé par x dans a p } retour (INSERER (B 1, y, B 2, A))‏ fin fin ;

19 UMLV  INSERER (B 1, y, B 2, A) {insertion dans un bloc} k 1 k 2 kpkp k p+1 kiki a o a 1 a 2 a p a i-1 a i Si i < b-1 k 1 k 2 k p y k p+1 kiki a o a 1 a 2 B 1 B 2 a i-1 a i Si i = b-1 partage du bloc en deux k1 k1 k2k2 k a-1 k a+1 k p y k p+1 kiki aoao a1a1 a2a2 a a-1a B 1 B 2 a i-1 aiai 3 cas, suivant que p < a-1, p = a-1, p > a-1 (cas dessiné ci-dessus)‏

20 UMLV  A un B-arbre x élément à supprimer ENLEVER (x, A) = B B : arbre obtenu après suppression de x; est un B-arbre si sa racine contient entre a -1 et b -1 éléments. fonction SUPPRIMER (x, A) ; début A  ENLEVER (x, A) ; si (A n ’a qu’un fils) alors retour (fils de A)‏ sinon retour (A)‏ fin ;

21 UMLV  fonction ENLEVER (x, A) ; début si (A vide) alors retour (A)‏ sinon début p  position de x dans le bloc-racine de A ; si (p = 0 ou k p  x) alors début {on continue d ans a p } B  ENLEVER (x, a p ) ; a p  B ; fin sinon {x = k p } si (a p non vide) alors début (y, B)  OTERMIN (a p ) ; k p  y ; a p  B ; fin sinon début {x = k p et A est une feuille} oter x du bloc-racine de A ; retour (A) ; fin ; si (le bloc-racine de B contient < a-1 éléments )‏ alors retour (EQUILIBRER (A, p))‏ fin ;

22 UMLV  SUPPRESSION DE SUPPRESSION DE SUPPRESSION DE 14

23 UMLV  OTERMIN 

24 UMLV  fonction OTERMIN (A) ; début si (la racine est une feuille) alors début ôter k 1 du bloc-racine de A ; retour (k 1, A) ; fin sinon début (y, B)  OTERMIN (a o ) ; a o  B ; si (le bloc-racine de B contient < a-1 éléments)‏ alors retour (y, EQUILIBRER (A, 1))‏ sinon retour (y, A) ; fin fin ;

25 UMLV  EQUILIBRER

26 UMLV  EQUILIBRER

27 UMLV  VARIATIONS Destinées à éviter ou retarder le partage des blocs. Assurent un meilleur remplissage des blocs en moyenne. Pratiquer un ÉQUILIBRAGE, quand un bloc est surchargé, en examinant : - le nœud de gauche ou le nœud de droite ou - tous les frères du bloc ou - tous les descendants du parent du bloc. On peut ainsi répartir la charge sur tous les nœuds examinés.