L�utilisation des bases de donn�es by 93WVi17

VIEWS: 0 PAGES: 22

									Application à MySQL




                      1
Introduction
 Ce cours doit vous permettre de :
    Découvrir ce qu’est une base de donnée
    Découvrir comment créer une base de données sans trop
     de redondance
    Découvrir comment interroger une base de donnée
     MySQL
 Ce cours ne vous permettra pas :
    De bien comprendre les mécanismes sous-jacent
    Savoir faire une base de donnée optimisée
    D’avoir le BTS sans approfondir le sujet (tester, poser des
     questions…), tout comme pour les sockets
                                                                   2
Qu’est ce que c’est que ça?
 Un peu de vocabulaire…
 Une base de donnée peut être vue comme un ensemble de
 tableaux Excel :
   Chaque fichier Excel est une table
   Une ligne d’une table est un enregistrement (ou tuple)
   Une colonne d’une table est un attribut




                                                         3
Donc c’est quoi ?
 Une base de donnée, c’est un ensemble de tables, et
 chaque table contient de l’information stocké sous
 forme de tuple.

 Exemple : base de donnée de l’ORT :
    Une table eleve
    Une table classe
    Une table matiere
    Une table note


                                                        4
Comment organiser les tables
 Prenons l’exemple précédent, et imaginons qu’on
 veuille stocker les notes de tous les élèves :
   On utilise la table note, et on met les attribut suivants :
       Nom
       Prenom
       NomMatière
       Note




                                                                  5
Exemple 1
Nom                 Prenom                NomMatiere            Note
Lelore              Thibault              Informatique          19
Lelore              Thibault              Informatique          17
Lelore              Thibault              Français              8
Lelore              Thibault              Mathématique          15



  Différents problèmes :
  •Perte de place : on répète 4 fois le nom et le prénom, ainsi que le nom de la
  matière…
  •Modification : Si on veux modifier le nom, il faut le faire partout !
  •Suppression : Si on supprime une note, on peut aussi supprimer un nom !


                                                                                   6
Comment organiser les tables
 Mieux : on utilise eleve, matiere et note :

              eleve
            Nom       Prenom   Adresse      Telephone
            Zeset     Degs     10 rue Dsf   0630525659
            Edzts     Freddy   5 rue Ggds   0630525659


 Matiere                          Note
Nom          Enseignant         NomEleve     NomMatiere     Note
Informatique Lelore             Zeset        Informatique   15
Français     Autre              Edzts        Informatique   5


                                                                   7
Problèmes
  Pas parfait :
     Que se passe t’il si on a deux élèves avec le même nom ?
     Que se passe t’il si on modifie le nom d’un élève ?

             eleve
           Nom        Prenom   Adresse      Telephone
           Zeset      Degs     10 rue Dsf   0630525659
           Edzts      Freddy   5 rue Ggds   0630525659


 Matiere                             Note
Nom           Enseignant           NomEleve    NomMatiere     Note
Informatique Lelore                Zeset       Informatique   15
Français      Autre                Edzts       Informatique   5      8
Solution
 Lorsque l’on fait une table, il faut décider d’une clé


 Une clé est un attribut qui est unique dans toute la
  table.
   Il ne peut pas y avoir 2 tuple avec la même valeur
 Généralement, c’est un numéro, mais ça peut être
  n’importe quoi.




                                                           9
    Règles et conseils
     Pour bien faire :
        Utiliser une clé numérique (un identifiant)
        Ne pas hésiter à découper une table en deux :
            Dans l’exemple suivant, le modèle détermine la marque et la
 Voiture     puissance. On peut alors créer deux tables :
IdVoiture Marque       Modele     Puissance   Couleur
1            Renault   R5         5           Rouge
2            Renault   R5         5           Verte

  Voiture                               Modele
IdVoiture IdModele      Couleur       IdModele        Modele    Marque Puissance
1            1          Rouge          1              R5        Renault 5
2            1          Verte          2              Picasso   Citroen   12   10
Règle pour découper
1.    Transformer chaque attribut en attribut atomique :
     Quand un attribut contient plusieurs informations (nom
        et prénom, ou adresse et code postal…)
               Créer deux (ou plus) attributs.
