Bird
Raised Fist0
Intro to Computingfundamentals~10 mins

Relational database basics in Intro to Computing - Draw & Build Visually

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Draw This - beginner

Draw a diagram of a simple relational database for a library system. Include two tables: Books and Authors. Show the columns for each table and the relationship between them using primary and foreign keys.

10 minutes
Hint 1
Hint 2
Hint 3
Hint 4
Hint 5
Grading Criteria
Both Authors and Books tables are drawn
Authors table includes AuthorID as primary key and Name column
Books table includes BookID as primary key, Title column, and AuthorID as foreign key
Relationship between AuthorID in Books and AuthorID in Authors is shown with a connecting line or arrow
Primary keys are clearly marked (e.g., PK)
Foreign keys are clearly marked (e.g., FK)
Solution
  +----------------+       +----------------+
  |    Authors     |       |     Books      |
  +----------------+       +----------------+
  | AuthorID (PK)  |<----->| AuthorID (FK)  |
  | Name           |       | BookID (PK)    |
  +----------------+       | Title          |
                           +----------------+

This diagram shows two tables: Authors and Books.

The Authors table has AuthorID as the primary key, which uniquely identifies each author, and a Name column for the author's name.

The Books table has BookID as its primary key, a Title column for the book's name, and AuthorID as a foreign key linking each book to its author.

The arrow shows the relationship: each book is linked to one author by matching AuthorID values.

This setup helps organize data so you can find all books by an author or find the author of a book easily.

Variations - 2 Challenges
[intermediate] Draw a relational database diagram for a student enrollment system with three tables: Students, Courses, and Enrollments. Show primary keys, foreign keys, and relationships.
[advanced] Draw a relational database diagram for an online store with tables: Customers, Orders, Products, and OrderDetails. Include primary keys, foreign keys, and relationships.

Practice

(1/5)
1. What is the main purpose of a relational database?
easy
A. To run computer programs
B. To store data as plain text files
C. To organize data into tables with rows and columns
D. To create graphics and charts

Solution

  1. Step 1: Understand the structure of relational databases

    Relational databases store data in tables made of rows and columns, similar to a spreadsheet.
  2. Step 2: Compare options with this structure

    Only 'To organize data into tables with rows and columns' matches the core purpose of relational databases.
  3. Final Answer:

    To organize data into tables with rows and columns -> Option C
  4. Quick Check:

    Relational database = tables with rows and columns [OK]
Hint: Think of data like a spreadsheet with rows and columns [OK]
Common Mistakes:
  • Confusing databases with file storage
  • Thinking databases create graphics
  • Believing databases run programs
2. Which SQL command is used to add new data into a table?
easy
A. SELECT
B. INSERT
C. CREATE
D. DELETE

Solution

  1. Step 1: Recall SQL commands and their purposes

    SELECT retrieves data, CREATE makes tables, DELETE removes data, and INSERT adds new data.
  2. Step 2: Match the command to adding data

    INSERT is the command used to add new rows of data into a table.
  3. Final Answer:

    INSERT -> Option B
  4. Quick Check:

    Adding data = INSERT [OK]
Hint: INSERT means putting new data inside [OK]
Common Mistakes:
  • Using SELECT to add data
  • Confusing CREATE with INSERT
  • Thinking DELETE adds data
3. Given the table Students with columns ID, Name, and Age, what will this SQL query return?
SELECT Name FROM Students WHERE Age > 20;
medium
A. All student names where age is greater than 20
B. All student IDs where age is greater than 20
C. All student ages where age is greater than 20
D. All data from the Students table

Solution

  1. Step 1: Analyze the SELECT clause

    The query selects the Name column only, so the output will be student names.
  2. Step 2: Analyze the WHERE condition

    The condition Age > 20 filters rows to only those students older than 20.
  3. Final Answer:

    All student names where age is greater than 20 -> Option A
  4. Quick Check:

    SELECT Name with Age > 20 = student names over 20 [OK]
Hint: SELECT column filters output; WHERE filters rows [OK]
Common Mistakes:
  • Thinking SELECT returns all columns
  • Ignoring the WHERE condition
  • Confusing column names in SELECT
4. Identify the error in this SQL statement:
INSERT INTO Students (ID, Name Age) VALUES (1, 'Alice', 22);
medium
A. Missing comma between column names
B. Incorrect table name
C. VALUES keyword is misspelled
D. Extra parentheses around values

Solution

  1. Step 1: Check the column list syntax

    The columns are listed as ID, Name Age without a comma between Name and Age.
  2. Step 2: Confirm correct syntax for INSERT

    Column names must be separated by commas. Missing comma causes syntax error.
  3. Final Answer:

    Missing comma between column names -> Option A
  4. Quick Check:

    Columns need commas between names [OK]
Hint: Check commas between column names carefully [OK]
Common Mistakes:
  • Overlooking missing commas
  • Assuming VALUES is misspelled
  • Thinking parentheses are extra
5. You have two tables: Orders(OrderID, CustomerID, Amount) and Customers(CustomerID, Name). Which SQL query correctly lists all orders with the customer names?
hard
A. SELECT OrderID, Name FROM Orders INNER JOIN Customers ON Orders.OrderID = Customers.CustomerID;
B. SELECT OrderID, Name FROM Orders, Customers WHERE Orders.OrderID = Customers.CustomerID;
C. SELECT OrderID, Name FROM Orders LEFT JOIN Customers ON Orders.Amount = Customers.CustomerID;
D. SELECT Orders.OrderID, Customers.Name FROM Orders JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

Solution

  1. Step 1: Understand the relationship between tables

    Orders and Customers are linked by CustomerID, so join must use this key.
  2. Step 2: Check each JOIN condition

    SELECT Orders.OrderID, Customers.Name FROM Orders JOIN Customers ON Orders.CustomerID = Customers.CustomerID; joins on Orders.CustomerID = Customers.CustomerID, which is correct. Others join on wrong columns.
  3. Final Answer:

    SELECT Orders.OrderID, Customers.Name FROM Orders JOIN Customers ON Orders.CustomerID = Customers.CustomerID; -> Option D
  4. Quick Check:

    Join tables on matching CustomerID [OK]
Hint: Join tables using matching keys (CustomerID) [OK]
Common Mistakes:
  • Joining on wrong columns
  • Mixing OrderID with CustomerID
  • Using incorrect JOIN types