Bases des bases de données

Quelle description du théorème CAP est appropriée pour une base de données distribuée qui conserve des copies des données sur plusieurs serveurs ?

  1. ALorsque le réseau entre les serveurs est partitionné, la cohérence (n'importe quel serveur renvoie la valeur la plus récente) et la disponibilité (chaque requête obtient une réponse) ne peuvent pas être pleinement satisfaites en même temps
  2. BAvec une conception appropriée, la cohérence, la disponibilité et la tolérance au partitionnement peuvent toujours être satisfaites en même temps
  3. CLa tolérance au partitionnement consiste à doubler les liaisons réseau pour que le réseau entre les serveurs ne soit jamais partitionné
Afficher la réponse et l'explication

Réponse : A. Lorsque le réseau entre les serveurs est partitionné, la cohérence (n'importe quel serveur renvoie la valeur la plus récente) et la disponibilité (chaque requête obtient une réponse) ne peuvent pas être pleinement satisfaites en même temps

Le théorème CAP montre qu'une base de données distribuée ne peut pas satisfaire pleinement et en même temps les 3 propriétés suivantes : la cohérence (Consistency : lire depuis n'importe quel serveur renvoie le résultat de la dernière écriture), la disponibilité (Availability : tout serveur non défaillant répond à toutes les requêtes) et la tolérance au partitionnement (Partition tolerance : le système continue de fonctionner même lorsque la communication entre serveurs est coupée). Comme les partitions du réseau sont inévitables en pratique, l'essentiel est que, lorsqu'une partition survient, le système doit choisir entre privilégier la cohérence, en cessant de répondre à certaines requêtes, et privilégier la disponibilité, en continuant de répondre tout en admettant que des valeurs périmées soient renvoyées. En l'absence de partition, la cohérence et la disponibilité peuvent être satisfaites toutes les deux. De nombreux produits NoSQL privilégient la disponibilité et adoptent la cohérence à terme, dans laquelle les copies convergent avec le temps. La tolérance au partitionnement ne consiste pas à doubler les liaisons ; c'est la propriété de continuer à fonctionner même lorsqu'une partition survient.

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

Autres questions sur Bases des bases de données

  1. Dans la terminologie des bases de données relationnelles, quel terme correspond à une ligne d'une table (relation) ?
  2. Dans une table d'une base de données relationnelle, quelle condition la colonne (ou l'ensemble de colonnes) désignée comme clé primaire doit-elle remplir ?
  3. Dans une table des employés Employe(NumEmploye, Email, Nom, Service), NumEmploye et Email sont tous deux différents pour chaque employé et jamais NULL. Nom et Service peuvent être identiques à ceux d'autres employés. Quelle proposition énumère toutes les clés candidates de cette table ?
  4. Une table d'inscriptions Inscription(NumEtudiant, NumCours, Note) enregistre quel étudiant a suivi quel cours et avec quelle note. Un étudiant suit plusieurs cours, et un cours est suivi par plusieurs étudiants. Si un même étudiant ne s'inscrit jamais 2 fois au même cours, quelle clé primaire convient à cette table ?
  5. La clé primaire d'une table des clients Client(IdClient, Nom) est IdClient, et la colonne IdClient d'une table des commandes Commande(IdCommande, IdClient) est définie comme clé étrangère faisant référence à IdClient de la table Client. La table Client ne contient que les lignes dont IdClient vaut 'C1' et 'C2'. Que se passe-t-il si l'on exécute INSERT INTO Commande VALUES ('O9', 'C5') dans cet état ?