Aller au contenu

Les données structurées et leur traitement

Une grande partie de l'informatique consiste à gérer et traiter des données, qu'elles soient stockées dans la mémoire de votre ordinateur ou téléphone ou dans un datacenter ("centre de données") d'une grande entreprise.

Pour rendre leur traitement possible de manière automatique, il est préférable que ces données soient structurées, c'est à dire arrangées en suivant un standard pour pouvoir être lues et utilisées par des programmes informatiques.

Au contraire des données non structurées seraient par exemple une vidéo de conférence, ou bien des captures d'écran de posts sur des réseaux sociaux : il y a des informations dedans, mais elles sont compliquées à extraire pour un programme.

Formats de données

Plusieurs formats de fichiers existent pour encoder (écrire dans la mémoire d'un ordinateur) des données structurées. Nous allons détailler deux des plus courants, CSV et JSON.

CSV

Le format CSV pour "Comma Separated Values" soit "Valeurs Séparées par des Virgules" utilise comme son nom l'indique la virgule pour séparer les éléments dans un fichier texte.

En France, on utilisera parfois plutôt le point-virgule comme séparateur parce que la virgule est déjà utilisée pour les nombres décimaux.

Voici un exemple de fichier csv :

Nom,Type,Couleur,Prix
Pomme,fruit,rouge,3
Abricot,fruit,orange,6
Banane,fruit,jaune,5
Mûre,fruit,noir,4
Brocoli,légume,vert,7
Carotte,légume,orange,4

Chaque ligne contient des données sur un objet (personne, évènement, ...), ordonnées par colonne.

Sur la première ligne on a les descripteurs (ou champs) de ces colonnes et chaque ligne contient les valeurs correspondant à l'objet de cette ligne.

Par exemple "fruit" est la valeur du champ "Type" pour l'objet de la première ligne, qui correspond à une pomme.

Cette manière d'organiser les données en table est aussi celle utilisée dans les bases de données relationnelles, qui sont utilisées par de nombreux logiciels, et par tous les sites internet sur lesquels vous avez des comptes utilisateurs. Les bases de données sont composées de plusieurs tables reliées entre elles.

JSON

JSON est un format de données dérivé du langage de programmation JavaScript.

Un objet en JSON est un ensemble de paires descripteur/valeur écrit comme ceci :

{
    "descripteur1" : "valeur1",
    "descripteur2" : "valeur2"
}

Chaque valeur peut elle-même être un objet JSON ou une liste d'objets, ce qui permet une structure complexe. Par exemple :

{
    "nom" : "Thomas",
    "prenom" : "Maryline",
    "date_naissance" : "23/05/1985",
    "adresse" : {
        "num":6, 
        "rue":"impasse du rossignol", 
        "ville":"Nogent-le-Rotrou", 
        "cp":"28400"
    }
}
Beaucoup d'API (Interface de Programmation, ce sont des services offerts souvent par internet à travers lesquels un programme peut demander des informations) renvoient des données en JSON.

Par exemple à l'adresse https://api.openweathermap.org/data/2.5/weather?q=London&appid=KEY si on remplace KEY par une clé qui autorise l'utilisation de cette API de météo, on obtient une description de la météo à Londres en JSON:

     {
     "coord": {
       "lon": -0.13,
       "lat": 51.51
     },
     "weather": [
       {
         "id": 300,
         "main": "Drizzle",
         "description": "light intensity drizzle",
         "icon": "09d"
       }
     ],
     "base": "stations",
     "main": {
       "temp": 280.32,
       "pressure": 1012,
       "humidity": 81,
       "temp_min": 279.15,
       "temp_max": 281.15
     },
     "visibility": 10000,
     "wind": {
       "speed": 4.1,
       "deg": 80
     },
     "clouds": {
       "all": 90
     },
     "dt": 1485789600,
     "sys": {
       "type": 1,
       "id": 5091,
       "message": 0.0103,
       "country": "GB",
       "sunrise": 1485762037,
       "sunset": 1485794875
     },
     "id": 2643743,
     "name": "London",
     "cod": 200
     }

Données Ouvertes

Les données ouvertes (ou open data) sont des données en accès et à usage libre, qui sont le plus souvent fournies par des collectivités publiques (état, département, villes...).

Par exemple on a utilisé des données de l'INSEE disponibles ici : https://www.insee.fr/fr/statistiques/4994589 au format CSV pour étudier les inégalités salariales.

De nombreuses autres données publiques sont disponibles sur https://www.data.gouv.fr/fr/.

Traitement des données

Il y a plusieurs manières de traiter des données :

  • En les ouvrant dans un éditeur de texte, on peut alors les lire "à la main" ou rechercher directement des informations dedans. C'est possible pour des fichiers très petits.
  • Dans un tableur comme Libreoffice Calc ou Excel les données sont affichées en table et on peut faire des calculs, recherches, filtres ou tri dessus. C'est ce qu'on a fait sur le site du Parcours Algoréa avec un fichier de musiques, et dans l'activité sur l'open data.
  • Avec un langage de programmation comme python. Cela nécessite de savoir programmer, mais permet de faire des traitements automatiques sur des données très volumineuses (2.5 millions de lignes pour les données salariales de l'INSEE par exemple).

Données Personnelles

Une donnée personnelle est toute information se rapportant à une personne physique identifiée ou identifiable. Parce qu’elles concernent des personnes, celles-ci doivent en conserver la maîtrise.

Une personne physique peut être identifiée :

  • directement: nom et prénom par exemple
  • indirectement : par un numéro de téléphone, de plaque d’immatriculation, un identifiant tel que le numéro de sécurité sociale, une adresse postale ou courriel, mais aussi la voix ou l’image.

La conservation et l'usage des données personnelles sont réglementées, en Europe par le RGPD.

Les organismes qui rendent des données publiques doivent faire attention à anonymiser ces données si jamais on peut en extraire des données personnelles. Par exemple pour le fichier des prénoms qu'on a pris à l'INSEE, le nombre de personnes par prénom par année est arrondi au multiple de 5 le plus proche. Sinon, si on connaissait une personne dont le prénom n'apparaît pas dans le fichier, on pourrait déduire qu'elle n'est pas née en France.

Métadonnées

Une métadonnée (mot composé du préfixe grec meta, indiquant l'auto-référence ; le mot signifie donc « donnée à propos de donnée ») est une donnée servant à définir ou décrire une autre donnée quel que soit son support (papier ou électronique).

Un exemple type est d'associer à une donnée la date à laquelle elle a été produite ou enregistrée, ou à une photo les coordonnées GPS du lieu où elle a été prise.

Autre exemple, le fichier CSV des données de l'INSEE utilisait des descripteurs et des valeurs difficiles à comprendre, et un autre fichier de métadonnées expliquait ce que ces codes signifiaient.