UKOnline

Bases de données

Aujourd'hui, on passe son temps à s'échanger de l'information sous forme de données. Que ce soit lorsque vous consultez un site web, que vous réserviez un billet d'avion ou même lorsque vous passer une commande dans un restaurant, vous êtes en train d'échanger des données avec une autre personne ou entité. Ces données se retrouvent souvent stockées dans un système informatique, et elles seront alors très probablement stockées dans une base de données.

Prenons l'exemple d'une entreprise qui vend différents produits. Cette dernière va stocker de l'information sur ses clients dans des fiches clients, mais elle va également stocker de l'information sur les différents produits qu'elle propose et enfin elle gardera une trace de toutes les ventes qui ont été faites sous forme de factures. Il y a bien évidemment des liens entre ces différentes fiches. C'est cet ensemble de données qui est appelé base de données.

La figure 1 montre un extrait de cet exemple de base de données de l'entreprise. On peut considérer qu'il y a trois tables : Clients, Factures et Produits. La figure montre des enregistrements provenant de ces tables ainsi que les liens entre ces derniers.

Exemple de base de données
Un exemple d'enregistrements provenant d'une base de données, avec les liens entre ces derniers.

Données

Une base de données sert donc à stocker des données, de manière structurée. On a déjà pu voir que ces données sont organisées en tables, c'est-à-dire une collection d'enregistrements qui ont les mêmes caractéristiques. Par exemple, un client est toujours identifié par un numéro de client, un nom et un prénom. On peut représenter les données d'une table sous forme d'un tableau comme celui de la figure 2. On reviendra plus loin sur la définition et la caractérisation précise des tables.

N° clientNomPrénom
6374FordHenri
8273DoeJohn
9283GomezMaria
Exemple de table de clients.

Ce qu'on peut déjà relever, c'est que chaque ligne (sauf la première) représente un enregistrement de la table. Le deuxième enregistrement correspond par ailleurs à celui présenté sur la figure 1. La première ligne définit la structure de la table, c'est-à-dire le type des données de chacune des colonnes.

Système de gestion de bases de données (SGBD)

Gérer les données d'une base de données n'est pas une chose facile ! Il faut en permanence garantir la qualité de la base de données et sa cohérence, la protéger contre d'éventuels incidents, autoriser plusieurs utilisateurs à accéder en même temps aux données sans conflits et s'assurer que les performances seront correctes. Tout cela est assuré par une collection de logiciels puissants et complexes appelés système de gestion de base de données (SGBD). On pense par exemple à Access, Oracle, DB2, SQL Server, MySQL ou PostgreSQL.

Voici une liste de quelques fonctionnalités offertes par la plupart des SGBD (qui sont de type relationnel comme on le verra plus loin) :

  • Le SGBD organise les données d'une base sous forme de tables et de colonnes. Il vérifie notamment des propriétés telles que l'unicité des données (pas deux lignes identiques par table, par exemple).
  • Le SGBD doit également gérer les données, c'est-à-dire permettre l'ajout et la suppression de lignes des tables, par exemple. La vérification des contraintes lors des modifications est également assurée par les SGBD.
  • Le SGBD doit évidemment permettre l'accès aux données et leur manipulation. Ces accès se font à l'aide du langage SQL qui permet de décrire des ensembles de données, en en définissant les propriétés.
  • Enfin, le SGBD supporte l'accès par programme, permettant d'exécuter des requêtes SQL soit à partir d'un terminal, soit directement depuis un programme d'application.

Les grands défis

Quels sont les grands défis des bases de données aujourd'hui ? On sait déjà que les données sont partout aujourd'hui, et sont essentielles dans la plupart de nos activités. Réfléchissez-y, y a-t-il une seule journée durant laquelle vous n'êtes pas confronté à une base de données ? Les horaires de train, la grille des programmes TV, un livre de recettes...

Parmi les grands défis d'aujourd'hui, il y a tout d'abord la multiplicité des données qui existent dans des formats de plus en plus complexes comme des positions géographiques ou des données multimédia. De plus, étant submergé d'informations, souvent de piètre qualité, les bases de données contiennent souvent de nombreuses données erronées. Il est important de parvenir à en extraire des informations pertinentes. Le volume des données devient également de plus en plus important ce qui peut poser des soucis de performances. On se tourne par ailleurs de plus en plus vers des systèmes où les données sont distribuées sur plusieurs machines qui communiquent entre elles (telles que des ordinateurs, des gros serveurs et des smartphones ou tablettes). Il y a évidemment bien d'autres défis, mais on se limitera à ces derniers dans le cadre de ce cours.