1 Structures physiques Witold Litwin .

40
Structures Structures physiques physiques Witold Litwin Witold Litwin http:// http:// ceria ceria .dauphine. .dauphine. fr fr / / witold witold . . html html

Transcript of 1 Structures physiques Witold Litwin .

Page 1: 1 Structures physiques Witold Litwin .

1

Structures physiquesStructures physiquesStructures physiquesStructures physiques

Witold LitwinWitold Litwinhttp://http://ceriaceria.dauphine..dauphine.frfr//witoldwitold..htmlhtml

Page 2: 1 Structures physiques Witold Litwin .

2

Schéma interne Schéma interne Schéma interne Schéma interne

Définit les Définit les chemins d'accèschemins d'accès aux données aux données En général dans l'hypothèse que la BD estEn général dans l'hypothèse que la BD est

– grandegrande– sur le disquesur le disque

ProblèmesProblèmes– Allocation d'espace disqueAllocation d'espace disque– Accès direct aux enregistrementAccès direct aux enregistrement– Tampons RAMTampons RAM

Page 3: 1 Structures physiques Witold Litwin .

3

Livres de SupportLivres de SupportLivres de SupportLivres de Support

Voir le cours introductif (Cours 1)Voir le cours introductif (Cours 1) De plus De plus

– Garcia-Molina, H. Ullman, J. Widom J. Database System Implementation. Prentice Hall, 1999

» Description de LH Description de LH

» Jointure bi-passes et multi-passesJointure bi-passes et multi-passes

» Optimisation de requêtes à base de coûtOptimisation de requêtes à base de coût

Page 4: 1 Structures physiques Witold Litwin .

4

Principes typiquesPrincipes typiquesPrincipes typiquesPrincipes typiques

Espace disque est paginé en Espace disque est paginé en pagespages de 4-8 KO de 4-8 KO– Appelés aussi Appelés aussi blocsblocs

Une page est une unité de transfert entre disque et Une page est une unité de transfert entre disque et RAMRAM

Les pages sont structurées en Les pages sont structurées en fichiersfichiers– séquentiels ou directs ou non-ordonnésséquentiels ou directs ou non-ordonnés– hachéshachés– Arbres BArbres B– autresautres

Page 5: 1 Structures physiques Witold Litwin .

5

Les indexes sont des fichiers qui Les indexes sont des fichiers qui contiennent les pairescontiennent les pairesattribut(s) d'accès -> numéro de pageattribut(s) d'accès -> numéro de page

les indexes peuvent êtreles indexes peuvent être– séquentiels ou directs ou non-ordonnésséquentiels ou directs ou non-ordonnés– hachéshachés– arbres Barbres B– autresautres

Page 6: 1 Structures physiques Witold Litwin .

6

Structure d'une pageStructure d'une pageStructure d'une pageStructure d'une page

N# P Autres infos Enreg 1

Enreg 2 ........... ...........

........... Enreg 53

Page 7: 1 Structures physiques Witold Litwin .

7

Utilisation d'indexesUtilisation d'indexesUtilisation d'indexesUtilisation d'indexes

S’il n'y a pas de chemin d'accès au fichier par la S’il n'y a pas de chemin d'accès au fichier par la valeur d'attribut, alors il faut faire une longue valeur d'attribut, alors il faut faire une longue recherche séquentielle recherche séquentielle

Un index crée le chemin d'accès aux pages Un index crée le chemin d'accès aux pages pertinentespertinentes

On peut en avoir autant d'indexes que l'on veutOn peut en avoir autant d'indexes que l'on veut Avantage pour les recherchesAvantage pour les recherches Désavantage pour les MAJ, car il faut aussi mettre Désavantage pour les MAJ, car il faut aussi mettre

à jour les indexes à jour les indexes

Page 8: 1 Structures physiques Witold Litwin .

8

Page d'index typiquePage d'index typiquePage d'index typiquePage d'index typique

N# P Autres inf.

London 56 77

Paris 32 16 51

Paris...........16

........... .................

Paris.......

32

Athens........

NY......

Madrid.......Accélération de 10:1000 fois selonla capacité d'une page d'index

Page 9: 1 Structures physiques Witold Litwin .

