Академический Документы
Профессиональный Документы
Культура Документы
Transaction
• Une transaction:
– séquence d'instructions (LMD) qui soit réussit, soit
échoue.
• Les transactions doivent posséder les
propriétés ACID :
• Atomicité : les opérations sont exécutées dans leur
totalité ou pas du tout (begin, commit, abort): une
transaction est complète ou abandonnée
complètement .
• Consistance : transformation correcte de l ’état du
système (ne violant aucune contrainte d ’intégrité):
une transaction doit transformer le système d'un
état consistant à un autre état consistant.
2
• Isolation : les changements sur les données ne
sont visibles par les autres transactions
qu ’une fois la transaction achevée: chaque
transaction est vue indépendamment des
autres
• Durabilité : les modifications qui suivent une
validation doivent survivre à une panne du
système: les transactions validées ont des
effets permanents
3
4
Traitement de requêtes séquentielles
• L’exécution d’une requête séquentielle passe
par plusieurs phases:
– une analyse lexicale, syntaxique et sémantique est
effectuée,
– la requête est transformée en un arbre d’exécution
logique,
– Cet arbre est optimisé par l’application des
transformations de l’algèbre relationnelle
– un plan d’exécution physique est produit en
choisissant le meilleur chemin d’accès aux données.
Analyse de requête
• Vérifier la validité de la requête en consultant
le dictionnaire de données pour voir l’existence
des relations et des attributs .
• Examiner la validité grammaticale.
• Pour générer un plan d’exécution optimal, des
simplifications sémantiques sont effectuées tel
que la détection de contradiction (ex :age=12 et
age>15)
Traduction algébrique
• Traduire la requête en une expression
algébrique sous forme d’arbre.
• L’arbre est composé des nœuds, des arcs, et
des feuilles.
– les feuilles représentent les tables (relations),
– les nœuds représentent les operateurs
algébriques,
– les arcs représentent, les flux de données allant
d’un nœud fils vers son nœud père.
• Le résultat est un Plan d’Exécution
Logique(PEL) qui sera transformé en un Plan
d’Exécution Physique(PEP)
• L’exécution débute des feuilles qui manipulent
les tables, les résultats sont ensuite envoyés
aux nœuds pères et ainsi de suite jusqu’à
l’obtention de résultat final à la racine.
Optimisation
• L’optimisation se déroule en deux phases :
l’optimisation logique et l’optimisation physique.
• 1 L’optimisation logique(Rewriting) :
• Le principal but est de réduire le volume de
données manipulé en appliquant les règles de
transformation de l’algèbre relationnelle ainsi
que des heuristiques pour produire de bonnes
stratégies d’exécutions.
• 1-1 Règles de transformation de l’algèbre
relationnelle :
– 1. Commutativité des jointures :
14
Requête répartie
• Les opérations précédentes (par exemple)
accèdent à des données situées sur différents
sites.
• Le SGBD gère les accès distants en répartissant
la requête
– Exécution distante de la sous requête
– Récupération de données résultat
– Assemblage local (requête en lecture)
15
Optimisation de requête répartie
• Optimiser: choisir parmi de nombreuses possibilités, une
stratégie d'exécution de requête efficace.
• Établissement d’un plan d’évaluation optimal
• Optimisation d’une fonction de coût ou de temps de
réponse:
• coût global :
– coût(E/S)
– coût(Processeur)
– coût(Communication) (messages) …
• Ex: Si l'utilisateur soumet une requête au SGBD, le
composant Query Processor (Oracle) récrit la requête sous
une forme plus simple, et optimale.
• L'optimisation d'une requête intervient à deux principaux
niveaux :
– Décomposition de la requête
– Répartition de la requête
• Décomposition de la requête
– Normalisation: écrire la partie critère (contenu dans la clause WHERE)
sous forme d'une conjonction de coordination ou disjonction de
conjonction de prédicats WHERE (a et b) ou (c et d).
– Analyse: détecter et éliminer les erreurs
la présence de champs ou relations inexistants, l'incohérence des valeurs
données avec les types réels des champs, etc.
– Elimination des redondances
• NON (NON A) == A
• A ET A == A
• A OU A ==A
– Réécriture: réécrire la requête en une forme qui améliore ou optimise
le temps de traitement global.
• Répartition de la requête
– décomposer la requête globale en requêtes sur les
fragments
– des reconstructions sont encore faites afin d'annuler les
formules dont les conditions ne respectent pas les
restrictions des fragments auxquelles elles font référence.
– on peut remplacer certaines opérations par d'autres,
comme la jointure par la semi-jointure car moins coûteuse.
– selon la localisation de chaque fragment et l'existence ou
non de relations répliquées, une stratégie d'exécution est
mise en place afin de minimiser les trafics réseaux et
bénéficier de rapides accès aux données et traitements du
CPU.
Schéma général de l’optimisation
• Dans un système distribué, l'optimisation peut se
faire de trois manières principales :
– Une optimisation centralisée: un site central détermine
la stratégie d'exécution sur tous les autres sites.
• l'optimisation est plus facile mais souvent peu efficace car il
faudrait connaître exactement les indices de chaque site…
– Une optimisation distribuée où chaque site a sa propre
stratégie d'optimisation
– les deux première méthodes pour en faire une hybride:
• dans un premier temps, un site décide de l'optimisation
globale et ensuite chaque site optimise à son tour, à son
niveau.
Utilisateur Les composants d'un
réponse du système demande de l'utilisateur DBMS distribué et le
déroulement de
requêtes
Processor de l'utilisateur
contrôleur sémantique des données
schéma
conceptuel global
données et les autorisations qui ont été définies dans le schéma conceptuel global
des données. Le contrôleur se base sur eux pour vérifier si la requête de l'utilisateur
• 3) L'optimiseur global des requêtes est aussi leur décomposeur, il détermine une
conceptuel global ainsi que les schémas conceptuels locaux et le dictionnaire global.
transactions distribuées.
schéma conceptuel local
processeur de requête local
Processor des données
45
46
SELECT nom, prénom FROM
buveurs (B), vins (V),
commandes (C)
WHERE V.cru = « Volnay »
AND V.degré > 12 AND
C.quantité > 100
AND C.N°V = V.N°V AND
C.date >1/1/2000 AND B.N°B
= C.N°B
AND B.ville = « Paris »
Recommandations de C.J Date (12)
• L'AUTONOMIE LOCALE
– Chaque site doit fonctionner indépendamment des autres même s’il y a des pannes. Donc
chaque site est responsable de l'intégrité, la sécurité et la gestion de sa base de données.
• NE PAS SE REPOSER SUR UN SITE UNIQUE
– Viser à éviter des arrêts de production lorsqu'un site tombe en panne. On peut soit penser à
ce que Oracle appelle la réplication avancée ou les données sont entièrement répliquées
d'un site à l'autre.
• OPERATION EN CONTINU
– Assurer le fonctionnement continu du système réparti par des mises à jour et maintenances
effectuées.
• TRANSPARENCE VIS A VIS DE LA LOCALISATION
– Rendre l'accès aux données transparentes sur tout le réseau (les liens de base de données et
les synonymes)
• INDEPENDANCE VIS A VIS DE LA FRAGMENTATION
– La fragmentation doit être réelle et respectée sur chaque site, indépendamment.
• INDEPENDANCE VIS A VIS DE LA REPLICATION
– Chaque site doit bien gérer ses réplications.
• TRAITEMENT DES REQUETES DISTRIBUEES
– Chaque site doit avoir des outils et stratégies d'optimisation.
• GESTION REPARTIE DES TRANSACTIONS
– Généralement les SGBD utilisent des protocoles de validation à 2 phases.
• UNE INDEPENDANCE VIS A VIS DU MATERIEL
– Le SGBD ne doit pas dépendre du matériel
• UNE INDEPENDANCE VIS A VIS DU SYSTEME D'EXPLOITATION
– Il est important que les SGBD utilisés soient utilisables sur plusieurs systèmes
d'Exploitation.
• UNE INDEPENDANCE VIS A VIS DU RES EAU
– L'idéal serait que chaque SGBD réparti ait son propre protocole réseau comme
Oracle, pour faire communiquer les différentes instances.
• UNE INDEPENDANCE VIS A VIS DU TYPE DE LA BASE DE DONNEES
RELATIONNELLE
– De plus en plus, il est possible d'interconnecter des SGBD de types différents, au
moyen des standards tels que ODBC, JDBC et des middlewares fournis par les
constructeurs eux-mêmes.