Ajout du cours 5
authorKim Nguyễn <kn@lri.fr>
Mon, 31 Mar 2014 09:51:37 +0000 (11:51 +0200)
committerKim Nguyễn <kn@lri.fr>
Mon, 31 Mar 2014 09:51:37 +0000 (11:51 +0200)
bd/bd04.xhtml
bd/bd05.xhtml [new file with mode: 0644]
bd/left_deep.svg [new file with mode: 0644]
bd/pdf/bd05.pdf [new file with mode: 0644]
bd/pdf/bd05_print.pdf [new file with mode: 0644]
bd/simple_plan.svg [new file with mode: 0644]
bd/simple_plan1.svg [new file with mode: 0644]
bd/simple_plan2.svg [new file with mode: 0644]

index 127462c..15fc600 100644 (file)
@@ -55,6 +55,7 @@
     <h1>Motivation</h1>
     <div class="sws-slide">
       <h1>Principe d'évaluation d'une requête</h1>
+      <div style="padding-left:15pt;">
       <ol>
        <li><i>Parsing</i> de la requête</li>
        <li>Traduction en arbre
@@ -76,7 +77,9 @@
        <li>(Éventuellement mise à jour des statistiques)</li>
       </ol>
       <p>Avant de s'intéresser à l'évaluation complète d'une requête,
-       on étudie l'évaluation des opérateurs et leur coût respectifs</p>
+       on étudie l'évaluation des opérateurs et leur coût
+       respectifs</p>
+      </div>
     </div>
     <h1>Algorithmes de jointure</h1>
     <div class="sws-slide">
@@ -85,7 +88,7 @@
           FROM people,role
           WHERE people.pid = role.pid;
 </code>
-      <p>Opéreeation <em>fondamentale</em> utilisée
+      <p>Opération <em>fondamentale</em> utilisée
       par <em>toutes</em> les applications BD.<br/>
        L'AR nous dit que <tt>R &join; S = &sigma;<sub>=</sub>(R x
       T)</tt>, mais c'est <s>très inefficace</s>, on veut optimiser ce cas!
