Inès de Courchelle
Durée : 1h30
Consignes :
Durant ce TD l’utilisation d’un papier et d’un crayon est fortement conseillé !
Objectifs :
- Appliquer des règles génériques de validité de données (Normalisation)
- Utiliser mySQL pour la première fois
- Créer le squelette d’une base de données (LDD)
Attention :
- L’ensemble des exercices ci-dessous ne seront pas tous corrigés en cours !
- Les éléments de correction seront donnés en TD, EN AUCUN CAS, des corrections toutes faites vous serons données ou distribuées. Vous devez prendre des notes !
Exo 1 - Normalisation
Travailler(#idEmploye, anneeEncours, anneeDebutEmploi, specialites)
- En quelle forme normale est cette relation ? Pourquoi ?
- Si elle n’est pas en 3ème forme normale (3FN), expliquez les éventuels problèmes et proposez une décomposition qui permet de la rendre en 3FN
Exo 2 - Prendre en main mySQL
Objectif : Création d’un utilisateur qui n’est pas root
Pourquoi ?
Il ne faut surtout pas modifier une BD en mode root

- Ouvrir un terminal
- Vérifier que le service mysql est lancé
- Lancer mysql en root
- Créer un nouvel utilisateur
- Quitter mysql
- Tester la connextion avec le nouvel utilisateur
1- Ouvrir un terminal

2- Vérifier que le service mysql est lancé
sudo service mysql status

S’il n’est pas lancé :
Vérification :
sudo service mysql status


3- Lancer mysql en root
Le mot de passe ROOT par defaut est : cytech0001

4- Créer un nouvel utilisateur
CREATE USER 'r2d2'@'localhost' IDENTIFIED BY 'r2d2';
- Ici, la commande créé un user qui a pour login r2d2
- dont le mot de passe est r2d2
- ATTENTION :
- les côtes -> ’ sont obligatoires
- et le point virgule -> ; est obligatoire

Pas de panic - Si vous avez l’erreur suivante à la création du USER

Solution
mettre un mot de passe un peu plus compliqué
RE essayer de créer un nouvel utilisateur
CREATE USER 'r2d2'@'localhost' IDENTIFIED BY 'mdp!anakin<3';
Donner les priviléges au nouvel utilisateur
GRANT ALL PRIVILEGES ON *.* TO 'r2d2'@'localhost';
- Ici, la commande donne tous les droits d’accès
- au user -> r2d2


5- Quitter mysql
exit

6- Tester la connextion avec le nouvel utilisateur
mysql -u r2d2 -p


Tips !
- NE PAS OUBLIER LE USER QUE L’ON VIENT DE CRÉER

- Trouver un identifiant et mdp que l’on oublie pas
- Utiliser un identifiant et un mdp identique
- Exemple :
- Prendre un identifiant et mdp non confidentiel
- Pourquoi ? Vous serez amené à l’écrire en clair dans des fichiers de configuration, notamment en programmation web
Créer un script
- Ouvrir son éditeur de texte préféré
- Enregistrer le fichier avec l’extension .sql
- Ouvrir le terminal
- Placer vous à l’endroit ou vous avez enregistré votre fichier
- Lancer mysql
- Entrer la commande :
source <nom_du_fichier>.sql
Quelques commandes utiles !
- create database < nom de la bd >;
- show databases;
- use < nom de la bd >;
- show tables;
- describe < nom de la table >;
- show create table < nom de la table >;

Exo 3 - Médiathèque
Nous considèrons le MLD suivant :
Realisateur(idRealisateur,nom,prenom)
Acteur(idActeur,nom,prenom)
Film(idFilm,titre,dateF,duree,#idRealisateur)
Jouer(#idActeur,#idFilm,personnage)
- Créer un fichier appelé mediatheque.sql permettant de créer la base de données << Mediatheque >>
- Exécuter le script mediateque.sql permettant de créer la base de données
- Quels mots clés dois-je rajouter pour supprimer la base de données si elles existes déjà ?
- Indiquer dans le script que vous allez utiliser cette base de données
- Créer les différentes tables (attention : ne pas oublier les clés primaires et étrangère)
- Mettre comme date par défaut la date du système pour la table Film
- Rendre obligatoire les informations, titre, duree, nom, prenom
- Vérifier que la durée d’un film est supérieur à 30 min.
- Reconstituer le MCD correspondant
Exo 4 - Gestion Personnel
Nous considèrons le MLD suivant :
Service(idService,nom)
Produit(idProduit,appelation)
Employe(idEmploye,nom,prenom,#idService)
Fabriquer(#idEmploye,#idProduit,dateDeRealisation)
- Créer un script permettant de créer la base de données << Manufacture >>
- Exécuter le script permettant de créer la base de données
- Quels mots clés dois-je rajouter pour supprimer la base de données si elles existes déjà ?
- Indiquer dans le script que vous allez utiliser cette base de données
- Créer les différentes tables (attention : ne pas oublier les clés primaires et étrangère)
- Reconstituer le MCD correspondant