TP N°3 le fonctionnement des clauses SQL - Modélisation Meri

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 !

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne