Académique Documents
Professionnel Documents
Culture Documents
2011-2012
Plan
Rappel Optimisation des requtes Gestion des Transactions et Gestion de concurrences Bases de donnes reparties
Rappel: Introduction
Base de Donnes ?
Une collection de donnes cohrentes entre elles, gnralement de taille importante. Modlise une entreprise du monde rel
Entits (ex., tudiants, Briques) Associations (ex., Paul est inscrit en BD)
Pourquoi un SGBD?
Indpendance des donnes/applications et sret daccs aux donnes. Temps de dveloppement dapplication rduit. Intgrit des donnes et scurit des accs. Administration des donnes uniforme. Concurrence des accs et reprise sur panne.
Modle de donnes
Un modle de donnes est un ensemble de concepts sur les donnes. Un schma est une description dun ensemble de donnes, sappuyant sur un modle de donnes. Le modle relationnel est le plus rpandu. Concepts de base: relation, table avec tuples et des colonnes. Chaque relation a un schma, qui dcrit ses colonnes. Les modles objet et objet-relationnel sont utiliss pour grer des donnes complexes. Les modles semi-structurs se cherchent une place dans les applications web, intgration de donnes htrognes,
Niveaux dabstraction
Les vues dcrivent comment lutilisateur voit les donnes. Le schma conceptuel dfinit la structure logique des donnes. Le schma physique dcrit la structure physique, de stockage, des donnes.
IX - Gestion de la confidentialit VIII - Concurrence daccs VII - Gestion des pannes VI - Gestion de la cohrence
BD
I - Indpendance Physique
Possibilit de modifier les structures de stockage (fichiers, index, chemins d'accs, ) sans modifier les programmes; Ecriture des applications par des non-spcialistes des fichiers et des structures de stockage;
II - Indpendance Logique
Gestion des mdicaments
Nombre_Mdicaments
IdM 1 2 3 . Nom Aspegic 1000 Fluisdal Mucomyst .. Description . . . . . . . . Nombr e 30
Patients
Id - P Nom Lebeau Troger . Prnom Jacques Zoe . Id - M 1 2 3 . Nom Aspegic 1000 Fluisdal Mucomyst ..
Mdicament
Description .. .. .. ..
20 230 ..
1 2 .
Docteur
Id-D 1 2 3 . Nom Dupont Durand Masse .. Prnom Pierre Paul Jean Id-V
Prescription
Ligne 1 2 1 2 3 . Id-M 12 5 8 12 3 . Posologie 1 par jour 10 gouttes 2 par jour 1 par jour 2 gouttes
Visites
Id-D 1 1 2 2 Id-P 2 1 2 3 Id-V 1 2 3 4 Date 15 juin 12 aot 13 juillet 1 mars Prix 250 180 350 250
1 1 2 2 2 .
Patients
Id-P 1 2 3 4 . Nom Lebeau Troger Doe Perry . Prnom Jacques Zoe John Paule . Id-M 1 2 3 .
Mdicament
Nom Aspegic 1000 Fluisdal Mucomyst .. Description .. .. .. ..
Possibilit pour chaque application d'ignorer les besoins des autres (bien que partageant la mme BD).
Possibilit d'volution de la base de donnes sans rcriture des applications :
Possibilit d'intgrer des applications existantes sans modifier les autres. Possibilit de limiter les consquences du partage : Donnes confidentielles.
La manipulation se fait via un langage dclaratif La question dclare lobjectif sans dcrire la mthode
Le langage suit une norme commune tous les SGBD SQL : Structured Query Langage
Smantique Logique du 1er ordre ++ Syntaxe (aperu !) SELECT <structure des rsultats>
Les vues permettent dimplmenter lindpendance logique en permettant de crer des relations virtuelles Vue = Question stocke Le SGBD stocke la dfinition et non le rsultat Exemple : la vue des patients parisiens la vue des docteurs avec leurs patients La vue des services statistiques ...
V Excution et Optimisation
Traduction automatique des questions dclaratives en programmes procduraux : Utilisation de lalgbre relationnelle Optimisation automatique des questions Utilisation de laspect dclaratif de SQL Gestion centralise des chemins d'accs (index, hachages, ) Techniques doptimisation pousses
VI - Intgrit Logique
Objectif : Dtecter les mises jour errones Contrle sur les donnes lmentaires Contrle de types: ex: Nom alphabtique Contrle de valeurs: ex: Salaire mensuel entre 1 et 5MD Contrle sur les relations entre les donnes Relations entre donnes lmentaires: Prix de vente > Prix d'achat Relations entre objets: Un lecteur doit tre inscrit sur une seule liste lectorale
Contraintes dintgrit
Avantages : simplification du code des applications scurit renforce par l'automatisation mise en commun des contraintes Ncessite : un langage de dfinition de contraintes d'intgrit la vrification automatique de ces contraintes
Motivations : Tolrance aux fautes Transaction Failure : Contraintes d'intgrit, Annulation System Failure : Panne de courant, Crash serveur ... Media Failure : Perte du disque Communication Failure : Dfaillance du rseau Objectifs : Assurer l'atomicit des transactions Garantir la durabilit des effets des transactions commises Moyens : Journalisation : Mmorisation des tats successifs des donnes Mcanismes de reprise
Transaction
Incohrence possible...
Etat cohrent
Begin Transaction
Concept cl : transaction, une squence atomique dactions sur une BD (lectures/critures) sparant un commit ou un rollback du commit ou du rollback suivant. Chaque transaction doit laisser la BD dans un tat cohrent aprs lavoir prise dans un tat cohrent. Les utilisateurs peuvent spcifier des contraintes dintgrit simples sur les donnes et le SGBD se charge de les garder inviolables. En dehors de a, le SGBD na pas conscience de la smantique des donnes (ex., il ne comprend pas comment les intrts dun compte bancaire sont calculs). Le fait quune transaction prserve la cohrence de la BD est au bout du compte de la responsabilit de lutilisateur!
Les SGBD assurent que lexcution de {T1, ... , Tn} soit quivalente une excution en srie T1 ... Tn.
Avant de lire/crire un lment, chaque transaction demande mettre un verrou sur llment et attend que le SGBD lui accorde ce verrou. Tous les verrous sont relchs la fin de la transaction (protocole V2P strict.) Ide: Si une action de Ti (ex., crire X) affecte Tj (qui effectue une lecture sur X), une des deux, disons Ti, obtient le verrou sur X la premire et Tj est force attendre la fin de Ti; cette faon de faire permet dordonner les transactions. Et si Tj a dj verrouill Y et que Ti demande par la suite verrouiller Y? (Deadlock!) Ti ou Tj est abandonne (aborted) et remise en concurrence!
Atomicit
Unit de cohrence : toutes les mises jour doivent tre effectues ou aucune.
La transaction doit faire passer la base de donne d'un tat cohrent un autre. Les rsultats d'une transaction ne sont visibles aux autres transactions qu'une fois la transaction valide. Les modifications d une transaction valide ne seront jamais perdue
Cohrence
Isolation
Durabilit
Atomicit
Les SGBD assurent latomicit (tout ou rien) mme si un crash surgit au milieu dune excution de transaction. Ide: garder un journal ou log (histoire) de toutes les actions ralises par le SGBD :
Avant quun changement ne soit ralis sur la BD, laction est trace dans un log file. Aprs un crash, les effets dune excution partielle dune transaction sont dfaites laide du fichier log.
Atomicit et Durabilit
ATOMICITE
Panne Begin CEpargne = CEpargne - 3000
Commit T1
Crash disque
Annuler le dbit !!
virement
BD
Isolation et Cohrence
BD
IX Confidentialit
Objectif : Protger les donnes de la BD contre des accs non autoriss Deux niveaux : Connexion restreinte aux usagers rpertoris (mot de passe) Privilges d'accs aux objets de la base
X - Standardisation
Langage SQL (SQL1, SQL2, SQL3) Communication SQL CLI (ODBC / JDBC) Transactions (X/Open DTP, OSI-TP)
META-BASE
TRADUCTEUR
OPTIMISEUR
Plan d'Accs
EXECUTEUR
BD
BD client/serveur
BD client/multi-serveurs BD rpartie BD htrogne BD mobile
Architecture centralise
Terminaux passifs
rseau
Appli 1 Appli 2
Appli n
Mainframe
SGBD donnes
Architecture client-serveur
Clients intelligents Appli 1 Appli 2 Appli n rseau
serveur
Architecture Client-Multiserveurs
Appli 1
SQL
SQL
ODBC
SQL
ODBC
SQL
SGBD 2 donnes
Architecture rpartie
SGBD 2 donnes
Architecture mobile
Clients intelligents mobiles
serveur
2 grandes familles de serveurs de BDR OLTP (On Line Transaction Processing) Cible des SGBD depuis leur existence
Banques, rservation en ligne ... Trs grand nombre de transactions en parallle Transactions simples
Evolution des BD
BD BD BD light PicoDBMS dentreprise personnelles (PDA / Tl.) carte puce Capacit
Prix
Nombre
Introduction
Performances des requtes : talon d'Achille des BDR Tout SGBDR comprend un optimiseur qui lui donne un meilleur contrle les performances Comment amliorer les performances d'une requte?
Comprendre la traduction SQL oprations sur tables Connatre lutilisation des index les algorithmes qui implantent les oprations sur tables Comprendre le choix de stratgie de loptimiseur
ANALYSEUR
Analyse syntaxique et ventuellement smantique des requtes afin de vrifier leur validit.
Dcomposition des requtes en squences doprations lmentaires , le SGBD procde a loptimisation, c a d rechercher la dcomposition qui conduit a un temps dexcution minimal
META-BASE
TRADUCTEUR
OPTIMISEUR
P.A
EXECUTEUR
Excution; au cours de cette phase, le processeur accde aux donnes spcifies par la requte et ralise le calcul ncessaire.
BD
Optimisation algbrique
Optimisation globale
Paramtres utiliss
Schma de la BD : schmas des tables et des chemins d'accs Statistiques : taille des tables, des index, distribution des valeurs Algorithmes mis en oeuvre
Statique
dcomposition et optimisation n'ont lieu qu'une seule fois sans tenir compte des modifications intervenues dans la BD
Dynamique
Hybride
Optimisation :???
Objectifs de loptimisation
Trouver le meilleur plan dexcution . MEILLEUR ??? Donnant les rsultats le + vite .
valuation efficace dune requte relationnelle: Le SGBD doit valuer un certain nombre de stratgies (Plan dexcution) potentiellement efficaces pour traiter la requte Choisir celle qui optimise lutilisation des ressources de la machine telle que : Espace mmoire, temps de calcul. E/S disques et ventuellement les communications rseaux. Le module qui remplit cette fonction : Optimiseur de requtes La conception dun optimiseur est une tache difficile et importante a la quelle les concepteurs de SGBD donnent beaucoup dimportance Impact sur les performances du SGBD et sur le temps de rponse des requtes La capacit du SGBD a traiter rapidement les requtes dpend de lefficacit de loptimiser a choisir le meilleur plan dexcution. Librer le programmeur de la connaissance du fonctionnement des oprateurs
En plus cet arbre doit tre le meilleur ! Seuls les concepteurs de SGBD ( noyau) doivent comprendre loptimisation et lexcution
Dans la pratique : 2 requtes quivalentes ne donnent pas toujours le mme plan Le plan nest pas toujours le meilleur ! lutilisateur (concepteur de lapplication ) devra comprendre !!!
Optimisation indpendante du cot dexcution: elle est base sur des transformations algbriques de la requtes dorigine. La rcriture simplifie le travail de loptimisation physique en effectuant un premier ordonnancement
Elle prends les dcisions lies aux informations sur le placement physique des donnes Gnrations des plans dexcutions candidats Choix du meilleur plan dont lvaluation est la moins coteuse, par exemple qui sexcute en un minimum de temps
Optimisation logique
Loptimisation effectue dpend essentiellement de lordre des oprateurs apparaissant dans arbre algbrique Effectuer un premier ordonnancement des oprations: transformations algbriques
Reposent sur le concept dexpression algbriques quivalentes Ralisent prioritairement les oprations de slection : c1 et c2(R)=c1( c2(R))=c2( c1(R)) Combinent une slection et un produit cartsien en un oprateur de jointure c(RS)= RcS Regroupent les squences doprateurs unaires tels que slections et projections et insrent les oprateurs unaires dans les oprandes doprateurs binaires c(RS)=c(R)S c1 et c2(RS)=c1(R) c2(S) Recherchent les sous expression identiques qui apparaissent plusieurs fois dans une expression algbrique
Arbre algbrique
A partir dune requte analyse, la plupart des SGBD gnre un arbre algbrique (ou plan d'excution physique)
noeuds terminaux : relations noeuds intermdiaires : oprations relationnelles noeud racine : rsultat arcs : flux de donnes
Arbre algbrique
n RESTRICTION
V. CRU = V
n PROJECTION
"BEAUJOLAIS"
V.NV, V.CRU
n TRI
V.CRU, V.MILL
n JOINTURE
A. NV = A
n DIFFERENCE
V. NV
V B1
B2
n AGREGAT
n PRODUIT CARTESIEN
n UNION
COUNT(*),AVG(DEGRE) V.CRU, V.MILL
B1 B2 B1
B2
V
EXEMPLE D'ARBRE
Consommateur (NC,NOM,PRENOM,ADRESSE,REGION) Aconsommer (NC,NP,DATE,QUANTITE) Produit(NP,NOMP,REGION,CHOIX) REQUETE : "NOM ET PRENOM DES COSOMMATEURS PARISIENS AYANT COSOMMER DU P1 , AVANT LE 8 AOUT 2007"
P.NOMP= P1
Cot d'excution:
10 millions de consommateurs dont 1 m Paris 10 millions d aconsommer dont 10000 de P1 1000 Produits 10 m + 10m * 1m + 10 m * 1000 + de l'ordre de 10 ** 13 comparaisons de tuples !!!
A.NP
P.NP
C.NC
A.NC
PRODUIT P
= C.VILLE "PARIS"
ACONSOMMER A
CONSOMMATEUR C
Exemple BD Films
Film (idFilm, titre, anne, genre, rsum, codePays) Artiste (idArtiste, nom, prnom, anneNaissance) Role (idActeur, idFilm, nomRle) Pays (code, nom, langue)
il y a autant de plans dexcution que de blocs dans une requte. L'optimiseur se concentre sur un bloc la fois Pour optimiser l'excution : limiter le nombre de blocs imbriqus
Un seul bloc
2 blocs
Restructuration algbrique
Base sur des rgles de rcritures, proprits des oprateurs algbriques Consiste rorganiser les oprations de la requte
Problme :
suivant l'ordre des oprateurs algbriques dans un arbre, le cot d'excution est diffrent
Pourquoi?
1. le cot des oprateurs varient en fonction du volume des donnes traites i.e., plus le nombre de tuple des relations traites est petit, plus les cots cpu et d'E/S sont minimiss 2. certains oprateurs diminuent le volume des donnes e.g., restriction et projection
Rgles de Restructuration
(1) Commutativit des jointures (2) Associativit des jointures (3) Groupabilit des restrictions (4) Semi-commutativit des projections et restrictions (5) Semi-commutativit des restrictions et jointures (6) Semi-distributivit des projections / jointures (7) Distributivit des restrictions / unions ou diffrences (8) Distributivit des projections / unions
S
<==> X
X
R1
R2
R2
R1
Ai = a et Aj = b Aj = b
A1
A1 A2 <==>
Il est possible de descendre les projections, mais les attributs utiliss dans la suite doivent tre conservs !!!
A1, Ap A1, Ap
Ai = a
Ai = a
Ai, A1, Ap
Ai = vi
<==>
R2 (.. Bj..) X Ai = vi
R1 (.. Ai..)
R2 (.. Bj..)
R1 (.. Ai..)
A1 = vi
<==>
A1 = vi
R2 (.. Bj..)
R1 (.. Ai..)
R2 (.. Bj..)
R1 (.. Ai..)
A1..Ap <====>
A1..Ap
A1..Ap
R2(..AI..)
Excuter tout dabord les oprations unaires (slection, projection) puis les oprations binaires Pour considrer les arbres de flux de donnes minimum, dplacer les slections et les projections vers le bas Si deux projections successives portent sur une mme relation, les regrouper et liminer des ventuelles projections inutiles ai auraient pu apparatre ( projection sur tout les attributs)
1. 2. 3. 4.
5.
Utiliser la rgle (3) pour dcomposer une slection comportant plusieurs prdicats en une squence de slection Pour chaque slection dplacer les slections aussi bas que possible dans larbre (rgles 4, 5 et 7) Pour chaque projection, dplacer les projetions aussi bas que possible dans larbre (rgles 4, 6 et 8) Combiner les squences de slections et de projections en une seule slection, une seule projection, ou une slection suivie par une projection. L'ordre des unions, diffrences et jointures reste inchang !!!
A.NP
P.NP
P.NP
C.VILLE = "PARIS"
Optimisation physique
Loptimisation logique est insuffisante pour un plan dexcution de cot minimal Optimisation physique Recherche d'un plan d'excution physique combinant des oprateurs physiques (chemins daccs et traitements de donnes)
Algbrique/Physique
Plusieurs oprations algbriques peuvent tre implantes par une seule opration physique
Exemple : slection et projection peuvent tre ralises par un seul parcours squentiel
Liste ordonne d'oprateurs physiques avec chemins d'accs aux tables et index et indication de tri d'une table
Chemins d'accs
1. Balayage squentiel 2. Accs par adresse 3. Parcours dindex 4. Accs par hachage
Plan optimal
L'optimiseur compare une estimation de cot des oprations Pour une slection Att>a avec un index sur Att, sont compares une estimation par balayage squentiel et une estimation par parcours de l'index
SELECT F.titre FROM Film F, Pays P 5 WHERE F.codePays = P.code AND Acces par adresse Film P. nom='ITALY' 4
Italy
2
Slection
Algorithmes
On a gnralement le choix entre plusieurs algorithmes pour effectuer une opration algbrique
Algorithmes de SELECTION
ou
Parcours squentiel
On lit le fichier bloc par bloc Quand un bloc est en mmoire, on traite les enregistrements quil contient
Accs direct
on obtient (avec un index) ladresse des enregistrements ou du bloc parcourir avec cette adresse on va parcourir le bloc, pour y lire lenregistrement
Exemple
Le fichier occupe 500 blocs, une lecture de bloc prend 0,01 s (10 millisecondes). Un parcours squentiel (ou la moiti pour une recherche par cl) prendra 5 secondes Une recherche par index ncessite 2 ou 3 accs pour parcourir lindex, et un seul accs pour lire lenregistrement :
4x0.01=0.04s=40 milisecondes
Si la recherche est sur une cl : oui Sinon se poser les questions suivantes : 1. Le critre de recherche porte-t-il sur un ou sur plusieurs attributs ? Sil y a plusieurs attributs, les critres sont-ils combins par des and ou des or ? 2. Quelle est la slectivit (pourcentage des lignes concernes) de la recherche ?
A attribut de la table R
Exemple
On suppose quun index a t cr sur idFilm. SELECT * FROM Film WHERE idFilm = 20 AND titre = Vertigo; On passe par lindex.
SELECT * FROM Film WHERE idFilm = 20 OR titre = Vertigo On ne passe pas par lindex.
Algorithmes de TRI
Utiliss pour
les ORDER BY
les algorithmes de jointure (sort/merge) llimination des doublons (clause DISTINCT) les oprations de regroupement (GROUP BY)
Algorithmes de JOINTURE
jointure par boucles imbriques jointure par tri-fusion jointure par hachage
utiliser quand les tailles des relations sont petites Pour chaque tuple r de R
Plus efficace que les boucles imbriques pour de grosses tables R joint A=B S
Algorithme rcent, encore peu rpandu Trs efficace quand une des deux tables est petite Ncessite d'avoir des statistiques
On hache la plus petite des deux tables R1 sur l'attribut de jointure avec une fonction H On parcourt squentiellement la deuxime table R2 ; pour chaque tuple de R2, on consulte la page indique par H ; si la page contient des tuples de R2, on les joint
On balaye la table non indexe R1 Pour chaque tuple de R1, on utilise lindex sur l'attribut de jointure de R2 pour trouver les tuples de R2 qui satisfont la condition de jointure
L'optimiseur compare une estimation des cuts pour les oprations L'estimation du cot d'une opration physique utilise un modle de cot qui dpend de
Statistiques
Elles permettent dajuster le choix de lalgorithme, par exemple,
1. Boucles imbriques simples si les relations sont petites 2. Balayage squentiel au lieu de parcours dindex si la slectivit est faible.
Objectifs
Dans lhypothse dune base centralise, on cherche essentiellement limiter le nombre dentres/sorties. Stratgies :
Soit on cherche obtenir le premier enregistrement le plus vite possible (exemple dune application interactive). Soit on cherche minimiser le temps globaldexcution (exemple dune application batch).
Rcriture
Requte (Algebrique)
Gnrateur de Plans Stratgie de Recherche
Modle de cot
Espace de Recherche
Estimateur de tailles
Mthodes dimplantation
La restructuration algbrique est insuffisante car elle nordonne pas les oprations binaires. Aussi lapplication dune slection initiale peut faire perdre un index qui serait utile pour excuter une jointure. Solution possible:
Gnrer tous les plans Estimer le cot de chacun Choisir celui du moindre cot. liminer a priori tous les plans qui font appel a des produits cartsiens liminer tous les plans qui neffectuent pas les slections des que possible
Optimisation physique de requtes dans les SGBD est modlise selon 3 composantes:
Espace de recherche : dcrit de faon abstraite lensemble des plans dexcution alternatifs pour reprsenter la requte a optimiser (espace des possibilits=espace de tous les plans possibles) Modle de cot/ fonction de cot: prdire le cot dun plan dexcution
Pour comparer les plans dexcutions, loptimiser a besoin dun modle de cot, qui associe une valeur ou un vecteur de valeurs a chaque plan Ces valeurs sont des estimations de diverses caractristiques de lexcution du plan, par exemple le nombre dE/S disque. Elles se basent sur des informations statistiques maintenues dans le catalogue
Stratgie de recherche:
Dcrit les plans dexcution qui sont explors et dans quel ordre, Produit le meilleur plan dexcution relativement a lensemble des plans examins.
Modle de cot
Ncessite la connaissance :
Taille des rsultats intermdiaires de toutes les oprations considres Prise en compte des chemins daccs aux relations (index, placement) qui change directement ces cots.
Le modle simple est celui qui suppose luniformit de la distribution des valeurs et lindpendance des attributs. Un tel modle ncessite de connatre au minimum:
Le nombre de valeur dun attribut A not CARD(A) Les valeurs minimum et maximum dun attribut A, MIN(A), MAX(A) Le nombre de valeurs distinctes de chaque attribut A not NDIST(A) Le nombre de tuples de chaque relation R not CARD(R) Le nombre de tuples dune restriction (R) est alors calcul par la formule: CARD((R)) = s(critre)*CARD(R)
Facteur de slectivit
s(critre) dsigne la probabilit que le critre soit vrifi appel aussi facteur de slectivit ou prdicat de restriction
Coefficient associ a une table reprsentant la proportion de tuples de la table satisfaisant la condition de slection.
TAILLE (s(R)) = s * TAILLE(R) avec: s (A = valeur) = 1 / NDIST(A) s(A > valeur) = (max(A) - valeur) / (max(A) - min(A)) s(A < valeur) = (valeur - min(A)) / (max(A) - min(A)) s (A IN liste valeurs) = (1/NDIST(A)) * CARD(liste valeurs) s(P et Q) = s(P) * s(Q) s(P ou Q) = s(P) + s(Q) - s(P) * s(Q) s( not P) = 1 - s(P)
Le nombre de tuples dune projection sur un groupe dattributs X est plus simplement donne par la formule:
CARD((R))=(1-d)*CARD(R))
Avec d = probabilit de doubles. La probabilit de doubles peut tre estime en fonction du nombre de valeurs distinctes des attributs composant X.
p dpend du type de jointure et de la corrlation des colonnes : p = 0 si aucun tuple ne joint p = 1 / MAX(NDIST(A),NDIST(B)) si distribution uniforme quiprobable des attributs A et B sur un mme domaine p = 1 si produit cartsien
Stratgies de Recherche
Le nombre de plans dexcution possibles peut tre trs grands pour des questions complexes, afin dviter de les explorer tous, les optimiseurs modernes sont construits comme des gnrateurs de plans couples a une stratgie de recherche dcoulant des techniques doptimisation de la recherche oprationnelle Procdure utilise par loptimiseur pour explorer lespace des plans dexcutions afin de dterminer un plan de cot proche du minimum possible.
Diffrentes Stratgies
Stratgie de recherche
Enumrative
Alatoire
Exhaustive
Augmentation
Amlioration itrative
Recuit simul
Gntique
Stratgies de recherche
Stratgies numratives:
Stratgies exhaustives: les numrent tous Stratgies par augmentation: les construisent progressivement en partant par exemple de la projection finale et en introduisant progressivement les relations par ordre de taille croissante, elle vitera en gnral les produits cartsiens et appliquera des que possible restriction et projection.
Stratgies alatoires
Lamlioration itrative: tire au hasard n plans et essaie de trouver pour chacun deux le plan optimum le plus proche. Loptimum des plans localement optimum est alors retenu comme plan daccs La stratgie du recuit simul procde a partir dun plan quon tente doptimiser en appliquant les transformations successives. Les transformations retenues amliorent le plan exceptes quelques unes introduites afin dexplorer un espace plus large. Stratgie gntique: visent a fusionner deux plans pour en obtenir un 3eme.
Problme dordonnancement
Il faut pouvoir ordonner les jointures, union diffrences en fonction des tailles des relations arguments. Ncessit de dvelopper un modle de cot gnral permettant d'valuer le cot d'un plan, c'est--dire d'un arbre annot par des choix d'algorithmes. Annotation:
Marque associe un noeud indiquant l'algorithme utiliser pour l'oprateur avec ses paramtres (index, hachage, )
Optimisation physique
Utilisation des indexs jointure par index , etc... Structures de donnes existantes Statistiques sur les relations Algorithmes existants
En fonction de
Modles de cot
Estimation du cot : nombre d'accs des pages (blocs) sur disque Variables
Nombre d'enregistrements d'une table Nombre de pages occupe par une table sur disque Mmoire disponible en nbre de pages
Conventions
Nombre de tuples N ou NR ou card Nombre de blocs B ou BR Nombre de niveaux et nombre de blocs feuilles de l'index multi-niveaux I sur A
nNiveauxA(I) , nBlocsFA(I)
CSA(R)
1. Parcours squentiel (fichier non tri) sans index 2. Recherche binaire (fichier tri) sans index 3. Condition d'galit sur la cl primaire 4. Condition d'ingalit sur la cl primaire 5. Condition d'galit sur un index secondaire 6. Condition d'ingalit sur un index secondaire en arbre B+
1.
Slection A=a sans index sur A Parcours squentiel sur fichier non tri :
2. Slection A=a sans index sur A Recherche binaire sur fichier tri sur A:
Oprateur de jointure
Jointure Sans Index: Boucles imbriques Tri fusion Hachage
}
Cout en E/S= Page(R1)*LOG(Page(R1)) + Page(R2)*LOG( Page(R2)) + Page(R1)+ Page(R2)
}
}
: BR +BR *BS
Oprateur de jointure
Une des relations (R1) est indexe sur lattribut de jointure, il suffit de balayer la deuxime relation et daccder au fichier indexe pour chaque tuple. Le cot est de lordre 3*CARD(R2), en supposant 3 accs en moyenne pour trouver un article dans le fichier index Les 2 relations sont indexes sur les attributs de jointure, il suffit de fusionner les 2 index. Lalgorithme est peu coteux en E/S.