Cours SQL et MySQL · Module 9: Index et normalisation
Les Pinakes achevés - résumé
Dans cette leçon3
Félicitations ! Tu as terminé la Salle du Catalogue - la partie la plus difficile de la Bibliothèque. Tes Pinakes sont prêts, les rayons sont en ordre, et la Bibliothèque retrouve chaque parchemin vite et sans erreur. C'est un grand art que nul scribe ordinaire n'a maîtrisé. Voici ce que tu as maîtrisé au cours de ce voyage :
Ce que tu as appris
- Un index est un catalogue qui accélère la recherche - au lieu de balayer toute la table parchemin par parchemin, la base de données le consulte et va directement au bon endroit.
- CREATE INDEX crée un catalogue ; un UNIQUE INDEX garantit en plus que les valeurs ne se répètent pas.
- Nous indexons les colonnes utilisées dans
WHERE,JOINetORDER BY. le prix à payer est des écritures plus lentes et plus d'espace occupé, donc nous indexons avec précaution. - EXPLAIN montre le plan d'exécution - grâce aux colonnes
typeetkey, tu vérifies si MySQL a utilisé un index ou parcouru laborieusement toute la table. - PRIMARY KEY (une seule, pas de NULL), UNIQUE (plusieurs, NULL autorisé) et un INDEX simple (doublons autorisés) diffèrent par la rigueur de leurs règles, mais tous accélèrent la lecture.
- FOREIGN KEY relie les tables et garantit l'intégrité référentielle ; les règles
ON DELETE CASCADEetON DELETE SET NULLdécident du sort des lignes liées. - La normalisation (1FN, 2FN, 3FN) élimine les répétitions : valeurs atomiques, dépendance totale envers la clé, et absence de dépendances transitives.
Carte du catalogue
| Concept | À quoi ça sert |
|---|---|
| INDEX | recherche rapide |
| UNIQUE | unicité des valeurs |
| FOREIGN KEY | cohérence entre les tables |
| Normalisation | aucune redondance |
Et ensuite ?
Dans le prochain lieu, nous nous attaquerons aux transactions - l'art d'exécuter plusieurs commandes pour que toutes réussissent, ou qu'aucune ne laisse de trace. Ton catalogue est prêt, il est donc temps de sécuriser les écritures. En avant, plus profond dans la Bibliothèque !
Tu as repéré une erreur dans cette leçon ?