Bases des bases de données

Quel est le but principal de la normalisation des tables d'une base de données relationnelle ?

  1. ARéduire le nombre de tables pour que toute recherche puisse se faire rapidement sans jointure
  2. BChiffrer les données pour que les utilisateurs non autorisés ne puissent pas les lire
  3. CÉliminer les données en double et éviter des anomalies comme des contenus qui deviennent incohérents après une mise à jour
Afficher la réponse et l'explication

Réponse : C. Éliminer les données en double et éviter des anomalies comme des contenus qui deviennent incohérents après une mise à jour

La normalisation est une démarche de conception qui découpe les tables en fonction des dépendances fonctionnelles entre colonnes (une relation dans laquelle la valeur d'une colonne détermine celle d'une autre), afin que le même fait ne soit pas enregistré à plusieurs endroits. Par exemple, si chaque ligne d'une table des employés contient aussi le nom du service, renommer un service oblige à réécrire toutes les lignes des employés de ce service, et en oublier une seule rend le contenu incohérent (anomalie de mise à jour). D'autres problèmes surviennent aussi : on ne peut pas enregistrer un service qui n'a pas encore d'employé (anomalie d'insertion), et supprimer le dernier employé d'un service efface aussi les informations du service (anomalie de suppression). Si les informations sur les services sont placées dans une table Service distincte, le nom d'un service ne doit être corrigé qu'à un seul endroit. En revanche, des tables séparées impliquent davantage de jointures lors des recherches ; la normalisation ne rend donc pas forcément les recherches plus rapides.

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

Autres questions sur Bases des bases de données

  1. La clé primaire d'une table Commande(NumCommande, NumArticle, Quantite, NumClient, NomClient) est {NumCommande, NumArticle}, et ses dépendances fonctionnelles sont {NumCommande, NumArticle} → Quantite, NumCommande → NumClient et NumClient → NomClient. Quel est le résultat correct de la normalisation de cette table jusqu'à la troisième forme normale (3NF) ?
  2. La clé primaire d'une table Employe(NumEmploye, Nom, CodeService, NomService) est NumEmploye, et chaque colonne contient une seule valeur. Les dépendances fonctionnelles sont NumEmploye → Nom, NumEmploye → CodeService et CodeService → NomService. Quelle proposition indique correctement la forme normale de cette table ?
  3. 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 ?
  4. 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 ?
  5. 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 ?