Bases de données relationnelles¶
En première vous êtes censés avoir vu les données sous forme de fichiers csv
. Cette manière de stocker les données est très utile (et très utilisée en pratique) mais elle comporte quelques limites.
Notamment si plusieurs utlisateurs souhaitent modifier de manière simultanée ce même fichier, alors il va falloir gérer des accès en écriture ou lecture sur ce même fichier.
D'autres part avoir plusieurs fichiers csv
(ou d'un autre format : xls
, txt
...) ne permet pas de garantir que ces données représentent correctement l'information que l'on cherche à représenter, notamment les relations entre différentes entités.
Par exemple si je souhaire représenter un élève qui a plusieurs cours (ici il y a deux entités : élève et cours), je vais devoir jongler entre les différents fichiers pour les modifier à chaque fois qu'une modification est faite. Quand on a des relations complexes et plusieurs entités, cela devient difficilement gérable.
Pour cela des bases de données dites relationnelles
ont été inventées.
SGBD : Système de Gestion de Bases de Données¶
Un SGBD est un programme qui va gérer notamment pour nous ces problèmes d'accès concurrents, de sécurité et de performance pour accéder aux données.
Propriétés ACID¶
Définition d'une transaction
Une action ou une suite d’actions demandee par un seul utilisateur ou programme d’application, qui lit ou met a jour le contenu de la base de donnees.
Les propriétés ACID
garantissent la fiabilité des transactions (modifications) effectuées dans la base de données.
- Atomicité : une transaction est traitée comme une seule opération, si la transaction échoue les données restent inchangées.
- Cohérence : en cas d'échec les données sont ramenées à leur état initial, l'intégrité des données est préservée.
- Isolation : les transactions peuvent avoir lieu en même temps, mais l'état final correspond au même état que celui où chacune des transactions auraient été exécutées séquentiellement.
- Durabilité : en cas de panne ou crash les transactions validées sont sauvegardées.
Le Modèle relationnel¶
Tables et attributs¶
Les données sont contenues dans des tables
(relation) qui contiennent des colonnes (des attributs).
Ces tables sont reliées entre elles en utilisant des clés primaires et des clés étrangères.
Clé Primaire et clé étrangère¶
La clé primaire permet d'identifier de manière unique un enregistrement dans une table. Cette clé peut être composée d'une ou plusieurs colonnes.
La clé étrangère référence la ou les colonnes qui constituent la clé primaire d'une autre table. Elle permet de garantir l'intégrité référentielle des données.