🎮 Practice Activities

Test yourself — instant feedback, no pressure!

⭐ Score: 0 / 0

🔑 Game 1: Spot the Primary Key

Click the column header that would make the best primary key. Remember: it must be unique for every row and never empty.

Table A — Gym members

MemberID FirstName Town
M01SamLeeds
M02SamYork
M03PriyaLeeds

Table B — Books

Title Author ISBN
DraculaStoker978-01
DraculaStoker978-02
HolesSachar978-03

Table C — Flights today

Destination FlightNo Gate
ParisBA20412
ParisEZ88112
RomeBA3777

🧠 Game 2: Key Knowledge Quiz

Pick the right answer. You only get one try per question, so think carefully! 🤔

Q1. What is a primary key?

Q2. What is a foreign key?

Q3. In the Students table, FormID points at the FormGroups table. In the Students table, FormID is a…

Q4. Why do we normalise a database?

🕵️ Game 3: 1NF Detective

Is each table in 1NF? Remember the rule: one box, one value!

Table A

🔑 PetIDPetNameVaccines
P1RexRabies, Flu
P2MiloFlu

Table B

🔑 PetID🔑 VaccineDateGiven
P1Rabies3 May
P1Flu9 May
P2Flu9 May

Table C

🔑 TripIDDestinationStudentsGoing
T1MuseumAmy, Ben, Cara
T2ZooBen

🔨 Game 4: Click the Broken Cell

One cell in this table breaks the 1NF rule. Click it!

🔑 BandIDBandNameInstruments
B1 The Loops Guitar, Drums, Bass
B2 Array of Sunshine Keyboard

🗂️ Game 5: Sort the Statements

Click a statement card, then click the normal form it belongs to. Sort all six! 🃏

"One cell held 3 phone numbers — I split them into rows" "TeacherName depended on FormGroup, not on the student key" "SnackPrice only depended on PART of a two-column key" "Every cell now holds exactly one value" "Facts must be about the WHOLE key" "Facts must be about the key and NOTHING ELSE"

🥇 1NF

🥈 2NF

🥉 3NF

👾 Game 6: Final Boss — Which Normal Form?

Look at each table and decide the highest normal form it has reached.

The Hobbies column holds "Chess, Football" in one cell.

🔑 StudentIDNameHobbies
001AmyChess, Football
002BenChess

Key = OrderID + ItemID together. But ItemName depends only on ItemID.

🔑 OrderID🔑 ItemIDQtyItemName
O1I52Pencil
O2I51Pencil

Single-column key; every other column is a fact about that key only.

🔑 StudentIDNameDateOfBirth
001Amy2010-04-12
002Ben2010-11-03

DoctorPhone depends on DoctorName — an ordinary column, not the key. Which rule does this break?

🔑 ApptIDPatientDoctorNameDoctorPhone
A1SamDr Wu555-2000
A2PriyaDr Wu555-2000