Turn storage requirements into fields
Design a single-table structure by identifying the data each record must preserve.
Exam scope and assessment notes
This sequence follows Cambridge IGCSE Computer Science 0984, 2026–2028 syllabus Version 4, Topic 9. It covers single-table databases only and the specified SELECT, FROM, WHERE, ORDER BY, SUM, COUNT, AND and OR content. The official specimen also demonstrates NOT in a filter. Multi-table joins, GROUP BY, database implementation and the separate 2029–2031 syllabus are not mapped here. Practice is original, self-checked and does not award an official Cambridge grade. Full timed papers and human subject-teacher review remain outstanding. Cambridge states that 0984 has the same 2026–2028 subject content as 0478, with 9–1 grading. In June and November, Cambridge lists 0984 in Administrative zone 3 and for centres in Oman and the UAE. Confirm availability for your centre and exam series with Cambridge International. The separately published 2029–2031 syllabus changes to Python 3 only and removes pseudocode; this 2026–2028 route does not cover those changes.
Before you begin
- Be able to read a small table and compare values. Each lesson introduces the database and SQL terms it uses.
Work on paper. Try each question before revealing help, and explain why your method works.
Quick readiness check
What should guide the fields in a database table?
What you will learn
- Extract facts that must be stored
- Choose one field for each required fact
- Avoid storing unnecessary or ambiguous fields
Start with the information the program needs
Read the storage requirements and list the facts that must be kept for each item. A workshop registration may need a registration ID, attendee name, session code and payment status.
Use one field per kind of fact. Avoid combining several independent values into one field, because it makes searching and validation harder.
Keep the table aligned to one record type
A single-table database should describe one kind of item consistently, such as one registration per record. A field should have the same meaning in every record.
Do not add fields merely because they might be useful later. The design should meet the stated storage requirements and use clear names.
Pause and explain
A table stores one appointment per row. Where should the appointment date go?
Worked example
A club must store each member's ID, name, join date and whether the membership is active. Propose field names.
Show the worked solution
- Identify the item represented by each record: one membership.
- List the four required facts.
- Give each fact a clear field name.
Answer MemberID, MemberName, JoinDate and IsActive.
Try a topic test
Choose Easy, Normal or Difficult. Save your answers and open worked review after finishing.
Test this topic →From guided practice to a new situation
Write your answer and reasoning first. Use a hint only if you are stuck. The model solution is for self-checking; your written work is not automatically marked.
A cinema needs to store each ticket's code, seat, film and price. Suggest one field for each required fact.
Give me a hint
Use four distinct attributes.
Compare my reasoning
- Choose a code field.
- Choose a seat field and a film field.
- Include a price field.
TicketCode, Seat, FilmTitle and Price.
Look for these in your work
- Four facts represented
- Clear field names
A school must store each student's student number, date of birth and current year group. What should one record represent?
Give me a hint
Choose a consistent item for each row.
Compare my reasoning
- Each record should describe one student.
- Use one field for each required fact.
- The student number can identify the row if unique and stable.
One record represents one student, with fields for student number, date of birth and year group.
Look for these in your work
- Record type stated
- Required attributes included
A library asks for title, author and publication year, but the draft table has one field called BookDetails. Explain the design problem and improve it.
Give me a hint
Fields should support separate values and queries.
Compare my reasoning
- BookDetails combines several independent facts.
- Create separate Title, Author and PublicationYear fields.
- Store each fact in its own column for every book record.
Split BookDetails into separate fields for Title, Author and PublicationYear so each can be read and queried independently.
Look for these in your work
- Problem explained
- Fields separated
Common mistakes
- Putting two facts into one field, such as NameAndDate
- Using one table row for multiple members
- Leaving out a required attribute
What can you explain now?
Why should a field have the same meaning in every record?
Compare with the explanation
So values can be interpreted and queried consistently
A column is useful only when it represents one consistent kind of data.
After trying it yourself, choose your next review. This is your self-assessment.
Your review choice appears on Today. Sign in to sync it across devices.
Make it stick
How do storage requirements determine a table's fields?
If you needed the solution, close it and solve the problem again from a blank page. A correct answer is stronger when you can explain the reason for each step.