Les Données Structurées (SNT)¶

I. Représentation des données numériques.¶

1. Introduction.¶

Les données sont des ensembles de symboles (mots, nombres, images, sons, etc.) qui permettent de représenter (ou de modéliser) le monde réel.

Les données constituent "la matière première" de toute activité numérique.

Afin de permettre leur réutilisation, il est nécessaire de :

  • Les stocker pour les conserver de manière persistante.

  • Les structurer correctement pour que l'on puisse les exploiter facilement.

Un ordinateur est composé de différentes parties, dont des entrées : clavier, souris, port USB, ... et des sorties : carte graphique (CGU en anglais), carte son, etc. Tous ces composants sont à base de transistors qui ne gèrent que 2 états : le courant passe ou le courant ne passe pas. L'ordinateur ne comprend donc que ces 2 états et les deux chiffres 0 et 1 traduisent alors le passage (ou pas) d'un courant. Par convention, 0 représente l'état bas (pas de courant) et 1 l'état haut (courant qui passe).

Dans un ordinateur, les données sont stockées sous forme de fichiers composés de 0 et de 1. Ces 0 et 1 sont appelés "bit" pour "binary digit", littéralement "chiffre binaire".

Remarque : Une variable qui n’a que 2 états comme 0 et 1 ou True et False s’appelle un booléen, nom qui vient du mathématicien britannique George Boole (19ème siècle).

2. Écriture d'un nombre entier naturel.¶

a. Le système décimal (base 10).¶

Pour compter dans le système décimal (celui qu'on utilise tous les jours, aussi appelé base 10), on utilise 10 symboles (d'où le nom de système décimal) appelés chiffres et notés : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.

Avec ces 10 chiffres, on peut donc compter jusqu'à 9 et si on veut dépasser 9, il faut alors changer de rang : des unités on passe alors au dizaines, puis aux centaines, etc.

Un nombre entier est composé de rangs et chaque rang est égal au rang précédent multiplié par 10 (dans le système décimal), c'est à dire 1 dizaine = 10 unités, 1 centaine = 10 dizaines, etc.

Par exemple, le nombre 567, en base décimale est formé de : 5 centaines, 6 dizaines et 7 unités.

Au lieu d'utiliser ce vocabulaire, on peut aussi utiliser des puissances de 10 (car on travaille en base 10). En base 10, chaque rang représente une puissance de 10. Par exemple, en reprenant le nombre 567 : 567 = $5 \times 10^2 + 6\times 10^1 + 7 \times 10^0$.

b. Le système binaire (base 2).¶

Pour compter dans le système binaire (ou base 2), on utilise (seulement) 2 symboles : 0 et 1.

Dans la base 10, chaque rang représente une puissance de 10 et de la même façon, dans la base 2 (binaire), chaque rang représente une puissance de 2.

On constate qu'on a besoin de 4 bits pour écrire le nombre 9 ou le nombre 10 en binaire.

Pour qu'il n'y ait pas de doute sur la base utilisée, on notera par exemple $1010_2$ pour indiquer qu'on parle d'un nombre noté en base 2 (binaire) ou $101_{10}$ pour indiquer qu'on parle d'un nombre en base décimale (base 10).

Remarque : Il ne faut pas confondre les mots bit et Byte. Un Byte est un mot anglais qui désigne 8 bits. En fançais, un paquet de 8 bits est appelé 1 octet, on peut donc noté qu'un octet = un Byte. Cet octet (ou Byte) est la plus petite unité de stockage adressable.

c. Conversions.¶

De décimal à binaire :

On a vu comment compter jusqu'à 10 en binaire, mais on ne peut pas utiliser cette méthode pour obtenir, par exemple $1040_{10}$ en binaire, ce serait bien trop long. On va utiliser une méthode (un algorithme) qui permet de faire assez facilement cette opération :

On effectue des divisions euclidiennes successives par 2 jusqu’à obtenir un quotient nul puis on lit les restes "à l’envers".

