Base de données relationnelle

Définitions


  • Base de données : Une base de données (en anglais database), est une structure numérique virtuelle dans laquelle on stocke des données en rapport avec une activité ou un thème. Par exemple : Base de données regroupant les coordonnées des élèves d'un Lycée.
  • Base de donnée relationnelle : une base de donnée est dite relationnelles lorsqu'elle permet de relier des données entre elles. Par exemple une base de données de Lycée recense l'ensemble des classes et l'ensemble des élèves. Il est possible avec une BD relationnelle les lier les élèves à la classe, afin de trouver rapidement la composition d'une classe ou la classe d'un élève.
  • Système de gestion de base de données : Les données sont organisées entre elles afin de faciliter leurs traitements (recherche, ajout, suppression, modification, insertion). On appelle Système de Gestion de Base de Données (SGBD) les outils logiciels permettant de gérer facilement et rapidement une base de données.
    Les plus connus sont :
    • Oracle Database, Microsoft SQL Server : SGBD propriétaires
    • MySQL : SGBD libre
    • SQLLite : système embarqué
    • MongoDB : SGBD qui ne repose pas sur le langage SQL
    • Access, OpenOffice Base : SGBD intégrés dans des suites bureautiques



Conception d'une base de donnée


Une base de donnée se conçoit d'abord sur papier en définissant le contour du problème.

    • A quoi va-t-elle servir ?
    • comment sera-t-elle utilisée ?
    • qui l'utilisera ?

Le processus de conception passe par l'élaboration d'un schéma (Diagram) conceptuel de type UML

Exemple de schéma conceptuel

Transaction et accès concurrent

"On appelle une transaction une action qui fait passer la base de donnée d'un état cohérent vers un autre état cohérent." (sources sgbd.developpez.com)

Une transaction peut être une lecture, une modification, une création.


Une transaction se déroule sans être perturbée par les transactions concurrentes : tout se passe comme si elle se déroulait seule.

Ainsi, une fois qu'une transaction a été confirmée, le SGBD garantit qu'aucune modification qu'elle a effectuée ne sera perdue, quels que soient les accidents qui surviendront : interruption, panne du système d'exploitation, « crash » de disque, etc.

Le SGBD garanti donc l'intégrité des données en cas d'accès concurrentiel toutefois dans certains cas d'accès concurrentiel il peut y avoir des incohérences.

Cas d'un double accès (évolution chronologique du haut vers le bas du tableau) :

Temps

Action User1

Action User 2

Valeur de la variable A

t0



50

t1

Lecture (A=50)



t2


Lecture (A=50)


t3

A=A+10



t4

Ecriture de A


60

t5


A=A+50


t6


Ecriture de A

100

t7

Lecture de A : A=100



On voit dans cet exemple que User1 sera confronté à une incompréhension car la lecture en t7 est incohérente avec l'écriture en t4.


Pour résoudre ces problèmes, des mécanismes de blocage peuvent être initiées par les utilisateurs. Ces mécanismes ne sont pas abordés dans ce cours.