Récapitulons un peu. Nous avons donc appris dans les parties précédentes qu’on pouvait tout coder en binaire, des sons aux images en passant par le texte et les nombres. Nous savons aussi qu’on peut en général s’arranger pour gagner plein de place (et donc stocker plus de choses dans le même espace), et que si on veut se protéger contre la perte d’informations on peut ajouter de la redondance afin de détecter, voire même de corriger, une ou plusieurs erreurs. Du coup ça nous permet de stocker plein de choses, de les réutiliser et même de les partager… à condition qu’elles soient bien structurées et bien rangées.
Euh oui justement, en pratique comment je m’y retrouve, moi, dans toutes ces données ?
Eh bien tout d’abord, comme dans un livre, il va y avoir dans votre ordinateur une sorte de table des matières, qui va vous dire où est stocké chaque fichier dans la mémoire. Un peu comme si vous rangiez une pièce en mettant dans un bac votre collection de pinces à linge, dans un autre tous vos stylos, un autre encore pour le stock de papier etc. tout en accrochant au mur un plan de la pièce montrant pour chaque bac où il est rangé et ce qu’il contient.
Oui en effet, ce serait pratique, mais dans un bac, je laisse tout en bazar ?
Ah non pas du tout, sinon à chaque fois qu’on vous demande de montrer votre pince collector, en ébène sculpté, vous aller devoir fouiller dans votre bac de pinces. Vous allez donc bien les ranger, dans un album spécial, noter pour chacune son pays d’origine, l’année de fabrication, le matériau, la couleur et pourquoi pas comment vous l’avez obtenue. Bien sûr, vous allez noter ces informations en respectant toujours une certaine structure, pour qu’on puisse savoir quand l’information “Orange” correspond à la couleur, et quand elle correspond à la ville d’origine par exemple. Vous allez peut-être même vouloir les classer, les regrouper par pays, par couleur ou que sais-je encore. Et bien en informatique, il existe justement des outils pour cela (et même des langages dédiés !) permettant de structurer les données selon certaines normes, pour pouvoir les communiquer facilement à d’autres, mais aussi les ranger.
Par exemple, l’album dont nous parlons, s’appelle une base de données en informatique. Et c’est encore mille fois plus pratique que les simples listes de Scratch !
Qui a inventé les bases de données ?
Le besoin de stocker et d’organiser des données ne date pas d’hier. Que dire des huit ans nécessaires pour traiter les données du recensement de 1880 aux Etats-Unis quand deux ans plus tard il fallait tout recommencer ? Les premières “bases de données” sous forme de cartes perforées sont alors apparues, créées par une entreprise qui, à l’issue d’une fusion est devenue “International Business Machines”. Ca ne vous dit rien ? Même pas les initiales IBM ?
Il a fallu attendre les années 60 pour voir l’apparition des bases de données informatiques (et surtout des programmes qui permettaient de les gérer !) et même les années 70 pour un nouveau type très puissant : les bases de données relationnelles.
Comprendre les bases de données… avec des aiguilles à tricoter
Impossible de présenter les concepts des bases de données à des enfants/ados sans un ordinateur sous la main ? C’est ce que j’ai moi-même toujours cru, jusqu’à découvrir les ancêtres des bases de données : les fameuses cartes perforées mentionnées plus haut. Et vous allez donc découvrir comment présenter les concepts des bases de données… tout en préparant votre prochain dîner entre copains.
La mise en place
Imaginons, vous avez une liste d’une trentaine de vos copains, et pour chacun vous avez noté sur une feuille la liste des plats parmi la vingtaine que vous aimez cuisiner. Ça ressemble à ça :
Florent : pâtes carbonara, bouchées à la reine, crumble ratatouille
Claude : choucroute, potée lorraine, bouchées à la reine, crumble ratatouille, pizza regina
Liliane : lasagnes chèvre-épinards, gnocchi aux légumes, crumble ratatouille, omelette aux champignons, brocolis vinaigrette
Ça n’est pas particulièrement trié mais vous, au lieu de 3 amis, vous en avez 30. Maintenant choisissez une dizaine d’amis parmi les 30 et essayez de retrouver les plats aimés par tous ces amis. Pas facile ? Justement c’est là l’intérêt des bases de données.
Pour l’activité on commence par donner cette liste de 30 amis aux participants, en leur posant deux ou trois questions un peu galères à traiter avec des données aussi peu organisées. Et puis quand tout le monde est d’accord sur le fait que c’est pénible et qu’il faut trouver une autre solution, on passe à la suite. Pour cela il vous faut trois fois rien : des feuilles de papier un peu cartonné, une perforatrice, une paire de ciseaux et un objet fin et allongé, genre aiguille à tricoter.
On réalise une fiche par ami, avec en première ligne son nom et sur chacune des lignes suivantes un des plats qu’on sait cuisiner. Ensuite pour chaque ami on fait un trou sur toutes les cartes en face de chacun des plats. Enfin, si quelqu’un aime un plat, on découpe la bande de papier entre le trou et le bord de la feuille.

