Basis van databases

Op de kolom LidNr van de tabel Lid met 1 miljoen rijen is een index in de vorm van een B+-boom aangemaakt. Welke combinatie van het effect dat in het algemeen mag worden verwacht en de prijs daarvoor is juist?

  1. AZoekopdrachten zoals WHERE LidNr = 12345 worden sneller, maar schrijven wordt trager omdat de index ook moet worden bijgewerkt telkens wanneer een rij wordt toegevoegd of gewijzigd
  2. BZoekopdrachten op alle kolommen worden sneller, zonder enige prijs
  3. CDe rijen van de tabel worden op LidNr gesorteerd, zodat elke zoekopdracht sneller wordt, en de benodigde opslag wordt gehalveerd
Antwoord en toelichting tonen

Antwoord: A. Zoekopdrachten zoals WHERE LidNr = 12345 worden sneller, maar schrijven wordt trager omdat de index ook moet worden bijgewerkt telkens wanneer een rij wordt toegevoegd of gewijzigd

Een index is een datastructuur om op basis van een waarde in een bepaalde kolom snel de plaats te vinden van de rijen met die waarde; relationele databases gebruiken vaak B+-bomen. Zonder index moeten voor de rij WHERE LidNr = 12345 de 1 miljoen rijen een voor een worden doorzocht (een full table scan), maar met een B+-boom wordt de rij gevonden door slechts enkele niveaus van de wortel naar een blad te volgen. Als elke knoop zich bijvoorbeeld in 100 takken splitst, is 100 × 100 × 100 = 1 miljoen, dus ongeveer drie niveaus zijn genoeg. Omdat de bladeren van een B+-boom in volgorde van de waarden aan elkaar zijn gekoppeld, kan de index ook worden gebruikt voor zoekopdrachten op een bereik, zoals BETWEEN, en voor sorteren met ORDER BY. Aan de andere kant moet de index worden bijgewerkt telkens wanneer een rij wordt toegevoegd, gewijzigd of verwijderd, dus schrijven wordt trager, en de index vraagt opslagruimte. Zoekopdrachten op kolommen zonder index worden niet sneller.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van databases

  1. Voor de tabel Lid met 1 miljoen rijen wordt overwogen op elk van de kolommen LidNr (allemaal verschillend), Prefectuur (47 waarden) en Geslacht (2 waarden, ruwweg half om half) een B+-boomindex aan te maken. Op welke kolom is een index waarschijnlijk het minst effectief bij een zoekopdracht waarin in de WHERE-clausule een waarde voor één kolom wordt opgegeven?
  2. Welke beschrijving van de kenmerken van een key-value-store, een van de databases die NoSQL worden genoemd, is in het algemeen juist?
  3. Welke beschrijving van de CAP-stelling voor een gedistribueerde database die kopieën van gegevens op meerdere servers bewaart, is passend?
  4. Welke term uit de terminologie van relationele databases komt overeen met één rij van een tabel (relatie)?
  5. Aan welke voorwaarde moet in een tabel van een relationele database de kolom (of combinatie van kolommen) voldoen die als primaire sleutel is aangewezen?