Basis van databases

Wat is het belangrijkste doel van de normalisatie van tabellen in een relationele database?

  1. AHet aantal tabellen verminderen, zodat elke zoekopdracht snel en zonder joins kan worden uitgevoerd
  2. BGegevens versleutelen, zodat onbevoegde gebruikers ze niet kunnen lezen
  3. CDubbele gegevens wegwerken en anomalieën voorkomen, zoals inhoud die na een wijziging inconsistent wordt
Antwoord en toelichting tonen

Antwoord: C. Dubbele gegevens wegwerken en anomalieën voorkomen, zoals inhoud die na een wijziging inconsistent wordt

Normalisatie is een ontwerpprocedure die tabellen opsplitst op basis van functionele afhankelijkheden tussen kolommen (een relatie waarbij de waarde van een kolom de waarde van een andere kolom eenduidig bepaalt), zodat hetzelfde feit niet op meerdere plekken wordt vastgelegd. Als bijvoorbeeld elke rij van een tabel met medewerkers ook de naam van de afdeling bevat, moeten bij het hernoemen van een afdeling de rijen van alle medewerkers van die afdeling worden herschreven, en wordt er een overgeslagen, dan wordt de inhoud inconsistent (een wijzigingsanomalie). Er ontstaan ook andere problemen: een afdeling zonder medewerkers kan nog niet worden geregistreerd (een invoeganomalie), en het verwijderen van de laatste medewerker van een afdeling wist ook de informatie over de afdeling (een verwijderanomalie). Als de informatie over afdelingen naar een aparte tabel Afdeling wordt verplaatst, hoeft een afdelingsnaam maar op één plek te worden gecorrigeerd. Aan de andere kant betekent het opsplitsen van tabellen meer joins bij het zoeken, dus normaliseren maakt zoekopdrachten niet per se sneller.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van databases

  1. De primaire sleutel van de tabel Bestelling (BestelNr, ArtikelNr, Aantal, KlantNr, Klantnaam) is {BestelNr, ArtikelNr}, en de functionele afhankelijkheden zijn {BestelNr, ArtikelNr} → Aantal, BestelNr → KlantNr en KlantNr → Klantnaam. Wat is het juiste resultaat van de normalisatie van deze tabel tot de derde normaalvorm?
  2. De primaire sleutel van de tabel Medewerker (MedewerkerNr, Naam, Afdelingscode, Afdelingsnaam) is MedewerkerNr, en elke kolom bevat één waarde. De functionele afhankelijkheden zijn MedewerkerNr → Naam, MedewerkerNr → Afdelingscode en Afdelingscode → Afdelingsnaam. Welke uitspraak over de normaalvorm van deze tabel is juist?
  3. In een database die vooral wordt gebruikt om te lezen en te aggregeren, worden tabellen die door normalisatie zijn opgesplitst soms bewust samengevoegd tot één tabel, zodat dezelfde gegevens dubbel worden bewaard (denormalisatie). Welke combinatie van een voordeel en een nadeel van dit ontwerp is juist?
  4. In een ER-diagram bestaat tussen studenten en vakken een veel-op-veelrelatie: één student volgt meerdere vakken, en één vak wordt door meerdere studenten gevolgd. Wat is een geschikte manier om deze relatie met tabellen in een relationele database te realiseren?
  5. In de tabel Rekening wordt een transactie gestart, en worden een UPDATE die 300 aftrekt van het saldo van rekening A en een UPDATE die 300 bij het saldo van rekening B optelt uitgevoerd. Daarna wordt in plaats van COMMIT een ROLLBACK uitgevoerd. Wat gebeurt er met de tabel Rekening?