site:enseignement:licence:2i009:tme8_h2
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
site:enseignement:licence:2i009:tme8_h2 [15/04/2020 16:35] – amann | site:enseignement:licence:2i009:tme8_h2 [16/04/2021 09:52] (Version actuelle) – [Exercice 3] amine | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== TME 8: création de schémas – contraintes d' | + | ====== TME 8: création de schémas – contraintes d' |
<fc # | <fc # | ||
- | Ce TME se base sur le TD8 et vise à illustrer la modification des tables | + | ===== Exercice 1 ===== |
+ | |||
+ | Créez | ||
* **EMPLOYE**(__NumSS__, | * **EMPLOYE**(__NumSS__, | ||
Ligne 10: | Ligne 13: | ||
* **GRILLE_SAL** (__Profil__, | * **GRILLE_SAL** (__Profil__, | ||
- | ===== Exercice | + | ===== Exercice |
- | Créez | + | Tester les contraintes existantes sur le schéma |
+ | ===== Exercice 3 (facultatif) ===== | ||
- | Dans ce qui suit, il vous est demandé | + | On considère le schéma relationnel suivant |
- | ==== Syntaxe pour l' | + | * ALBUM(albumId, |
- | <code sql> | + | * PISTE(pisteId, albumId, pisteTitre, interId, compId, durée) |
+ | * ARTISTE(artistId, | ||
+ | * COMPTE(email, | ||
+ | * ABONNÉ(email) | ||
+ | * PLAYLIST(email, | ||
+ | * AVIS(email, pisteId, albumId, score) | ||
- | Par exemple, pour insérer une employée 'LARS Anna', qui habite ' | ||
- | 08-1975, il suffit d' | ||
- | <code sql> | ||
- | et de constater que la système retourne bien le message | + | Chaque album (table ALBUM) est identifié par un identifiant (albumId) |
- | <code bash>1 ligne(s) insérée(s)</ | + | |
+ | 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> | ||
- | Unique index or primary key violation: " | ||
- | INSERT INTO employe VALUES(21456,' | ||
- | 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_h2.1586961356.txt.gz · Dernière modification : de amann