Cet article a pour but d'introduire la notion de base de données. Il sera utile pour toute personne ayant déjà entendu le terme, mais ne sachant pas vraiment ce que c'est, ou à quoi cela sert.
Définition
Une base de données c'est tout simplement une collection d'informations diverses stockées de manière pérenne sur un ordinateur. Celle-ci est organisée de façon à retrouver facilement l'information souhaitée. Les bases de données peuvent bien sûr être très différentes les unes des autres, suivant leurs utilisations ou encore selon les informations qui y sont stockées.
Je vous invite à aller sur Wikipédia où vous pourrez trouver une définition très complète, notamment sur la page en anglais. Nous retiendrons seulement qu'une base de donnée, c'est de l'information stockée et organisée.
On rajoute souvent deux contraintes sur la teneur de l'information :
- exhaustivité : la base de données contient toutes les informations requises pour le service que l'on en attend.
- unicité : chaque information doit y être présente une seule fois.
Pourquoi ?
Elles sont partout.
Prenez par exemple bioinfo-fr, un site qui regroupe des articles de qualités sur le monde de la bioinformatique 🙂 Ce site possède aussi une base de données. Y sont stockés les articles, les commentaires, etc. Tout le contenu que vous pouvez voir est enregistré dans une base de données. Cela permet par exemple de pouvoir sauvegarder le contenu de ce site s'il y a un problème sur le serveur. Cela permet aussi de copier, de transférer l'information à un autre endroit, ou encore de permettre à multiples applications d'accéder aux mêmes informations.
Les informations sont organisées : les articles sont rangés par date, par auteur, ou encore par catégorie. Même les commentaires que vous pouvez apporter sur un article sont enregistrés dans la base de données, liés à l'article auquel ils appartiennent. Vous pouvez alors récupérer facilement tous les articles d'un même auteur : nahoy, ou encore récupérer toutes nos critiques sur les livres en demandant la catégorie : j'ai lu, et même faire des recherches.
En "base de données", on appelle cela faire des requêtes. Attention tout de même, quand vous cliquez sur ces liens, vous n'interrogez pas directement la base de données, mais passez par une interface : ici WordPress.
C'est la deuxième raison pour laquelle les bases de données sont intéressantes : une fois les données correctement stockées, vous pouvez sélectionner l'information qui vous intéresse et la représenter de multiples façons. Nous avons déjà vu que la présentation de l'information est un élément très important. Cela commence avec la sélection des données : trouver le plus intéressant, le plus pertinent… Tout dépend bien sûr de ce que vous voulez montrer.
Relations
Pour pouvoir organiser les données de façon cohérente, on construit un modèle relationnel. C'est ce qui va définir les relations pouvant exister entre les éléments de votre base de données.
Il faut savoir qu'il existe différents types de base de données, chacune avec un modèle ayant ses propres spécificités. Vous pouvez retrouvez les différents types ici (en haut à droite). Pour ma part, je vous présenterai un exemple d'une base de données relationnelle. La plus répandue et la plus simple à comprendre. Cela vous permettra d'aller plus loin si vous le souhaitez …
Exemple
Imaginons pour l'exemple une base de données qui contient la position des gènes sur le génome d'une espèce. Celle-ci sera volontairement très simple.
- Définissons les entités qui seront présentes dans notre base de données : on aura besoin d'une espèce, d'un assemblage et des gènes (un assemblage est une version d'un génome).
- Définissons les attributs que vont avoir nos entités : l’espèce aura un nom usuel, et un nom scientifique, l'assemblage un nom et la source de l'assemblage, le gène un nom et une position.
- Établissons maintenant les relations entre nos entités : un assemblage est fait à partir d'une espèce, il appartient donc à celle-ci. Un gène appartient à un assemblage, il a une position sur celui-ci.
- Schématisons notre modèle : nos entités correspondant à des tables, leur attribut à des champs.
Remarquez qu'à coté des champs sont indiqués leurs types (ici du texte).
Voici le schéma, notre modèle de données. Le champ id a été rajouté, ainsi que son type, c'est un entier (Integer en anglais).
Ces trois images sont réalisées avec SQLite Manager.
Voilà notre base de données. Bien qu'elle soit très loin d'être complète, nous pouvons déjà voir les différentes requêtes que nous pouvons appliquer :
- Sélectionner toutes les espèces qui ont le gène X :"Levure" ,
- Sélectionner tous les assemblages qui ont le gène X, mais pas le gène Y : "Aucun" ,
- Sélectionner tous les gènes qui sont sur le chromosome I entres les positions 9000 et 13 000 et qui appartiennent à la levure : "X".
Cela permet d'avoir rapidement les informations que l'on souhaite, et même d'en découvrir d'autres et de générer de nouvelles hypothèses.
Si vous voulez appréhender la complexité que peut offrir une base de données, je vous redirige sur Ensembl, base de données biologique qui offre ici un aperçu d'une partie de ses bases de données.
Au niveau de la quantité d'information contenus dans une base de données telle que celle-ci, vous pourrez trouver ici ou là quelques statistiques sur le nombre de séquences qui sont enregistrés dans des bases de données biologiques (ici l'EBI et la DDBJ).
SGBD
Tout cela c'est bien beau, mais concrètement, comment créer une base de données ?
On utilise un SGBD (Système de Gestion de Base de Données), grâce à ce système nous pourrons créer la base de données que nous avons conçue, y ajouter des espèces, des gènes, la modifier pour y ajouter les entités manquantes.
Vous pourrez trouver une liste par ici.
Langage
Chaque base de données a son propre langage, mais ils sont regroupés sous plusieurs normes. Vous avez par exemple SQL qui est un des plus connus, mais il existe d'autres alternatives comme NoSQL utilisé par de grands acteurs d'internet (Google, Facebook, SourceForge, …). Vous pouvez trouver une liste ici (en anglais).
Par où commencer ?
Je vous recommande deux sites :
- Le site du zero pour les débutants qui veulent une explication de zéro. Le tutoriel sur MySQL est vraiment bien fait et vous donnera toutes les ressources nécessaires pour implémenter votre première base de données.
- Developpez.com qui contient de nombreux tutoriels intéressants, notamment cette référence complète et particulièrement bien réussie.
Et maintenant, à table 😀
Laisser un commentaire