Enseignant: prof. Malchiodi (Università degli Studi di Milano)
TP: gestion des bases de données
- Acceder à mySQL en tant que usager root (ou usager avec suffisantes
privilèges).
- Créer une base de données superheroes.
- Créer un usager superheroadmin qui a tous les privilèges sur la base
superheroes et doit pouvoir créer des nouveaux usagers.
- Quitter mySQL et se réconnecter en tant que usager superheroadmin.
- Selectionner la base superheroes.
- Créer une table heroes avec les colonnes suivantes:
- ID (entier qui fera office de clé primaire),
- Name (chaîne de caractères),
- Identity (chaîne de caractères),
- Birth_place (chaîne de caractères),
- Publisher (chaîne de caractères),
- Height (nombre à virgule flottante),
- Weight (nombre à virgule flottante),
- Gender (chaîne de caractères),
- First_appearance (entier),
- Eye_color (chaîne de caractères),
- Hair_color (chaîne de caractères),
- Strength (chaîne de caractères),
- Intelligence (chaîne de caractères).
- Créer un usager heroreader qui n’a que les privilèges de lecture sur cette
table et qui ne peut pas créer autres usagers.
- Créer un usager herowriter qui a les privilèges de lecture et d’écriture sur
cette table et qui peut créer autres usagers.
- Ajouter un index portant sur la colonne ID.
- Ajouter une contrainte qui ensure que les colonnes Strength, Height, Weight
ne contiennent jamais une valeur négative.
- S’assurer aussi que les colonnes Name, Identity et Publisher contiennent toujours
une valeur.
- Se connecter en tant que l’usager herowriter et insérer les heros suivants
(les valeurs de chaque colonne sont séparés en utilisant un point-virgule, et des
valeurs manquantes sont indiquées avec deux point-virgules sans rien entre eux):
- Wonder Woman; Diana Prince; Themyscira; DC Comics; 183.13; 74.74; F; 1941;
Blue; Black; 100; high
- Wolverine; Logan; Alberta, Canada; Marvel Comics; 160.70; 135.21; M; ;
Blue; Black; 35; good
- Spider-Man; Peter Parker; New York, New York; Marvel Comics; 178.28;
74.25; M; ; Hazel; Brown; 55; high
- Professor X; Charles Francis Xavier; New York, New York; Marvel Comics;
183.74; 86.89; M; 1963; Blue; No Hair; 10; high
- Exécuter une SELECT et vérifier que les héros insérés soient effectivement
stockés dans la BD.
- Essayer de modifier un héro en ne pas respectant les contraintes et vérifier
ce qu’il se passe. N’y a-t-il pas quelque chose qui ne cloche pas?
- Essayer aussi de violer un des autres contraintes sur les données (duplicité,
colonnes NOT NULL) et vérifier ce qu’il se passe.
- Se connecter en tant que l’usager heroreader et exécuter une cluase SELECT
qui trouve tous les héros ayant les yeux bleus (“blue” en anglais).
- Vérifier que l’usager heroreader ne peut pas ni écrire sur la table heroes,
ni en modifier la structure, ni créer autres usagers.
- Se connecter en tant que l’usager superheroadmin et enlever à l’usager
herowriter le privilège de créer autres usagers.
- Ajouter aussi une table Episode avec la structure suivante:
- ID (entier faisante office de clé primaire),
- Nom_episode (chaîne de caractères).
- Ajouter une table Episodes_Heros avec la structure suivante:
- ID_episode (entier faisant office de clé primaire),
- ID_heros (entier).
L’idée est celle de considérer un épisode et, pour chaque héro qui y
participe, ajouter une ligne a cette table qui lie l’ID de l’épisode à celui
du héro.
- En utilisant les jointures, determiner une clause SELECT qui trouve tous
les noms des héros qui ont participé à un épisode spécifique. Écrire aussi une
clause SELECT qui trouve les noms de tous les épisodes auxquels un spécifique
héro a participé.
- Quelles commandes utiliserez-vous pour supprimer les usager et la base
crées?