Listen

Description

Bonjour, bienvenue dans cet épisode 9 sur l’indexation dans les bases
de données. C’était l’étape logique juste après l’épisode 8 sur la
manière de ranger et rechercher des données.

On parlait dans l’épisode précédent de ranger des livres, et d’aller
les chercher. Les seuls outils pour cela étaient un ensemble d’étagères
et quelques règles non écrites. J’aime bien chercher les règles non
écrites : c’est ce qui permet de tout clarifier, et parfois de tout
remettre en cause pour créer de nouvelles opportunités.

1) On voulait donner un ordre, mais lequel ? On supposait que la
personne qui range ses livres ne se pose pas la question, ou plutôt
qu’elle a une réponse toute faite : probablement de haut en bas du
meuble, de gauche à droite par étagère.

Si c’est vous qui savez, qui rangez et qui cherchez, ça marche, mais
bien sûr il faut prévenir les autres personnes qui pourraient vouloir
le faire aussi, sinon ils ne trouvent pas le livre (dommage) voire
pire : ils “cassent” votre rangement avec des livres en désordre, avec
le coût en performance qu’on a vu.

2) On se basait sur le fait que la seule information est la tranche
du livre, avec titre et auteur. Mais on n’est pas obligés. On peut
faire un papier qu’on scotche à côté de notre étagère pour expliquer
le système de rangement.

Enrichir la structure

Et là encore, les bibliothèques existent depuis longtemps et ont tenté
plein de bonnes idées, pour finir par s’accorder sur un standard.

Les allées sont rangées par thèmes, qui ont des sous-catégories,
on colle à chaque livre une référence unique… et on souhaite
toutefois que ce soit facile à naviguer quel que soit la manière
dont nos lecteurs veulent aborder le problème.

On ne peut ranger nos livres physiquement que d’une façon, alors
on a recours à une “structure” encore plus complexe mais plus
astucieuse : ajouter en plus des étagères de livres des fiches ou
dossiers, permettant de retrouver référence et section en fonction
de votre question.

Un catalogue va lister tous les livres par ordre alphabétique du nom
des auteurs. Quand un livre a trois auteurs, il sera présent trois
fois dans ce catalogue et ce n’est pas grave parce que ces trois
lignes mèneront vers la même référence, et donc un seul exemplaire
physique du livre.

Sur les tonnes de livres et les millions de pages cumulées des
ouvrages, vous venez d’ajouter trois lignes, même pas une feuille A4,
pour simplifier la vie de tous vos lecteurs.

On a fait une structure plus complexe mais plus puissante.
Et tant qu’on y est, on va faire un catalogue par titre, un par
éditeur, un par date, et des entrées par sujets pour pouvoir
répondre aux lecteurs qui cherchent des livres à la croisée des
sujets, comme histoire et religion, science et bande dessinée, etc.

Indexation

Ces catalogues papier ont un nom : maintenant presque tout est
informatisé, mais avant on appelait ça des index. Et c’est tellement
utile que de nombreux livres de référence ont aussi un ou plusieurs
index permettant de retrouver le contenu dans le livre.

Index est un mot que vous avez peut-être déjà entendu au sujet des
bases de données, j’y consacrerai peut-être un épisode mais a priori
vous avez déjà compris comment ça marche, et surtout vous venez de
comprendre pourquoi un index est souvent très bien (pratique pour la
recherche), mais qu’il a toujours un coût (écrire et mettre le
catalogue à jour), et que parfois on choisit de ne pas payer ce coût
car ça n’a pas assez d’utilité, par exemple, de faire un catalogue de
livres en fonction des prénoms des personnages principaux et
secondaires.

Un mot sur la suite

On a balayé la plupart des catégories d’épisodes que je voulais faire :
un concept très abstrait mais utile (002. le cache),
un sujet simple mais plein de pièges à démystifier
(004. la priorité des règles CSS),
un sujet business (005. achats IT B2B),
de la philosophie (006. le Vide, l’Unité et l’Infini),
et quelques pièges ou astuces dans Ruby on Rails
(003. les requêtes N+1 et 007. les associations).

Avec 001. listes chaînées et
008. structures de données et algos de recherche
je vise à dédramatiser un sujet souvent inquiétant dans les
premières années d’école d’informatique ou d’apprentissage en solo
dans les livres ou sur Internet. Dans la vraie vie vous utiliserez
rarement les listes chaînées mais plutôt une bibliothèque ou
les constructions de votre langage de programmation.
Bref c’est bon pour la culture, et pour donner des idées, mais
je trouve très dommage qu’il y ait des barrières à l’entrée
alors qu’on pourrait tout de suite commencer à apprendre sur des
projets plus amusants.

Pour la suite, je vais essayer de tourner sur ce genre de sujets,
je suis preneur de vos retours sur twitter
.
Merci et à bientôt !