Un fichier-image est en fin de compte une suite de nombres RGB stockés sous forme d'octets.
Un fichier-vidéo n'est rien d'autre qu'une succession d'images, donc des octets également
Les textes sont placés en mémoire à l'aide d'un codage associant chaque caractère à un nombre (65 pour A, 66 pour B...). Un fichier-texte n'est donc qu'une suite de nombres (stockés sous forme ...d'octets)
Un fichier-html n'est rien d'autre qu'un fichier-texte transmis au navigateur et donc, au final, une suite de nombres également.
Nous pourrions continuer longtemps ainsi et faire l'énumération de tous les contenus numériques (musiques, pdf, programmes) : au final, il ne s'agit que de suites d'octets qui encodent un certain contenu.
Dans cette partie, nous allons voir pourquoi les données sont devenues aujourd'hui si nombreuses et si présentes autour de nous.
1.1 : l'octet
L'unité de base du stockage de l'information en informatique est le bit. Il s'agit d'une case mémoire qui ne possède que deux états : Vrai ou Faux, Haut ou Bas ou encore plus simple :
0 ou 1
Si on prend deux bits, on aura alors 4 possibilités différentes : 22 :
00 ou 01 ou 10 ou ou 11
En réalité, on ne transmet jamais un seul bit à la fois. On transmet toujours les bits par groupe de 8 bits consecutifs : c'est ce qu'on nomme un octet. Puisqu'on a 8 bits, on a alors 28 possibilités. Soit 256 nombres différents allant de 0 à 255.
0 0 0 0 0 0 0 0 pour la première possibilité (0)
0 0 0 0 0 0 0 1 pour la deuxième possibilité (1)
0 0 0 0 0 0 1 0 pour la troisième possibilité (2)
0 0 0 0 0 0 1 1 pour la quatrième possibilité (3)
0 0 0 0 0 1 0 0 pour la cinquième possibilité (4)
...
1 1 1 1 1 1 1 1 pour la dernière possibilité et 256e possibilité (255)
C'est pour cela qu'un octet permet de stocker un nombre compris entre 0 et 255 uniquement.
1.2 : évolution des premiers supports de stockage
Au début de l'utilisation des systèmes automatisés, on utilisait des systèmes mécaniques et les données étaient codées sous forme de cartes perforées : on voyait bien les 0 et les 1 !
Carte perforée (Mutatis mutandis CC BY-SA sur Wikimedia)
Puis vint un autre système de stockage, plus rapide mais toujours fortement mécanique : la bande magnétique.
Bande magnétique (CC BY-SA sur Wikimedia)
L'avantage par rapport aux fiches ? Plus de vitesse et la possibilité de modifier l'enregistrement sans sortir du scotch !
En 1956, la société IBM crée un premier disque dur de 5 Mo. L’ensemble mesurait alors 1,52 x 1,73 x 0,74 m !
Le gros avantage du disque dur ? Un peu moins de mécanique encore : c'est un ensemble de disques qui tournent à grande vitesse. Moins d'usure que les deux systèmes précédents.
Au fil des ans, le prix du Mo et l'encombrement des disques durs à diminuer, démocratisant peu à peu son utilisation.
Dans les années 1984 sont apparus des systèmes de stockage de masse purement électroniques, sans pièce en mouvement : la carte SD et la clé USB.
Interieur d'une clé USB (image libre de droit, Wikipedia)
Ce type de technologie remplace maintenant de plus en plus les disques durs classiques. Il s'agit des fameux disques durs SSD.
En 2007, le stockage a même l'air d'être devenu immatériel : on passe au stockage dans le "Cloud" avec Dropbox par exemple.
Mais en réalité, sous cette belle image de nuage tout mignon, se cache des Data Centers, c'est à dire un entassement d'ordinateurs. Et ils chauffent, quoi qu'on en dise...
Si vous voulez voir à quoi les Data Centers un peu plus propres du futur pourraient ressembler, vous pouvez suivre ce lien qui mène à une vidéo d'Orange stockée sur Dailymotion.
Bref, les prix ont baissé de façon drastique :
en 1958 : 10000 $ le Mo
en 2000 : 0.02 $ le Mo...
en 2010 : 0.08 $ le Go, 8 cents pour mille fois plus de mémoire !
et ça continue à baisser...
Bilan
Toutes les données informatiques sont stockées sous forme d'octets.
Le prix de ce stockage a dramatiquement baissé depuis les années 2000.
Les possibilités de récupérer des données facilement ont augmenté avec l'explosion d'Internet et du Web.
Conclusion : au début, les sociétés devaient sélectionner les données qu'elles enregistraient mais, aujourd'hui, elles peuvent se permettre de stocker un peu tout et n'importe quoi en attendant de voir si les informations vont réellement être utiles.
Les données sont donc devenues un produit créé en grande quantité et facile à stocker.
Pour finir, voyons quelques unes des unités à connaitre :
Capacités de stockage
Pour décrire la taille d'une donnée, on utilise :
L'octet (un caractère)
Le kilo-octet (ko) qui vaut 1000 octets (une courte histoire).
Le Mega-octet (Mo) qui vaut 1000 ko et donc un million d'octets (un roman).
Le Giga-octet (Go) qui vaut 1000 Mo et donc un milliard d'octets (un film).
Le Téra-octet (To) qui vaut 1000 Go et donc mille milliards d'octets.
Le Péta-octet (Po) qui vaut 1000 To et donc un million de milliards d'octets (en 2020, Google traitait plus de 24 Po d’informations chaque jour).
A titre informatif, en 2018, il y a eu 33 millions de To de données produites.
Le résumé en tableau :
Sous-unité
Valeur en octet
Equivalent au stockage
Un kilo (k) représente 103
soit 1 000
Un petit texte
Un Méga (M) représente 106
soit 1 000 000
un livre ou une image HD
Un Giga (G) représente 109
soit 1 000 000 000
un film
Un Téra (T) représente 1012
soit 1 000 000 000 000
Un Péta (P) représente 1015
capacité mémoire d'un cerceau humain selon certaines études
Un Exa (E) représente 1018
Un Zetta (E) représente 1021
Production annuelle d'informations par Internet
✎ 01° Fouiller dans la configuration de votre Smartphone ou de votre ordinateur pour trouver la place mémoire totale.
02° Les mémoires des smartphones sont-elles composées de disques durs classiques ?
...CORRECTION...
Non, ces mémoires sont des mémoires purement électroniques, sans composant mobile. Comme les cartes et disques durs SSD.
Donner un rapport de 30 000 pages écrits à un système informatique ne sert pas à grand chose. Pour être efficace, il faut fournir au système les informations dans un format bien défini.
C'est ce qu'on nomme des données structurées.
Nous allons voir ce que signifient tous ces termes.
2 Données non structurées
Une donnée non structurée est une donnée présente mais qu'un système automatisé aura bien du mal à retrouver.
Exemple
Le Marvel Universe regorge de super-héros emblématiques qui ont marqué plusieurs générations. Iron Man est un génie milliardaire en armure, tandis que Captain America représente l’incarnation du héros patriote. Scarlet Witch, avec ses pouvoirs mystiques, impressionne par sa puissance en tant que maitresse de la magie du Chaos. Spider-Man, le célèbre héros araignée, a été incarné par plusieurs personnages, notamment Peter Parker et Miles Morales, chacun apportant une vision unique du justicier masqué. Depuis des décennies, cet univers ne cesse de s'étendre avec des films, des séries et des comics captivants. Il existe également un grand nombre de sous-univers dans l'Univers, avec par rapport les X-Men. Tornade, l'une des héroïnes de X-Men, est capable de contrôler des éléments, et est une force redoutable au sein de l'équipe. De son côté, Malicia est une mutante puissante, capable d'absorber les pouvoirs et souvenirs d'autrui au simple toucher, ce qui fait d’elle une combattante aussi redoutable que tourmentée
03° Quel est le nom et l'archétype du deuxième héros décrit ? Quel est le nom et l'archétype du troisième héros décrit ? ?
...CORRECTION...
Captain America : héros patriote.
Scarlett Witch : maitresse de la magie du Chaos.
Vous venez d'utiliser un centre de traitement de l'information super performant : votre cerveau.
Pas possible pour un ordinateur. Il existe une branche de la recherche informatique qui traite de cette capacité de donner du sens à un texte brut mais c'est loin d'être facile et rapide.
La meilleur façon pour qu'un ordinateur puisse traiter cela est de lui mâcher le travail : nous allons structurer les données.
2.2 Données structurées
Définition et exemple
Une donnée structurée est une donnée présentée selon un format connu et fixe. Plusieurs données du même type partagent la même structure descriptive.
Il peut s'agir par exemple d'un tableau à deux entrées.
Exemple
Identifiant
Nom
Archétype
1er Apparition
0
Iron Man
Génie milliardaire en armure
1963
1
Captain America
Héros patriote
1940
2
Scarlet Witch
Maîtresse de la magie du chaos
1964
3
Spider Man
Justicier masqué
1963
4
Spider Man
Justicier masqué
1963
5
Tornade
Mutante capable de contrôler les éléments
1975
6
Malicia / Rogue
Mutante capable d'absorber les pouvoirs
1981
Vocabulaire
Collection
Attributs
Identifiant (0)
Nom (1)
Archétype (2)
Date d'apparition (3)
Enregistrements
0
Iron Man
Génie milliardaire en armure
1963
1
Captain America
Héros patriote
1940
2
Scarlet Witch
Maîtresse de la magie du chaos
1964
3
Spider Man
Justicier masqué
1963
4
Spider Man
Justicier masqué
1963
5
Tornade
Mutante capable de contrôler les éléments
1975
6
Malicia / Rogue
Mutante capable d'absorber les pouvoirs
1981
Les colonnes sont nommées descripteurs, attributs ou caractères selon les spécialités scientifiques.
Ici, on utilisera souvent attribut.
Toutes les données présentes dans ce tableau partagent les mêmes attributs et les fournissent dans le même ordre : ID - Nom - Archétye - Date d'apparition.
Chaque ligne se nomme enregistrement, objet, ou individu selon la spécialité scientifique.
Ici, on utilisera souvent enregistrement.
La toute première ligne (d'indice 0), en bleu foncé n'est pas un enregistrement. Il s'agit de l'en-tête (header en anglais). Elle permet de connaître le nom des attributs.
L'ensemble des données se nomme la collection ou la tableen informatique (ou population ou relation en mathématique).
Une case (intersection d'un enregistrement et d'un attribut) peut porter le nom de champ.
Le contenu d'une case se nomme une valeur.
Résumé du vocabulaire
L'ensemble des données ➡ Collection
Une colonne ➡ Attribut
Une ligne ➡ Enregistrement
Une case ➡ Champ
Valeur d'une case ➡ Valeur
La toute première ligne ➡ En-tête
04° Quels sont les attributs de la collection précédente ? Combien y-a-t-il d'enregistrements dans cette collection ? Quelle est la valeur qui correspond à l'attribut d'indice 1 et à l'enregistrement d'indice 5 ?
...CORRECTION...
Il y a 4 attributs :
Indice 0 : Identifiant
Indice 1 : Nom
Indice 2 : Archétype
Indice 3 : Date d'apparition
Il y a 7 enregistrements d'indice 0 à .
La valeur d'indice 1 en attribut (colonne Nom) et d'indice 5 en enregistrement correspond à Tornade.
05° Quel est le seul attribut qui permette de distinguer les enregistrements des deux incarnations de Spider Man ?
...CORRECTION...
Il s'agit de l'identifiant. On rajoute TOUJOURS un identifiant qu'on définit soi-même. De cette façon, nous sommes certains de pouvoir distinguer deux enregistrements même si les contenus sont similaires.
✎ 06° Peut-on séparer deux individus uniquement à l'aide du nom et du prénom ? A quoi sert le numéro de sécurité sociale ?
...CORRECTION...
Nom et prénom ne sont pas suffisants. Deux personnes peuvent se nommer exactement pareil.
C'est pour cela qu'un adulte dispose de son numéro de sécurité social : il lui est unique (enfn, s'il n'a pas d'enfant de moins de 15 ans).
Dans l'une des prochaines activités, nous allons travailler sur un jeu de données stocké dans un fichier dit CSV et qu'un tableau sait ouvrir et lire. Il contient les caractéristiques des Pokemons. En voici un extrait :
✎ 07° Combien d'enregistrement sont-ils visibles sur cette photo d'écran ?
✎ 08° Quelle est la lettre caractérisant le descripteur points de vie (HP pour Hit Points en anglais) ?
✎ 09° La cellule G4 sélectionnée fait référence à 82. Quel est le descripteur correspondant ?
✎ 10° Trouver le ou les Pokemons de type Feu qui possèdent une attaque supérieure à 80 et une défense supérieure à 80. Pensez-vous qu'on peut programmer facilement ce type de requête ?
L'activité suivante repsrend les notions de toutes manières.
Voici 3 façons de stocker les données de façon structurée.
Dans les trois cas ci-dessous, vous allez voir qu'il s'agit ni plus, ni moins qu'un fichier texte dans lequel le système informatique pourra naviguer facilement.
4.1 Fichier CSV
Description générale
C'est un moyen simple de transmettre des données : c'est un simple fichier-texte compréhensible par n'importe quel langage de programmation et n'importe quel tableur.
CSV veut dire Comma Separated Values : des valeurs séparées par des virgules.
Un tableur est capable d'ouvrir les fichiers CSV.
Structure des données dans le fichier CSV
(option) La première ligne du fichier contient les intitulés des attributs : l'en-tête.
Chaque ligne constitue un enregistement. Rappel : la fin de ligne correspond à un octet valant 10 (norme ASCII), représentée ci-dessous par ↲, et par le string "\n" en Python.
Chaque valeur est séparée des autres valeurs de l'enregistrement par une virgule.
Exemple
A titre d'exemple voici la représentation CSV d'un tableau contenant la collection ci-dessous :
✎ 11° En utilisant un simple éditeur de texte comme Notepad ou Notepad++, réaliser un fichier CSV contenant au moins 3 chansons dont voici les descripteurs et leurs ordres :
Le "nom" de la chanson
L'"interprète" (le chanteur ou le groupe si c'est un groupe)
Le "genre" du morceau (en minuscules): rap, pop, rock, ...
L'année de "sortie" du morceau
La durée en "minutes" sous forme d'un entier (inutile de rajouter les secondes)
votre "notation" entre 0 (c'est nul) et 5 (c'est top)
Envoyer le fichier via l'ENT pour que je puisse centraliser les morceaux pour la prochaine séance.
4.2 - Le format XML
XML veut dire Extensible Markup Language : il s'agit d'utiliser des balises pour identifier le contenu, comme en HTML.
Le début et la fin de la collection sont identifiés par l'utilisation d'une balise d'ouverture et de fermeture qui porte le nom de la collection, comme <collec> et </collec>.
Le début et la fin d'un enregistrement sont identifiés par l'utilisation d'une balise d'ouverture et de fermeture qui porte le même nom pour tous les enregistrements, comme <vehicule> et </vehicule>.
Chaque descripteur est également identifié par une balise spécifique ouverture-fermeture. On devra donc retrouver ces balises autant de fois qu'il y a d'enregistrements. Exemple : <type> et </type>.
A titre d'exemple voici la représentation XML d'un tableau contenant la collection ci-dessous :
JSON veut dire JavaScript Object Notation : il s'agit d'un format classique pour réaliser des échanges de données structurées en petites quantités en un serveur et un client.
La collection est entourée par des crochets []. Le début correspond à [ et la fin à ].
Chaque enregistrement est entouré par des accollades {}. Le début d'un enregistrement correspond à { et la fin à }.
Chaque enregistrement est séparé des autres par une virgule.
Chaque descripteur apparaît sous forme d'un string suivi du caractère de séparation : suivi de la valeur de ce descripteur pour cet enregistrement. Exemple : "type":"Sport".
Chaque descripteur est séparé des autres par une virgule.
Les valeurs peuvent être représentées soit comme des strings, soit comme des nombres.
A titre d'exemple voici la représentation JSON d'un tableau contenant la collection ci-dessous :