ПК-кандидат должен быть инъективной, сюръективной или биективной функцией?

У меня есть сомнения относительно информационной силы кандидата на роль ПК.

Насколько я понимаю, и это то, чем я хочу поделиться, чтобы проверить, правильно ли это, кандидат в ПК должен быть достаточно сильным, чтобы однозначно идентифицировать набор информации, верно?

Я начал смотреть на этот вопрос с математическим подходом.

Если я определю кодомен как набор, сгенерированный моей SEQUENCE, а мой домен как набор данных, которые будут идентифицироваться PK, то будет правильно утверждать, что мой кандидат PK должен быть, по крайней мере, Injective Function.

Почему хотя бы Injective? Потому что я могу "сжечь" некоторые элементы моей последовательности, то есть мой Codomain, поэтому я не могу убедиться, что у меня есть Injection и Surjection.

Мои предположения и понимание правы?

1 ответ

Решение

Вы определенно на правильном пути, думая об этом, используя теорию множеств.

Вы можете определить свой домен в качестве набора, сгенерированного вашей SEQUENCE, включая "записанные" значения, но вы должны определить свой ключ как диапазон, содержащий только те значения, которые фактически выбраны и сопоставлены с кортежами. Таким образом, любой ключ является биективным с набором кортежей.

Другие вопросы по тегам