diff --git a/bd/bd05.xhtml b/bd/bd05.xhtml
new file mode 100644 (file)
index 0000000..9d7e4bf
--- /dev/null
@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+[
+         <!ENTITY in  "<small style='font-size:small'>∈</small>">
+         <!ENTITY notin  "<small style='font-size:small'>∉</small>">
+         <!ENTITY mapsto  "↦">
+         <!ENTITY join    "⨝">
+]
+          >
+<html xmlns="http://www.w3.org/1999/xhtml" >
+  <head>
+    <title>Optimisation de requêtes</title>
+
+    <meta http-equiv="Content-Type"
+          content="text/html; charset=utf-8" />
+    <meta name="copyright"
+          content="Copyright &#169; 2013 Kim Nguyễn" />
+
+    <!-- Load jQuery -->
+    <script src="../jquery-2.0.3.min.js" type="text/javascript" ></script>
+    <script src="../libs/raphael-min.js" type="text/javascript" ></script>
+    <!-- Load the library -->
+    <script src="../simpleWebSlides.js" type="text/javascript" ></script>
+
+    <link rel="stylesheet" href="../simpleWebSlides.css" type="text/css"  media="all" />
+    <!-- Load a custom Theme, the class-element marks this style-sheet
+         a "theme" that can be swtiched dynamicaly -->
+    <link class="sws-theme" rel="stylesheet"  title="U-Psud style"  href="../themes/uPsud.css" type="text/css" />
+
+    <!-- Customize some templates and initialize -->
+
+    <script type="text/javascript">
+      SWS.Config['sws-slide-change'] = SWS.Effects.slideChangeFadeOutIn;
+      SWS.Config['sws-object-deactivate'] =  SWS.Effects.objectDeactivateFadeOut;
+      SWS.Config['sws-object-activate'] = SWS.Effects.objectActivateFadeIn;
+
+      //Ensures that we load SWS at the very end, after MathJax has
+      //been initialized
+
+      $(window).load(SWS.Presentation.init);
+    </script>
+  </head>
+  <body>
+    <a href="bd03.xhtml" class="sws-previous"/>
+    <div class="sws-slide sws-cover sws-option-nofooter">
+      <h1>Bases de données</h1>
+      <h3>Polytech Paris-Sud</h3>
+      <h3>Apprentis 4<sup>ème</sup> année</h3>
+      <h1>Cours 5 : Optimisation des requêtes</h1>
+      <a href="mailto:kn@lri.fr">kn@lri.fr</a><br/>
+      <a href="http://www.lri.fr/~kn/">http://www.lri.fr/~kn</a>
+    </div>
+
+    <h1>Motivation et introduction</h1>
+    <div class="sws-slide">
+      <h1>Principe d'évaluation d'une requête</h1>
+      <div style="padding-left:15pt;">
+      <ol>
+       <li><i>Parsing</i> de la requête</li>
+       <li>Traduction en arbre
+       d'opérateurs de l'algèbre
+       relationnelle <span class="sws-onframe-1-3"><em>(&pi;,
+       &sigma;, ⨝, … )</em></span></li>
+       <li>Optimisation :
+         <ol>
+           <li>Génération de <em>plans
+           d'évaluation</em> <span class="sws-onframe-2-3">(en
+           réordonnant les <em> opérations élémentaires</em>)</span></li>
+           <li>Estimation du <em>coût</em> de chacun des
+           plans <span class="sws-onframe-3-3">(en fonction du <em>coût
+           des opérations élémentaires</em>)</span></li>
+           <li>Choix du plan le plus <em>efficace</em></li>
+         </ol>
+       </li>
+       <li>Évaluation du plan choisi</li>
+       <li>(Éventuellement mise à jour des statistiques)</li>
+      </ol>
+      <p>On va voir comment optimiser l'évaluation d'une requête</p>
+      </div>
+    </div>
+    <div class="sws-slide">
+      <h1>Exemple pour la suite du cours</h1>
+<code>  Sailors(<u>mid: integer</u>, sname: string, rating: integer, age: real);
+  Reserves(<u>sid: integer, bid: integer, day: date</u>, rname: string);
+  Boats(<u>bid: integer</u>, bname: string, capacity: integer);
+</code>
+<ul>
+  <li><em>Sailors</em>: 50 octets/enr., 80 enr/page, 500
+  pages</li>
+  <li><em>Reserves</em>: 40 octets/enr., 100 enr/page, 1000
+  pages</li>
+  <li><em>Boats</em>: non utilisé dans la suite</li>
+</ul>
+    </div>
+    <div class="sws-slide">
+      <h1>Généralités</h1>
+      <p>Un <em>plan d'exécution</em> de requête est un <em>arbre</em>
+      dont les noeuds sont des opérateurs de l'algèbre relationnelle
+      annotés avec un algorithme particulier.
+      </p>
+      <ul>
+       <li>Pour une requête donnée, quels plans doit-on considérer
+       ?</li>
+       <li>Comment peut on estimer le coût total d'un plan</li>
+      </ul>
+      <p>Idéalement, on veut trouver le meilleur plan. En pratique, on
+      choisira le moins pire!</p>
+    </div>
+    <div class="sws-slide">
+      <h1>Exemple</h1>
+<code>
+  SELECT S.sname
+  FROM Reserves R, Sailors S
+  WHERE R.sid = S.sid AND bid = 100 AND rating > 5
+</code>
+<p><img class="sws-pause" src="simple_plan.svg" width="50%"/></p>
+<ul>
+  <li class="sws-pause">Cout: 500+500*1000 E/S (pourquoi ?)</li>
+  <li> Plusieurs occasions manquées : pas d'utilisation d'index, on
+  aurait pu pousser la selection sous la jointure, …</li>
+  <li> Notre but est de trouver des plans d'exécution plus efficaces
+  qui calculent le même résultat</li>
+</ul>
+    </div>
+    <div class="sws-slide">
+      <h1>Plan alternatif 1 (sans index)</h1>
+<p><img class="sws-pause" src="simple_plan1.svg" width="50%"/></p>
+<p class="sws-pause">On pousse la sélection sous la jointure (car
+  selection <tt>AND</tt>). On suppose qu'on a 100
+  bateaux, 10 notes et distributions uniformes. </p>
+<ul>
+  <li>Scan Reserves (1000 E/S) et écriture de 10 pages dans T1</li>
+  <li>Scan Sailors (500 E/S) et écriture de 250 pages dans T2</li>
+  <li>Tri T1 (3*10 E/S), Tri T2 (8*250 E/S), fusion (10+250 E/S)</li>
+  <li>Total: <em>4050 E/S</em></li>
+  <li>Si on pousse la projection, T1 ne contient que sid, T2
+    uniquement sid et sname (cout <tt>&lt;</tt> 2000 E/S)</li>
+</ul>
+    </div>
+    <div class="sws-slide">
+      <h1>Plan alternatif 2 (avec index)</h1>
+<p><img class="sws-pause" src="simple_plan2.svg" width="50%"/></p>
+<p class="sws-pause">On suppose un hash-index groupant sur <tt>bid</tt>
+</p>
+<ul>
+  <li>Accès au premier enregistrement <tt>bid=100</tt> 1.2 E/S</li>
+  <li>Accès aux suivants: 9 E/S</li>
+  <li><tt>sid</tt> est une clé pour Sailors. On a un hash-index dessus
+  (forcément non-groupant)</li>
+  <li>Pour chacun des 10 * 100 enr. tels que <tt>bid=100</tt> on
+  cherche l'enregistrement de Sailors avec le même <tt>sid</tt> (1.2
+  E/S/enr)</li>
+  <li>Coût total: 1000 * 1.2 + 10.2 = 1210 E/S</li>
+</ul>
+    </div>
+<div class="sws-slide">
+<h1>Algorithme général de choix de plan</h1>
+<ul><li>Cas mono-relation (une seule table dans le <tt>FROM</tt>):
+    <ol><li>On énumère tous les plans (en tenant compte des
+    équivalences de l'algèbre relationnelle)</li>
+      <li>On calcule le coût de chaque plan</li>
+      <li>On choisit le plan de moindre coût</li>
+    </ol>
+  </li>
+<li>Cas multi-relations (plusieurs tables dans le <tt>FROM</tt>):
+    <ol><li>Trop de plan pour les énumérer tous, on choisit des arbres
+    ayant une certaine forme </li>
+      <li>On calcule le coût de chaque plan</li>
+      <li>On choisit le plan de moindre coût</li>
+    </ol>
+</li>
+  <li>On sait (cours 4) estimer le coût d'un opérateur en fonction de
+  la taille de l'entrée. On va enchaîner les opérateurs donc il faut
+  estimer <em>la taille du résultat</em> pour calculer
+  le <em>coût</em> de l'opérateur suivant!</li>
+</ul>
+</div>
+<h1>Estimation de coût</h1>
+<div class="sws-slide">
+<h1>Statistiques et catalogues</h1>
+<p>On a besoin d'informations numériques sur les relations et les
+  indexes. Un <em>catalogue</em> contient en général:</p>
+<ul><li>Le nombre d'enregistrements (<tt><s>NEnr</s></tt>) et le
+    nombre de pages (<tt><s>NPages</s></tt>) de la relation.
+    </li>
+  <li>Le nombre de clés distinctes (<tt><s>NClés</s></tt>) pour les
+  indexes ainsi que leur taille en pages</li>
+  <li>La hauteur ainsi que les clés min/max dans l'index, pour les
+  arbres</li>
+</ul>
+<p>Les catalogues sont mis  à jours périodiquement mais pas à chaque
+  mise à jours, pour ne pas impacter les performances.</p>
+</div>
+<div class="sws-slide">
+<h1>Estimation du nombre de résultats et facteur de réduction</h1>
+<p>On considère une requête de la forme:</p>
+<code>  SELECT <i>attributs</i> FROM <i>tables</i> WHERE <em>e<sub>1</sub></em> AND … AND <em>e<sub>n</sub></em>
+</code>
+<ul><li>La taille maximale <tt>TMax</tt> du résultat est le produit des tailles des
+    tables se trouvant dans le <tt>FROM</tt></li>
+<li>Le facteur de réduction de chaque expression <tt><em>e</em></tt>
+ caractérise l'impact de ce terme sur la taille du résultat</li>
+<li>La taille finale du résultat est approximée par: <tt>TMax *
+    RF<sub>1</sub> * … * RF<sub>n</sub></tt></li>
+</ul>
+<p>On fait la supposition que les expressions sont indépendantes.<br/>
+Exemples de facteurs de réduction:
+</p>
+<ul><li> <tt>att = valeur</tt> :  <tt>1 /
+      NClés</tt> si <tt>att</tt> este une clé pour un index I</li>
+<li><tt>att<sub>1</sub> = att<sub>2</sub></tt> : <tt> 1/Max(NClé(I1),
+    NClé(I2))</tt> (avec <tt>att<sub>i</sub></tt> une clé
+    de <tt>Ii</tt>) </li>
+<li><tt>att &gt; valeur</tt> : <tt> (Max(I)-valeur)/(Max(I) - Min(I))</tt>
+</li>
+</ul>
+ </div>
+<div class="sws-slide">
+  <h1>Équivalences de l'algèbre relationnelle</h1>
+  <p>Permet de réordonner les jointures et de « pousser » les sélections
+  et les projections sous les jointures</p>
+  <ul>
+    <li>Sélections :
+      <ul>
+       <li> <tt>&sigma;<sub>c<sub>1</sub>&#8743;…&#8743;c<sub>n</sub></sub>(R)
+       ≡
+       &sigma;<sub>c<sub>1</sub></sub>(… (&sigma;<sub>c<sub>n</sub></sub>(R)))</tt>  [Cascade]
+         </li>
+       <li> <tt>
+           &sigma;<sub>c<sub>1</sub></sub>(&sigma;<sub>c<sub>2</sub></sub>(R))
+       ≡
+           &sigma;<sub>c<sub>2</sub></sub>(&sigma;<sub>c<sub>1</sub></sub>(R))
+         </tt> [Commutativité]
+         </li>
+
+      </ul>
+    </li>
+    <li>Projections :
+      <ul>
+       <li> <tt>&pi;<sub>a<sub>1</sub>, …, a<sub>n</sub></sub>(
+           …(&pi;<sub>z<sub>1</sub>, …, z<sub>m</sub></sub>(R))
+       ≡
+            &pi;<sub>a<sub>1</sub>, …, a<sub>n</sub></sub>(R)</tt> [Cascade]
+         </li>
+
+      </ul>
+    </li>
+    <li>Jointures :
+      <ul>
+       <li> <tt>R &join; (S &join; T) ≡ (R &join; S) &join; T</tt> [Associativité]
+       </li>
+       <li> <tt> (R &join; S) ≡ (S &join; R) </tt> [Commutativité]
+       </li>
+      </ul>
+    </li>
+  </ul>
+</div>
+<div class="sws-slide">
+  <h1>Autres équivalences</h1>
+  <ul>
+    <li>
+Une projection commute avec une selection qui utilise uniquement
+  les attributs de la projection</li>
+    <li>Une selection entre des attributs de deux arguments d'un
+    produit cartésien peut être converti en jointure:
+      <tt> &sigma;<sub>&phi;</sub> (R &times; S) ≡ R &join;<sub>&phi;</sub> S</tt>
+      </li>
+    <li>Une selection sur des attributs de <tt>R</tt> commute avec la
+    jointure <tt>R&join;S</tt> (c'est à dire:  <tt>&sigma;(R&join;S) ≡  &sigma;(R)&join;S </tt>)
+      </li>
+    <li>Règle similaire pour pousser les projections sous jointure</li>
+  </ul>
+</div>
+<h1>Énumération de plans</h1>
+<div class="sws-slide">
+<h1>Modèle de calcul</h1>
+<p>
+  Les SGBD modernes utilisent un modèle de
+  calcul <em><i>pull</i></em>. L'opérateur le plus « haut » (racine)
+  dans l'arbre de requête « tire » (<i>pull</i>) le résultat de ses
+  sous-arbres (similaire à l'appel de <i>next</i> sur les iterateurs
+  de la bibliothèque standard Java). Cela permet
+  de <em><i>pipeliner</i></em> les opérateurs. Certains opérateurs «
+  <em>bloquent</em> » le <i>pipeline</i> (en particulier les tris et
+  aggrégats).
+</p>
+
+</div>
+<div class="sws-slide">
+<h1>Cas mono-relation</h1>
+<p>Dans le cas mono-relation (i.e. sans jointure), la requête est
+  composée forcément de selections, projections et aggrégats
+  (<tt>max</tt>, <tt>count</tt>, <tt>average</tt>, …)</p>
+<ol>
+  <li>Pour chaque sous-terme, on considère tous les accès possibles
+  (scan, utilisation de l'index, …) et on prend le moins coûteux</li>
+  
+<li>Les opérateurs restants sont calculé <em>à la volée</em> (en
+  pipelinant les opérations)
+</li>
+</ol>
+</div>
+<div class="sws-slide">
+<h1>Estimation du coût pour les plans mono-relation</h1>
+<ul>
+<li> Si on a un index I pour une selection sur clé primaire :
+  <tt><s>Hauteur(I) + 1</s></tt> pour un arbre B+, <tt><s>1.2</s></tt>
+  pour un hash-index</li>
+<li> Si on a un index I groupant pour plusieurs
+  selection <tt>&sigma;<sub>1</sub></tt>, …, <tt>&sigma;<sub>n</sub></tt> :<br/>
+  <tt><s>(NPages(I) + NPages(R))* RF(&sigma;<sub>1</sub>) * … * RF(&sigma;<sub>n</sub>) </s></tt>
+</li>
+<li> Si on a un index I non-groupant pour plusieurs
+  selection <tt>&sigma;<sub>1</sub></tt>, …, <tt>&sigma;<sub>n</sub></tt> :<br/>
+  <tt><s>(NPages(I) + <u>NEnr</u>(R))* RF(&sigma;<sub>1</sub>) * … * RF(&sigma;<sub>n</sub>) </s></tt>
+</li>
+<li>Scan séquentiel à <tt>R</tt>: <tt><s>NPages(R)</s></tt></li>
+</ul>
+</div>
+<div class="sws-slide">
+<h1>Exemple de calcul de coût</h1>
+<code>   SELECT S.sid FROM Sailors S WHERE S.rating = 8; </code>
+<code>       &pi;<sub>sid</sub>(&sigma;<sub>rating = 8</sub>(R))</code>
+<ul>
+  <li>Avec un index sur <tt>rating</tt>:
+    <ul>
+      <li>Groupant: <tt>1/NClés(I) * (NPages(I) +
+      NPages(R))</tt>. Avec des valeurs numériques: <tt> 1/10 *
+      (50+500) = 55 E/S</tt></li>
+      <li>Non-groupant: <tt>1/NClés(I) * (NPages(I) +
+      NEnr(R))</tt>. Avec des valeurs numériques: <tt> 1/10 *
+      (50+40000) = 4005 E/S</tt></li>
+    </ul>
+  </li>
+  <li>Scan : on récupère toutes les pages et on filtre: <tt>500</tt> E/S</li>
+</ul>
+<p><em>Note</em>: Une fois que l'on a sélectionné un enregistrement,
+  la projection est « gratuite » (en terme d'E/S) car le résultat n'a
+  pas à être sauvé dans une table temporaire</p>
+</div>
+<div class="sws-slide">
+  <h1>Requêtes multi-relations</h1>
+<ul><li>Les choix vont être guidé par les <em>jointures</em></li>
+  <li>Si on considère uniquement <tt>n</tt> jointures (pas de projections ni
+  de selections dans le plan de requête). Le nombre de plans possible
+  est le nombre d'arbre binaires ayant <tt>n</tt> noeuds internes
+  (exponentiel en <tt>n</tt>, exactement: nombre de Catalan
+  d'indice <tt>n</tt>). <s>Beaucoup trop pour les énumérer tous</s>.
+  </li>
+<li>On se restreint aux <em>arbres gauches en profondeur</em> qui
+  permettent d'énumérer tous les plans complètement
+  « <i>pipelinable</i> »
+  </li>
+</ul>
+<p><img src="left_deep.svg" style="width:80%;margin-left:10%;" /></p>
+<p style="background:white">Ce ne sont que des <em>heuristiques</em> pour réduire l'espace de
+  recherche, on n'est pas sur d'avoir la solution optimale!</p>
+</div>
+<div class="sws-slide">
+<h1>Énumération des plans gauches en profondeur 1/2</h1>
+<p>Toujours exponentiel (mais moins)</p>
+<p>Tous les arbres différent maintenant dans l'ordre dans lequel on
+  fait les jointures, la méthode d'accès pour chaque relation et les
+  algorithmes de jointure utilisés</p>
+<p>On applique l'heuristique suivante:</p>
+<ol>
+<li>1<sup>ère</sup> passe: on trouve la meilleure manière de calculer
+  chaque relation individuellement
+</li>
+<li>2<sup>ème</sup> passe: on trouve la meilleure manière de joindre
+  deux à deux les résultats de la passe 1
+</li>
+<li>n<sup>ème</sup> passe: on trouve la meilleure manière de joindre
+  deux à deux les résultats de la passe (n-1)
+</li>
+</ol>
+<p>Comment sélectionner les « meilleurs » jointures
+  ? <span class="sws-pause" style="background:white" >On garde pour chaque <em>ordre</em> de
+  résultat intermédiaire celle de moindre coût
+</span></p>
+</div>
+<div class="sws-slide">
+<h1>Énumération des plans gauches en profondeur 2/2</h1>
+<p>Exemple: si on a la possibilité de faire une jointure itérative de
+  cout 1000, une jointure par hash de coût 500 et une jointure
+  sort-merge de coût 1500, on garde les version hash
+  et <s>sort-merge</s> (car il est possible que le fait d'avoir les
+  résultats déjà trié rendent le coût moindre à l'étape suivante)
+</p>
+<p>On garde les <tt>ORDER BY</tt>, <tt>GROUP BY</tt>, aggrégats, …
+  pour la fin, en profitant si possible des ordres des résultats faits
+  par les jointures précédentes</p>
+<p>On évite tant que possible de faire des produits cartésiens (en
+  poussant les selections par exemple)</p>
+</div>
+<div class="sws-slide">
+<h1>Requêtes imbriquées</h1>
+<code>
+    SELECT … FROM … WHERE
+     … e AND EXISTS  (SELECT … WHERE … FROM …)
+</code>
+<p>On optimise d'abord la requête la plus « interne »</p>
+<p>On optimise ensuite la requête englobante en utilisant prenant en
+  compte le coût de la requête interne pour chaque « évaluation » du
+  <tt>WHERE</tt>
+</p>
+</div>
+</body>
+</html>
diff --git a/bd/left_deep.svg b/bd/left_deep.svg
new file mode 100644 (file)
index 0000000..d62df1a
--- /dev/null
@@ -0,0 +1,427 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="620.64832"
+   height="175.11211"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="left_deep.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.3734375"
+     inkscape:cx="431.6651"
+     inkscape:cy="-44.13876"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     fit-margin-top="0.3"
+     fit-margin-left="0.3"
+     fit-margin-right="0.3"
+     fit-margin-bottom="0.3"
+     inkscape:window-width="1631"
+     inkscape:window-height="1026"
+     inkscape:window-x="1073"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       originx="-89.763477px"
+       originy="-806.9959px" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-89.763477,-70.254183)">
+    <g
+       id="g3231">
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987"
+         y="182.36218"
+         x="130"
+         style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="182.36218"
+           x="130"
+           id="tspan2989"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2991"
+         y="222.36218"
+         x="90"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="222.36218"
+           x="90"
+           id="tspan2993"
+           sodipodi:role="line">A</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995"
+         y="222.36218"
+         x="180"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="222.36218"
+           x="180"
+           id="tspan2997"
+           sodipodi:role="line">B</tspan></text>
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999"
+         d="m 100,212.36218 30,-20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3001"
+         d="m 150,192.36218 30,20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987-8"
+         y="132.36218"
+         x="180"
+         style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="132.36218"
+           x="180"
+           id="tspan2989-7"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995-8"
+         y="172.36218"
+         x="230"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="172.36218"
+           x="230"
+           id="tspan2997-6"
+           sodipodi:role="line">C</tspan></text>
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999-4"
+         d="m 150,162.36218 30,-20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3001-5"
+         d="m 200,142.36218 30,20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987-8-1"
+         y="82.362183"
+         x="230"
+         style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="82.362183"
+           x="230"
+           id="tspan2989-7-2"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995-8-7"
+         y="122.36218"
+         x="280"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="122.36218"
+           x="280"
+           id="tspan2997-6-3"
+           sodipodi:role="line">D</tspan></text>
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999-4-3"
+         d="m 200,112.36218 30,-20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3001-5-7"
+         d="m 250,92.36218 30,20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987-82"
+         y="132.36218"
+         x="360"
+         style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="132.36218"
+           x="360"
+           id="tspan2989-3"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2991-9"
+         y="172.36218"
+         x="320"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="172.36218"
+           x="320"
+           id="tspan2993-8"
+           sodipodi:role="line">A</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995-83"
+         y="172.36218"
+         x="410"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="172.36218"
+           x="410"
+           id="tspan2997-4"
+           sodipodi:role="line">B</tspan></text>
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999-3"
+         d="m 330,162.36218 30,-20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3001-0"
+         d="m 380,142.36218 30,20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987-8-18"
+         y="82.362183"
+         x="410"
+         style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="82.362183"
+           x="410"
+           id="tspan2989-7-7"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995-8-3"
+         y="172.36218"
+         x="430"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="172.36218"
+           x="430"
+           id="tspan2997-6-6"
+           sodipodi:role="line">C</tspan></text>
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999-4-7"
+         d="m 380,112.36218 30,-20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3001-5-2"
+         d="m 430,92.36218 30,20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987-8-1-0"
+         y="132.36218"
+         x="470"
+         style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="132.36218"
+           x="470"
+           id="tspan2989-7-2-7"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995-8-7-1"
+         y="172.36218"
+         x="520"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="172.36218"
+           x="520"
+           id="tspan2997-6-3-7"
+           sodipodi:role="line">D</tspan></text>
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999-4-3-1"
+         d="m 440,162.36218 30,-20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3001-5-7-8"
+         d="m 490,142.36218 30,20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987-4"
+         y="172.36218"
+         x="650"
+         style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="172.36218"
+           x="650"
+           id="tspan2989-4"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2991-2"
+         y="172.36218"
+         x="560"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="172.36218"
+           x="560"
+           id="tspan2993-7"
+           sodipodi:role="line">A</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995-3"
+         y="212.36218"
+         x="700"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="212.36218"
+           x="700"
+           id="tspan2997-5"
+           sodipodi:role="line">B</tspan></text>
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999-2"
+         d="m 620,202.36218 30,-20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3001-05"
+         d="m 670,182.36218 30,20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987-8-6"
+         y="132.36218"
+         x="600"
+         style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="132.36218"
+           x="600"
+           id="tspan2989-7-5"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995-8-4"
+         y="212.36218"
+         x="610"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="212.36218"
+           x="610"
+           id="tspan2997-6-4"
+           sodipodi:role="line">C</tspan></text>
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999-4-4"
+         d="m 570,162.36218 30,-20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3001-5-70"
+         d="m 620,142.36218 30,20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987-8-1-9"
+         y="82.362183"
+         x="650"
+         style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="82.362183"
+           x="650"
+           id="tspan2989-7-2-0"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995-8-7-17"
+         y="122.36218"
+         x="700"
+         style="font-size:13px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+         xml:space="preserve"><tspan
+           y="122.36218"
+           x="700"
+           id="tspan2997-6-3-9"
+           sodipodi:role="line">D</tspan></text>
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999-4-3-6"
+         d="m 620,112.36218 30,-20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3001-5-7-5"
+         d="m 670,92.36218 30,20"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="130"
+       y="242.36218"
+       id="text3312"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3314"
+         x="130"
+         y="242.36218">OK</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="350"
+       y="242.36218"
+       id="text3316"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3318"
+         x="350"
+         y="242.36218">Potentiellement bloquant</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="560"
+       y="242.36218"
+       id="text3320"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3322"
+         x="560"
+         y="242.36218">Identique au premier</tspan></text>
+  </g>
+</svg>
diff --git a/bd/pdf/bd05.pdf b/bd/pdf/bd05.pdf
new file mode 100644 (file)
index 0000000..3b24115
Binary files /dev/null and b/bd/pdf/bd05.pdf differ
diff --git a/bd/pdf/bd05_print.pdf b/bd/pdf/bd05_print.pdf
new file mode 100644 (file)
index 0000000..a3695eb
Binary files /dev/null and b/bd/pdf/bd05_print.pdf differ
diff --git a/bd/simple_plan.svg b/bd/simple_plan.svg
new file mode 100644 (file)
index 0000000..147d532
--- /dev/null
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="273.52414"
+   height="151.70737"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="simple_plan.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.9145596"
+     inkscape:cx="129.91896"
+     inkscape:cy="67.399822"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-global="true"
+     fit-margin-top="0.3"
+     fit-margin-left="0.3"
+     fit-margin-right="0.3"
+     fit-margin-bottom="0.3"
+     inkscape:window-width="1317"
+     inkscape:window-height="744"
+     inkscape:window-x="49"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       originx="-175.87773px"
+       originy="-829.53008px" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-175.87773,-71.124744)">
+    <g
+       id="g3081"
+       transform="translate(15,30)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987"
+         y="192.36218"
+         x="160"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="192.36218"
+           x="160"
+           id="tspan2989"
+           sodipodi:role="line">Reserves</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2991"
+         y="192.36218"
+         x="285"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="192.36218"
+           x="285"
+           id="tspan2993"
+           sodipodi:role="line">Sailors</tspan></text>
+    </g>
+    <g
+       id="g3075"
+       transform="translate(4.3335,10.483215)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995"
+         y="147.36218"
+         x="215"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:32px"
+           y="147.36218"
+           x="215"
+           id="tspan2997"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001"
+         y="152.36218"
+         x="235"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="152.36218"
+           x="235"
+           id="tspan3003"
+           sodipodi:role="line">R.sid=S.sid</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="254.32658"
+       y="112.34022"
+       id="text3013"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3015"
+         x="254.32658"
+         y="112.34022" /></text>
+    <g
+       id="g3069"
+       transform="translate(-39.962891,16.337158)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3009"
+         y="102.36218"
+         x="240"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:20px"
+           y="102.36218"
+           x="240"
+           id="tspan3011"
+           sodipodi:role="line">σ</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001-5"
+         y="107.36218"
+         x="255"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="107.36218"
+           x="255"
+           id="tspan3003-4"
+           sodipodi:role="line">bid=100 ∧ rating&gt;5</tspan></text>
+    </g>
+    <g
+       id="g3063"
+       transform="translate(-11.225098,6.1035156e-5)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3038"
+         y="82.362183"
+         x="245"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:20px"
+           y="82.362183"
+           x="245"
+           id="tspan3040"
+           sodipodi:role="line">π</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001-5-9"
+         y="87.362183"
+         x="260"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="87.362183"
+           x="260"
+           id="tspan3003-4-1"
+           sodipodi:role="line">sname</tspan></text>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 205,207.36218 50,-40"
+       id="path3087"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 320,207.36218 -45,-40"
+       id="path3089"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 265,152.36218 0,-25"
+       id="path3091"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 265,112.36218 0,-19.999997"
+       id="path3093"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g3109"
+       transform="translate(-5.3601685,0.84391091)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3095"
+         y="156.85809"
+         x="341.37579"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="156.85809"
+           x="341.37579"
+           id="tspan3097"
+           sodipodi:role="line">jointure iterative</tspan><tspan
+           id="tspan3099"
+           y="173.10809"
+           x="341.37579"
+           sodipodi:role="line">page à page</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3101"
+         y="121.51828"
+         x="340.36017"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="121.51828"
+           x="340.36017"
+           id="tspan3103"
+           sodipodi:role="line">à la volée</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3105"
+         y="84.462944"
+         x="340.36017"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="84.462944"
+           x="340.36017"
+           id="tspan3107"
+           sodipodi:role="line">à la volée</tspan></text>
+    </g>
+  </g>
+</svg>
diff --git a/bd/simple_plan1.svg b/bd/simple_plan1.svg
new file mode 100644 (file)
index 0000000..7f2de95
--- /dev/null
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="383.246"
+   height="163.22272"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="simple_plan.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.9145596"
+     inkscape:cx="169.52626"
+     inkscape:cy="87.105315"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-global="true"
+     fit-margin-top="0.3"
+     fit-margin-left="0.3"
+     fit-margin-right="0.3"
+     fit-margin-bottom="0.3"
+     inkscape:window-width="1317"
+     inkscape:window-height="744"
+     inkscape:window-x="49"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       originx="-50.417285px"
+       originy="-814.53007px" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-50.417285,-74.609394)">
+    <g
+       id="g3081"
+       transform="translate(0,45.000008)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text2987"
+         y="192.36218"
+         x="160"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="192.36218"
+           x="160"
+           id="tspan2989"
+           sodipodi:role="line">Reserves</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text2991"
+         y="192.36218"
+         x="285"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="192.36218"
+           x="285"
+           id="tspan2993"
+           sodipodi:role="line">Sailors</tspan></text>
+    </g>
+    <g
+       id="g3075"
+       transform="translate(-15.6665,-19.516785)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995"
+         y="147.36218"
+         x="215"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:32px"
+           y="147.36218"
+           x="215"
+           id="tspan2997"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001"
+         y="152.36218"
+         x="235"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="152.36218"
+           x="235"
+           id="tspan3003"
+           sodipodi:role="line">R.sid=S.sid</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="254.32658"
+       y="112.34022"
+       id="text3013"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3015"
+         x="254.32658"
+         y="112.34022" /></text>
+    <g
+       id="g3063"
+       transform="translate(-25,5.0000083)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3038"
+         y="82.362183"
+         x="245"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:20px"
+           y="82.362183"
+           x="245"
+           id="tspan3040"
+           sodipodi:role="line">π</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001-5-9"
+         y="87.362183"
+         x="260"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="87.362183"
+           x="260"
+           id="tspan3003-4-1"
+           sodipodi:role="line">sname</tspan></text>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 185,177.36218 50,-40"
+       id="path3087"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 300,177.36218 -45,-40"
+       id="path3089"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 245,122.36218 0,-25"
+       id="path3091"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g3109"
+       transform="translate(-5.3601685,0.84391091)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3095"
+         y="156.85809"
+         x="341.37579"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="156.85809"
+           x="341.37579"
+           sodipodi:role="line"
+           id="tspan3073" /></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3101"
+         y="121.51828"
+         x="340.36017"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="121.51828"
+           x="340.36017"
+           id="tspan3103"
+           sodipodi:role="line">sort-merge join</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3105"
+         y="84.462944"
+         x="340.36017"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="84.462944"
+           x="340.36017"
+           id="tspan3107"
+           sodipodi:role="line">à la volée</tspan></text>
+    </g>
+    <g
+       id="g3069-0"
+       transform="translate(-85,90.00001)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3009-0"
+         y="102.36218"
+         x="240"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:20px"
+           y="102.36218"
+           x="240"
+           id="tspan3011-1"
+           sodipodi:role="line">σ</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001-5-92"
+         y="107.36218"
+         x="255"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="107.36218"
+           x="255"
+           id="tspan3003-4-4"
+           sodipodi:role="line">bid=100 </tspan></text>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 185.20937,227.74056 0,-25"
+       id="path3091-1"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g3069-1"
+       transform="translate(30,90.00001)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3009-2"
+         y="102.36218"
+         x="240"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:20px"
+           y="102.36218"
+           x="240"
+           id="tspan3011-13"
+           sodipodi:role="line">σ</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001-5-5"
+         y="107.36218"
+         x="255"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="107.36218"
+           x="255"
+           id="tspan3003-4-8"
+           sodipodi:role="line">rating&gt;5</tspan></text>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 309.32663,226.71124 0,-25"
+       id="path3091-5"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="340"
+       y="192.3622"
+       id="text3081"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="340"
+         y="192.3622"
+         id="tspan3085">Scan, resultat</tspan><tspan
+         sodipodi:role="line"
+         x="340"
+         y="208.6122"
+         id="tspan3089">dans temp. T2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="50"
+       y="192.3622"
+       id="text3081-9"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="50"
+         y="192.3622"
+         id="tspan3085-3">Scan, resultat</tspan><tspan
+         sodipodi:role="line"
+         x="50"
+         y="208.6122"
+         id="tspan3089-4">dans temp. T1</tspan></text>
+  </g>
+</svg>
diff --git a/bd/simple_plan2.svg b/bd/simple_plan2.svg
new file mode 100644 (file)
index 0000000..1b85940
--- /dev/null
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="392.14542"
+   height="206.70743"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="simple_plan1.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.9145596"
+     inkscape:cx="186.6743"
+     inkscape:cy="128.27791"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:snap-global="true"
+     fit-margin-top="0.3"
+     fit-margin-left="0.3"
+     fit-margin-right="0.3"
+     fit-margin-bottom="0.3"
+     inkscape:window-width="1317"
+     inkscape:window-height="744"
+     inkscape:window-x="49"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       originx="-50.880664px"
+       originy="-814.53008px" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-50.880664,-31.124682)">
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="160"
+       y="237.36218"
+       id="text2987"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2989"
+         x="160"
+         y="237.36218">Reserves</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="280"
+       y="192.36218"
+       id="text2991"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2993"
+         x="280"
+         y="192.36218">Sailors</tspan></text>
+    <g
+       id="g3075"
+       transform="translate(-15.6665,-19.516785)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text2995"
+         y="147.36218"
+         x="215"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:32px"
+           y="147.36218"
+           x="215"
+           id="tspan2997"
+           sodipodi:role="line">⨝</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001"
+         y="152.36218"
+         x="235"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="152.36218"
+           x="235"
+           id="tspan3003"
+           sodipodi:role="line">R.sid=S.sid</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="254.32658"
+       y="112.34022"
+       id="text3013"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3015"
+         x="254.32658"
+         y="112.34022" /></text>
+    <g
+       id="g3063"
+       transform="translate(-25,-40.000001)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3038"
+         y="82.362183"
+         x="245"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:20px"
+           y="82.362183"
+           x="245"
+           id="tspan3040"
+           sodipodi:role="line">π</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001-5-9"
+         y="87.362183"
+         x="260"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="87.362183"
+           x="260"
+           id="tspan3003-4-1"
+           sodipodi:role="line">sname</tspan></text>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 185,177.36218 50,-40"
+       id="path3087"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 300,177.36218 -45,-40"
+       id="path3089"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 245,77.36217 0,-25"
+       id="path3091"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g3109"
+       transform="translate(-5.3601685,0.84391091)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3095"
+         y="156.85809"
+         x="341.37579"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="156.85809"
+           x="341.37579"
+           sodipodi:role="line"
+           id="tspan3073" /></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3101"
+         y="121.51828"
+         x="340.36017"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="121.51828"
+           x="340.36017"
+           id="tspan3103"
+           sodipodi:role="line">jointure iterative</tspan><tspan
+           y="137.76828"
+           x="340.36017"
+           sodipodi:role="line"
+           id="tspan3152">par index</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3105"
+         y="91.518272"
+         x="340.36017"
+         style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="91.518272"
+           x="340.36017"
+           id="tspan3107"
+           sodipodi:role="line">à la volée</tspan></text>
+    </g>
+    <g
+       id="g3069-0"
+       transform="translate(-85,90.00001)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3009-0"
+         y="102.36218"
+         x="240"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:20px"
+           y="102.36218"
+           x="240"
+           id="tspan3011-1"
+           sodipodi:role="line">σ</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001-5-92"
+         y="107.36218"
+         x="255"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="107.36218"
+           x="255"
+           id="tspan3003-4-4"
+           sodipodi:role="line">bid=100 </tspan></text>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 185.20937,227.74056 0,-25"
+       id="path3091-1"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g3069-1"
+       transform="translate(-35,-15.000001)">
+      <text
+         sodipodi:linespacing="125%"
+         id="text3009-2"
+         y="102.36218"
+         x="240"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:20px"
+           y="102.36218"
+           x="240"
+           id="tspan3011-13"
+           sodipodi:role="line">σ</tspan></text>
+      <text
+         sodipodi:linespacing="125%"
+         id="text3001-5-5"
+         y="107.36218"
+         x="255"
+         style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           style="font-size:10px"
+           y="107.36218"
+           x="255"
+           id="tspan3003-4-8"
+           sodipodi:role="line">rating&gt;5</tspan></text>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 245.35595,122.74055 0,-25.000006"
+       id="path3091-5"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="340"
+       y="192.3622"
+       id="text3081"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="340"
+         y="192.3622"
+         id="tspan3089" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="50"
+       y="192.3622"
+       id="text3081-9"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="50"
+         y="192.3622"
+         id="tspan3089-4">Hash Index</tspan><tspan
+         sodipodi:role="line"
+         x="50"
+         y="208.6122"
+         id="tspan3148">pas de temp.</tspan></text>
+    <flowRoot
+       xml:space="preserve"
+       id="flowRoot3134"
+       style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       transform="translate(50.417285,74.609394)"><flowRegion
+         id="flowRegion3136"><rect
+           id="rect3138"
+           width="105.67635"
+           height="65.533058"
+           x="136.21269"
+           y="-13.819468" /></flowRegion><flowPara
+         id="flowPara3140"></flowPara></flowRoot>    <text
+       sodipodi:linespacing="125%"
+       id="text3105-2"
+       y="42.362183"
+       x="335"
+       style="font-size:13px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       xml:space="preserve"><tspan
+         y="42.362183"
+         x="335"
+         id="tspan3107-8"
+         sodipodi:role="line">à la volée</tspan></text>
+  </g>
+</svg>