Aller au contenu

Les pionniers du stockage : comment on gérait les données avant l'ère SQL

Stocker des données nous semble tellement banal et quotidien, qu'on pourrais se demander comment on faisait avant. D'ailleurs, comment on faisait avant ? (Re)découvrez les technologies qui nous ont amené à l'invention de nos base de données préférée.

Photo by Alex Block / Unsplash

Avant même l’informatique, les premières bases de données sont apparues pour répondre à un besoin crucial : partager des informations de manière centralisée et fiable entre plusieurs utilisateurs et applications.

Eh oui, lorsque différents acteurs ont commencé à collaborer et à créer eux même des données, il est rapidement devenu évident que regrouper ces informations dans un environnement centralisé permettait d'éviter les erreurs de duplication et d'assurer des mises à jour cohérentes. Cette centralisation a non seulement amélioré l'efficacité, mais aussi la précision des données partagées.

Mais avant nos base de données actuelles, il y avait quoi ? Revenons dans le passé. Déjà, c’est quoi une base de donnée ? C’est un regroupement de données trié logiquement, donc la première base de données doit être une bibliothèque. Plus exactement des encyclopédies ! Je ne vais pas vous refaire l’histoire, wikipedia est très complet si vous voulez en savoir davantage. Le système de gestion de bases de données était donc manuel.

Il resteras comme cela pendant longtemps. Classeurs, dossiers, fiches cartonnées, organisation alphabétiques ou chronologique, bref tout les moyens sont bon pour ranger une bibliothèque. Avançons un peu dans le temps.

Les cartes perforées, inventées au début du 19ème siècle par Joseph Marie Jacquard pour les métiers à tisser, ont joué un rôle crucial dans l'histoire de l'informatique et du traitement de données. Déjà une carte perforé, c’est quoi ? C’est une carte rectangulaires, généralement en carton rigide, qui contient des informations codées sous forme de trous.

Donc initialement destiné à programmer un métier à tisser, Charles Babbage en 1834 eu l’idée de les utiliser pour donner des instruction à une machine analytique de son invention. Chaque carte pouvait stocker jusqu'à 80 caractères, avec chaque colonne représentant un caractère. L'absence ou la présence de trous dans des positions spécifiques représentait des données ou des instructions.

Les cartes perforées ont été utilisées pour la programmation, le stockage de données et l'entrée de données dans les premiers ordinateurs. Elles ont connu leur apogée dans les années 1960 et 1970, ou elles sont progressivement remplacé par les bandes magnétiques.

Les bandes magnétiques sont utilisées pour enregistrer des données dès les années 50. Initialement elles étaient destiné au stockage de bande son puis de vidéos. Elles ont révolutionné le stockage de données en offrant une capacité bien supérieure aux cartes perforées. Ces bandes, généralement formée d’un support en plastique fin recouvert d'oxyde de fer, permettaient de stocker des données sous forme de signaux magnétiques. Les premières bandes pouvaient stocker environ 2 mégaoctets de données, une capacité qui a considérablement augmenté au fil du temps. Du fait de leur constitution, les bandes magnétiques offre un accès séquentiel aux données, ce qui signifie qu'il faut parcourir la bande pour atteindre une information spécifique. Elles resterons longtemps un supports privilégié de sauvegarde er d’archivage en raison de leur grande capacité et de leur bon rapport qualité/prix. Elles étaient beaucoup plus rapides et plus fiables que les cartes perforées. Les bandes magnétiques ont ainsi largement été utilisées pour le stockage de données et les sauvegardes. 

Elles ont joué un rôle crucial dans le développement de l'informatique, permettant le traitement par lots et facilitant l'automatisation de nombreuses tâches. Dans les années 1960 et 1970, les bandes magnétiques étaient omniprésentes dans les centres de données. Elles sont mêmes encore utilisées de nos jour ! Si, si, j'avais du mal à le croire mais elles sont encore utilisé pour du stockage. Mais avec les avancés dans l’informatique, un nouveau système de stockage va prendre l’avantage.

Le disque dur est inventé en 1956 par IBM. Il sera vendu en 1961 pour un coût de 10 000 dollars par mégaoctet ! Alors qu'en 2008, le mégaoctet coute 0,000 22 dollars. Il supplante la bande magnétique pour ses performances supérieurs. Notamment en terme de capacité de stockage et d’accès aux données. La popularité des disques dur est concomitante avec l’évolution des systèmes de fichiers qui permettent une meilleur organisation des données.