Interrogez la base de données
Du coup pour trouver les plats que Liliane, Florent et Claude aiment en commun, il suffit juste de prendre leurs trois fiches, les superposer et regarder en face de quel·s plats il y a une encoche présente sur toutes les cartes. Autant dire quelques secondes seulement !
Et si on veut savoir qui parmi ses amis aime le chou-fleur au gratin ? Ou bien le chou-fleur et les lasagnes chèvre-épinards ? Ou bien l’un des deux ? C’est possible ?
Oui, mais il faut sortir son aiguille à tricoter. Si on veut retrouver tous ceux qui aiment le chou-fleur au gratin, il suffit juste de superposer toutes les fiches, de passer votre aiguille dans le trou correspondant au chou-fleur… et de voir les cartes qui tombent. Comme pour eux le trou est relié au bord de la carte, toutes les fiches de vos amis aimant le chou-fleur vont tomber. Si on veut ceux qui aiment deux plats différents (le chou-fleur ET les lasagnes), on utilise deux aiguilles dans deux trous simultanément. Et pour trouver ceux qui aiment le chou-fleur OU les lasagnes, on met d’abord une aiguille en face du chou-fleur, puis dans les fiches qui ne sont pas encore tombées on met une aiguille en face des lasagnes chèvre-épinards.
Les possibilités sont grandes ! On peut aussi chercher ceux qui n’aiment pas une chose mais en aiment une autre par exemple (avez-vous trouvé comment ?)... À vous d’imaginer les déclinaisons.
Et puis là-dessus on peut réfléchir à ce que ça représente d’ajouter un ami (= une ligne dans une table, ou pour nous une nouvelle fiche à remplir) ou un plat à son répertoire culinaire (= là c’est plus compliqué, il faut renseigner pour chacun des amis s’il l’aime ou pas).
Et voilà, maintenant vous êtes capables de structurer vos données, et de retrouver plus facilement de l’information. Et ça tombe super bien car dans le chapitre suivant on va voir ce qu’il peut advenir de toutes ces données qu’on accumule… Et dans un autre module Class’Code consacré aux réseaux, nous verrons même comment ces données sont représentées et s'échangent à travers Internet.
En résumé
Avec des données “en vrac” il est très difficile et très long d’extraire des informations utiles. Il faut donc les structurer et les ranger pour se faciliter le travail.
Les bases de données relationnelles permettent d’ordonner de grandes quantités de données, en tenant compte des relations entre elles, de façon à pouvoir les croiser pour retrouver des informations liées.
Il existe des logiciels qui permettent de poser des questions (requêtes) sur les données et d’obtenir rapidement des réponses, même sur de grandes quantités de données.
Avec des fiches cartonnées et des aiguilles à tricoter, on peut faire une activité sans ordinateur pour expliquer les bases de données.