Découverte :
Base de données - notions

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.

  1. 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).
  2. 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.
  3. É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.
  4. 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).

    Tables - réalisé avec SQLEditor

  5. Ajoutons les relations. Pour cela nous devons rajouter dans chaque table un champ id : ce sera l'identifiant de chaque entrée dans la base de données, il sera généré automatiquement par celle-ci. Cela permettra d'instaurer les relations entre les tables, appelées références.

    Tables + Relations - réalisé avec SQLEditor

    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).

  6. La description complète des relations entre les tables nécessite aussi de redéfinir les cardinalités : le nombre de participants d'une entité à une relation. Ici c'est simple et évident (1 Espèce - N Assemblage, 1 Assemblage - N Gènes).
  7. Remplissons maintenant la base de données avec des exemples.

Table Espèce

Table Assemblage

Table Gène

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 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 :

  1. 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.
  2. 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 😀

  • À propos de
  • Issu de la formation bioinformatique de Bordeaux 2, je suis co-fondateur de ce blog.

    Je travaille actuellement au LCSB au Luxembourg depuis maintenant 1 an et je me prétend un codeur fou.

    A bientôt sur bioinfo-fr !

2 commentaires sur “Base de données - notions

  1. Introduction aux bases de données intéressante. Cela pourra être un bon appui pour les futurs articles traitant des bbd ! 🙂

  2. Il y a effectivement dans cet article l'essentiel du fonctionnement et des termes à maîtriser pour comprendre les bases de données.

    Et pour les lectrices et lecteurs qui ne comprennent pas l'intérêt de tous ces id, integer et références, j'ai écrit une introduction similaire, mais partant d'un seul tableau excel tout bête, et expliquant au fur et à mesure pourquoi il faut le diviser en tables et en relations. Le tout en bonbons 🙂 C'est ici : http://www.rocketprojet.com/bases-donnees-mine-or-tpe-pme/

Laisser un commentaire