Basis van databases

Kolom x van tabel R heeft vier rijen met de waarden 1, 1, 2, 3, en kolom x van tabel S heeft vier rijen met de waarden 1, 1, 2, 4. Hoeveel rijen geeft SELECT * FROM R INNER JOIN S ON R.x = S.x?

  1. A2 rijen
  2. B3 rijen
  3. C5 rijen
Antwoord en toelichting tonen

Antwoord: C. 5 rijen

Bij een join wordt elke combinatie van rijen die aan de voorwaarde voldoet één resultaatrij. Voor x = 1 voldoet elke combinatie van de twee rijen van R en de twee rijen van S aan de voorwaarde, wat 2 × 2 = 4 rijen geeft; voor x = 2 is er 1 × 1 = 1 rij. De 3 van R en de 4 van S hebben geen partner en verschijnen dus niet in de inner join. Het totaal is 4 + 1 = 5 rijen. Twee rijen is het aantal als per overeenkomende waarde (1 en 2) maar één rij zou ontstaan. Drie rijen is het aantal als voor elke rij van R alleen wordt nagegaan of S een overeenkomende waarde bevat (een query zoals SELECT * FROM R WHERE x IN (SELECT x FROM S)). Het cartesisch product zonder voorwaarde zou 4 × 4 = 16 rijen geven. Houd er rekening mee dat dubbele waarden in de joinkolom het aantal resultaatrijen vermenigvuldigen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van databases

  1. De tabel Klant (KlantID, Naam) heeft vier rijen: (C1, Aoki), (C2, Inoue), (C3, Ueda), (C4, Eto). De tabel Bestelling (BestelID, KlantID, Bedrag) heeft vijf rijen: (O1, C1, 3000), (O2, C2, 8000), (O3, C1, 6000), (O4, C3, 2000), (O5, C2, 9000). Hoeveel rijen geeft SELECT Naam FROM Klant WHERE KlantID IN (SELECT KlantID FROM Bestelling WHERE Bedrag > 5000)?
  2. Uit de tabel Klant (KlantID, Naam) en de tabel Bestelling (BestelID, KlantID, Bedrag) moeten de namen worden opgevraagd van klanten die nog nooit iets hebben besteld. Welk SQL-statement is juist?
  3. Welke beschrijving van een view in een relationele database is juist?
  4. Wat is het belangrijkste doel van de normalisatie van tabellen in een relationele database?
  5. 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?