site:enseignement:licence:2i009:tme8_oracle
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
site:enseignement:licence:2i009:tme8_oracle [15/04/2020 16:28] – créée amann | site:enseignement:licence:2i009:tme8_oracle [15/04/2020 17:47] (Version actuelle) – amann | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== TME 8: création de schémas – contraintes d' | + | ====== TME 8: création de schémas – contraintes d' |
- | v<fc #ff0000>ersion | + | <fc #ff0000>version |
+ | |||
+ | ===== Exercice 1 ===== | ||
+ | |||
+ | Créez le schéma Entreprise du TD sous H2 et associez aux tables les contraintes d' | ||
- | Ce TME se base sur le TD8 et vise à illustrer la modification des tables et l' | ||
* **EMPLOYE**(__NumSS__, | * **EMPLOYE**(__NumSS__, | ||
Ligne 10: | Ligne 13: | ||
* **GRILLE_SAL** (__Profil__, | * **GRILLE_SAL** (__Profil__, | ||
- | ===== Exercice 1 ===== | ||
- | Créez le schéma du Entreprise sous Oracle et associez aux tables les contraintes d' | ||
- | Dans ce qui suit, il vous est demandé d' | + | ===== Exercice 2 ===== |
- | ==== Syntaxe pour l' | + | |
- | <code sql> | + | |
- | Par exemple, pour insérer une employée 'LARS Anna', qui habite ' | + | On considère |
- | 08-1975, il suffit | + | |
- | <code sql> | + | |
- | et de constater que la système retourne bien le message | + | * ALBUM(albumId, |
- | <code bash>1 ligne(s) insérée(s)</ | + | * PISTE(pisteId, |
+ | * ARTISTE(artistId, | ||
+ | * COMPTE(email, | ||
+ | * ABONNÉ(email) | ||
+ | * PLAYLIST(email, | ||
+ | * AVIS(email, pisteId, albumId, score) | ||
+ | |||
+ | |||
+ | Chaque album (table ALBUM) est identifié par un identifiant (albumId) | ||
+ | |||
+ | Les artistes sont stockés dans la table ARTISTE qui contient l’identifiant (artistId) et le nom de l’artiste (32 charactères max). On distingue entre trois types d' | ||
+ | |||
+ | Les pistes de chaque album (table PISTE) sont identifiées par le numéro de piste (pisteId) et l’identifiant de l’al bum. On stocke le titre de la piste (obligatoire), | ||
+ | |||
+ | |||
+ | Tous les comptes utilisateurs (table COMPTE) sont identifiés | ||
+ | par leur email (32 charactères max) et on stocke leur temps d' | ||
+ | Tous les utilisateurs peuvent écouter des chansons et donner un avis (score optionnel entre -5 et 5). Uniquement les abonnées peuvent maintenir une playlist (table PLAYLIST). | ||
+ | |||
+ | Question | ||
+ | de la table). | ||
+ | |||
+ | Question 2: Est-ce qu'il est possible qu'un compositeur d'une piste (table PISTE) soit un interprête dans la table ARTISTE ? Si oui, comment faudrait-il modifier le schéma pour éviter cette incohérence. | ||
- | ==== Syntaxe pour la suppression ==== | ||
- | <code sql> | ||
- | ===== Exercice 2 ===== | ||
- | Insérez dans chaque table au moins un n-uplet qui vérifie les contraintes d' | ||
- | ===== Exercice 3 ===== | ||
- | Proposez des insertions qui violent les contraintes d' | ||
- | Par exemple, l' | ||
- | <code sql> | ||
- | viole la contrainte de clé primaire de Employe car elle tente d' | ||
- | Si vous tentez d' | ||
- | <code bash> | ||
- | ORA-01400: impossible d' | ||
- | On peut utiliser une syntaxe alternative pour les insertions en spécifiant les attributs dont on renseigne les valeurs comme indiqué ci-dessous | ||
- | <code sql> | ||
- | Répondre aux questions suivantes : | ||
- | - Proposer une insertion dans la table Employé qui ne respecte pas la contrainte de clé primaire. | ||
- | - Proposer une insertion dans la table Employé qui ne respecte pas la contrainte de limite d' | ||
- | - Proposer une insertion dans la table Employé qui ne respecte pas la contrainte de longueur de l' | ||
- | - Proposer une insertion dans la table Employé qui ne respecte pas la contrainte sur les villes possibles. | ||
- | - Insérer dans la table Employé deux employés avec le même nom et le même prénom. | ||
- | - Proposer une insertion dans la table Grille_SAL qui ne respecte pas la contrainte C8. | ||
- | - Proposer une insertion dans la table Projet qui ne respecte pas la contrainte référentielle vers Employe : insérer un responsable de projet qui n'est pas dans la table Employé | ||
- | - Proposer une insertion dans la table Embauche qui ne respecte pas une des contraintes référentielles : par exemple, associer un employé existant à un projet qui n' |
site/enseignement/licence/2i009/tme8_oracle.1586960902.txt.gz · Dernière modification : de amann