Basis van databases

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?

  1. APrefectuur
  2. BGeslacht
  3. CLidNr
Antwoord en toelichting tonen

Antwoord: B. Geslacht

Een index is effectief als de rijen die aan de voorwaarde voldoen worden beperkt tot een klein deel van het geheel. Elk LidNr is verschillend, dus slechts één rij voldoet en de index leidt er rechtstreeks naartoe. Prefectuur heeft 47 waarden, dus als de leden gelijkmatig verdeeld zijn, beperkt één waarde de zoekopdracht tot ongeveer 1 miljoen ÷ 47 ≈ 21.000 rijen (ongeveer 2% van het totaal). Geslacht heeft twee waarden die ruwweg half om half verdeeld zijn, dus elk van beide waarden levert ongeveer 500.000 rijen op (ongeveer 50%). Zoveel rijen een voor een via een index ophalen is vaak trager dan een full table scan die de tabel van begin tot eind leest, dus de optimizer van het DBMS kan een uitvoeringsplan kiezen dat de index niet gebruikt. Zo geldt: hoe meer verschillende waarden een kolom heeft en hoe sterker een voorwaarde erop de rijen beperkt (hoe selectiever ze is), hoe effectiever een index op die kolom is.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van databases

  1. Welke beschrijving van de kenmerken van een key-value-store, een van de databases die NoSQL worden genoemd, is in het algemeen juist?
  2. Welke beschrijving van de CAP-stelling voor een gedistribueerde database die kopieën van gegevens op meerdere servers bewaart, is passend?
  3. Welke term uit de terminologie van relationele databases komt overeen met één rij van een tabel (relatie)?
  4. Aan welke voorwaarde moet in een tabel van een relationele database de kolom (of combinatie van kolommen) voldoen die als primaire sleutel is aangewezen?
  5. 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?