Слово, которое отсутствует в вашем вопросе - КЛЮЧ.Таблица может иметь ноль, один или несколько ключей.В реляционной базе данных таблица должна иметь хотя бы один ключ, но СУБД SQL разрешают таблицы без ключей.
Любой ключ может состоять из нуля, одного или нескольких атрибутов.Иногда ключи могут перекрываться - значения атрибута (ов) в одном ключе также являются атрибутами в другом, хотя это относительно необычно.
Ключ также может иметь нулевые атрибуты.Это имеет место для одноэлементных таблиц - таблиц, которые должны иметь (максимум) одну строку.Системная таблица DUAL в Oracle является хорошо известным примером.К сожалению, SQL не поддерживает синтаксис «пустых» ключей, но для достижения того же эффекта используются некоторые обходные пути.
Обычно данные проверяются по ключам, которые уже известны.Получение ключей из данных обычно не является полезным упражнением, если ваши данные действительно никогда не меняются.Если таблица имеет только 10 (ненулевых) атрибутов, то она может иметь максимум 252 ключей из 1024 возможных суперключей, поэтому проверка всех возможностей является довольно сложной проблемой.