Ключи в реляционной алгебре и в реляционных базах данных представляют собой наборы атрибутов / столбцов. Набор не имеет собственного порядка.
При этом ключ (a,b)
совпадает с ключом (b,a)
, поскольку они содержат одинаковые элементы.
Что касается суперключей: Да, это просто комбинаторика. Поскольку первичный ключ - это минимальный суперключ, вы можете добавить любой атрибут или набор атрибутов, чтобы получить другой суперключ: (a,b,c)
, (a,b,d)
, (a,b,c,d)
.
Что касается баз данных: уникальные ключи важны идентифицировать строку в таблице. Следовательно, почти всегда таблица будет иметь уникальный первичный ключ. Иногда вы решаете дать таблице другой, вторичный, уникальный ключ. Это особенно актуально, когда вы добавляете технические ключи.
Пример: страна может быть однозначно идентифицирована по ее названию, но она также уникально идентифицируется по коду ISO, и вы все равно можете захотеть работать с технический номер c ID, выданный вашей СУБД. Вы бы сделали все эти уникальные ключи, и, поскольку все они являются минимальными суперключами, вы просто решили, что один из них является первичным.
Что касается неминимальных суперключей: они являются просто теоретической конструкцией; ничего, о чем вам даже не нужно знать при работе с базой данных.