Exemple : On veut convertir le nombre 42 en binaire :

On obtient donc : $42_{10} = 101010_2$

Remarques :

  • Un bit permet de coder 2 valeurs (0 ou 1) donc $n$ bits codent $2^n$ valeurs et le plus grand entier qu'on peut coder sur $n$ bits est donc $2^{n-1}$.

  • Un processeur dit « 32 bits » permet de coder un entier sur 32 bits donc le plus grand entier codé sur un tel processeur sera $2^{32}-1= 4 294 967 296$.

  • En python, il existe une fonction déjà définie qui permet de convertir en binaire, la fonction bin() :

bin(33) renvoie 0b100001.

De binaire à décimal :

On a vu qu'en binaire, chaque rang représente une puissance de 2 donc il suffit d'utiliser cela pour passer du binaire au décimal.

Par exemple : $1101001_2 = 1\times 2^6+1\times2^5+0\times2^4+1\times2^3+0\times2^2+0\times2^2+1\times2^0=107_{10}$

d. L'hexadécimal (complément).¶

Le système hexadécimal est un système de numération en base 16. Il utilise ainsi 16 symboles, les 10 chiffres puis les lettres de A à F : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Ce format est très utilisé en informatique car il offre une conversion facile avec le système binaire tout en simplifiant l'écriture et la lecture des nombres binaires.

Il est possible de traduire du binaire vers de l'hexadécimal et réciproquement, groupe de 4 chiffres par groupe de 4 chiffres. Le plus grand "chiffre" en hexadécimal est F et il correspond à 15 en décimal et 1111 en binaire. F est donc encodé sur 4 bits en binaire.

On a donc :

tab_hexa.jpg

Conversions :

  • Pour convertir un nombre binaire à un nombre héxadécimal (base 16), on regroupe les bits 4 à 4, chaque groupe donnant un chiffre hexadécimal.

  • Pour passer d'un nombre hexadécimal à sa représentation binaire se fait en remplaçant chaque chiffre pour son équivalent sur 4 bits. Si le nombre binaire de départ n'a pas un nombre de bits multiple de 4, il faut ajouter des zéros en tête (ce qui ne change pas sa valeur) afin de pouvoir les regrouper 4 par 4.

Exemples :

  1. Convertir $11010011101_2$ en héxadécimal : $11010011101_2 = 0110.1001.1101_2$

et $0110_2 = 6_h$ ; $1001_2 = 9_h$ et $1101_2 = D_h$

donc $11010011101_2 = 69D_h$

  1. Convertir $A5F_h$ en binaire : $A_h = 1010_2$ ; $5_h = 101_2$ et $F_h = 1111_2$ donc $A5F_h = 10101011111_2$

II. Les données et leur stockage.¶

1. Repères historiques.¶

La conservation des données est un enjeu qui existe depuis bien longtemps et surtout bien avant l’informatique. Les textes de loi ou religieux, les comptes, la mémoire des évènements historiques, les connaissances, etc. sont autant de données qu’il a fallu faire passer à travers le temps en utilisant différents "supports de stockage" comme des tablettes d’argile, des parchemins, des livres manuscrits puis imprimés, etc.).

Avec le développement de l'informatique, les données ont été conservées sur différents types de supports de stockage : des cartes perforées, des supports magnétiques (bandes, disques durs), des supports optiques (CD, DVD, Bluray) et enfin des supports utilisant de la mémoire flash (clés USB, cartes SD, disques SSD...). Ces stockages de données sont de plus en plus rapides (en lecture et en écriture )et leurs capacités augmentent très vite.

  • 1725 - 1930 : Utilisation de cartes perforées : premier support de stockage de données inventé en 1728 par un français JB Falcon pour des métiers à tisser.

  • 1956 : 1er disque dur l'IBM 350 (créée par un américain, M. R. Johnson)

  • 1979 : Création du premier tableur : VisiCalc

  • 1984 : Invention de la mémoire flash (Clés USB, cartes SD…)

  • 1997 : Grande quantité de données : apparition du terme "Big Data"

  • 2009 : Accès libre de droit à des données : Open Data

