what is the difference between a key and superkey?
A candidate key is a set of columns that uniquely identifies rows and that contains no smaller ("proper") subset of columns that uniquely identifies rows. A superkey is a set of columns that uniquely identifies rows. So a candidate key is a superkey that contains no smaller superkey.