Introduction à la création d'une base de données
Les serveurs de base de données à l'IUT de Haguenau
Créer une base de données
Créer une table
Définir des clés étrangères et leurs contraintes
Insérer des données
Modifier des données
Exporter ou importer la structure de la base et ses données
Supprimer des données
Créer une base de données : Support de cours
Support de cours : Créer une base de données
Dans les chapitres précédents, vous avez découvert la procédure pour créer un schéma relationnel à partir de la description d'une situation. vous avez vu que ce schéma est constitué de relations qui contiennent des champs. Chaque relation correspond à une table et chaque champ à une colonne. Dans ce chapitre, vous allez créer la base de données, c'est à dire l'espace qui contient les différentes tables correspondants à la situation. Pour cela, nous allons commencer par voir ce qu'est l'encodage de caractères. En effet lors de la création de la base, le serveur demande quel encodage nous voulons utiliser. Ensuite, vous verrez la requête de création, puis la méthode pour le faire dans PhpMyAdmin.
Encodage et héritage de l'encodage
Les données contiennent des lettres et des chiffres qui sont des caractères. Pour pouvoir les stocker, le serveur va devoir transformer ces caractères en bit. Dans ce processus de transformation des caractères en bit, le serveur va utiliser des registres de caractères codés, c'est à dire des tableau qui lient chaque caractère à un numéro, appelé point de code. En choisissant un encodage, nous choisissons le registre de caractères codés que le seveur va utiliser. Il existe plusieurs encodages qui répondent à des besoins différents. Certains contiennent tous les caractères (UTF8) et d'autres uniquement les caractères de certaines langues (Latins). Certains encodage utilisent un octet pour stocker un caractère, alors que d'autres en utilisent plusieurs, comme ceux du type UTF (UTF8, UTF16 UTF32). Une fois l'encodage choisi, il faut définir comment les caractères sont triés. Pour cela, on utilise la collation. Chaque collation est rattaché à un encodage. Par exemple la collation UTF8_GENERAL_CI utilise l'encodage UTF8 et supprime tous les accents, puis transforme toutes les lettres en majuscules et réalise le classement. Par contre, la collation UTF8_UNICODE_CI tient compte des majuscules et des accents pour faire le tri.
Lorsque nous créons un site web, l'encodage de caractères doit être identique sur la page web, dans l'éditeur de texte qui enregistre les fichiers, dans notre code php et dans la base de données. A l'IUT, nous avons fait le choix d'utiliser l'encodage UTF8 dans tous les modules. Dans le module de base de données nous utiliserons la collation UTF8_GENERAL_CI.
Il nous reste une dernière notion à voir avant de créer notre base : l'héritage de l'encodage. Dans une base de données, on peut définir l'encodage au niveau de la base, des tables et des champs. Par défaut, les tables héritent de l'encodage de la base. De la même façon, les champs héritent de l'encodage de leur table. Donc, si nous utilisons l'UTF8_GENERAL_CI pour la base, toutes les tables et tous les champs auront le même encodage. A moins de vouloir utiliser un encodage différents pour une table ou un champ, il est inutile de le définir au niveau des tables ou des champs.
Création d'une base de données dans Plesk
Si nous voulons créer une base de données pour un site visible depuis l'extérieur de l'IUT nous devons utiliser l'espace PLESK que l'IUT met à notre disposition. Nous sommes obligés de créer la base et son utilisateur à travers l'interface PLESK. Voici la marche à suivre :
- Se connecter à son espace plesk
- Utiliser le lien "database" en haut à droite
- Cliquer sur Add Database
- Choisir un nom qui commence par "Votrenom_"
- Créer un utilisateur et lui assigner un mot de passe
- Vous pouvez décider que cet utilisateur aura accès à toutes les bases de données
- Choisir "Allow remote connections from any host"
- Valider
- Repérer votre base et cliquer sur le lien PhpMyAdmin
Par défaut, l'interclassement utilisé est utf8_general_ci. Pour le changer (ce n'est pas conseillé à l'IUT), allez dans l'onglet "Opération" et chercher le cadre "Interclassement". Choisissez l'interclassement, cocher "Modifier pour toutes les tables" et sauvegarder.
Requêtes de création de base de données (Impossible sur plesk. Seulement possible sur le serveur TP)
La requête suivante permet de créer une base de données en utilisant l'encodage et la collation par défaut du serveur
CREATE DATABASE nom_de_la_base;
Attention, sur le serveur tp, le nom de la base doit commencer par votenom_
A l'IUT le serveur TP est configuré pour utiliser l'encodage latin et la collation latin1_swedish_ci. Il est possible d'ajouter des arguments à la requête de création d'une base pour définir l'encodage et la collation
CREATE DATABASE nombase DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Pour voir la liste des bases sur votre serveur, utilisez la requête :
SHOW DATABASES;
Pour voir les encodages possibles et les collations
SHOW CHARACTER SET;
SHOW COLLATION;
Création d'une base à travers PhpMyAdmin (Impossible sur plesk. Seulement possible sur le serveur TP)