Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
site:enseignement:master:mlbda:tmes:priseenmain [10/09/2015 14:38] amine |
site:enseignement:master:mlbda:tmes:priseenmain [05/10/2020 14:34] (Version actuelle) hubert |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====TME 1 : Prise en main d'Oracle et requêtes sur la base MONDIAL==== | + | {{indexmenu_n>1}} |
- | ==Objectif principal== | + | |
- | réviser le langage de requête SQL, puis le langage de programmation PL/SQL | + | |
- | ==Objectifs secondaires== | + | ====== TME 2019 Requêtes SQL ====== |
+ | |||
+ | === Prise en main d'Oracle et requêtes sur la base MONDIAL=== | ||
+ | |||
+ | ====Objectif principal==== | ||
+ | Réviser le langage de requête SQL, puis le langage de programmation PL/SQL | ||
+ | |||
+ | ====Objectifs secondaires==== | ||
* se familiariser avec les manuels de documentation d'Oracle | * se familiariser avec les manuels de documentation d'Oracle | ||
* se familiariser avec les vues du dictionnaire du SGBD | * se familiariser avec les vues du dictionnaire du SGBD | ||
* savoir compiler et exécuter une procédure stockée | * savoir compiler et exécuter une procédure stockée | ||
- | ==Prérequis== | + | ====Prérequis==== |
* Lire [[site:enseignement:documentation:oracle:connexionoracle|ConnexionOracle]] pour se connecter à Oracle | * Lire [[site:enseignement:documentation:oracle:connexionoracle|ConnexionOracle]] pour se connecter à Oracle | ||
- | ===Préparation du TME=== | + | |
+ | ====Préparation du TME==== | ||
Ouvrir une fenêtre de terminal (xterm), vérifier que la commande <code> | Ouvrir une fenêtre de terminal (xterm), vérifier que la commande <code> | ||
echo $BD_TOOL </code> | echo $BD_TOOL </code> | ||
Ligne 23: | Ligne 29: | ||
| ls | lister les fichiers du TME| | | ls | lister les fichiers du TME| | ||
| emacs s1.sql & | éditer le fichier s1.sql| | | emacs s1.sql & | éditer le fichier s1.sql| | ||
- | | se connecter à Oracle | sqlplus E''nnn''/E''nnn''@oracle (avec ''nnn'' votre numéro de login)| | + | | se connecter à Oracle | sqlplus E''nnn''/E''nnn''@ora11 (avec ''nnn'' votre numéro de login)| |
- | | compiler et exécuter la procédure l1 | @l1 (sert pour l'exercice 1)| | + | | créer des synonymes pour simplifier les noms de tables de la base Mondial | @mondial_synonym (sert pour l'exercice 1)| |
- | | créer des synonymes pour simplifier les noms de tables de la base Mondial | @mondial_synonym (sert pour l'exercice 2)| | + | |
- | **COMMENCER PAR L'EXERCICE 2** | + | ** <fc #ff0000>Exercices</fc> ** |
- | ==Exercice 1 (facultatif) : PL/SQL sur le dictionnaire du SGBD== | + | ====Exercice 1 (obligatoire) : SQL sur la base MONDIAL==== |
+ | * Prendre en main la base MONDIAL | ||
+ | * lire la {{:site:enseignement:master:mlbda:mondial-rs.pdf| description}} du schéma de la base MONDIAL | ||
+ | * lire le [[http://www-bd.lip6.fr/ens/mabd2011/extra/tme/mondial/mondial-ER.pdf|diagramme]] Entité-Association de la base MONDIAL | ||
+ | * lire les [[http://www-bd.lip6.fr/ens/mabd2011/extra/tme/mondial/mondial-foreign_keys.pdf|contraintes]] d'intégrité référentielle de base MONDIAL | ||
+ | * Requêtes avancées | ||
+ | * Editer le fichier tp1.sql | ||
+ | * Ecrire en SQL les requêtes numérotées 10 à 20 sur la base MONDIAL, et les exécuter. | ||
+ | * <fc #ff0000>Aide requête 14</fc>: les affluents des affluents des affluents du Nil n’ont aucun affluent. | ||
+ | * Vérifier vos réponses en exécutant les requêtes solution nommées de Mondial.R1 à Mondial.R20 | ||
+ | <code> | ||
+ | select * from mondial.R1; | ||
+ | ...... | ||
+ | select * from mondial.R20;</code> | ||
+ | |||
+ | |||
+ | ====Exercice 2 (facultatif) : PL/SQL sur le dictionnaire du SGBD==== | ||
+ | * compiler et exécuter la procédure l1: @l1 | ||
* Que représentent les vues du dictionnaire user_tables, user_objects et user_source ? Expliquer brièvement ce que représente chaque attribut. Voir la documentation: | * Que représentent les vues du dictionnaire user_tables, user_objects et user_source ? Expliquer brièvement ce que représente chaque attribut. Voir la documentation: | ||
- | * vue user_tables (cf. all_tables) | + | * vue [[http://www-ari.ufr-info-p6.jussieu.fr/OUTILS/documentation/doc/oracle/doc10G-2/server.102/b14237/statviews_4471.htm#REFRN26286|user_tables]] (cf. [[http://www-ari.ufr-info-p6.jussieu.fr/OUTILS/documentation/doc/oracle/doc10G-2/server.102/b14237/statviews_2105.htm#i1592091|all_tables]]) |
- | * vue user_objects (cf. all_objects) | + | * vue [[http://www-ari.ufr-info-p6.jussieu.fr/OUTILS/documentation/doc/oracle/doc10G-2/server.102/b14237/statviews_4376.htm#sthref3180|user_objects]] (cf.[[http://www-ari.ufr-info-p6.jussieu.fr/OUTILS/documentation/doc/oracle/doc10G-2/server.102/b14237/statviews_2005.htm#i1583352| all_objects]]) |
- | * vue user_source (cf. all_source) | + | * vue [[http://www-ari.ufr-info-p6.jussieu.fr/OUTILS/documentation/doc/oracle/doc10G-2/server.102/b14237/statviews_4434.htm#sthref3296|user_source]] (cf. [[http://www-ari.ufr-info-p6.jussieu.fr/OUTILS/documentation/doc/oracle/doc10G-2/server.102/b14237/statviews_2063.htm#i1588578|all_source]]) |
* Que fait la procédure l1 ? Ajouter des commentaires dans l1.sql pour expliquer le fonctionnement de la procédure l1. | * Que fait la procédure l1 ? Ajouter des commentaires dans l1.sql pour expliquer le fonctionnement de la procédure l1. | ||
* Compléter la procédure s1(nom) pour afficher le code source d'une procédure dont le nom est passé en paramètre. Voir le fichier s1.sql | * Compléter la procédure s1(nom) pour afficher le code source d'une procédure dont le nom est passé en paramètre. Voir le fichier s1.sql | ||
* Ecrire la procédure s2(nom, ligne1, ligne2) pour afficher le morceau de code source (ligne1 à ligne2) de la procédure dont le nom est passé en paramètre. | * Ecrire la procédure s2(nom, ligne1, ligne2) pour afficher le morceau de code source (ligne1 à ligne2) de la procédure dont le nom est passé en paramètre. | ||
- | * Eventuellement, installer chez soi Oracle Express Edition | + | * Eventuellement, installer chez soi [[http://www.index-internet.net/info_oracle_xe_oracle_express_edition.htm|Oracle Express Edition]] |
- | ==Exercice 2 : SQL sur la base MONDIAL== | ||
- | * Prendre en main la base MONDIAL | ||
- | * lire le diagramme Entité-Association de la base MONDIAL | ||
- | * lire les contraintes d'intégrité référentielle de base MONDIAL | ||
- | * Requêtes avancées | ||
- | * Editer le fichier tp1.sql | ||
- | * Ecrire en SQL les requêtes numérotées 10 à 20 sur la base MONDIAL, et les exécuter. | ||
- | * Vérifier vos réponses en exécutant les requêtes solution nommées de Mondial.R1 à Mondial.R20 : | ||
- | <code> select * from mondial.R1; | ||
- | select * from mondial.R2;</code> | + | Retour [[site:enseignement:master:mlbda:start]] |