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:licence:3i009:tme_vues [04/11/2016 17:23] hubert [CRÉATION DES VUES] |
site:enseignement:licence:3i009:tme_vues [17/12/2020 11:49] (Version actuelle) amine [CONSTITUTION DE LA BASE DE DONNÉES] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{indexmenu_n>28}} | + | {{indexmenu_n>9}} |
- | ====== TME Vues ====== | + | ====== TME 9 Vues ====== |
===== INTRODUCTION ===== | ===== INTRODUCTION ===== | ||
Ligne 8: | Ligne 8: | ||
<code sql> | <code sql> | ||
CREATE OR REPLACE VIEW <nom de vue> [(liste d'attribut)] | CREATE OR REPLACE VIEW <nom de vue> [(liste d'attribut)] | ||
- | AS <requête SQL> | + | AS <requête SQL> ; |
</code> | </code> | ||
Ligne 24: | Ligne 24: | ||
La clé primaire de chaque table est soulignée. | La clé primaire de chaque table est soulignée. | ||
Pour la table PRET, COTE,NOLECTEUR est une clé ; COTE et NOLECTEUR référencent LIVRE et LECTEUR respectivement. | Pour la table PRET, COTE,NOLECTEUR est une clé ; COTE et NOLECTEUR référencent LIVRE et LECTEUR respectivement. | ||
+ | |||
===== CONSTITUTION DE LA BASE DE DONNÉES ===== | ===== CONSTITUTION DE LA BASE DE DONNÉES ===== | ||
+ | Télécharger l'archive [[https://nuage.lip6.fr/s/zsaJApXkcTyFsmo|tme_vues_2020.zip]] et la décompresser dans votre dossier perso. | ||
+ | |||
+ | |||
+ | Lancer SQLWorkbench et se connecter à Oracle en suivant ces indications : __[[site:enseignement:documentation:oracle:sqlworkbench|]]__ | ||
+ | |||
+ | Dans un onglet (New Tab), ouvrir le fichier **tme_vues.sql** | ||
+ | |||
+ | |||
+ | Exécuter les commandes : | ||
+ | <code sql> | ||
+ | @tme_vues_schema | ||
+ | @tme_vues_donnees | ||
+ | </code> | ||
+ | |||
+ | /* ------- PPTI en 2019------------- | ||
^commande^description^ | ^commande^description^ | ||
Ligne 34: | Ligne 50: | ||
| emacs tme_8.sql & | ouvrir le fichier et créer la base avec les commande indiquées| | | emacs tme_8.sql & | ouvrir le fichier et créer la base avec les commande indiquées| | ||
| **Alt-x** my/sql-oracle //ou// **Atl-x** sql-oracle | se connecter à Oracle. Voir [[site:enseignement:documentation:oracle:connexionoracle|ConnexionOracle]] | | | **Alt-x** my/sql-oracle //ou// **Atl-x** sql-oracle | se connecter à Oracle. Voir [[site:enseignement:documentation:oracle:connexionoracle|ConnexionOracle]] | | ||
- | + | | placer le curseur sur la ligne @tme8_schema et saisir **Ctrl-c Ctrl-c** | créer les tables | | |
+ | | placer le curseur sur la ligne @tme8_donnees et saisir **Ctrl-c Ctrl-c** | remplir les tables | | ||
+ | ------------------------- */ | ||
Pour vérifier que votre base a été peuplée, exécuter les requêtes suivantes : | Pour vérifier que votre base a été peuplée, exécuter les requêtes suivantes : | ||
<code sql> | <code sql> | ||
- | select count(*) as Num_lecteurs from lecteur; // retourne 15 | + | select count(*) as Num_lecteurs from lecteur; // retourne 14 |
select count(*) as Num_livres from livre; // retourne 712 | select count(*) as Num_livres from livre; // retourne 712 | ||
select count(*) as Num_prets from pret; // retourne 21 | select count(*) as Num_prets from pret; // retourne 21 | ||
Ligne 46: | Ligne 63: | ||
Entrez les commandes SQL permettant de créer les vues suivantes : | Entrez les commandes SQL permettant de créer les vues suivantes : | ||
- | - Les romans policiers : <code> POLICIER (COTE, TITRE, AUTEUR)</code> La vue contient 185 livres | + | - Les romans policiers : <code sql> POLICIER (COTE, TITRE, AUTEUR)</code> La vue contient 185 livres |
- | - Les lecteurs avec les catégories des livres qu'ils ont empruntés (rendu ou pas) : <code> LECTEUR_CATEGORIE (NOLECTEUR, CATEGORIE) </code sql> La vue contient 21 nuplets (ou 9 nuplets si la clause SELECT a un DISTINCT) | + | - Les lecteurs avec les catégories des livres qu'ils ont empruntés (rendu ou pas) : <code sql> LECTEUR_CATEGORIE (NOLECTEUR, CATEGORIE) </code> La vue contient 21 nuplets (ou 9 nuplets si la clause SELECT a un DISTINCT) |
- | - Les lecteurs de romans policier : <code> LECTEUR_POLICIER (NOLECTEUR, NOM, ADRESSE, COTE, DATEEMPRUNT, DATELIMITE) </code> La vue contient 18 nuplets (faisant référence à 6 lecteurs distincts) | + | - Les lecteurs de romans policier : <code sql> LECTEUR_POLICIER (NOLECTEUR, NOM, ADRESSE, COTE, DATEEMPRUNT, DATELIMITE) </code> La vue contient 18 nuplets (faisant référence à 6 lecteurs distincts) |
- Les livres qui n'ont pas été rendu à temps en supposant que nous sommes le premier janvier 2015 (la date s'écrit '01/01/2015'). <code sql> DEPASSEMENTS (NOLECTEUR, COTE, DATELIMITE) </code> La vue contient 4 dépassements | - Les livres qui n'ont pas été rendu à temps en supposant que nous sommes le premier janvier 2015 (la date s'écrit '01/01/2015'). <code sql> DEPASSEMENTS (NOLECTEUR, COTE, DATELIMITE) </code> La vue contient 4 dépassements | ||
- | - Une relation donnant pour chaque lecteur le nombre de ses emprunts en cours : <code> STATISTIQUES (NOLECTEUR, NBLIVRES) </code> La vue contient 3 nuplets | + | - Une relation donnant pour chaque lecteur le nombre de ses emprunts en cours : <code sql> STATISTIQUES (NOLECTEUR, NBLIVRES) </code> La vue contient 3 nuplets |
===== INTERROGATION DES VUES ===== | ===== INTERROGATION DES VUES ===== | ||
Ligne 86: | Ligne 103: | ||
On verra une solution avec des triggers dans le prochain TME. | On verra une solution avec des triggers dans le prochain TME. | ||
+ | |||
+ | |||
+ | ====DIVERS==== | ||
+ | Si vous utilisez Oracle l'URL de connexion est : | ||
+ | <code> | ||
+ | jdbc:oracle:thin:@localhost:1521:oracle | ||
+ | </code> | ||
+ | Si vous utilisez H2, l'URL de connexion est : | ||
+ | <code> | ||
+ | jdbc:h2:tcp://localhost:9093/~/tmevues | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||