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 devenus 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.
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
C'est une voiture de sport de couleur rouge et conduite par un moustachu qui porte des chemises à fleurs.
L'un de ses amis possède un bel hélicoptère. Celui-ci est plutôt marron mais possède également quelques lignes colorées dans des tons rouge, bleu et jaune.
03° Quel est le type et la couleur du premier véhicule ? Quel est le type et la couleur du second véhicule ?
...CORRECTION...
Véhicule : Voiture de sport --- Couleur : rouge
Véhicule : Hélicoptère --- Couleur : marron
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.
Vocabulaire sur les Données structurées
Une donnée structurée est une donnée présentée selon un format connu et fixe.
Il peut s'agir par exemple d'un tableau à deux entrées.
Exemple
Identifiant
Type
Utilisation
Couleur
0
Voiture
Sport
Rouge
1
Hélicoptère
Tourisme
Marron
2
Voiture
Sport
Rouge
Cette fois, on voit qu'on pourra demander facilement à l'ordinateur de renvoyer les couleurs des véhicules : il suffit de trouver la bonne colonne. C'est beaucoup plus facile.
Les colonnes sont nommées les descripteurs.
Toutes les données présentes dans ce tableau partagent les mêmes descripteurs et les fournissent dans le même ordre : ID - Type - Catégorie - Couleur.
Chaque ligne se nomme un enregistrement
La seule ligne qui ne soit pas un enregistrement est la toute première, en bleu foncé. Il s'agit de l'en-tête (header en anglais). Elle permet de connaître le nom et l'ordre des descripteurs.
La collection est le nom donné à l'ensemble des enregistrements, donc au tableau.
Collection
Attributs
Identifiant(0)
Type(1)
Utilisation(2)
Couleur(3)
Enregistrements
0
Voiture
Sport
Rouge
1
Hélicoptère
Tourisme
Marron
2
Voiture
Sport
Rouge
04° Répondre aux questions suivantes :
Quels sont les descripteurs de la collection précédente ?
Combien y-a-t-il d'enregistrements dans cette collection ?
Quelle est la valeur qui correspond au descripteur d'indice 2 et à l'enregistrement d'indice 0 ?
...CORRECTION...
Il y a 4 descripteurs :
Indice 0 : Identifiant
Indice 1 : Type
Indice 2 : Utilisation
Indice 3 : Couleur
Il y a 3 enregistrements d'indice 0, 1 et 2.
La valeur d'indice 2 en descripteur et d'indice 0 en enregistrement correspond à sport
05° Quel est le seul attribut qui permette de distinguer le premier et le dernier enregistrement ?
...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 deur 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 ?
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 :