Bases des bases de données

Dans une base de données utilisée surtout pour la lecture et l'agrégation, des tables issues de la normalisation sont parfois délibérément fusionnées en une seule, de sorte que les mêmes données sont stockées en double (dénormalisation). Quelle combinaison associe correctement un avantage et un inconvénient de cette conception ?

  1. ALe stockage diminue parce que les doublons disparaissent, mais les lectures ralentissent parce que les jointures sont plus nombreuses
  2. BLes lectures comme les mises à jour deviennent plus rapides, et la cohérence des données est maintenue automatiquement
  3. CLes lectures deviennent plus rapides parce que les jointures sont moins nombreuses, mais il faut plus de travail de mise à jour pour garder cohérentes les données en double
Afficher la réponse et l'explication

Réponse : C. Les lectures deviennent plus rapides parce que les jointures sont moins nombreuses, mais il faut plus de travail de mise à jour pour garder cohérentes les données en double

La normalisation supprime les données en double et évite les anomalies de mise à jour, mais chaque recherche nécessite alors des jointures entre plusieurs tables. Là où les performances de lecture comptent, on rompt parfois délibérément la normalisation en fusionnant dans une seule table des colonnes souvent utilisées ensemble, ou en stockant des résultats agrégés sous forme de colonnes. C'est ce qu'on appelle la dénormalisation. Avec moins de jointures, les lectures deviennent plus rapides ; mais comme les mêmes données sont enregistrées à plusieurs endroits, chaque modification doit les mettre toutes correctement à jour, ce qui augmente le travail de mise à jour et le risque d'incohérences. Le stockage augmente aussi en général. C'est pourquoi les bases de données de traitement transactionnel, qui subissent beaucoup de mises à jour, sont normalisées par principe, et la dénormalisation n'est appliquée que là où elle est nécessaire, après avoir pesé son bénéfice et son coût.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases des bases de données

  1. Dans un diagramme E-R, il existe une relation plusieurs-à-plusieurs entre étudiants et cours : un étudiant suit plusieurs cours, et un cours est suivi par plusieurs étudiants. Quelle est la manière appropriée de mettre en œuvre cette relation avec des tables d'une base de données relationnelle ?
  2. Sur une table Compte, on démarre une transaction et l'on exécute un UPDATE qui retire 300 du solde du compte A et un UPDATE qui ajoute 300 au solde du compte B. On exécute ensuite ROLLBACK au lieu de COMMIT. Qu'advient-il de la table Compte ?
  3. Parmi les propriétés ACID qu'une transaction doit posséder, laquelle garantit qu'un virement qui débite le compte A et crédite le compte B est soit effectué entièrement, soit pas du tout, même si une panne survient en cours de route ?
  4. La quantité en stock d'un produit dans une table Stock vaut 10. La transaction T1 lit la quantité en stock et réécrit cette valeur moins 3, et T2 lit la quantité en stock et réécrit cette valeur moins 5. Si elles s'exécutent sans poser de verrou, dans l'ordre lecture de T1, lecture de T2, écriture de T1, écriture de T2, quelle est la quantité en stock finale ?
  5. Parmi les problèmes qui surviennent lorsque des transactions s'exécutent simultanément, quelle description d'une lecture sale (dirty read) est correcte ?