When we say an artificial key, what we mean is the
id field in your tables.
As opposed to a Natural Key.
A Natural Key uniquely identifies a row of the table just using the data fields of that table.
So, for example, take the Users table. You could say that there is a Natural Key in the table, if username is unique across the entire table. A forum, for example, has unique usernames across it’s user table - there can be no other “hutley_m” in the table. So, you could use username as a natural key.
An artificial key is introducing another value to your table, expressly for the purposes of making a unique identification method.
There is also the idea of ‘simple’ or ‘compound’ keys - which is basically saying whether the key is made up of a single field (simple) or multiple (compound), usually indicated as a tuple.
For example - uhhhhh… okay
Courses in college.
A course identifier - CSC101, is not unique by itself - multiple teachers will teach it, at multiple times of the day/term… BUT… a teacher cannot be teaching multiple courses of CSC101 at the same time of day in the same term. So there exists a compound natural key - (courseid,teacherid,daytime,year).
The trick to these keys comes when you start linking tables together - it’s rather space consuming to import 4 columns into your other table in order to identify the unique row reference. Which is when an artificial key becomes useful/relevant.
Arguably, in your layout, username could be a natural key, that could be used as your FK in pictures. But that’s for you to determine.