2. Structuration des données.¶

Cliquez sur l'image

Une donnée est une valeur utilisée pour représentée le monde réel.

Elles peuvent être quantitatives (âge, poids, taille, température, etc.) ou qualitatives (noms, prénom, adresse, etc.).

Une information est une donnée interprétée, on peut dire qu'une information est formée de données et d'un modèle d'interprétation, c'est à dire d'un sens.

Par exemple : la donnée suivante : 281129201208680 est juste une série de chiffres... Mais si maintenant on précise que c'est un numéro de sécurité sociale (on lui donne un sens) alors on peut en déduire qu'il s'agit de celui d'une femme née en 1981 au mois de décembre dans le département 92, ça devient alors une information.

Les données sont souvent rassemblées pour caractériser quelque chose, comme par exemple, l’adresse d’une personne (le numéro de rue, le nom de la rue, le code postal, la ville et le pays par exemple). Lorsque les données sont ainsi rassemblées pour décrire quelque chose avec plusieurs informations, on parle alors de données structurées.

Les données structurées : Les données doivent être décrites, par un descripteur compréhensible pour celui qui veut les interpréter. Un descripteur est un mot ou un groupe de mots choisi pour caractériser une donnée. Plusieurs descripteurs peuvent être utiles pour décrire un même objet.

Exemple :

Dans le cas d'une bibliothèque, on considère un abonné. Lors de son inscription celui-ci fournit des données : son nom, son prénom, son adresse et son numéro de téléphone…, ces données seront associées aux descripteurs : Nom, Prénom, Adresse, n-tel...

Pour des données qui doivent pouvoir être triées, recoupées, traitées et analysées on utilise principalement des tableaux (ou tables) pour regrouper les données avec les mêmes descripteurs. On crée ainsi une collection de données.

On regroupe les données partageant les mêmes descripteurs dans une table, on crée ainsi une collection de données.

On regroupe ensuite toutes les tables (livres, abonnés, emprunts, etc...) dans une « base de données » qui permet de mettre en relation les différentes tables.

Exemple : La base de données d’une bibliothèque conserve les données sur les livres, les abonnés et les emprunts effectués.

bdd.jpg

Les données ouvertes (open data) sont des données numériques dont l’accès et l'usage sont laissés libres aux usagers. Elles peuvent être d'origine publique ou privée.

Exemple : https://www.data.gouv.fr/fr/

Lorsque les données stockées ne sont pas du texte et donc pas facilement lisibles directement par un ordinateur pour effectuer, par exemple, une recherche ou un tri, on y associe souvent des métadonnées qui vont permettre de faciliter la classification et les opérations sur les données. Ces métadonnées sont généralement stockées dans l’en-tête du fichier et parfois accessible en étudiant les propriétés du fichier. Les métadonnées peuvent, par exemple, permettre d'associer une musique à un titre, à une date, à son auteur, une image à ses coordonnées GPS, etc.

Remarque : Les métadonnées d'un fichier sont généralement accessibles par un clic droit sur le nom de fichier puis "lire les informations".

3. Stockage des données de nos jours.¶

Où sont stockées les données informatiques aujourd'hui ?

Les fichiers de données sont stockés sur des supports de stockage : dans des ordinateurs personnels, sur des supports internes (disque dur/SSD) ou externes (disque dur, clé USB) et dans des supports distants (cloud).