9

Accès hachéAccès hachéAccès hachéAccès haché

Le n# de page est obtenu par calcul à partir Le n# de page est obtenu par calcul à partir de la de la clé primaireclé primaire de fichier de fichier12 34 56 7812 34 56 78 mod 100 = mod 100 = 7878

hClé 78

0

........

........99

Page 10: 1 Structures physiques Witold Litwin .

10

HachageHachageHachageHachage

Il existe de nombreuses fonctions de hachageIl existe de nombreuses fonctions de hachage Il existe deux types de hachageIl existe deux types de hachage

– statique (classique)statique (classique)– virtuel (espace d'adressage peut grandir avec les virtuel (espace d'adressage peut grandir avec les

insertions)insertions)» hachage dynamique (Larson)hachage dynamique (Larson)» hachage extensible (Fagin & al)hachage extensible (Fagin & al)

» hachage linéaire (Litwin)hachage linéaire (Litwin)– Implémenté dans nombreux produitsImplémenté dans nombreux produits

– IIS, Frontpage, MsExchange, Netscape, Unify, LH IIS, Frontpage, MsExchange, Netscape, Unify, LH Server…Server…

Le fichier haché n'est pas ordonnéLe fichier haché n'est pas ordonné– pas de requêtes à intervalle

Page 11: 1 Structures physiques Witold Litwin .

11

Fichiers ordonnésFichiers ordonnésFichiers ordonnésFichiers ordonnés

Arbre-B est le plus populaire (tout SGBD)Arbre-B est le plus populaire (tout SGBD)– En fait l’arbre BEn fait l’arbre B++ lié (linked B lié (linked B+ + - tree de Lehma & Yao)- tree de Lehma & Yao)

» Pour le parcours séquentiel et l’accès concurrent + efficacePour le parcours séquentiel et l’accès concurrent + efficace– Loquets individuels sur chaque page parcourue Loquets individuels sur chaque page parcourue

Une page contient Une page contient dd>>1 paires en ordre lexicographique de >>1 paires en ordre lexicographique de clésclés– clé - enreg.clé - enreg.

– ou clé-pointeur de page avec l'enreg.ou clé-pointeur de page avec l'enreg.

Une page qui devient pleine éclate en deux pages semi-Une page qui devient pleine éclate en deux pages semi-pleinespleines

La clé d'éclatement est dupliquée dans la page de niveau La clé d'éclatement est dupliquée dans la page de niveau supérieur avec les pointeurs vers les nouvelles pagessupérieur avec les pointeurs vers les nouvelles pages

Page 12: 1 Structures physiques Witold Litwin .

12

dodo

mom

dada

dede

dudu

mom

Feuillesavec lesenreg

dodo

...

racine

dad

a..

coco

..

Page 13: 1 Structures physiques Witold Litwin .

13

dodo

mom

dada

dede

dudu

mom

Feuillesavec lesenreg

dodo

...

racine

dad

a..

coco

..

Insert bébé

bébé

ded

e..

Page 14: 1 Structures physiques Witold Litwin .

14

...

dad

a..

coco

..

dad

a..

béb

é..

dodo

mom

dada

dede

dudu

mom

dodo

racine

Insert bébé

ded

e..

...

Page 15: 1 Structures physiques Witold Litwin .

15

coco

dada

dudu

mom

dodo

...

dad

a..

coco

..

dad

a..

béb

é..

dodo

mom racine

Insert bébé

dede

...

Page 16: 1 Structures physiques Witold Litwin .

16

dodo

mom

dede

insert bébé

coco

dada

dudu

mom

dodo

...

dad

a..

coco

..

dad

a..

béb

é..

dede

...

Page 17: 1 Structures physiques Witold Litwin .

17

Structures de Données Structures de Données Distribuées et ScalablesDistribuées et ScalablesStructures de Données Structures de Données

Distribuées et ScalablesDistribuées et Scalables

Client Serveur

Multiordinateur

Page 18: 1 Structures physiques Witold Litwin .

18

Opérations relationnellesOpérations relationnellesOpérations relationnellesOpérations relationnelles

