Basis van databases

Welke beschrijving van de CAP-stelling voor een gedistribueerde database die kopieën van gegevens op meerdere servers bewaart, is passend?

  1. AWanneer het netwerk tussen de servers wordt opgesplitst, kunnen consistentie (elke server geeft de nieuwste waarde) en beschikbaarheid (elk verzoek krijgt een antwoord) niet tegelijk volledig worden gewaarborgd
  2. BMet een goed ontwerp kunnen consistentie, beschikbaarheid en partitietolerantie altijd tegelijk worden gewaarborgd
  3. CPartitietolerantie betekent dat netwerkverbindingen dubbel worden uitgevoerd, zodat het netwerk tussen de servers nooit wordt opgesplitst
Antwoord en toelichting tonen

Antwoord: A. Wanneer het netwerk tussen de servers wordt opgesplitst, kunnen consistentie (elke server geeft de nieuwste waarde) en beschikbaarheid (elk verzoek krijgt een antwoord) niet tegelijk volledig worden gewaarborgd

De CAP-stelling laat zien dat een gedistribueerde database niet alle drie de volgende eigenschappen tegelijk volledig kan waarborgen: consistentie (consistency: lezen van elke willekeurige server geeft het resultaat van de laatste schrijfactie), beschikbaarheid (availability: elke server die niet is uitgevallen, beantwoordt elk verzoek) en partitietolerantie (partition tolerance: het systeem blijft werken, ook als de communicatie tussen servers wordt verbroken). Omdat netwerkpartities in de praktijk niet te vermijden zijn, is de kern dat het systeem bij een partitie moet kiezen tussen voorrang voor consistentie, waarbij het antwoorden op sommige verzoeken stopt, en voorrang voor beschikbaarheid, waarbij het blijft antwoorden en verouderde waarden toestaat. Als er geen partitie is, kunnen consistentie en beschikbaarheid allebei worden gewaarborgd. Veel NoSQL-producten geven voorrang aan beschikbaarheid en passen eventual consistency toe, waarbij de kopieën na verloop van tijd gelijk worden. Partitietolerantie gaat niet over het dubbel uitvoeren van verbindingen; het is de eigenschap dat het systeem blijft werken, ook als er een partitie optreedt.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van databases

  1. Welke term uit de terminologie van relationele databases komt overeen met één rij van een tabel (relatie)?
  2. Aan welke voorwaarde moet in een tabel van een relationele database de kolom (of combinatie van kolommen) voldoen die als primaire sleutel is aangewezen?
  3. In de tabel Medewerker (MedewerkerNr, Email, Naam, Afdeling) zijn MedewerkerNr en Email voor elke medewerker verschillend en nooit NULL. Naam en Afdeling kunnen gelijk zijn aan die van andere medewerkers. Welk antwoord noemt alle kandidaatsleutels van deze tabel?
  4. De tabel Inschrijving (StudentNr, VakNr, Cijfer) legt vast welke student welk vak heeft gevolgd en met welk cijfer. Eén student volgt meerdere vakken, en één vak wordt door meerdere studenten gevolgd. Als dezelfde student zich nooit twee keer voor hetzelfde vak inschrijft, wat is dan een geschikte primaire sleutel voor deze tabel?
  5. De primaire sleutel van de tabel Klant (KlantID, Naam) is KlantID, en KlantID in de tabel Bestelling (BestelID, KlantID) is gedefinieerd als vreemde sleutel die verwijst naar KlantID in de tabel Klant. De tabel Klant bevat alleen de rijen met KlantID 'C1' en 'C2'. Wat gebeurt er als in deze toestand INSERT INTO Bestelling VALUES ('O9', 'C5') wordt uitgevoerd?