Le cloud est basé sur l’image d’Internet vu comme une couverture mondiale accessible de partout, tout le temps et avec de nombreux types d’appareils différents. Les serveurs qui y sont connectés et sont accessibles en permanence. De nombreuses sociétés proposent maintenant ces services, comme Apple, Microsoft, Google, Amazon, etc. ou des sociétés tierces comme DropBox, ou encore NextCloud, etc. qui offrent ce service moyennant des abonnements aussi bien pour des particuliers que pour des entreprises. Ces service présentent de nombreux avantages, comme par exemple : la sûreté des données (réplication des données sur plusieurs machines), leur sécurité (bien meilleure que chez un particulier), un accès depuis n’importe quel appareil connecté à Internet (mobilité) et même un moindre coût de gestion (en tout cas à court et moyen terme) pour les entreprises. Mais il y a aussi des inconvénients. On peut citer notamment la perte de contrôle sur nos données (on ne sait pas exactement où et comment elles sont hébergées) et l'impact écologique sur la planète.

Cliquez sur l'image

Aujourd’hui, des centres de données (Data Centers) hébergent un nombre toujours croissants de données, d'autant que pour des raisons de sécurité, les données sont dupliquées pour être toujours sauvegardées en cas de problème matériel et ces centres de données ne cessent de grandir et accueillir toujours plus de machines. Mais un grand nombre de machines dans un même espace entraine des problèmes écologiques liés à une forte consommation d'électricité à cause de 2 facteurs :

  • Le refroidissements des serveurs + consommation électrique de ces serveurs : La climatisation et les systèmes de refroidissement représentent de 40 à 50 % de la consommation énergétique des data Centers.

  • La consommation des data center à la base du réseau internet (environ 4 % de la consommation énergétique mondiale en 2015).

Cliquez sur l'image

4. Propriété des données.¶

De nos jours il y a une surabondance des données récoltées (Big Data) et en parallèle il y a eu un fort développement d'algorithmes capables de les exploiter. L’exploitation de données massives est en plein essor dans des domaines aussi variés que les sciences, la santé ou encore l’économie. Les conséquences sociétales nombreuses tant en termes de démocratie, de surveillance de masse ou encore d’exploitation des données personnelles. On appelle donnée personnelle toute information se rapportant à une personne physique identifiée ou identifiable.

Cliquez sur l'image

Le commerce des données récupérées en ligne est l’une des sources principales de revenu de nombreuses sociétés d'Internet. Ces données personnelles sont devenues une industrie extrêmement lucrative, par exemple, on estime que le marché des données des citoyens de l’Europe des Vingt-Huit s’élevait à 60 milliards d’euros en 2016 et ces sommes sont croissantes tous les ans. Les données sont souvent récoltées puis stockées sans en chercher une utilité particulière, c’est ensuite l’acheteur de ces données qui va leur donner une utilité et ainsi leur donner une valeur financière.

Les données récoltées peuvent être de différentes nature :

  • Les données d’état civil : nom, âge, logement, profession...

  • Les données de consommation : achat sur Internet, loisirs, trajets...

  • Les données financières : établissement bancaire, numéro de carte bancaire...

  • Les données sensibles : données médicales, numéro de sécurité sociale, orientation politique...

La commercialisation de ces données peut poser des problèmes importants en termes de données personnelles et de respect de la vie privée.

Cliquez sur l'image

En France, le traitement des données personnelles est encadré depuis 1978 par la Loi Informatique et Libertés, qui permet de garantir le respect de la vie privée et des libertés dans le monde numérique. La CNIL (Commission Nationale de l’Informatique et des Libertés) est une autorité administrative indépendante en charge du respect de cette loi. En Europe, un règlement a été mis en place en mai 2018 pour harmoniser les législations : le Règlement Général sur la Protection des Données dit RGPD. Le RGPD offre un cadre juridique unique pour toute l'Europe et renforce la loi française Informatique et Liberté. Toute organisation publique ou privée établie dans l’Union Européenne qui traite des données personnelles doit respecter le RGPD.

III. Le format des données structurées.¶