Restrictions A = 'C'Restrictions A = 'C'– sur attribut-clé du fichier - + rapides avec hachagesur attribut-clé du fichier - + rapides avec hachage

– sur autres attributs - rech. seq. ou par indexesur autres attributs - rech. seq. ou par indexe

Restrictions à intervalleRestrictions à intervalle– sur attribut-clé ou pas - + rapide avec les arbres-Bsur attribut-clé ou pas - + rapide avec les arbres-B

ProjectionsProjections– recherche séquentielle (peut être plus efficace avec le recherche séquentielle (peut être plus efficace avec le

hachage)hachage)

– pourquoi ?pourquoi ?

Page 19: 1 Structures physiques Witold Litwin .

19

JointuresJointuresJointuresJointures

Equijointures + rapides avec le hachageEquijointures + rapides avec le hachage– comment faire ?comment faire ?

- jointures: technique générale- jointures: technique générale– Boucles imbriquéesBoucles imbriquées– Tri-interclassement (sort-merge)Tri-interclassement (sort-merge)– IndexIndex– HashHash

» Linear HashLinear Hash

Page 20: 1 Structures physiques Witold Litwin .

20

Boucles imbriquéesBoucles imbriquéesBoucles imbriquéesBoucles imbriquées

Soit J = S[n].A * R[m].A où "*" note JOINSoit J = S[n].A * R[m].A où "*" note JOIN

