Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:master:bdle:tmes:sqlrecursif

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
site:enseignement:master:bdle:tmes:sqlrecursif [16/12/2016 11:06] – [Connexion Oracle] aminesite:enseignement:master:bdle:tmes:sqlrecursif [19/10/2017 11:06] (Version actuelle) hubert
Ligne 1: Ligne 1:
 +{{indexmenu_n>70}}
 +
 ====== SQL et récursion ====== ====== SQL et récursion ======
  
Ligne 7: Ligne 9:
  
 [[site:enseignement:documentation:oracle:connexionoracle]] [[site:enseignement:documentation:oracle:connexionoracle]]
 +
 +Quelques liens intéressants:
 +  * [[https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm|Requetes hiérarchiques]]
 ===== Chargement de Données ===== ===== Chargement de Données =====
  
Ligne 32: Ligne 37:
  
 ---- ----
-**Question 2**: Affichez tous les noeuds atteignables à partir du noeud 1 et la longueur des chemins. Ensuite, affichez également les chemins (SYS_CONNECT_BY_PATH).+**Question 2**: Exécutez la requête suivante et expliquez ce qu'elle affiche.
  
 +<code sql>
 +SELECT DISTINCT target, level, SYS_CONNECT_BY_PATH(SOURCE, '/') path
 +FROM myedges
 +START WITH SOURCE=1
 +CONNECT BY prior target=SOURCE;
 +</code>
  
  
 ---- ----
-**Question 3**: Affichez tous les pairs de noeuds dans G et la longueur des chemins entre eux (il faut utiliser CONNECT_BY_ROOT). Triez le résultats sour les attributs source et target. Ensuite, affichez également les chemins.+**Question 3**: Affichez tous les pairs de noeuds dans G et la longueur des chemins entre eux (il faut utiliser [[https://docs.oracle.com/cd/B14117_01/server.101/b10759/operators004.htm|CONNECT_BY_ROOT]]). Triez le résultats sour les attributs source et target. Ensuite, affichez également les chemins.
  
  
  
 ---- ----
-**Question 4**: Insérez les deux arcs suivants et évaluez à nouveaux les requêtes précédentes (il faudra ajouter le mot clé NOCYCLE après CONNECT BY):+**Question 4**: Insérez les deux arcs suivants et évaluez à nouveaux les requêtes précédentes (il faudra ajouter le mot clé [[https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm|NOCYCLE]] après CONNECT BY):
  
 <code SQL> <code SQL>
Ligne 50: Ligne 61:
  
 ---- ----
-**Question 5**: Affichez tous les pairs de noeuds dans G et la longueur des chemins entre eux ainsi l'information si le chemin est un cycle.+**Question 5**: Affichez tous les pairs de noeuds dans G et la longueur des chemins entre eux ainsi l'information si le chemin est un cycle (.
  
  
Ligne 63: Ligne 74:
 ***Question 8**: Exécutez la requête suivante et analysez le résultat. Changez la stratégie de parcours (DEPTH FIRST, BREADTH FIRST) et l'attribut utilisé pour la détection du cycle. ***Question 8**: Exécutez la requête suivante et analysez le résultat. Changez la stratégie de parcours (DEPTH FIRST, BREADTH FIRST) et l'attribut utilisé pour la détection du cycle.
 <code SQL> <code SQL>
-with R2(a,b,l)+with R2(source,target,l)
 as ( as (
    select source,target,1 from myedges    select source,target,1 from myedges
    union all    union all
-   select r.a, m.target, r.l+1  from R2 r, myedges m where m.source=r.b+   select r.source, m.target, r.l+1  from R2 r, myedges m where m.source=r.target
 ) )
-search breadth first by set o1 +search breadth first by source set o1 
-cycle set end to 1 default 0+cycle target set end to 1 default 0
 select * from R2 select * from R2
 order by o1; order by o1;
 </code> </code>
  
-----  +
-***Question 8bis**: Caculez l'histogramme du graphe Facebook/+
  
 ---- ----
-***Question 9**: Ecrivez une requête qui retourne tous les pairs de noeuds et la longueur du plus court chemin.+**Question 9**: Ecrivez une requête qui retourne tous les pairs de noeuds et la longueur du plus court chemin.
  
    
Ligne 192: Ligne 202:
  
 Résultat: 34 Résultat: 34
 +
 +---- 
 +***Question 8bis**: Calculez l'histogramme du graphe Facebook.
  
 ---- ----
site/enseignement/master/bdle/tmes/sqlrecursif.1481882771.txt.gz · Dernière modification : de amine