Les bases de données

Dans son acceptation globale, une base de donnée est uniquement un système de stockage des données. Il peut s’agir d’un gros classeur dans une armoire, ou encore de fichiers sur un disque dur comme présentés dans la section précédente. Cependant en pratique, quand on parle de base de données, il s’agit d’un système informatique très structuré qui permet de stocker et de consulter des données rangées à l’intérieur.

En réalité, la base de données stocke les données sur le disque dur de l’ordinateur, et le Système de Gestion de Base de données permet de les afficher, explorer, éditer etc … quand on en a besoin.

De nombreux systèmes de bases de données (qu’on appellera par la suite juse “bases de données”) existent, comme Microsoft SQL Server, mySQL et PostgreSQL. Le schéma suivant explique comment intéragir avec une base de données.

Principe de fonctionnement d'une base de donnees

Cela ressemble à l’utilisation d’un simple logiciel pour manipuler les données, comme avec Word. Cependant l’utilisateur n’a pas accès aux fichiers finaux, il ne peut pas les partager en les envoyant par email. Cependant, de multiples utilisateurs peuvent accéder à la base de données depuis différents ordinateurs à travers un réseau (internet) et il est possible d’exporter les données dans un format fichier.

Ainsi la base de données n’est en rien une restriction. C’est au contraire un outil plus puissant que de simples fichiers. Cependant comme souvent un outil plus puissant se révèle plus complexe à utiliser. Il ne faut pas être rebuté par ça, les bases de données sont un sujet très intéressant et leur utilisation, si elle n’est pas d’accès immédiat, est à la portée de toute personne qui s’y intéresse. Nous allons voir par la suite plus en détails les bases de données et leurs extensions géographiques.

Les bases de données SQL

Les requêtes

La plupart des noms cités dans la section précédente avaient un point commun, les trois lettres SQL. Microsoft SQL Server, PostgreSQL, mySQL. Cela signifie Structured Query Language. C’est le langage utilisé pour interagir avec une base de données SQL.

A l’intérieur d’une base de données SQL, l’information est rangée dans des tables. Une table est comme un tableur, chaque ligne de la table est une donnée, et chaque colonne est une propriété de la donnée. Il est aisé de se représenter une base de données comme une collection de Feuilles Excel qu’on peut mélanger, filtrer, joindre, éditer etc … à travers des requêtes SQL qui seront tapées dans une fenêtre créée à cet effet: il peut s’agir d’un logiciel, un terminal, etc …

Rem: Il y a deux façons d’utiliser un ordinateur. Soit avec une souris en cliquant sur des icônes, menus, boutons etc, soit en utilisant un terminal dans lequel on tape directement des commandes. Même si la deuxième solution peut paraître plus complexe, il n’en est rien, les commandes sont simples.

Certains logiciels permettent de consulter les données d’une base sans avoir recours aux requêtes SQL, cela peut être pratique pour l’exploration rapide d’une base.

Le langage SQL est simple, il s’agit presque de phrases réelles en anglais. Supposons que l’on ait une table clients dans laquelle on stocke les données précédentes, il y aurait alors les colonnes:

  • Nom
  • Type
  • Adresse
  • Ville
  • Longitude
  • Latitude

Pour afficher les données de la table, on pourrait formuler la phrase suivante en français:

Afficher les noms et villes présents dans la table Clients.

La version SQL est la suivante:

SELECT nom, ville FROM Clients;

Une autre requête pourrait être:

Afficher tout de la table Clients où la ville est Paris. La requête SQL:

SELECT * FROM Clients WHERE ville=Paris;

On remarque que * signifie “toutes les colonnes” et qu’une phrase se finit par un point virgule. Le SQL est un langage très simple à maîtriser, même si au début le fait d’écrire soi-même des instructions peut dérouter. Le tableau suivant présente quelques requêtes types avec leur traduction en français.

SQL Français
Update Clients SET type = ‘appartement’ WHERE name=’Mélanie’; Modifier la table Clients: définir la valeur type = ‘appartment’ pour la ligne dont le nom est ‘Mélanie’;
Insert into Clients (name, type, adresse, ville, longitude, latitude) Values (‘Tom’, ‘bureau’, ‘3 rue Vaugirard’, ‘Paris’, 48.84, 2.42); Insérer dans la table Clients la ligne (‘Tom’, ‘bureau’, ‘3 rue Vaugirard’, ‘Paris’, 48.84, 2.42).

Le SQL n’est pas limité dans ses possibilités, il est possible de modifier plusieurs lignes au même moment, ajouter des lignes avec des valeurs nulles, créer des nouvelles tables, etc. Il suffit pour cela de regarder la documentation, des tutoriels, ou simplement de taper ce qu’o souhaite faire dans google pour apprendre les mots clés à utiliser.

Les types de données

Les bases de données SQL sont très structurées. Essayer de rentrer un nombre à la place de la ville engendrerait une erreur. A la création d’une table, il est nécessaire de spécifier quel valeur est attendue dans chaque colonne. On appelle ça le type d’une colonne. Ils sont prédéfinis et on ne peut utiliser que ceux proposés par la base de données. Ils couvrent cependant la plupart des cas imaginables. Voilà la liste des types utilisés dans notre listing:

  • Nom: Character Varying
  • Type: Character Varying
  • Adresse: Character Varying
  • Ville: Character Varying
  • Longitude: Float
  • Latitude: Float

On n’utilise que deux types parmi la large panoplie proposée. Character Varying représente une chaîne de caractères dont la longueur peut varier. On ne sait pas à l’avance combien de lettres comprendront le nom ou la ville de notre client. Float est la façon de nommer les nombres à virgule, comme la longitude et la latitude. D’autres types sont disponibles: Integer permet de stocker des nombres dans virgules, date permet de stocker un horaire.

Les fonctions

Nous avons vus deux notions importantes du SQL: les requêtes et les types. Un dernier atout du SQL est d’avoir des fonctions permettant d’agir sur les données. Ces fonctions sont propres à chacune des bases de données et peuvent varier dans le nom mais la plupart sont communes.

Un exemple d’utilisation de fonction est de vouloir transformer toutes les chaînes de caractères qui peuvent avoir des majuscules en minuscules. La fonction à appeler s’appelle lower. Ainsi, on a la requête suivante en français:

Modifier la table Clients, changer la valeur de nom en nom en minuscule pour toutes les lignes.

Ce qui donne en SQL:

Update Clients, Set name = lower(name);

De nombreuses autres fonctions sont disponibles, comme la valeur absolue, la racine carrée, et bien d’autres. Il est même possible de créer ses propres fonctions en combinant celles déjà fournies.