Bird
Raised Fist0
SQLquery~30 mins

Relational model mental model in SQL - Mini Project: Build & Apply

Choose your learning style10 modes available
Building a Simple Student Grades Database
📖 Scenario: You are helping a school keep track of students and their grades in different subjects. This will help teachers quickly find out how students are doing.
🎯 Goal: Create a small database with tables for Students and Grades. Then, link the grades to the students using a common key. Finally, write a query to see each student's name with their grades.
📋 What You'll Learn
Create a Students table with columns StudentID (integer), Name (text).
Create a Grades table with columns GradeID (integer), StudentID (integer), Subject (text), and Score (integer).
Insert exactly three students with IDs 1, 2, 3 and names 'Alice', 'Bob', 'Charlie'.
Insert exactly five grades linking to the students by StudentID.
Write a query to join Students and Grades on StudentID to show each student's name, subject, and score.
💡 Why This Matters
🌍 Real World
Schools and educational institutions use databases like this to keep track of students and their grades efficiently.
💼 Career
Understanding relational models and SQL queries is essential for database administrators, data analysts, and backend developers.
Progress0 / 4 steps
1
Create the Students table and add data
Write SQL to create a table called Students with columns StudentID as INTEGER and Name as TEXT. Then insert these three rows exactly: (1, 'Alice'), (2, 'Bob'), (3, 'Charlie').
SQL
Hint

Use CREATE TABLE to make the table. Use INSERT INTO Students (StudentID, Name) VALUES to add the three students.

2
Create the Grades table and add data
Write SQL to create a table called Grades with columns GradeID INTEGER, StudentID INTEGER, Subject TEXT, and Score INTEGER. Then insert these five rows exactly: (1, 1, 'Math', 85), (2, 1, 'English', 90), (3, 2, 'Math', 78), (4, 3, 'English', 88), (5, 3, 'Science', 92).
SQL
Hint

Use CREATE TABLE Grades with the four columns. Use INSERT INTO Grades to add the five grade records.

3
Write a query to join Students and Grades
Write a SQL SELECT query that joins Students and Grades on StudentID. Select Students.Name, Grades.Subject, and Grades.Score.
SQL
Hint

Use JOIN to connect the two tables on StudentID. Select the student's name, subject, and score.

4
Add a primary key and foreign key constraints
Alter the Students table to add a primary key on StudentID. Alter the Grades table to add a primary key on GradeID and a foreign key on StudentID referencing Students(StudentID).
SQL
Hint

Add PRIMARY KEY to StudentID in Students and GradeID in Grades. Add a FOREIGN KEY on Grades.StudentID referencing Students.StudentID.

Practice

(1/5)
1. In the relational model, what does a table represent?
easy
A. A collection of related records about a thing
B. A single piece of data
C. A programming function
D. A type of database software

Solution

  1. Step 1: Understand the relational model basics

    In the relational model, data is organized into tables that represent entities or things.
  2. Step 2: Identify what a table holds

    A table holds many rows, each row is a record about the thing the table represents.
  3. Final Answer:

    A collection of related records about a thing -> Option A
  4. Quick Check:

    Table = collection of records [OK]
Hint: Tables = things, rows = records, columns = details [OK]
Common Mistakes:
  • Confusing a table with a single data value
  • Thinking a table is a program or software
  • Mixing up rows and columns
2. Which of the following is the correct way to describe a primary key in a table?
easy
A. A column or set of columns that uniquely identifies each row
B. A column that stores only numbers
C. A column that can have duplicate values
D. A column used to sort the table

Solution

  1. Step 1: Recall the role of a primary key

    A primary key uniquely identifies each record in a table, so no two rows share the same primary key value.
  2. Step 2: Check the options

    Only A column or set of columns that uniquely identifies each row describes uniqueness and identification, others describe unrelated properties.
  3. Final Answer:

    A column or set of columns that uniquely identifies each row -> Option A
  4. Quick Check:

    Primary key = unique identifier [OK]
Hint: Primary key means unique row ID [OK]
Common Mistakes:
  • Thinking primary key allows duplicates
  • Confusing primary key with sorting or data type
  • Assuming primary key is always numeric
3. Given a table Employees with columns EmpID (primary key), Name, and Department, what will the following SQL query return?

SELECT Name FROM Employees WHERE Department = 'Sales';
medium
A. Only employees with no department assigned
B. All employee names regardless of department
C. All employee names who work in the Sales department
D. An error because Department is not a primary key

Solution

  1. Step 1: Understand the SELECT and WHERE clauses

    The query selects the Name column from Employees where Department equals 'Sales'.
  2. Step 2: Determine the output

    It returns all employee names whose Department is exactly 'Sales'. It does not return others or cause errors.
  3. Final Answer:

    All employee names who work in the Sales department -> Option C
  4. Quick Check:

    WHERE filters rows, SELECT chooses columns [OK]
Hint: WHERE filters rows; SELECT picks columns [OK]
Common Mistakes:
  • Thinking it returns all employees ignoring WHERE
  • Assuming Department must be primary key to filter
  • Expecting error due to non-primary key in WHERE
4. Consider this SQL snippet:

CREATE TABLE Products (ProductID INT, Name VARCHAR(50), Price DECIMAL);
ALTER TABLE Products ADD PRIMARY KEY (ProductID);
INSERT INTO Products VALUES (1, 'Pen', 1.5), (1, 'Pencil', 0.5);


What is the problem with this code?
medium
A. Price column cannot be DECIMAL
B. It tries to insert duplicate primary key values
C. The primary key is not defined correctly
D. The table has no columns

Solution

  1. Step 1: Check primary key uniqueness

    Primary key ProductID must be unique. The insert tries to add two rows with ProductID = 1.
  2. Step 2: Identify the error cause

    Inserting duplicate primary keys violates uniqueness, causing an error.
  3. Final Answer:

    It tries to insert duplicate primary key values -> Option B
  4. Quick Check:

    Primary key must be unique [OK]
Hint: Primary keys cannot repeat values [OK]
Common Mistakes:
  • Ignoring duplicate key violation
  • Thinking DECIMAL is invalid for Price
  • Assuming primary key syntax is wrong
5. You have two tables: Orders(OrderID, CustomerID, Amount) and Customers(CustomerID, Name). Which relational model concept explains why CustomerID appears in both tables?
hard
A. Column aliasing to rename data
B. Primary key duplication for faster queries
C. Data redundancy to store copies
D. Foreign key linking related records between tables

Solution

  1. Step 1: Understand the role of CustomerID in both tables

    CustomerID uniquely identifies customers in Customers and links orders to customers in Orders.
  2. Step 2: Identify relational model concept

    This linking is done by a foreign key, which references the primary key in another table to connect related data.
  3. Final Answer:

    Foreign key linking related records between tables -> Option D
  4. Quick Check:

    Foreign key = link between tables [OK]
Hint: Foreign key connects tables via shared column [OK]
Common Mistakes:
  • Confusing foreign key with primary key duplication
  • Thinking it's just data redundancy
  • Mixing foreign key with column aliasing
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard