TP1 : prsentation du logiciel MySql, construire des tables....
1. 1. Introduction Introduction : prsentation des Tps : prsentation des Tps
1.1. 1.1. Objectif des T Objectif des TP Ps BDD s BDD : : Utiliser certains lments abords lors des cours et TDs de BDD (ACSI : Analyse et conception des systmes dinformation ). tre capable de raliser les structures de donnes conues lors des TDs sur un logiciel => Crer des tables (pour sauvegarder des donnes). Rechercher des informations (donnes). Crer des interfaces pour lire et sauvegarder des donnes. Remarque : l'objectif n'est pas de connatre toutes les fonctionnalits et subtilits du logiciel MySql mais d'utiliser toutes les fonctionnalits les plus classiques que l'on retrouve dans les logiciel du mme type. 1.2. 1.2. Dfinitions importantes Dfinitions importantes BD : (ou BDD) base de Donnes : stock d'informations organis et structur de manire : * pouvoir tre facilement manipul * stocker efficacement de trs grandes quantits d'informations [lien pour plus d'informations] . SGBD :Les SGBD (Systme de Gestion de Base de Donnes) permettent de naviguer dans ces donnes et dextraire (ou de mettre jour) les informations voulues au moyen de requtes. C'est le logiciel qui gre les donnes. SGBDR : le R vient de relationnel, notion difficile comprendre en dbut de formation, mais l'ide est : la simplicit d'usage, les liaisons entre les donnes sont facilites afin d'amliorer les temps d'accs. http://fr.wikipedia.org/wiki/Base_de_donnes_relationnelle 1.3. 1.3. tapes avant de commencer travailler sur un SGBD comme MySql tapes avant de commencer travailler sur un SGBD comme MySql Description du problme (cours TD) Dictionnaire des donnes sauvegarder(cours TD) Modle conceptuel de donnes (MCD ou Modle individus / relations)(cours TD) (Graphe des dpendances fonctionnelles) Schma de Relation (MR ou Modle Relationnel, MLD )(cours TD, utilisation en TP) Stockage, modification, suppression ou extraction des donnes ( SQL ) + Interfaces ( TP) schma 1 :exemple d'une dmarche pour tudier et raliser une base de donnes MySql_TP1_09_13.odt Page 1 11/09/13 1.3.1. 1.3.1. Description du problme Description du problme Cahier des charges : ... 1.3.2. 1.3.2. Dictionnaire de donnes Dictionnaire de donnes L'tude du cahier des charges permet de passer de la description du problme un dictionnaire de donnes puis aux tables (ensemble d'informations) Description Nom du champ type Contraintes Nom de l'tudiant ETU_nom Chane de 15 caractres 2 caractres minimum Prnom de l'tudiant ETU_prenom Chane de 15 caractres 2 caractres minimum Numro de l'tudiant (INE ?) ETU_identifiant entier 6 entiers (taille fixe) Adresse de l'tudiant ETU_adresse Chane de 30 caractres . 1.3.3. 1.3.3. Modle conceptuel de donnes, modle Relationnel Modle conceptuel de donnes, modle Relationnel Voir TD et cours. La ralisation du modle conceptuel de donnes est tudie en cours TD : ACSI. Pour les premiers TPs qui vont suivre, on prsentera (ventuellement) le passage du modle conceptuel de donnes au modle relationnel avec le logiciel analyse SI . 1.4. 1.4. Implantation du modle relationnel dans un base de donnes : Les tables Implantation du modle relationnel dans un base de donnes : Les tables Une table : c'est un objet abstrait, qui regroupe des donnes qui ont un rapport trs prcis entre elles. Elle est compose d'un nom, et d'un ensemble de proprits (que l'on appelle champs) dont lune d'elle (ventuellement plusieurs) a le caractre didentifiant. le premier champ est la cl primaire de la table : * elle permet d'identifier de faon unique chaque enregistrement * les valeurs prises par la cl primaire sont uniques * elle est compose d'un ou plusieurs champs http://fr.wikipedia.org/wiki/Table_%28base_de_donn%C3%A9es%29 http://fr.wikipedia.org/wiki/Cl_primaire MySql_TP1_09_13.odt Page 2 11/09/13 ETUDIANT Identifiant de l'tudiant Nom de l'tudiant Adresse de l'tudiant Ville de l'tudiant code postale
ETUDIANT 411245 SIMON 7 Impasse Merieux PARIS 75013 . ETUDIANT 411240 BRESSON 9 rue des pommiers RENNES 35000 . ETUDIANT 411235 DURAND 6 rue des deniers PARIS 75001
2. 2. introduction et prsentation du SQL introduction et prsentation du SQL
2.1. 2.1. Le SQL Le SQL : : Dfinition : SQL (Structured Query Language) est un langage informatique normalis qui permet de raliser des oprations sur des bases de donnes. La partie langage de manipulation de donnes de SQL permet de rechercher, d'ajouter, de modifier ou de supprimer des donnes dans les bases de donnes. Voici quelques ordres SQL et aspects du langage , mais tous ces ordres ne seront pas abords ce semestre : Dfinition des donnes (LDD) CREATE ALTER DROP - RENAME TRUNCATE Manipulation des donnes (LMD) INSERT UPDATE DELETE - LOCK TABLE Interrogation des donnes (LID) SELECT Contrle des donnes (LCD) GRANT REVOKE COMMIT ROLLBACK SAVEPOINT - SET TRANSACTION 2.2. 2.2. introduction introduction : : cration de table cration de table A partir d'un schma : le Modle conceptuel de donnes, on ralise le Modle logique de donnes (prochains TDs) et le Modle Relationnel . Ce modle logique de donnes est compos principalement de tables. Une table possde un nom et est construite avec des champs, un des champ (voir plusieurs champs) forme la cl primaire qui identifie de faon unique chaque enregistrement. Exemple: note : on remarque que les noms des champs sont souvent sans espace, de ce fait viter les caractres spcifiques (espaces,virgules .) pour que les tables (code SQL) soient plus facilement portables d'une base de donnes une autre. (comme les noms de fichiers sous linux ou des variables en programmation ). Il existe souvent une convention pour faire rfrence au nom de la table, cette convention est spcifique l'quipe qui s'occupe des base de donnes. Le modle relationnel est compos de tables relies les unes aux autres. 2.3. 2.3. Votre premire Table sur Mysql : la table Votre premire Table sur Mysql : la table GROUPE GROUPE Ouvrir un terminal Crer un rpertoire : exemple S1_BDD, (mkdir S1_BDD ), Se dplacer dans ce rpertoire (cd S1_BDD ) diter un fichier : nom_de_votre_fichier.sql exemple ( gedit bdd_tp1.sql &) et rajouter : #commentaires en SQL : prendre des Notes pour les prochains Tps et garder une trace de ce TP Depuis le terminal et se connecter au serveur mysql mysql -u user_votregroupe -h serveurmysql -p bdd_votregroupe_2013 ### mot de passe: bdd MySql_TP1_09_13.odt Page 3 11/09/13 ETUDIANT ETU_Identifiant ETU_Nom ETU_Adresse ETU _Code_postale ETU_Telephone ETU_Date_naissance ETU_Groupe ETU_Semestre mysql>help mysql>source bdd_tp1.sql mysql>show databases; mysql>use bdd_votregroupe_2013 ; mysql>show tables; mysql>exit 1. crer une autre table votrelogin_Etudiant CREATE TABLE votrelogin_Etudiant ( id_Etudiant INT , nom_Etudiant VARCHAR(45) ); INT : entier , VARCHAR chane de caractres variables 2. afficher la structure d'une table Describe votrelogin_Etudiant ; 3. Insrer des enregistrements dans une table INSERT INTO votrelogin_Etudiant (id_Etudiant, nom_Etudiant) VALUES (1, 'dupond'); INSERT INTO votrelogin_Etudiant VALUES (2, 'durand'); INSERT INTO votrelogin_Etudiant VALUES (1, 'Gauthier'); INSERT INTO votrelogin_Etudiant VALUES (NULL, 'laval'); INSERT INTO votrelogin_Etudiant ( nom_Etudiant) VALUES ('lepaul'); NULL : non affect, non disponible (diffrent de espace ou 0) 4. afficher tous les enregistrements d'une table SELECT * FROM votrelogin_Etudiant; 5. supprimer une table DROP TABLE votrelogin_Etudiant; Modifier la table, pour ne plus autoriser un enregistrement avec un identifiant de l'tudiant NULL, rajouter un commentaire au champ nom_Etudiant . 6. crer la table ajoutant la contrainte NOT NULL CREATE TABLE votrelogin_Etudiant ( id_Etudiant INT NOT NULL , nom_Etudiant VARCHAR(45) COMMENT 'nom de naissance' ); 7. afficher la requte de la cration de la table show create table votrelogin_Etudiant; 8. Insrer les enregistrements prcdents dans la table et conclusion 9. supprimer la table MySql_TP1_09_13.odt Page 4 11/09/13 10. supprimer la table, recrer la table en ajoutant la contrainte UNIQUE, puis insrer les champs prcdents CREATE TABLE votrelogin_Etudiant ( id_Etudiant INT UNIQUE NOT NULL , nom_Etudiant VARCHAR(45) COMMENT 'nom de naissance' ); * conclusion 11. supprimer la table, recrer la table et insrer les champs prcdents avec un cl primaire sur l'identifiant CREATE TABLE votrelogin_Etudiant ( id_Etudiant INT PRIMARY KEY , nom_Etudiant VARCHAR(45) COMMENT 'nom de naissance' ); * conclusion, quelle diffrence avec UNIQUE NOT NULL ? 12. supprimer la table , recrer la table et insrer les champs prcdents CREATE TABLE votrelogin_Etudiant ( id_Etudiant INT , nom_Etudiant VARCHAR(45) COMMENT 'nom de naissance', PRIMARY KEY(id_Etudiant ) ); 13. Pour les plus rapides, rajouter la date de naissance dans les champs et insrer quelques valeurs MySql_TP1_09_13.odt Page 5 11/09/13