Structures physiques - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

Structures physiques

Description:

Sinon alors le ' Multiway Sort Merge ' est recommand . Ce type de jointure est surtout ... Si H est en RAM, alors la variante LKRHash semble le plus efficace ... – PowerPoint PPT presentation

Number of Views:139
Avg rating:3.0/5.0
Slides: 41
Provided by: lit105
Category:

less

Transcript and Presenter's Notes

Title: Structures physiques


1
Structures physiques
  • Witold Litwin
  • http//ceria.dauphine.fr/witold.html

2
Schéma interne
  • Définit les chemins d'accès aux données
  • En général dans l'hypothèse que la BD est
  • grande
  • sur le disque
  • Problèmes
  • Allocation d'espace disque
  • Accès direct aux enregistrement
  • Tampons RAM

3
Livres de Support
  • Voir le cours introductif (Cours 1)
  • De plus
  • Garcia-Molina, H. Ullman, J. Widom J. Database
    System Implementation. Prentice Hall, 1999
  • Description de LH
  • Jointure bi-passes et multi-passes
  • Optimisation de requêtes à base de coût

4
Principes typiques
  • Espace disque est paginé en pages de 4-8 KO
  • Appelés aussi blocs
  • Une page est une unité de transfert entre disque
    et RAM
  • Les pages sont structurées en fichiers
  • séquentiels ou directs ou non-ordonnés
  • hachés
  • Arbres B
  • autres

5
  • Les indexes sont des fichiers qui contiennent les
    paires
  • attribut(s) d'accès -gt numéro de page
  • les indexes peuvent être
  • séquentiels ou directs ou non-ordonnés
  • hachés
  • arbres B
  • autres

6
Structure d'une page
N
P
Autres infos
Enreg 1
Enreg 2
...........
...........
...........
Enreg 53
7
Utilisation d'indexes
  • Sil n'y a pas de chemin d'accès au fichier par
    la valeur d'attribut, alors il faut faire une
    longue recherche séquentielle
  • Un index crée le chemin d'accès aux pages
    pertinentes
  • On peut en avoir autant d'indexes que l'on veut
  • Avantage pour les recherches
  • Désavantage pour les MAJ, car il faut aussi
    mettre à jour les indexes

8
Page d'index typique
N
P
Autres inf.
Paris...........
16
Paris 32 16 51
Athens........
London 56 77
...........
.................
32
NY......
Madrid.......
Accélération de 101000 fois selon la capacité
d'une page d'index
Paris.......
9
Accès haché
  • Le n de page est obtenu par calcul à partir de
    la clé primaire de fichier
  • 12 34 56 78 mod 100 78

0
........
h
Clé
78
........
99
10
Hachage
  • Il existe de nombreuses fonctions de hachage
  • Il existe deux types de hachage
  • statique (classique)
  • virtuel (espace d'adressage peut grandir avec les
    insertions)
  • hachage dynamique (Larson)
  • hachage extensible (Fagin al)
  • hachage linéaire (Litwin)
  • Implémenté dans nombreux produits
  • IIS, Frontpage, MsExchange, Netscape, Unify, LH
    Server
  • Le fichier haché n'est pas ordonné
  • pas de requêtes à intervalle

11
Fichiers ordonnés
  • Arbre-B est le plus populaire (tout SGBD)
  • En fait larbre B lié (linked B - tree de Lehma
    Yao)
  • Pour le parcours séquentiel et laccès concurrent
    efficace
  • Loquets individuels sur chaque page parcourue
  • Une page contient dgtgt1 paires en ordre
    lexicographique de clés
  • clé - enreg.
  • ou clé-pointeur de page avec l'enreg.
  • Une page qui devient pleine éclate en deux pages
    semi-pleines
  • La clé d'éclatement est dupliquée dans la page de
    niveau supérieur avec les pointeurs vers les
    nouvelles pages