do i=1 to m ;do i=1 to m ; /* Boucle ext./* Boucle ext.do j = 1 to n ;do j = 1 to n ; /* Boucle int./* Boucle int.

if R[i].A = S[j].A thenif R[i].A = S[j].A thenR := R + R[i] * S[j] ;R := R + R[i] * S[j] ; /* /*

end ;end ;end ; end ;

Coût CPU ? Coût CPU ?

Page 21: 1 Structures physiques Witold Litwin .

21

Tri-Interclassement Tri-Interclassement Tri-Interclassement Tri-Interclassement

Si la table R S n’est pas ordonnée sur l’attribut de Si la table R S n’est pas ordonnée sur l’attribut de jointure A, alors on trie R et S ou au moins S sur Ajointure A, alors on trie R et S ou au moins S sur A

Il y a des multiples algorithmes dans la littératureIl y a des multiples algorithmes dans la littérature Si la table rentre entièrement en RAM, alors Si la table rentre entièrement en RAM, alors

Quicksort est en général le plus rapideQuicksort est en général le plus rapide Sinon alors le « Multiway Sort Merge » est Sinon alors le « Multiway Sort Merge » est

recommandérecommandé Ce type de jointure est surtout utile siCe type de jointure est surtout utile si

– Les tables sont déjà triés sur ALes tables sont déjà triés sur A

– La requête inclue ORDER BY ALa requête inclue ORDER BY A

Page 22: 1 Structures physiques Witold Litwin .

22

Tri-Interclassement Tri-Interclassement Tri-Interclassement Tri-Interclassement R et S R et S sont triés sur A ;sont triés sur A ; la jointure est m:n la jointure est m:n

rr = 1 ; s = 1 ; = 1 ; s = 1 ;do while r <= m and s <= n ;do while r <= m and s <= n ;

v := R[r].A ;v := R[r].A ;do j = s by 1 while s[j].A < v ;do j = s by 1 while s[j].A < v ;end ;end ;s := j ;s := j ;do j = s by 1 while S[j].A = v ;do j = s by 1 while S[j].A = v ;

do i = r by 1 while R[i].A = v ;do i = r by 1 while R[i].A = v ;J := J + R[i]*S[j] ;J := J + R[i]*S[j] ;

end ;end ;endends := j ;s := j ;do i = r by 1 while R[i].A = v ;do i = r by 1 while R[i].A = v ;end ;end ;r := i ;r := i ;

endend Coût CPU ?Coût CPU ?

Page 23: 1 Structures physiques Witold Litwin .

23

Index LookupIndex LookupIndex LookupIndex Lookup

En général bien plus rapide que les En général bien plus rapide que les méthodes précédentesméthodes précédentes Coût CPU ? Coût CPU ?

X X indexeindexe S.A S.Ado i = 1 to mdo i = 1 to m

/* Il y a k entrées dans X avec la valeur R[i].A/* Il y a k entrées dans X avec la valeur R[i].Ado j = 1 to kdo j = 1 to k

J := J + R[i] * S[j] ;J := J + R[i] * S[j] ; end ;end ;end ;end ;

Page 24: 1 Structures physiques Witold Litwin .

24

Hash LookupHash LookupHash LookupHash Lookup En général la méthode la plus efficace pour les En général la méthode la plus efficace pour les

équijointureséquijointures La table temporaire H c’est S haché sur ALa table temporaire H c’est S haché sur Ado j = 1 to n ;do j = 1 to n ; /* hache S/* hache S

k= hash S[j].A ; H[k] := H[k] + S[j] ;k= hash S[j].A ; H[k] := H[k] + S[j] ;do i = 1 to m ;do i = 1 to m ;

k = hash R[i].A ;k = hash R[i].A ;/* Il y a h tuples de S dans la case H(k) /* Il y a h tuples de S dans la case H(k) do i= 1 to h ;do i= 1 to h ; /* visite de H[k]/* visite de H[k]

if S[j].A = R[i].A thenif S[j].A = R[i].A thenJ := J + S[j] * R[i] ;J := J + S[j] * R[i] ;

end ;end ;end ;end ;

Coût CPU ? Coût CPU ?

Page 25: 1 Structures physiques Witold Litwin .

25

Linear Hash LookupLinear Hash LookupLinear Hash LookupLinear Hash Lookup

La taille de la table S peut être inconnueLa taille de la table S peut être inconnue– S peut être une table temporaire crée pendant l’évaluation S peut être une table temporaire crée pendant l’évaluation

d’une restrictiond’une restriction» Mode pipelineMode pipeline

Hachage statique est alors peu performantHachage statique est alors peu performant LH solutionne ce problèmeLH solutionne ce problème

– Si H est en RAM, alors la variante LKRHash semble le plus Si H est en RAM, alors la variante LKRHash semble le plus efficaceefficace

» Conçu par P. Larson & al (Microsoft)Conçu par P. Larson & al (Microsoft)» Utilisée dans de nombreux produits MSUtilisée dans de nombreux produits MS

LH est aussi préférable pour l’évaluation bi-passe ou LH est aussi préférable pour l’évaluation bi-passe ou multi-passemulti-passe

Page 26: 1 Structures physiques Witold Litwin .

26

Mode d'exécution d'une opération Mode d'exécution d'une opération relationnellerelationnelle

Mode d'exécution d'une opération Mode d'exécution d'une opération relationnellerelationnelle

MatérialisationMatérialisation– La table résultante est créée pour l'opération suivante La table résultante est créée pour l'opération suivante

dans l'arbre d'exécutiondans l'arbre d'exécution

PipelinePipeline– On passe un tuple à la fois par l'arbreOn passe un tuple à la fois par l'arbre

– Moindre coût mémoireMoindre coût mémoire

– Pas toujours possiblePas toujours possible» ORDER BY, Hash Lookup…ORDER BY, Hash Lookup…

MixteMixte

Page 27: 1 Structures physiques Witold Litwin .

27

Optimisation de requêtesOptimisation de requêtesOptimisation de requêtesOptimisation de requêtes L'optimiseur assigne un coût à toute opération L'optimiseur assigne un coût à toute opération

relationnelle de la requêterelationnelle de la requête– Typiquement: nombre de pages examinéesTypiquement: nombre de pages examinées– Surtout on examine les jointuresSurtout on examine les jointures

» Le coût prévisible de chaque méthode possibleLe coût prévisible de chaque méthode possible

– En général les indexes diminue les coûtsEn général les indexes diminue les coûts– L'arbre algébrique d'exécution de la requête L'arbre algébrique d'exécution de la requête

devient devient annotéannoté Chaque arbre annoté devient un Chaque arbre annoté devient un plan d'exécutionplan d'exécution

Page 28: 1 Structures physiques Witold Litwin .

28

Optimisation de requêtesOptimisation de requêtes(Choix des arbres algébriques)(Choix des arbres algébriques)

Optimisation de requêtesOptimisation de requêtes(Choix des arbres algébriques)(Choix des arbres algébriques)

Pour générer des plans on examinePour générer des plans on examine– Les arbres gauches résultants des améliorations

algébriques» Approche générale

– Les arbres gauches et ramifiés» Surtout pour les BDs parallèles

L'espace des plans est en général très grand – Des milliers de plans pour déjà pour quelques

relations à joindre

Page 29: 1 Structures physiques Witold Litwin .

29

Optimisation de requêtesOptimisation de requêtesOptimisation de requêtesOptimisation de requêtes

On choisi le plan minimisant le coût totalOn choisi le plan minimisant le coût total– System R (IBM)System R (IBM)

Surtout, Surtout, il faut choisir l'ordre des jointuresil faut choisir l'ordre des jointures On examine On examine

– Tout plan possible Tout plan possible » Programmation dynamiqueProgrammation dynamique

– Meilleur coût de tout (R1 JOIN R2)Meilleur coût de tout (R1 JOIN R2)– Sur cette baseSur cette base, meilleur coût de tout (R1 JOIN R2) JOIN R3, meilleur coût de tout (R1 JOIN R2) JOIN R3– etcetc

» Programmation dynamique à la "Selinger"Programmation dynamique à la "Selinger"– On peut conserver un coût non optimal s'il permet optimiser une opération On peut conserver un coût non optimal s'il permet optimiser une opération

plus tardplus tard– Jointure par tri-interclassement suivie par ORDER BY Jointure par tri-interclassement suivie par ORDER BY

Page 30: 1 Structures physiques Witold Litwin .

30

Optimisation de requêtesOptimisation de requêtesOptimisation de requêtesOptimisation de requêtes

On examine par une heuristique certains On examine par une heuristique certains plans seulementplans seulement– "Hill Climbing" "Hill Climbing"

» On commence avec un plan OK On commence avec un plan OK – On varie des composantes On varie des composantes

– Une autre méthode pour la jointure…Une autre méthode pour la jointure…

» On choisi le plan moins cher alorsOn choisi le plan moins cher alors– On continue les variations jusqu'au On continue les variations jusqu'au temps limitetemps limite où le où le

meilleur planmeilleur plan

– "Greedy Algorithm" "Greedy Algorithm" » Une simplification de la programmation dynamiqueUne simplification de la programmation dynamique

– A chaque étape on ne retient que le meilleur plan. A chaque étape on ne retient que le meilleur plan.

Page 31: 1 Structures physiques Witold Litwin .

31

Gestion de tampons (buffers)Gestion de tampons (buffers)Gestion de tampons (buffers)Gestion de tampons (buffers)

Cachez les pages peut largement améliorer Cachez les pages peut largement améliorer les performancesles performances

Particulièrement pour les RAMs 32-256 Particulièrement pour les RAMs 32-256 MO,MO,

– populaires aujourd'hui, mais rares et populaires aujourd'hui, mais rares et chères hierchères hier

Page 32: 1 Structures physiques Witold Litwin .

32

Concept de cache Concept de cache Concept de cache Concept de cache

CPU

Cache

Disque

Page 33: 1 Structures physiques Witold Litwin .

33

Strategies pour la gestion de Strategies pour la gestion de cachescaches

Strategies pour la gestion de Strategies pour la gestion de cachescaches

Stratégie typique: LRUStratégie typique: LRU» remplacer la page le moins usitéremplacer la page le moins usité

Il a été prouvé que pour les BDs il vaut Il a été prouvé que pour les BDs il vaut mieux une stratégie dite LRU-2 mieux une stratégie dite LRU-2 (Waikum & al, Sigmod 1993)(Waikum & al, Sigmod 1993)

Page 34: 1 Structures physiques Witold Litwin .

34

Bases parallèlesBases parallèlesBases parallèlesBases parallèles Partitionnement d'une table sur les mémoires de Partitionnement d'une table sur les mémoires de

plusieurs CPUsplusieurs CPUs– mémoire partagée (shared memory)mémoire partagée (shared memory)

» CPUs d'une même machineCPUs d'une même machine– mémoires locales (shared-nothing)mémoires locales (shared-nothing)

» même machine ou multiordinateur réseaumême machine ou multiordinateur réseau– réseau 10 Mb/s au moinsréseau 10 Mb/s au moins

– partionnement statique ou scalablepartionnement statique ou scalable Exécution en parallèle d'opérations sur une BDExécution en parallèle d'opérations sur une BD Amélioration notable de temps de réponseAmélioration notable de temps de réponse

– traitement parallèletraitement parallèle– traitement en RAMtraitement en RAM

Amélioration possible de la fiabilitéAmélioration possible de la fiabilité– partitionnement redondantpartitionnement redondant

Page 35: 1 Structures physiques Witold Litwin .

35

PartitionnementPartitionnementPartitionnementPartitionnement AléatoireAléatoire

– par place disponiblepar place disponible

Localité de référenceLocalité de référence– Tuples de Paris sur le site à Paris etc.Tuples de Paris sur le site à Paris etc.

HachéHaché– le plus simplele plus simple– ex. Teradata, Sybaseex. Teradata, Sybase– statique ou scalable (LH*...)statique ou scalable (LH*...)– problème de non-uniformitéproblème de non-uniformité

OrdonnéOrdonné– Statique (ex. Teradata, Sybase ?)Statique (ex. Teradata, Sybase ?)– Scalable (RP*...)Scalable (RP*...)

Multi-attributMulti-attribut– Scalable (k-RP*...)Scalable (k-RP*...)

Page 36: 1 Structures physiques Witold Litwin .

36

Sélection et/ou projectionSélection et/ou projection– sur l'attribut de partitionnementsur l'attribut de partitionnement

» message au site concernémessage au site concerné

– sur un autre attributsur un autre attribut» messages à tous les sitesmessages à tous les sites

– sur un intervalle de l'attribut de partitionnementsur un intervalle de l'attribut de partitionnement» messages aux sites concernésmessages aux sites concernés

» message(s) à tous les sitesmessage(s) à tous les sites

– sur un autre intervallesur un autre intervalle» message(s) à tous les sitesmessage(s) à tous les sites

Opérations relationnellesOpérations relationnellesOpérations relationnellesOpérations relationnelles

Page 37: 1 Structures physiques Witold Litwin .

37

Jointures parallèlesJointures parallèlesJointures parallèlesJointures parallèles

Equi-jointuresEqui-jointures– HachageHachage

» la méthode en général la plus efficacela méthode en général la plus efficace

– "Probing""Probing"» quand une de tables est petitequand une de tables est petite

Theta-jointuresTheta-jointures– fichiers ordonnés parallèlesfichiers ordonnés parallèles

Page 38: 1 Structures physiques Witold Litwin .

38

Fonctions agrégatsFonctions agrégatsFonctions agrégatsFonctions agrégats

SumSum– somme de sommes parallèlessomme de sommes parallèles

CountCount– somme de comptages parallèlessomme de comptages parallèles

AvgAvg– SUM et COUNT parallèlesSUM et COUNT parallèles– somme de sommes / somme de comptagessomme de sommes / somme de comptages

Autres Autres (MIN, MAX, VAR, TOP... )(MIN, MAX, VAR, TOP... )

– selon le casselon le cas

Page 39: 1 Structures physiques Witold Litwin .

39

ConclusionConclusionConclusionConclusion Gestion de structures physiques est un aspect fondamental Gestion de structures physiques est un aspect fondamental

de la conception des SGBDde la conception des SGBD Leur choix détermine les performancesLeur choix détermine les performances Les principes changes rapidement:Les principes changes rapidement: RAMs bien plus grandes et moins chèresRAMs bien plus grandes et moins chères Nouveaux supports : RAIDs par exempleNouveaux supports : RAIDs par exemple Nouveaux types de données: k-d et multimédia nécessitant Nouveaux types de données: k-d et multimédia nécessitant

nouvelles structures: nouvelles structures: – arbre-R, arbre k-d, arbres quad.... arbre-R, arbre k-d, arbres quad....

Structures parallèles ou distribuées: Structures parallèles ou distribuées: – DLH, LH*, RP*...DLH, LH*, RP*...

Page 40: 1 Structures physiques Witold Litwin .

40

FINFINFINFIN