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:licence:2i009:tme9-h2

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édentes Révision précédente
Prochaine révision
Révision précédente
site:enseignement:licence:2i009:tme9-h2 [14/04/2020 09:08]
amine
site:enseignement:licence:2i009:tme9-h2 [14/04/2020 09:54] (Version actuelle)
amine
Ligne 9: Ligne 9:
  
 Pour faciliter la saisie des données, une légère modification est apporté : désormais, l'​attribut NumSS de Employe a une longueur fixe de 5 chiffres et l'​attribut NumProj de Projet contient 3 chiffres. ​ Pour faciliter la saisie des données, une légère modification est apporté : désormais, l'​attribut NumSS de Employe a une longueur fixe de 5 chiffres et l'​attribut NumProj de Projet contient 3 chiffres. ​
-Pour créer le schéma de cette base, exécuter le script accessible depuis [[site:​enseignement:​licence:​2i009:​donnees:​tme8-creations-h2|]]+Pour créer le schéma de cette base, exécuter le script accessible depuis [[site:​enseignement:​licence:​2i009:​donnees:​tme8-creations-h2|]]
  
  
Ligne 37: Ligne 38:
  
  
-Pour la suite des questions, il vous est demandé d'​insérer ​dans Employe ​les n-uplets ​suivants :+Pour la suite des questions, il vous est demandé d'​insérer ​de vider Employe ​et d'​insérer trois nouveaux ​n-uplets ​en exécutant les commandes suivantes :
 <code sql>  <code sql>
-          ​22334, '​Adam',​ '​Funk',​ '​Paris',​ '​1-12-1982'​  +delete from Employe; 
-       45566, '​Rachid',​ '​Allaoui',​ '​Lyon',​ '​13-4-1986'​  ​      + 
-       77889, '​Florent',​ '​Girac'​ , '​Marseille',​ '​4-11-1990'​+insert into Employe (NumSS, NomE, PrenomE, VilleE, DateNaiss) 
 +select * from ( 
 +       ​select 22334, '​Adam',​ '​Funk',​ '​Paris', ​ ​PARSEDATETIME('​1-12-1982'​,  '​dd-mm-yyyy'​) union all 
 +       select 45566, '​Rachid',​ '​Allaoui',​ '​Lyon', ​PARSEDATETIME('​13-4-1986'​,  '​dd-mm-yyyy'​)       union all 
 +       select 77889, '​Florent',​ '​Girac'​ , '​Marseille', ​PARSEDATETIME('​4-11-1990'​, '​dd-mm-yyyy'​) 
 +); 
 +select * from Employe;
 </​code> ​     ​ </​code> ​     ​
  
Ligne 49: Ligne 56:
  
  
-A présent, il est vous demandé d'​insérer dans Projet ​les nuplets ​suivants +A présent, il est vous demandé d'​insérer dans Projet ​trois nuplets ​en exécutant les commandes suivantes 
 <code sql>  <code sql>
-                ​123, '​ADOOP',​ 22334, '​Paris',​ 120000 + 
- 757, '​SKALA',​ 45566, '​Lyon',​ 180000 +insert into Projet values (123, '​ADOOP',​ 22334, '​Paris',​ 120000); 
- 890, '​BAJA',​ 22334, '​Paris',​ 24000+insert into Projet values (757, '​SKALA',​ 45566, '​Lyon',​ 180000); 
 +insert into Projet values (890, '​BAJA',​ 22334, '​Paris',​ 24000);
 </​code>​ </​code>​
   * **7.** ​  Peut on insérer des n-uplets dans Embauche en l’état ?​   * **7.** ​  Peut on insérer des n-uplets dans Embauche en l’état ?​
  
  
-Insérer les nuplets suivants dans la table Grille_sal+Insérer les nuplets suivants dans la table Grille_sal ​trois nuplets comme suit : 
 <code sql> <code sql>