12
dodo
mom
racine
dada
dudu
dodo
dede
mom
Feuillesavec les enreg
...
coco..
dada..
13
Insert bébé
dodo
mom
racine
dada
dudu
dodo
dede
mom
bébé
Feuillesavec les enreg
...
coco..
dede..
dada..
14
Insert bébé
dodo
mom
racine
dada
dudu
dodo
dede
mom
coco..
dada..
bébé..
dede..
dada..
...
...
15
Insert bébé
dodo
mom
racine
coco
dudu
dodo
dada
mom
dede
coco..
dada..
bébé..
dada..
...
...
16
insert bébé
dodo
dede
mom
coco
dudu
dodo
dada
mom
dede
coco..
dada..
bébé..
dada..
...
...
17
Structures de Données Distribuées et Scalables
Serveur
Client
Multiordinateur
18
Opérations relationnelles
  • Restrictions A 'C'
  • sur attribut-clé du fichier - rapides avec
    hachage
  • sur autres attributs - rech. seq. ou par indexe
  • Restrictions à intervalle
  • sur attribut-clé ou pas - rapide avec les
    arbres-B
  • Projections
  • recherche séquentielle (peut être plus efficace
    avec le hachage)
  • pourquoi ?

19
Jointures
  • Equijointures rapides avec le hachage
  • comment faire ?
  • ??- jointures technique générale
  • Boucles imbriquées
  • Tri-interclassement (sort-merge)
  • Index
  • Hash
  • Linear Hash

20
Boucles imbriquées
  • Soit J Sn.A Rm.A où "" note JOIN
  • do i1 to m / Boucle ext.
  • do j 1 to n / Boucle int.
  • if Ri.A Sj.A then
  • R R Ri Sj /
  • end
  • end
  • Coût CPU ?

21
Tri-Interclassement
  • Si la table R S nest pas ordonnée sur lattribut
    de jointure A, alors on trie R et S ou au moins S
    sur A
  • Il y a des multiples algorithmes dans la
    littérature
  • Si la table rentre entièrement en RAM, alors
    Quicksort est en général le plus rapide
  • Sinon alors le  Multiway Sort Merge  est
    recommandé
  • Ce type de jointure est surtout utile si
  • Les tables sont déjà triés sur A
  • La requête inclue ORDER BY A

22
Tri-Interclassement
  • R et S sont triés sur A la jointure est mn
  • r 1 s 1
  • do while r lt m and s lt n
  • v Rr.A
  • do j s by 1 while sj.A lt v
  • end
  • s j
  • do j s by 1 while Sj.A v
  • do i r by 1 while Ri.A v
  • J J RiSj
  • end
  • end
  • s j
  • do i r by 1 while Ri.A v
  • end
  • r i
  • end
  • Coût CPU ?

23
Index Lookup
  • En général bien plus rapide que les méthodes
    précédentes
  • Coût CPU ?
  • X indexe S.A
  • do i 1 to m
  • / Il y a k entrées dans X avec la valeur
    Ri.A
  • do j 1 to k
  • J J Ri Sj
  • end
  • end

24
Hash Lookup
  • En général la méthode la plus efficace pour les
    équijointures
  • La table temporaire H cest S haché sur A
  • do j 1 to n / hache S
  • k hash Sj.A Hk Hk Sj
  • do i 1 to m
  • k hash Ri.A
  • / Il y a h tuples de S dans la case H(k)
  • do i 1 to h / visite de Hk
  • if Sj.A Ri.A then
  • J J Sj Ri
  • end
  • end
  • Coût CPU ?

25
Linear Hash Lookup
  • La taille de la table S peut être inconnue
  • S peut être une table temporaire crée pendant
    lévaluation dune restriction
  • Mode pipeline
  • Hachage statique est alors peu performant
  • LH solutionne ce problème
  • Si H est en RAM, alors la variante LKRHash semble
    le plus efficace
  • Conçu par P. Larson al (Microsoft)
  • Utilisée dans de nombreux produits MS
  • LH est aussi préférable pour lévaluation
    bi-passe ou multi-passe

26
Mode d'exécution d'une opération relationnelle
  • Matérialisation
  • La table résultante est créée pour l'opération
    suivante dans l'arbre d'exécution
  • Pipeline
  • On passe un tuple à la fois par l'arbre
  • Moindre coût mémoire
  • Pas toujours possible
  • ORDER BY, Hash Lookup
  • Mixte

27
Optimisation de requêtes
  • L'optimiseur assigne un coût à toute opération
    relationnelle de la requête
  • Typiquement nombre de pages examinées
  • Surtout on examine les jointures
  • Le coût prévisible de chaque méthode possible
  • En général les indexes diminue les coûts
  • L'arbre algébrique d'exécution de la requête
    devient annoté
  • Chaque arbre annoté devient un plan d'exécution

