5. Base de données relationnelle

Une base de donnée relationnelle concrète est constituée de tables. Chaque table à des colonnes, aussi appelées champs, et des lignes, aussi appelées entrées.

Une table représente soit une entité soit une relation plusieurs-à-plusieurs du modèle entités-relations.

Les tables représentant des entités ont normalement un champ spécial appelé clé primaire, qui peut par exemple consister en un nombre créé et géré de manière automatisée. La plupart des autres champs correspondent aux attributs de l'entité, c'est-à-dire aux données concrètes contenues dans chaque instance de l'entité. On peut aussi ajouter un ou plusieurs champs spéciaux appelés clés étrangères, dont le but est de "pointer" vers la clé primaire d'une autre table afin de représenter une relation un-à-plusieurs.

Vous pouvez concrétiser le schéma d'une base de donnée relationnelle grâce à l'application SqliteBrowser, disponible à l'école et installable librement ailleurs. Le schema concret est la définition, ou création, des tables avec leurs champs.

Attention: les noms des tables et des champs doivent commencer par une lettre et ne contenir que des lettres non accentuées, des chiffres et le symbole "_" .

Il est ensuite possible d'insérer des données, c'est-à-dire des entrées, chacune étant définie par une valeur donnée à chaque champ. On peut le faire directement dans sqlitebrowser ou bien par exemple depuis un programme en Python qui accède à la base de données. Dans une vraie application, cela serait fait par un programme qui demande des données à travers une interface graphique qui lui est propre ou bien crée directement les données ou les importe depuis une autre base de données.

En fait, aussi bien la création des tables que l'insertion des données se font toujours à travers le langage SQL, mais celui-ci peut être généré indirectement par une interface comme Sqlitebrowser. D'ailleurs, vous verrez toujours le code SQL généré.

Pour consulter la base de données, nous allons apprendre à écrire directement quelques requêtes SQL adaptées. Dans une vraie application, celles-ci seraient générés par le programme principal et leur résultat pourrait alors être utilisé dans celui-ci.