Rappels sur les bases de données relationnelles
Dans le cadre de la découverte de QGIS, qui n'est qu'une interface de visualisation/manipulation de données spatiales (GUI, Graphic User Interface), on peut revoir rapidement l'intérêt à passer des tableurs aux bases de données relationnelles.
Ci-dessous l'exemple d'un fichier Excel truffé d'erreur de conception (d'un point de vue BDD s'entend), nommé Mes beaux utilisateurs, contenant des humains, des métiers et des adresses. Celui-ci gagnerait à être divisé en au moins deux tables : users et address. En effet une base applicative doit considérer chaque ligne (chaque enregistrement) comme une occurence propre (une identification, un événement...). Or techniquement ou même dans la vraie vie, une adresse a-t-elle la même valeur qu'un nom ? Sont-ils intimement et éternellement liés ? Non.
Souvent, l'une des questions à se poser est : quelles sont les informations qualitatives réellement liées aux objets décrits ? Ainsi une adresse peut changer, un nom beaucoup moins.
Quelques intérêts du fonctionnement en bases de données relationnelles : amélioration des performances d'affichage, amélioration des performances de requêtage, minimisation/rationnalisation des doublons, minimisation des champs vides, mises-à-jour en cascade...
Ainsi une BDD applicative (sous-jacente à un site web, une application métier...) peut être vue non pas comme un gigantesque tableau, mais plutôt comme une constellation de petits tableaux reliés entre eux. Et pour les relier, on utilisera des jointures basées sur des champs contenant des valeurs communes (des identifiants, un champ id typiquement).
Profitez du passage à la dimension relationnelle pour acquérir de bonnes pratiques : pas d'espace ni de caractères spéciaux dans les noms d'objets BDD, des noms courts et évocateurs, 1ère ligne contenant les noms de champs...
Exercice
À partir des informations déjà présentes dans ces données, dessinez une 3ème puis une 4ème table relationnelle1.
Plus difficile : imaginez et dessinez une méthode relationnelle permettant de totalement évincer les doublons de la table address2.
1 Une table speciality par exemple, puis une table country.
2 Il s'agit de passer par une table intermédiaire entre les users et les address.