Modélisation Merise : TP N°3 le fonctionnement des clauses SQL
Télécharger PDF
BTS SIO
SLAM3 - Conception de BD
TP N°3 : Pause SQL
Le fonctionnement des clauses SQL Révisions MERISE
J. Paquereau 1/2
TP N°3 : Pause SQL
Thème : le fonctionnement des clauses SQL
Exercice : implémentation des clauses SQL
Objectif
L’objectif du présent TP est de bien vous faire comprendre le fonctionnement des principales
fonctionnalités du SQL standard (clauses SELECT, WHERE, jointures, etc.). Bien entendu, ce qui importe
pour l’examen, c’est que vous sachiez rédiger des requêtes SQL. Cependant, il me semble que le fait de
tenter d’implémenter certaines des opérations effectuées par un interpréteur SQL puisse vous permettre
de comprendre pleinement le fonctionnement du SQL et de comprendre ce qu’on peut en attendre.
Qui plus est, vous êtes des codeurs ! Aussi, rédiger ces codes vous changera peut-être de l’ordinaire en
matière de conception de base de données : SQL, MCD, MLD, UML, etc.
Sujet
L’objectif du présent TP est d’implémenter (en PHP) et de tester la classe Table dont un squelette vous
est fourni. Vous effectuerez vos tests dans une simple page php « test.php » dont le squelette vous est
également fourni.
Questions
1. Implémenter et tester la méthode Table::getHeader($index).
2. Implémenter et tester la méthode Table::html().
3. Implémenter et tester la méthode Table::select($fields).
4. Implémenter et tester la méthode Table::where($field, $operator, $value).
5. Implémenter et tester la méthode Table::product($table).
6. Implémenter et tester la méthode Table::innerJoin($table, $field1, $field2).
7. Implémenter et tester la méthode Table::orderBy($fields). La fonction PHP usort($tableau, $fonction)
devrait vous être utile.
8. Implémenter et tester la méthode Table::leftJoin($table, $field1, $field2) en vous inspirant de la mé-
thode Table::innerJoin($table, $field1, $field2).
9. Implémenter et tester la méthode Table::rightJoin($table, $field1, $field2) en vous inspirant et/ou en
vous aidant de la méthode Table::leftJoin($table, $field1, $field2).
10. Implémenter et tester la méthode Table::groupBy($fields). Compléter la méthode Table::html() afin
de rendre l’affichage du résultat de Table::groupBy($fields). En effet, en l’absence de levée d’exception,
cette méthode retourne un tableau à 3 dimensions ! A savoir que la Table résultat du GROUP BY est très
normalement un tableau contenant des lignes ou chaque ligne contient la valeur de chaque colonne
(=cellule). Mais chaque colonne (=cellule) contient potentiellement plusieurs valeurs ! C’est bien cela la
notion de « regroupement », de GROUP BY.
11. Compléter la méthode Table::select(...) afin qu’elle permette de prendre en charge les agrégats
COUNT, SUM et AVG.
BTS SIO
SLAM3 - Conception de BD
TP N°3 : Pause SQL
Le fonctionnement des clauses SQL Révisions MERISE
J. Paquereau 2/2
12. Compléter et tester la méthode Table::where($field, $operator, $value) afin qu’elle puisse se com-
porter comme une clause HAVING, à savoir, de sorte qu’on puisse, après utilisation du GROUP BY,
comparer un agrégat à une valeur.
13. Compléter et tester la méthode Table::where($field, $operator, $value) afin qu’elle puisse se com-
porter comme une clause HAVING, à savoir, de sorte qu’on puisse, après utilisation du GROUP BY,
comparer un agrégat à une valeur.
14. Compléter et tester la méthode Table::insert($values).
15. Compléter et tester la méthode Table::delete(($field, $operator, $value).
Projet : par groupe de 2, vous répondrez aux questions 7 à 15. Les questions 1 à 6
seront corrigées en cours.
Rendu et présentation :
- vous présenterez vos réalisations par groupe de 2 ;
(10 minutes max. de présentation + 10 minutes max. de questions)
- vous rendrez vos codes sources à l’issue de la présentation.
Objectif :
- l’objectif est clairement que les deux membres du binôme comprennent le travail effectué ;
- il vous est donc demandé de travailler avant tout en pear programming (c’est-à-dire réellement en
binôme) ;
Critères de notation :
- compréhension du travail réalisé (critère technique) ;
- réalisation à proprement parler (critère technique) ;
- qualité de la présentation et des réponses fournies lors de celle-ci ;
- capacité à expliquer ses codes sources à un interlocuteur (professeur ou binôme).
Binôme : le choix de votre binôme vous appartient.
Date de rendu : Mardi 8 novembre (en classe).
Suite du projet : ce projet donnera lieu à un second projet qui consistera dans l’élaboration d’un petit
SGBD assorti d’un petit éditeur de requêtes SQL. Il sera également effectué en binôme. Les binômes
seront cette fois-ci potentiellement imposés !