Apparus dans les années 1960, les systèmes de fichiers représentent une évolution majeure par rapport aux méthodes de stockage physiques comme les cartes perforées. Ces systèmes permettent de stocker, organiser et accéder à des fichiers électroniques sur des supports de stockage, parfait pour nos les disques durs ! Les systèmes de fichiers introduisent des concepts fondamentaux comme les chemins d'accès, les extensions de fichiers, et les opérations de base telles que la création, la lecture, l'écriture et la suppression de fichiers.

Ces systèmes étaient généralement spécifiques à chaque système d'exploitation, comme le FAT pour MS-DOS, le HFS pour Mac OS, ou le système de fichiers Unix. Bien que plus avancés que les méthodes précédentes, ils présentaient des limitations significatives. Chaque application devait généralement gérer sa propre structure de fichiers, ce qui pouvait conduire à des redondances et des incohérences dans les données. De plus, la recherche et l'extraction d'informations spécifiques pouvaient être fastidieuses, surtout pour de grandes quantités de données. Malgré ces inconvénients, les systèmes de gestion de fichiers ont jeté les bases de l'organisation moderne des données informatiques et restent une composante essentielle des systèmes d'exploitation actuels.

Tout ces stockages sont intéressant mais ou sont nos bases de données ?

J’y viens ! Toutes ces explications servent à bien expliquer que pendant longtemps, le SGBD suivaient une organisation humaine, et pas logiciel. Les propriétés d'un systèmes d'information étaient organisées par la rigueur !

On voit apparaitre le terme base de données dans les années 60 pour désigner une collection d'informations partagées par différents utilisateurs d'un système d'informations militaire. Et les premières bases de données était des bases de données hiérarchiques.

Une base de données hiérarchique structure les objets de manière hiérarchique avec un seul parent par enfant. Par exemple, le canard appartient à la famille des anatidés qui elle-même appartient à l'ordre des ansériformes, qui lui-même appartient à la classe des oiseaux, qui elle-même appartient au sous-embranchement des vertébrés, qui lui-même appartient au règne animal. Merci à Wikipedia pour cet exemple !

Cette représentation est parfaite pour définir des nomenclatures, mais elle ne permet pas de représenter des relations multiples. Par exemple, un fournisseur peut avoir plusieurs clients qui ont eux-mêmes plusieurs fournisseurs. Cette limitation a conduit au développement des bases de données en réseau.

Nous voila donc en 1969 et Charles Bachman invente le modèle de donnée réseau au sein du consortium CODASYL. Ce même consortium qui a spécifié le langage COBOL en 1959. Bref, Bachman pose les bases de ce qui deviendra les relations dans nos SGBD préférés.

C’est ensuite en 1970 qu’un certain Edgard Frank Codd propose une thèse mathématique sur l’algèbre relationnelle expliquant qu’un ensemble d’entités est comparable à une famille définissant une relation en mathématiques et que les jointures sont des produits cartésiens. L’origine de nos bases de données relationnelle.

Et le SQL dans tout ça ?

Edgard Codd, toujours en 1970 publie un article qui pose les bases théoriques pour l’interrogation des bases de données qui va inspirer Donald Chamberlin et Raymond Boyce chez IBM à concevoir le Structured English Query Language ou SEQUEL.

Il sera contracté en SQL en 1975 puis recommandé par l’institut de normalisation américaine (ANSI) en 1986 et enfin, comme norme international en 1987.

Et maintenant ?

L’autre évolution majeur est le NoSQL dont la genèse correspond à la monté en puissance des architectures distribuées. En effet l’architecture SQL correspond à un fonctionnement sur un ordinateur unique et s’adapte mal au développement de l’informatique en grappes. Il correspond aussi à la naissance de startup qui essayent de se faire un nom parmi les très grand de l'époque comme IBM ou Oracle.

La naissance date donc des années fin 1990, début 2000 mais le terme NoSQL est définitif en 2009 à la suite d’un meetup effectuant un tou d’horizon des systèmes open-source non relationnels. Qu’est ce que ça veux dire NoSQL ? C’est un long débat, mais ça c’est une autre histoire !

Dernier