- '​Admin',​ 80000 +insert into grille_sal values ('​Admin',​ 80000); 
- '​Deve', ​   45000 +insert into grille_sal values ('​Deve',​45000); 
- '​Tech', ​    ​35000+insert into grille_sal values ('​Tech',​35000);
 </​code>​ </​code>​
   * **8.  ** Proposer une insertion dans Embauche qui ne respecte pas au moins une contrainte parmi celles définies pour cette table.   * **8.  ** Proposer une insertion dans Embauche qui ne respecte pas au moins une contrainte parmi celles définies pour cette table.
Ligne 68: Ligne 76:
 <fc #​6495ed>​Suppressions rejetées</​fc>​ <fc #​6495ed>​Suppressions rejetées</​fc>​
  
-Afin de répondre aux questions qui suivent, ​tapez la commande +Afin de répondre aux questions qui suivent, ​exécuter les commandes se trouvant dans [[site:​enseignement:​licence:​2i009:​donnees:​tme8-creations-h2|Creation]] puis celles dans [[site:​enseignement:​licence:​2i009:​donnees:​tme8-insertions-h2|Insertions]] 
-<code sql> +
- @TME8-insertions +
-</​code>​+
  
   * **9.** ​  ​Proposer une suppression de nuplets de Employe qui ne respecte pas une contrainte référentielle d'une autre table. Précisez laquelle puis essayer de contourner les contraintes jusqu'​à pouvoir supprimer les nuplets de Employe référencés nulle part.    * **9.** ​  ​Proposer une suppression de nuplets de Employe qui ne respecte pas une contrainte référentielle d'une autre table. Précisez laquelle puis essayer de contourner les contraintes jusqu'​à pouvoir supprimer les nuplets de Employe référencés nulle part. 
Ligne 83: Ligne 89:
 <fc #​6495ed>​Mises à jour rejetées</​fc>​ <fc #​6495ed>​Mises à jour rejetées</​fc>​
  
-Remettre la base à l'​état initial en tapant la commande: +Remettre la base à l'​état initial en exécutant les commandes se trouvant dans [[site:enseignement:​licence:​2i009:​donnees:​tme8-creations-h2|Creation]] puis celles dans [[site:​enseignement:​licence:​2i009:​donnees:​tme8-insertions-h2|Insertions]] 
-<code sql> +
- @TME8-insertions +
-</​code>​+
  
   * **13.** ​ Proposez un mise à jour de  Employe qui ne respecte pas les contraintes référentielles puis tenter de trouver une mise-a-jour qui les respecte toutes.   * **13.** ​ Proposez un mise à jour de  Employe qui ne respecte pas les contraintes référentielles puis tenter de trouver une mise-a-jour qui les respecte toutes.
Ligne 98: Ligne 102:
 <fc #​ff0000>​**2. Deuxième Partie**</​fc>​ <fc #​ff0000>​**2. Deuxième Partie**</​fc>​
  
 +Comme indiqué précédemment,​ le but de cette partie d'​illustrer un cas où les mises-a-jour ne sont pas rejetées mais plutôt propagées. ​
 +Pour ce faire exécuter les commandes se trouvant dans [[site:​enseignement:​licence:​2i009:​donnees:​tme8-creations-cascade-h2|Creation-contraintes-cascade]]
 +puis insérer les nuplets en exécutant les commandes de [[site:​enseignement:​licence:​2i009:​donnees:​tme8-insertions-h2|Insertions]].
  
-Pour cette partietapez la commande: +Désormaisil sera possible ​de supprimer des nuplets ​d'une table référencées par une autre table. 
-<code sql> +Pour le voir, supprimer les n-uplets de Employe et vérifier que tous les n-uplets des autres tables qui référencent des employés venant d'​être supprimés ​sont aussi supprimés.
-@TME8-insertions-bis +
-</​code>​ +
- +
-Comme indiqué précédemment,​ le but de cette partie ​d'illustrer un cas où les mises-a-jour ne sont pas rejetées mais plutôt propagées. Pour le voir, supprimer les n-uplets de Employe et vérifier que tous les n-uplets des autres tables qui référencent des employés venant d'​être supprimés ​seront supprimés eux aussi.+
site/enseignement/licence/2i009/tme9-h2.1586848102.txt.gz · Dernière modification: 14/04/2020 09:08 par amine