28
Optimisation de requêtes(Choix des arbres
algébriques)
  • Pour 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

29
Optimisation de requêtes
  • On choisi le plan minimisant le coût total
  • System R (IBM)
  • Surtout, il faut choisir l'ordre des jointures
  • On examine
  • Tout plan possible
  • Programmation dynamique
  • Meilleur coût de tout (R1 JOIN R2)
  • Sur cette base, meilleur coût de tout (R1 JOIN
    R2) JOIN R3
  • etc
  • Programmation dynamique à la "Selinger"
  • On peut conserver un coût non optimal s'il permet
    optimiser une opération plus tard
  • Jointure par tri-interclassement suivie par
    ORDER BY

30
Optimisation de requêtes
  • On examine par une heuristique certains plans
    seulement
  • "Hill Climbing"
  • On commence avec un plan OK
  • On varie des composantes
  • Une autre méthode pour la jointure
  • On choisi le plan moins cher alors
  • On continue les variations jusqu'au temps limite
    où le meilleur plan
  • "Greedy Algorithm"
  • Une simplification de la programmation dynamique
  • A chaque étape on ne retient que le meilleur
    plan.

31
Gestion de tampons (buffers)
  • Cachez les pages peut largement améliorer les
    performances
  • Particulièrement pour les RAMs 32-256 MO,
  • populaires aujourd'hui, mais rares et chères hier

32
Concept de cache
CPU
Cache
Disque
33
Strategies pour la gestion de caches
  • Stratégie typique LRU
  • remplacer la page le moins usité
  • Il a été prouvé que pour les BDs il vaut mieux
    une stratégie dite LRU-2 (Waikum al, Sigmod
    1993)

34
Bases parallèles
  • Partitionnement d'une table sur les mémoires de
    plusieurs CPUs
  • mémoire partagée (shared memory)
  • CPUs d'une même machine
  • mémoires locales (shared-nothing)
  • même machine ou multiordinateur réseau
  • réseau 10 Mb/s au moins
  • partionnement statique ou scalable
  • Exécution en parallèle d'opérations sur une BD
  • Amélioration notable de temps de réponse
  • traitement parallèle
  • traitement en RAM
  • Amélioration possible de la fiabilité
  • partitionnement redondant

35
Partitionnement
  • Aléatoire
  • par place disponible
  • Localité de référence
  • Tuples de Paris sur le site à Paris etc.
  • Haché
  • le plus simple
  • ex. Teradata, Sybase
  • statique ou scalable (LH...)
  • problème de non-uniformité
  • Ordonné
  • Statique (ex. Teradata, Sybase ?)
  • Scalable (RP...)
  • Multi-attribut
  • Scalable (k-RP...)

36
Opérations relationnelles
  • Sélection et/ou projection
  • sur l'attribut de partitionnement
  • message au site concerné
  • sur un autre attribut
  • messages à tous les sites
  • sur un intervalle de l'attribut de
    partitionnement
  • messages aux sites concernés
  • message(s) à tous les sites
  • sur un autre intervalle
  • message(s) à tous les sites

37
Jointures parallèles
  • Equi-jointures
  • Hachage
  • la méthode en général la plus efficace
  • "Probing"
  • quand une de tables est petite
  • Theta-jointures
  • fichiers ordonnés parallèles

38
Fonctions agrégats
  • Sum
  • somme de sommes parallèles
  • Count
  • somme de comptages parallèles
  • Avg
  • SUM et COUNT parallèles
  • somme de sommes / somme de comptages
  • Autres (MIN, MAX, VAR, TOP... )
  • selon le cas

39
Conclusion
  • Gestion de structures physiques est un aspect
    fondamental de la conception des SGBD
  • Leur choix détermine les performances
  • Les principes changes rapidement
  • RAMs bien plus grandes et moins chères
  • Nouveaux supports RAIDs par exemple
  • Nouveaux types de données k-d et multimédia
    nécessitant nouvelles structures
  • arbre-R, arbre k-d, arbres quad....
  • Structures parallèles ou distribuées
  • DLH, LH, RP...

40
FIN
Write a Comment
User Comments (0)
About PowerShow.com