Différents types de données existent : texte, nombre, image, son, etc. mais comme nous l'avons déjà dit, dans l'informatique, toutes les données sont de type "textuel" et sont stockées sous la forme de bits (eux mêmes regroupés en octets). Les données structurées peuvent être organisées selon différents "formats". Les plus utilisés sont CSV (Comma-Separated Values), JSON et XML.

1. Le format CSV.¶

Un fichier ayant le format CSV (Comma Separated Values) est un fichier texte (pas besoin de tableur pour le créer ou pour l'ouvrir) dans lequel chaque ligne contient des valeurs séparées par des symboles de ponctuations (, ou ; en général). La première ligne contient les noms des champs.

Par exemple, en ouvrant un fichier CSV avec un éditeur de texte (Notepad par exemple), on obtient :

Dans cet exemple, le séparateur est la virgule, les champs sont : "Roman", "Modern", "Country", etc.

Même si on peut créer, éditer ou modifier un fichier csv à partir d'un simple éditeur de texte, il peut être plus partique pour travailler dessus de les éditer avec un tableur.

Attention : Excel ne lit correctement que des fichiers csv où le séparateur est un point-virgule, par contre LibreOffice ou Openoffice lisent "correctement" tous les fichiers csv, en laissant choisir l'utilisateur à l'ouverture du fichier.

2. Le format JSON.¶

Le format JSON (JavaScript Object Notation) est un fichier texte (comme le csv)lié à JavaScript. Ce format de données consiste à écrire les données en paires de nom/valeur (ou clé/valeur) ayant la forme de chaînes de caractères. Les nom et valeur sont séparés par deux points : et chaque paire est séparée de la suivante par une virgule. Le tout est encadré par des accolades.

Exemple :

In [ ]:
{
  "espèce": "Dog",
  "race": "Labrador Retriever",
  "couleur": "Yellow",
  "âge": 6
}

Bien que trouvant sa source dans JavaScript, beaucoup de langages de programmation (si ce n'est tous ?) peuvent générer et lire le format JSON. Il est donc devenu très populaire pour le stockage, la lecture et le partage d'information dans les applications et services web.

Pour ceux qui veulent en savoir plus : cliquez sur l'image

3. Traitement des données.¶

Les tableurs sont des logiciels puissants pour traiter des données organisées en tables. Ils permettent en particulier de :

  • trier des données d’une table ,

  • filtrer des données d’une table ,

  • effectuer et automatiser des calculs,

  • mettre en forme des données d’une table pour une meilleure visualisation : représentation graphique des données.

Mais pour stocker et gérer une immense quantité de données, les formats comme le csv et les tableurs ne suffisent plus. Les données doivent être stockées dans une base de données. Peu importe le support utilisé pour rassembler et stocker les données, dès lors que des données sont rassemblées et stockées d’une manière organisée dans un but spécifique, on parle de base de données. Les bases de données permettent de croiser facilement les informations et d’en extraire le contenu. De nos jours les bases de données stockent des données quasi exclusivement numériques et ces données peuvent servir à un ou plusieurs programmes. La gestion et l’accès à une base de données sont assurés par un ensemble de programmes qui constituent le Système de gestion de base de données (SGBD). L’information d’une base de données est stockée dans des fichiers et contrairement aux fichiers csv, il n’est pas possible de travailler directement sur ces données avec un simple éditeur de texte, c’est pour cela qu’on a besoin d’un SGBD dont le rôle est de simplifier la gestion des bases de données. Les SGBD sont de très gros logiciels, fonctionnant en mode client/serveur, assez complexes à mettre en oeuvre et à utiliser. Ils sont conçus pour gérer plusieurs millions, voire milliards d’enregistrements de manière fiable et sécurisée.

Enfin, on peut aussi automatiser et programmer certains traitements des données. Python est, par exemple, un langage adapté au traitement de données mais ce n'est pas le seul, on peut aussi citer le R. Avec ces langages, on utilise de plus en plus d'algorithmes et de mathématiques pour automatiser le traitement de grandes quantités de données.