Création

Introduction

Pour montrer comment créer une base de donnée et la remplir nous allons partir d'un exemple simple, dans une école primaire on souhaite répartir les élèves dans des classes.

Remarque

Une base de données peut être très grande, voici le nombre de tables d'une base de donnée moyenne :

un gand nombre de tables

(L'image est prise du livre "Base de données" de Jean-Luc Hainaut édition Dunod.)

Schéma

La conception d'une base de données est complexe (surtout si elle est grande), on a l'habitude d'utiliser des shéma pour aider et clarifier les choses. On cherche les entités (c'est à dire des notions ou objets indépendants) ici les élèves et les classes sont deux entités différentes, puis on se pose la question du lien. enfin on se pose la question de savoir la cardinalité c'est à dire ici, on se pose la question de savoir au minimum et au maximum un élève est il répertorié dans combien de classes et une classe contient au minimum et au maximum combien d'élèves.

Schéma de base de donnée

Il y aura trois tables, une pour les élèves, une pour les classes et enfin une qui fera la liaison.

Création des tables

Pour une table il faut penser aux valeurs que l'on souhaite conserver, aux types de ses valeurs, aux contraintes et enfin et surtout à la clef primaire.

Ici il faut faire très attention, il existe des règles (formes normales) à respecter si on souhaite avoir une table occupant peut de mémoire et/ou rapide au niveau des requêtes.

Par exemple il faut éviter les attributs non atomique, c'est à dire comportant plusieurs informations indépendantes (comme le numéro de sécurité sociale).

Il faut éviter le plus possible les redondances.

Il faut aussi éviter d'avoir des champs comportant beaucoup de Null.

Pour les Eleves :

Pour la Classe

Pour la Liaison

Syntaxe pour la création.


		

Une table doit avoir une clé primaire, elle doit caractérisée de façon unique une ligne de la table. Ici on utilise un entier qui est fait pour il va changer automatiquement pour chaque ligne.


		

Ici on impose des contraintes, par exemple il n'est pas possible d'avoir deux lignes avec le même couple (nom,annee).


		

La clé primaire est formée par le couple (id_classe, id_eleve), notons FOREIGN KEY pour référencer les clef étrangère qui référence des clé primaires d'autres tables.

Syntaxe pour remplir les tables.

Entrer une donnée.


		

On n'entre pas l'id_classe car on a demandé à ce qu'il soit fait automatiquement, on indique les champs puis les valeurs.

Entrer plusieurs données.

On peut entrer différentes valeurs en une fois.


		

La liaison


		

Ici il faut récupérer les identifiants de la classe et de l'élève et les reporter.

Mettre à jour une table.

Modifier des données

On peut modifier une ligne de donnée grâce à l'instruction UPDATE nom table SET nom de la colonne = nouvelle valeur WHERE mettre la condition (identifiant de la ligne par exemple).


		

On modifie la date de naissance de l’élève qui a l'identifiant 1.

Si vous ne mettez pas de conditions alors l'ensemble des lignes aura la colonne modifiée.

Supprimer des données

Supprimer une ligne se fait grace à DELETE FROM nom de table WHERE condition.


		

Comme précédemment ne pas mettre de condition généralise l'action à toutes les lignes (et donc supprime touts les lignes !).

La suppression de données peut poser des problèmes, en effet si une donnée est une clef étrangère d'une autre table par exemple nous avons supprimer l’élève 1, hors il était dans la table liaison (et d'ailleurs en SQLITE il y reste) c'est clairement problématique. En réalité pendant la création des tables on peut définir l'action a effectuer au moment d'une suppression et par exemple demander qu'une suppression d'une table entraîne la modification dans les autres tables mais c'est déjà trop avancé par rapport au programme de terminale.

Exercice

On se basera sur base musique"

  1. Faire une requête qui donne le compositeur de l’œuvre "Miroirs".
  2. Faire une requête qui montre les différentes parties de l’œuvre "Miroirs".
  3. Il manque la dernière partie appelée "La vallée des cloches". Ajoutez la.
  4. Debussy est Francais et pas Belge, corriger
  5. Faire une requête pour faire apparaître le compositeur de "Symphonie Fantastique".
  6. Il y a une faute dans le nom de Berlioz, la corriger.
  7. Ajouter la symphonie La mer de Debussy.
  8. Il y a une interversion dans la place des parties de la symphonie fantastique la scène au champ est à la troisième place et la marche au supplice à la quatrième. Faire le changement.
  9. Ajoutez le Concerto en ré mineur pour deux pianos et orchestre de Poulenc.
Exercice

On souhaite réaliser une base de données sur des films, on veut stocker des acteurs (nom, prenom, pays, naissance, mort), les réalisateurs (nom, prenom, pays, naissance, mort), le film (nom, genre, acteurs, réalisateurs, pays de production).

  1. Proposer les tables de bases (sans tenir compte des liaisons).
  2. Proposer les liaisons entre les tables.
  3. Créer les tables.
  4. Insérer des données.