Keys first, because normalisation is defined in terms of them
Super key — any set of columns that uniquely identifies a row. {roll_no} works. So does {roll_no, name}, wastefully.
Candidate key — a super key with nothing spare. Remove any column and it stops being unique. {roll_no} is a candidate key; {roll_no, name} is not, because name is dead weight.
Primary key — the candidate key you chose. One per table.
Foreign key — a column that points at another table's primary key.
Composite key — a primary key made of two or more columns together, like {roll_no, subject_code} in an enrolment table.