2. Déterminer quelles dépendances existent entre les
      attributs pour chaque table
     Quand un attribut détermine d’autres attributs (une note
        et un nom de matière, ou un modèle de voiture et une
        marque)
               Créer deux (ou plus) tables.

                                                                11
Schéma relationnel
 Une fois qu’on a décidé de quelles tables faire, il est
  possible de faire un schéma relationnel :
    Comme UML, mais avec :
        À la place des classes, c’est les tables
        À la place des méthodes, c’est les attributs
        Il n’existe que des liens simples entre les tables
        Penser aussi aux cardinalités




                                                              12
MySQL
 Une fois les tables décidées, il faut les créer
    Plusieurs logiciels (MySQL, PostGres, Access, Oracle…)
 Tous utilisent le même langage de requête : le SQL


 Tout d’abord une présentation de SQL




                                                              13
Créer une base de donnée :
/* Table des quartiers */
CREATE TABLE quartiers (
id int NOT NULL auto_increment,
nom_quartier text,
PRIMARY KEY (id)
);

/* Tables des lieux */
CREATE TABLE lieux (
id int NOT NULL auto_increment,
nom text, ref_quartier int,
description text,
PRIMARY KEY (id)
);

                                  14
Créer une base de donnée :
/* Table des quartiers */
CREATE TABLE quartiers (
id int NOT NULL auto_increment,
                                  Nouveaux types…
nom_quartier text,
PRIMARY KEY (id)
);

/* Tables des lieux */
CREATE TABLE lieux (
id int NOT NULL auto_increment,
nom text, ref_quartier int,       Défini la clé
description text,                  principale
PRIMARY KEY (id)
);

                                                    15
Insérer des valeurs
INSERT INTO quartiers VALUES
 (1,'Wazemmes');

INSERT INTO quartiers(nom_quartier)
 VALUES ('Vieux Lille');

INSERT INTO lieux VALUES
 ('Biplan',1,'Salle de spectacle');


                                      16
Insérer des valeurs                       Permet d’ajouter qu’une
                                             partie d’un tuple
INSERT INTO quartiers VALUES
 (1,'Wazemmes');

INSERT INTO quartiers(nom_quartier)
 VALUES ('Vieux Lille');

INSERT INTO lieux VALUES
 ('Biplan',1,'Salle de spectacle');

                Le numéro de la clé est
                    sous entendu
                                                                    17
Interrogation de la base
 Tout le contenu de la table quartiers :
    SELECT * FROM quartiers;
 Tous les noms de lieux:
    SELECT nom FROM lieux;
 Même chose mais classé par ordre alphabétique :
    SELECT nom FROM lieux ORDER BY nom;
 Compter le nombre de lieux différents :
    SELECT COUNT(DISTINCT nom) FROM lieux;



                                                    18
Interrogation suite
 Tous les noms de lieux qui se trouvent dans le quartier
  "Q1":
    SELECT lieux.nom FROM lieux,quartiers WHERE lieux.
     ref_quartier=quartiers.id and quartiers.nom="Q1";
 Cette opération s’appelle une jointure
    Elle se fait grâce à la clé de la table quartiers :
        ref_quartier=quartiers.id




                                                            19
Modification
 UPDATE quartiers SET
 nom_quartier='Waazzeeeemmes !' WHERE
 ref_quartier=1;




                                        20
Suppression
 DROP TABLE quartiers;
   Supprime toute la table mais il faut qu’elle soit vide
 DELETE FROM lieux;
   Vide toute la table
 DELETE FROM lieux WHERE ref_quartier=1;
   Supprime toutes les lignes où ref_quartier=1




                                                             21
MySQL
 MySQL :
   Utiliser PHP (pour faire un site)
   Utiliser la ligne de commande
   Utiliser C++ (et autre langage de programmation)


 A vous de découvrir et d’apprendre…
    Hors programme




                                                       22

								
To top