Basis van databases

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?

  1. AAlleen MedewerkerNr
  2. BMedewerkerNr, en Email (elk afzonderlijk een kandidaatsleutel)
  3. CMedewerkerNr, en de combinatie van MedewerkerNr en Naam
Antwoord en toelichting tonen

Antwoord: B. MedewerkerNr, en Email (elk afzonderlijk een kandidaatsleutel)

Een kandidaatsleutel is een minimale combinatie van kolommen die een rij uniek kan identificeren: als er ook maar één kolom uit wordt weggelaten, is unieke identificatie niet meer mogelijk. In deze tabel kunnen MedewerkerNr en Email elk afzonderlijk een medewerker uniek identificeren, dus zijn het allebei kandidaatsleutels. Eén kandidaatsleutel wordt als primaire sleutel gekozen (hier ligt MedewerkerNr voor de hand), en de niet gekozen sleutel, Email, heet een alternatieve sleutel. Door de alternatieve sleutel de beperkingen UNIQUE en NOT NULL te geven, worden dubbele waarden voorkomen. De combinatie van MedewerkerNr en Naam kan een rij ook uniek identificeren, maar de uniciteit blijft behouden zonder Naam, dus ze is niet minimaal en daarom geen kandidaatsleutel. Een combinatie van kolommen die rijen uniek identificeert maar niet per se minimaal is, heet een supersleutel.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van databases

  1. 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?
  2. 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?
  3. SQL-statements worden ingedeeld in de datadefinitietaal (DDL), de datamanipulatietaal (DML) en de datacontroletaal (DCL). Welke wordt als DDL ingedeeld?
  4. De tabel Product bevat vijf rijen (Naam, Prijs): (Pen, 120), (Schrift, 250), (Gum, 80), (Map, 300), (Liniaal, 150). Welk antwoord geeft in volgorde de rijen die SELECT Naam FROM Product WHERE Prijs >= 150 ORDER BY Prijs DESC teruggeeft?
  5. De kolom Afdeling van de tabel Medewerker bevat, van de bovenste rij naar beneden, de waarden Verkoop, Ontwikkeling, Verkoop, Administratie, Ontwikkeling, Verkoop (in totaal 6 rijen). Hoeveel rijen geeft SELECT DISTINCT Afdeling FROM Medewerker?