Spotting personal data columns in a dataset

Tip: Choose Save as PDF in the print dialog to download. Use A4 paper size.

Spotting personal data columns in a dataset

Name:
Date:
Class:

Quick Questions

Shade in the A or B circle for each question.

1. A dataset has the columns FullName, Email, Phone and FavouriteColour. Which column is NOT a personal data column?
A FavouriteColour (it does not identify who the person is on its own)
B Email (it does not identify anyone)
2. A column is headed Contact. The sample values are 0412 555 019 and 0433 555 872. What should you do?
A Treat it as a personal data column because the values are phone numbers
B Ignore it because the heading does not say 'Phone'
3. A column called Comments holds free text like 'Hi, I'm Mia from Year 8 at Lakeside High'. How should it be treated?
A As a possible personal data column, because people can type identifying details into comments
B As safe, because comments are only opinions
4. A dataset downloaded from a public website has a column named HomeAddress. Which statement is correct?
A It is not personal data because anyone can download it
B It still contains personal data, even though the dataset is public
5. You are checking a new dataset for personal data. Which step comes first?
A Delete the columns that look the longest
B List every column heading, then mark each one as personal data or not

Match the Pairs

Draw a line connecting each item on the left to its match on the right.

Left columnRight column
1Column heading: email, sample value: ava.n@mail.com AA personal data column because each value points to one real person
2Column heading: comments, sample value: "I walk home past the park alone" BColumn heading: phone, sample value: 0412 345 678
3A public dataset can still contain personal data, so check its columns before using it CA free-text column that can reveal personal details about a person
4List every column, then mark each one essential or not essential for your question Dname: not essential | suburb: not essential | rainfall: essential
5Only the heading 'Name' was checked, so 'Notes' was treated as safe without reading its values EThe sample values were not read. A column with a harmless heading, like Notes, can still hold personal details.
6Column 'home_address' kept because the dataset came from a public website FPublic data can still contain personal data. A home address identifies a person, so it should be marked as a personal data column.

Definitions

personal data column

Fill in the Blanks

Complete each line of code by filling in the missing parts.

1.
SELECT _________, lastName FROM students;
2.
SELECT * FROM students _____ 3;
3.
______ yearLevel, house FROM students;
4.
column ← "comments" personal ← ____
5.
IF column = "name" __ column = "email" THEN personal ← TRUE END IF

Spot the Error

Shade in the letter of the line that contains an error.

Question 1
A personal = ["name", "rainfall"]
B col = "email"
C if col in personal:
D print("Personal data")
Question 2
A def is_personal(col):
B words = ["name", "email"]
C col = col.lower()
D return col not in words
Question 3
A heading = "Home address"
B sample = "12 Oak St, Perth"
C personal = False
D print(heading, personal)
Question 4
A column = "Comments"
B sample = "Hi, I'm Sam from 8B"
C if "Sam" in column:
D print("Personal data")
Question 5
A source = "public"
B has_email = True
C safe = source == "public"
D print("Safe to share:", safe)

Answer Key

Spotting personal data columns in a dataset
Section A: Quick Questions
Q1
A — FavouriteColour (it does not identify who the person is on its own)
Q2
A — Treat it as a personal data column because the values are phone numbers
Q3
A — As a possible personal data column, because people can type identifying details into comments
Q4
B — It still contains personal data, even though the dataset is public
Q5
B — List every column heading, then mark each one as personal data or not
Section B: Match the Pairs
Q1
Column heading: email, sample value: ava.n@mail.com → A personal data column because each value points to one real person
Q2
Column heading: comments, sample value: "I walk home past the park alone" → A free-text column that can reveal personal details about a person
Q3
A public dataset can still contain personal data, so check its columns before using it → Column heading: phone, sample value: 0412 345 678
Q4
List every column, then mark each one essential or not essential for your question → name: not essential | suburb: not essential | rainfall: essential
Q5
Only the heading 'Name' was checked, so 'Notes' was treated as safe without reading its values → The sample values were not read. A column with a harmless heading, like Notes, can still hold personal details.
Q6
Column 'home_address' kept because the dataset came from a public website → Public data can still contain personal data. A home address identifies a person, so it should be marked as a personal data column.
Section C: Definitions
Q1
personal data column — A dataset column, such as name, email, phone, address or comments, that identifies or describes a person. Check each heading and its sample values to spot it.
Section D: Fill in the Blanks
Q1
SELECT firstName, lastName FROM students;
Q2
SELECT * FROM students LIMIT 3;
Q3
SELECT yearLevel, house FROM students;
Q4
column ← "comments" personal ← TRUE
Q5
IF column = "name" OR column = "email" THEN personal ← TRUE END IF
Section E: Spot the Error
Q1
A — Rainfall is weather data and does not identify a person. The personal list should hold columns like "name" and "email". With rainfall in the list, the email column is never flagged.
Q2
D — The function should return True when the heading is in the list of personal words. Using 'not in' flags the wrong columns. It should be: return col in words.
Q3
C — A home address column and its sample values point to where a person lives, so it is a personal data column. It should be personal = True.
Q4
C — A name hidden in a comment shows up in the sample values, not in the heading. The check should look in sample: if "Sam" in sample.
Q5
C — A public dataset can still contain personal data. Safety depends on whether columns like email are present, not on where the data came from. It should be: safe = not has_email.