21
1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc 10 B lo c 0 20 25 40 45 B lo c 2 25 B lo c 3 30 40 B lo c 1 43 44 60 B lo c 4 70 50 B lo c 5 53 60 B lo c 6 50 B lo c 7 45 48 B lo c 8

1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

Embed Size (px)

Citation preview

Page 1: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

1

Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

10

Bloc 0

20

25 40 45

Bloc 2

25

Bloc 3

30 40

Bloc 1

43 44 60

Bloc 4

7050

Bloc 5

53

60

Bloc 6

50

Bloc 7

45 48

Bloc 8

Page 2: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

2

Structure d ’une feuille

1. Remplie à moitié au minimum

2. Clés triées : i < j Ci < Cj

3. Clés d'une feuille < clés de la suivante

4. Au même niveau (équilibré)

Ci : Clé

Ri : reste de l'enregistrement ou référence

S : Pointeur sur le bloc suivant dans la liste des feuilles

C 1 R 1 ... C n R n SEspace

libre

Page 3: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

3

Structure d’un bloc interne

1. Rempli à moitié au minimum:

OrdreI ≤ n = nombre de pointeurs ≤ 2*OrdreI

2. Clés triées : i < j Ci < Cj

3. Ci-1 <= Clés sous Pi-1 < Ci P 1 C 1 ... P n-1 C n-1 P nP 2 ... C i-1 P i-1 C i

C i-1 <= C < C i

Espacelibre

C < C 1 C n-1 <= C

Page 4: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

4

Rechercher 43

10

Bloc 0

20

25 40 45

Bloc 2

25

Bloc 3

30 40

Bloc 1

43 44 60

Bloc 4

7050

Bloc 5

53

60

Bloc 6

50

Bloc 7

45 48

Bloc 8

Page 5: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

5

Insertion dans un arbre-B+

OrdreI = 2

40 ...

B loc 0

20 ... 40 ...

B loc 0

20 ... 40 ... 60 ...

B loc 0

Page 6: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

6

Débordement et division Insertion de 30 Débordement et la division du bloc 0 40 est promue Nouvelle racine

20 ... 40 ... 60 ...

B loc 0

20 ... 30 ...

B loc 0

40 ... 60 ...

B loc 1

40

Bloc 2

Page 7: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

7

Insertion de 25

20 ... 30 ...

B loc 0

40 ... 60 ...

B loc 1

40

Bloc 2

40

Bloc 2

20

Bloc 0

25 30 40

Bloc 1

60

Page 8: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

8

Insertion de 10

40

Bloc 2

20

Bloc 0

25 30 40

Bloc 1

60

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

60

Débordement et la division du bloc 0 25 est promue

Page 9: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

9

Insertion de 70

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

60

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

60 70

Page 10: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

10

Insertion de 50

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

60 70

10

Bloc 0

20

25 40 60

Bloc 2

25

Bloc 3

30 40

Bloc 1

50 60

Bloc 4

70

Débordement et la division du bloc 1 60 est promue

Page 11: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

11

Insertion de 53

10

Bloc 0

20

25 40 60

Bloc 2

25

Bloc 3

30 40

Bloc 1

50 60

Bloc 4

70

10

Bloc 0

20

25 40 60

Bloc 2

25

Bloc 3

30 40

Bloc 1

50 53 60

Bloc 4

70

Page 12: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

12

Insertion de 45

10

Bloc 0

20

25 40 60

Bloc 2

25

Bloc 3

30 40

Bloc 1

50 53 60

Bloc 4

70

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

45 60

Bloc 4

7050

Bloc 5

53

60

Bloc 6

50

Bloc 7

Division du bloc 1 50 est promue Division de la racine

Page 13: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

13

Suppression dans un arbre-B+

Cas simple minimum préservé pas la première

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

60 70

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

60

Page 14: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

14

Première clé du bloc et pas la première feuille

Remplacer dans le parent (si pas « aîné »)

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

60 70

10

Bloc 0

20

25 60

Bloc 2

25

Bloc 3

30 60

Bloc 1

70

Page 15: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

15

Première clé du bloc et pas la première feuille

Remonter tant que l'enfant est l’« aîné »

10

Bloc 0

20

25 40 45

Bloc 2

25

Bloc 3

30 40

Bloc 1

43 44 60

Bloc 4

7050

Bloc 5

53 55

60

Bloc 6

50

Bloc 7

45 48

Bloc 8

10

Bloc 0

20

25 40 45

Bloc 2

25

Bloc 3

30 40

Bloc 1

43 44 60

Bloc 4

7053

Bloc 5

55

60

Bloc 6

53

Bloc 7

45 48

Bloc 8

Page 16: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

16

Violation du minimum : redistribution si possible

Ajuster séparateur40

Bloc 2

20

Bloc 0

25 30 40

Bloc 1

60

30

Bloc 2

20

Bloc 0

25 30

Bloc 1

60

Page 17: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

17

Violation du minimum : fusion

Fusion des deux frères

10

Bloc 0

20

25 60

Bloc 2

25

Bloc 3

30 60

Bloc 1

70

10

Bloc 0

25 30

60

Bloc 2

60

Bloc 1

70

Violation de larègle du minimum

Page 18: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

18

Cas de fusion de feuilles et de redistribution au niveau du parent

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

45 60

Bloc 4

7050

Bloc 5

53

60

Bloc 6

50

Bloc 7

Violation de larègle du minimum

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

45 50

Bloc 5

60 70

60

Bloc 6

50

Bloc 7

Violation de larègle du minimum

Redistribution

Fusion des deux frères

Page 19: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

19

Cas de fusion de feuilles et de redistribution au niveau du parent (suite)

10

Bloc 0

20

25 40

Bloc 2

25

Bloc 3

30 40

Bloc 1

45 50

Bloc 5

60 70

60

Bloc 6

50

Bloc 7

Violation de larègle du minimum

Redistribution

10

Bloc 0

20

25

Bloc 2

25

Bloc 3

30 40

Bloc 1

45 50

Bloc 5

60 70

50

Bloc 6

40

Bloc 7

Page 20: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

20

Cas de fusion en cascade

Fusion des deux frères

10

Bloc 0

20

25

Bloc 2

25

Bloc 3

30 40

Bloc 1

45 50

Bloc 5

60 70

50

Bloc 6

40

Bloc 7

Violation de larègle du minimum

Fusion des deux frères

10

Bloc 0

25 30

25

Bloc 2

40

Bloc 1

45 50

Bloc 5

60 70

50

Bloc 6

40

Bloc 7Violation de la

règle du minimum

Page 21: 1 Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc

21

Cas de fusion en cascade (suite) : réduction de la hauteur

Fusion des deux frères

10

Bloc 0

25 30

25

Bloc 2

40

Bloc 1

45 50

Bloc 5

60 70

50

Bloc 6

40

Bloc 7Violation de la

règle du minimum

10

Bloc 0

25 30

40 50

Bloc 2

40

Bloc 1

45 50

Bloc 5

60 70