Associez votre BDD à votre programme
Une base de données, à quoi ça sert ?
Comme son nom l’indique, une base de données (BDD), ça sert à stocker des données !
En général, ce ne sont pas des humains qui interagissent avec la base de données, mais plutôt des programmes informatiques (applis mobiles, logiciels, sites web, etc. ).
Mais une donnée, c’est quoi ?
Eh bien, c’est très variable ! Voici quelques exemples :
Le site web Wikipedia vous permet d’accéder à des données de type encyclopédique.
L’application Smartphone Instagram stocke des données photos. Votre logiciel de messagerie interagit quant à lui avec vos e-mails : ce sont des données également !
La base de données et le programme informatique (appli, site web, etc.) sont complémentaires : l’un ne va pas sans l’autre. Si vous arrêtez un programme informatique qui n'est pas lié à une base de données, le programme ne se souviendra plus de rien.
C'est pour ça qu'il doit interagir avec la base de données : elle est en quelque sorte sa mémoire.
Essayez de vous représenter :
Le programme informatique comme une usine textile.
Un programme, c’est un enchaînement de lignes de code, qui sont comme les machines de l’usine.La base de données, comme l’entrepôt qui contient les matières premières (coton, soie, etc.) destinées à être traitées par les machines.
Et la matière première sera les données du programme informatique.
Et une usine sans matière première ne sert à rien !
Cette dépendance entre la base de données et le programme informatique est bien visible avec l’exemple de Wikipédia. Wiki-pédia est composé de deux choses :
« Wiki », un programme permettant d’afficher sur votre écran une page web présentant des textes ;
et « Pédia » un ensemble de textes encyclopédiques.
Mais si vous retirez la base de données encyclopédiques, et que vous associez à Wiki une base de données contenant des définitions de dictionnaire, vous obtiendrez Wiktionnaire.
Je vous invite à consulter ce site. Vous verrez qu’il ressemble comme deux gouttes d’eau à Wikipédia, car ce qui est affiché à l’écran est géré par Wiki, mais les données sont différentes ! Et il y a plein d’autres exemples : Wikinews, Wikiversité etc.
Découvrez le système de gestion de base de données (SGBD)
Oui mais concrètement, une BDD stockée sur un ordinateur, ça a quelle forme ?
Le plus souvent, une base de données est tout simplement composée d’un ou plusieurs fichiers, dans lesquels sont écrites toutes les données.
Un peu comme un fichier texte ou un fichier de tableur ?
Tout à fait ! Certains programmes créent d’ailleurs eux-mêmes leurs fichiers pour conserver leurs données. Pour vous en rendre compte, jetez un œil dans le dossier C:\Users\<utilisateur•ice>\AppData
sous Windows, ~/Library/Application Support/
sur MacOS, ou encore~/.cache
sous Linux.
Par exemple, lorsque les données doivent être partagées par plusieurs applications, il faut que ces applications se « mettent d’accord » sur la manière de représenter les données dans les fichiers.
C’est couramment le cas dans les entreprises, où les données sont souvent utilisées par plusieurs logiciels : les données des ventes de produits sont par exemple utilisées par le logiciel du service Comptabilité. Ou encore les logiciels qui reportent, sous forme de graphiques, toutes les données clients utiles au service Marketing. Et si chaque logiciel lit et écrit des données de manière différente dans les même fichiers, bonjour le bazar !
Aussi, plus la quantité de données est importante, plus l’accès ou la modification de données est long. En effet, il faut trouver dans de très gros (ou nombreux) fichiers, l’endroit exact où se trouve la donnée recherchée.
Pour cela, il existe beaucoup de méthodes d’optimisation permettant de réduire le temps de traitement, comme par exemple la création d’index.
De même que l’index d’un livre vous indique directement à quelle page trouver un chapitre donné, un index dans une base de données donne l’endroit exact où trouver une donnée dans la mémoire.
Seulement voilà, utiliser toutes ces méthodes d’optimisation, c’est tout un art, et c’est complexe. Quand un développeur/une développeuse code un programme, il/elle n’a pas envie – ou n’a pas les compétences – pour programmer cette optimisation.
C’est pour cela qu’ont été créés les systèmes de gestion de bases de données (SGBD). Le SGBD, c’est un intermédiaire entre le programme et les données. D’ailleurs, le SGBD est lui aussi un programme. ;)
Chaque SGBD a son propre langage, afin de communiquer avec les applications qui souhaitent accéder aux données. Le langage le plus utilisé est le langage SQL. Nous ne l’utiliserons pas dans ce cours car vous vous arrêterez ici à la seule modélisation de la base, mais vous l’utiliserez probablement par la suite une fois que votre base sera réalisée.
Découvrez les caractéristiques du SGBD
Si on reprend la métaphore de l’usine textile, on peut voir le SGBD comme une entreprise prestataire qui gère l’entrepôt de matières premières. L’usine de textile lui passe les commandes en suivant un certain langage : « Fournis-moi 8 kg de coton ».
L’intérieur de l’entrepôt est géré par le prestataire : organisation des rayons, inventaire des matières premières, optimisation du transport de marchandises à l’intérieur de l’entrepôt, etc.
Aussi, une autre usine pourrait également faire appel à ce même prestataire en utilisant le même langage : « Fournis-moi 10 kg de soie ».
Ainsi, le SGBD est spécialisé dans le stockage, l’accès et l’écriture de données. Eh oui, bien gérer les données, c’est tout un métier ! De cette manière, les programmes ou applications qui interagiront avec un SGBD n’auront plus à se soucier :
de l’optimisation d’accès aux données (en termes de temps d’accès) ;
de l’optimisation du stockage des données (réorganisations, segmentations, etc.) ;
de l’administration des données (format de stockage, statistiques sur la quantité de données, etc.) ;
de la partageabilité des données (avec d’autres programmes ou des humains) ;
du contrôle de la cohérence des données ;
de la sécurité des données (authentification, droit d’accès, etc.) ;
de la persistance des données (en cas de panne, des sauvegardes sont conservées).
Vous voyez, c’est un sacré gain de temps pour les développeuses et développeurs du programme en question !
Pour finir, parlons d’un SGBD très connu : SQLite. Nous l’utiliserons plus tard dans ce cours. Il est assez simple d’utilisation : il est donc parfait pour débuter.
Si vous avez déjà fouillé dans les dossiers de votre ordinateur, vous avez probablement déjà rencontré des fichiers dont l’extension est.db
,.db3
,.sqlite
ou.sqlite3
. Tous ces fichiers sont créés et lus par SQLite. Quand vous en voyez un, vous savez qu’il s’agit d’une base de données, et qu’il y a des données dedans !
Chacun de ces fichiers a été créé sur ordre d’un programme informatique, qui a demandé à SQLite de stocker les données dont il a besoin. Quand ce programme a besoin d’y accéder, il demande à SQLite de le faire. SQLite joue donc son rôle d’intermédiaire !
En résumé
Une base de données sert à stocker des données pour qu’elles soient accessibles par un ou plusieurs programmes/applications.
Un SGBD est un programme qui fait l’intermédiaire entre le programme/application et les données, à l’aide d’un langage prédéfini, comme le SQL, par exemple.
Le SGBD est spécialisé dans le stockage de données, et optimise les accès en lecture et en écriture.
Maintenant que vous savez ce que sont une BDD et un SGBD, il faut entrer un peu plus dans le détail des différentes formes que peut prendre une donnée. Cela nous permettra de bien choisir la forme de la BDD qui accueillera nos données des lieux de tournage de films.