Bases de données relationnelles, transactions, indexation et traitement des requêtes, orienté préparation aux entretiens techniques et cours équivalent.
Jointures SQL: Combiner des lignes de deux tables ou plus en fonction d'une colonne correspondante.
Agrégation et regroupement SQL: Réduire de nombreuses lignes à un seul nombre récapitulatif par groupe, comme un total ou une moyenne par catégorie.
Sous-requêtes SQL: Une requête imbriquée dans une autre requête, utilisée comme valeur ou filtre.
Algèbre relationnelle: Les opérations formelles, de type mathématique, vers lesquelles SQL se compile réellement en coulisses.
Vues et vues matérialisées: Une requête enregistrée qui se comporte comme une table ; matérialisée signifie que le résultat est réellement stocké, pas recalculé à chaque fois.
Procédures stockées et déclencheurs: Du code qui réside dans la base de données elle-même : appelé à la demande (procédure) ou déclenché automatiquement par un événement (déclencheur).
Index et arbres B: Une structure de raccourci triée, en forme d'arbre, qui permet à la base de données de trouver des lignes sans parcourir toute la table.
Sélectivité des index: À quel point une condition filtre étroitement la table, la raison pour laquelle un index à faible sélectivité est ignoré au profit d'un parcours complet.
Traitement et optimisation des requêtes: Comment la base de données décide dans quel ordre exécuter les jointures et les filtres, pour répondre à une requête au moindre coût.
Transactions et concurrence
Transactions et propriétés ACID: Les quatre garanties (atomicité, cohérence, isolation, durabilité) qui font qu'une transaction semble être une unité indivisible.
Anomalies de concurrence: Les problèmes précis qui peuvent survenir lorsque deux transactions s'exécutent en même temps : lectures sales, non reproductibles et fantômes.
Niveaux d'isolation: Quelle part de ces anomalies de concurrence une base de données accepte de tolérer, choisie comme compromis avec la vitesse.
Sérialisabilité par conflit: Vérifier si un enchaînement entrelacé de transactions aurait pu se produire selon un certain ordre séquentiel.
Contrôle de concurrence par verrouillage: Les transactions qui acquièrent puis libèrent des verrous sur les données, en deux phases strictes, pour garantir la sérialisabilité en pratique.
Détection et prévention des interblocages: Deux transactions attendant chacune un verrou détenu par l'autre, et comment la base de données détecte ou évite cette impasse.
Récupération
Journalisation en écriture anticipée et récupération: Écrire ce qu'on est sur le point de modifier dans un journal avant de toucher la page réelle, pour qu'un plantage puisse quand même récupérer le bon état.
Algorithme de récupération ARIES: L'algorithme précis en trois phases (analyse, rejeu, annulation) que les bases de données réelles utilisent pour récupérer à l'aide du journal en écriture anticipée.
Systèmes distribués
Bases de données distribuées: Une base de données dont les données vivent sur plusieurs machines au lieu d'une seule.
Théorème CAP: On ne peut pas avoir une cohérence, une disponibilité et une tolérance au partitionnement parfaites en même temps, il faut en choisir deux.
Modèles de cohérence: À quel point une base de données distribuée insiste pour que chaque lecture voie la dernière écriture, par rapport à autoriser un certain retard.
Réplication et partitionnement (sharding): Copier des données sur plusieurs machines pour la redondance, par rapport à les répartir sur plusieurs machines pour la montée en charge.
Modèles de données NoSQL: Des alternatives aux tables : documents, paires clé-valeur, colonnes larges ou graphes, chacune adaptée à un modèle d'accès différent.
Analytique
Entrepôts de données et OLAP: Une base de données distincte optimisée pour de grandes requêtes analytiques sur des données historiques, pas pour des transactions rapides du quotidien.