Bases de données
Bases de données Bases de données
496 • BASES DE DONNÉES : OBJET ET RELATIONNEL n 0 si Ci –1est groupée avec Ci Pagemax= Σ i =2 C1 * Π fan * S Cj j =2 –1,Cj j –1sinon – Si le nombre de pages disponibles en mémoire p est compris entre n et Pagemin, la mémoire ne peut contenir toutes les pages nécessaires à l’évaluation de l’expression de chemin. Le coût d’entrées-sorties dépend de la politique de remplacement des pages du SGBD. Certaines pages devront être lues plusieurs fois. Il est possible d’approcher le nombre d’entrées-sorties par une fonction linéaire entre Pagemin et Pagemax, comme suit : NbPage = Page max – Page min Page min – n Finalement, le coût d’évaluation d’un prédicat P constitué d’une expression de chemin qualifiée avec p pages disponibles en mémoire centrale est : IO_Eval_Cost(P)= NbPage if n ≤ p < Page min Page min if p ≥ Page min Le coût de calcul associé à l’évaluation d’un tel prédicat est le coût de projection plus le coût d’évaluation des prédicats élémentaires pour chaque objet traversé, soit : CPU_Eval_Cost(P)=C1 *(CPU_Pr oj_Cost n i + CPU_Comp_Cost)* Σ Π fanCj i =2 –1 , C * S i =2 J j –1) 6.6. COÛT DE JOINTURE *(n – p)+Page max En dehors des parcours de références évalués ci-dessus pour l’algorithme DFF, les algorithmes de jointures sont analogues à ceux des bases relationnelles. Vous pouvez donc vous reporter au chapitre concernant l’optimisation de requêtes dans les BD relationnelles pour trouver les formules de coût applicables. Des formules plus détaillées pourront être trouvées dans [Harris96]. Plus généralement, en dehors du groupage des objets, des parcours de références et des index de chemins, les BD objet n’ont guère d’autres spécificités d’implémentation.
7. STRATÉGIES DE RECHERCHE DU MEILLEUR PLAN La recherche du meilleur plan d’exécution dans une base de données objet ou objetrelationnel est encore plus complexe que dans une base relationnelle. En effet, l’espace des plans est plus large du fait de la présence de références, d’index de chemins, de collections imbriquées, etc. Au-delà de la programmation dynamique classique limitée à des espaces de recherche de faible taille [Swami88, Swami89, Vance96] vue dans le cadre relationnel, des méthodes d’optimisation pour la recherche de plans optimaux basée sur des algorithmes aléatoires ont été proposées. Après les avoir présentés, nous proposons une méthode plus avancée basée sur des algorithmes génétiques. 7.1. LES ALGORITHMES COMBINATOIRES Les algorithmes combinatoires accomplissent une marche au hasard dans l’espace de recherche sous la forme d’une suite de déplacement. Un déplacement dans cet espace est généré par application d’une règle de transformation sur le plan d’exécution. Un déplacement est appelé descendant s’il diminue le coût du plan, montant s’il l’augmente. Un état (donc un plan) est un minimum local si tout déplacement unitaire augmente son coût. Le minimum global est celui parmi les minimums locaux qui a le plus faible coût. Cette classe d’algorithmes inclut l’amélioration itérative (Iterative Improvement [Nahar86]), le recuit simulé (Simulated Annealing [Ioannidis87]), l’optimisation deux phases (Two Phase Optimization [Ioannidis90]) et la recherche taboue (Tabu Search [Glover89, Glover90]). Nous présentons en détail ces méthodes ci-dessous. 7.2. L’AMÉLIORATION ITÉRATIVE (II) L’optimisation de requêtes objet • 497 L’amélioration itérative commence par un plan d’exécution initial choisi plus ou moins aléatoirement, par exemple celui résultant de la compilation directe de la requête utilisateur. Ensuite, seuls les déplacements descendants sont acceptés. C’est l’optimisation locale. Quand le minimum local est atteint, l’algorithme génère au hasard un nouveau plan, et recommence l’optimisation locale à partir de ce nouveau plan. Le processus est répété jusqu’à atteindre une condition d’arrêt, par exemple l’épuisement du temps d’optimisation. Le minimum global est le meilleur minimum local trouvé lors de l’arrêt. L’algorithme est donné en pseudo-code figure XIV.18.
- Page 481 and 482: Partie Contenu Titre Description 1
- Page 483 and 484: cachées et accessibles seulement p
- Page 485 and 486: (RUE CHAR(20), CODEPOST INT, VILLE
- Page 487 and 488: termes SQL, qui peuvent figurer dan
- Page 489 and 490: SELECT V.PROPRIETAIRE→NOM FROM VO
- Page 491 and 492: sortie) ou des fonctions (clause RE
- Page 493 and 494: Pour montrer la complétude du lang
- Page 495 and 496: 8. BIBLIOGRAPHIE L’objet-relation
- Page 497: L’objet-relationnel et SQL3 • 4
- Page 500 and 501: 464 • BASES DE DONNÉES : OBJET E
- Page 502 and 503: 466 • BASES DE DONNÉES : OBJET E
- Page 504 and 505: 468 • BASES DE DONNÉES : OBJET E
- Page 506 and 507: 470 • BASES DE DONNÉES : OBJET E
- Page 508 and 509: 472 • BASES DE DONNÉES : OBJET E
- Page 510 and 511: 474 • BASES DE DONNÉES : OBJET E
- Page 512 and 513: 476 • BASES DE DONNÉES : OBJET E
- Page 514 and 515: 478 • BASES DE DONNÉES : OBJET E
- Page 516 and 517: 480 • BASES DE DONNÉES : OBJET E
- Page 518 and 519: 482 • BASES DE DONNÉES : OBJET E
- Page 520 and 521: 484 • BASES DE DONNÉES : OBJET E
- Page 522 and 523: 486 • BASES DE DONNÉES : OBJET E
- Page 524 and 525: 488 • BASES DE DONNÉES : OBJET E
- Page 526 and 527: 490 • BASES DE DONNÉES : OBJET E
- Page 528 and 529: 492 • BASES DE DONNÉES : OBJET E
- Page 530 and 531: 494 • BASES DE DONNÉES : OBJET E
- Page 534 and 535: 498 • BASES DE DONNÉES : OBJET E
- Page 536 and 537: 500 • BASES DE DONNÉES : OBJET E
- Page 538 and 539: 502 • BASES DE DONNÉES : OBJET E
- Page 540 and 541: 504 • BASES DE DONNÉES : OBJET E
- Page 542 and 543: 506 • BASES DE DONNÉES : OBJET E
- Page 544 and 545: 508 • BASES DE DONNÉES : OBJET E
- Page 546 and 547: 510 • BASES DE DONNÉES : OBJET E
- Page 548 and 549: 512 • BASES DE DONNÉES : OBJET E
- Page 550 and 551: 514 • BASES DE DONNÉES : OBJET E
- Page 553 and 554: 1. INTRODUCTION Chapitre XV BASES D
- Page 555 and 556: 2. le support des ensembles incluan
- Page 557 and 558: Horn. La figure XV.2 illustre les n
- Page 559 and 560: 1. des variables dénotées x, y, z
- Page 561 and 562: Chaque relation récursive nécessi
- Page 563 and 564: sémantique de la preuve. Dans cett
- Page 565 and 566: et de la règle DIRIGE1 (x,y) ← S
- Page 567 and 568: on calcule : TP = { PARENT = PARENT
- Page 569 and 570: 4.2. NÉGATION EN CORPS DE RÈGLES
- Page 571 and 572: Bases de données déductives • 5
- Page 573 and 574: ¬ CIRCUIT(x,f1,o,e1,i1),¬ CIRCUIT
- Page 575 and 576: n’est pas sain car il génère un
- Page 577 and 578: Remarquons que le groupage ne donne
- Page 579 and 580: DESC Jean Marie Jack Figure XV.13 :
- Page 581 and 582: demande de comprendre les connexion
7. STRATÉGIES DE RECHERCHE<br />
DU MEILLEUR PLAN<br />
La recherche du meilleur plan d’exécution dans une base <strong>de</strong> <strong>données</strong> objet ou objetrelationnel<br />
est encore plus complexe que dans une base relationnelle. En effet,<br />
l’espace <strong>de</strong>s plans est plus large du fait <strong>de</strong> la présence <strong>de</strong> références, d’in<strong>de</strong>x <strong>de</strong> chemins,<br />
<strong>de</strong> collections imbriquées, etc. Au-<strong>de</strong>là <strong>de</strong> la programmation dynamique classique<br />
limitée à <strong>de</strong>s espaces <strong>de</strong> recherche <strong>de</strong> faible taille [Swami88, Swami89,<br />
Vance96] vue dans le cadre relationnel, <strong>de</strong>s métho<strong>de</strong>s d’optimisation pour la<br />
recherche <strong>de</strong> plans optimaux basée sur <strong>de</strong>s algorithmes aléatoires ont été proposées.<br />
Après les avoir présentés, nous proposons une métho<strong>de</strong> plus avancée basée sur <strong>de</strong>s<br />
algorithmes génétiques.<br />
7.1. LES ALGORITHMES COMBINATOIRES<br />
Les algorithmes combinatoires accomplissent une marche au hasard dans l’espace <strong>de</strong><br />
recherche sous la forme d’une suite <strong>de</strong> déplacement. Un déplacement dans cet espace<br />
est généré par application d’une règle <strong>de</strong> transformation sur le plan d’exécution. Un<br />
déplacement est appelé <strong>de</strong>scendant s’il diminue le coût du plan, montant s’il l’augmente.<br />
Un état (donc un plan) est un minimum local si tout déplacement unitaire augmente<br />
son coût. Le minimum global est celui parmi les minimums locaux qui a le plus<br />
faible coût. Cette classe d’algorithmes inclut l’amélioration itérative (Iterative<br />
Improvement [Nahar86]), le recuit simulé (Simulated Annealing [Ioannidis87]),<br />
l’optimisation <strong>de</strong>ux phases (Two Phase Optimization [Ioannidis90]) et la recherche<br />
taboue (Tabu Search [Glover89, Glover90]). Nous présentons en détail ces métho<strong>de</strong>s<br />
ci-<strong>de</strong>ssous.<br />
7.2. L’AMÉLIORATION ITÉRATIVE (II)<br />
L’optimisation <strong>de</strong> requêtes objet • 497<br />
L’amélioration itérative commence par un plan d’exécution initial choisi plus ou<br />
moins aléatoirement, par exemple celui résultant <strong>de</strong> la compilation directe <strong>de</strong> la<br />
requête utilisateur. Ensuite, seuls les déplacements <strong>de</strong>scendants sont acceptés. C’est<br />
l’optimisation locale. Quand le minimum local est atteint, l’algorithme génère au<br />
hasard un nouveau plan, et recommence l’optimisation locale à partir <strong>de</strong> ce nouveau<br />
plan. Le processus est répété jusqu’à atteindre une condition d’arrêt, par exemple<br />
l’épuisement du temps d’optimisation. Le minimum global est le meilleur minimum<br />
local trouvé lors <strong>de</strong> l’arrêt. L’algorithme est donné en pseudo-co<strong>de</strong> figure XIV.18.