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: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 partie, tapez la commande: | + | Désormais, il 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. | + |