Некоторые причины, по которым важно избегать использования естественного ключа в качестве первичного:
- Возможность ошибок. 1 При использовании естественного ключа задача ввода и формирования ключа возлагается на пользователя. 1 Из-за этого возможны ошибки: опечатки или генерация неуникальных значений. 1
- Изменение значения. 12 Значение естественного ключа может со временем меняться, что приведёт к дополнительным проблемам в связях между таблицами. 2
- Избыточность базы данных. 1 Использование слишком длинных естественных ключей (особенно составных) приводит к чрезмерному повышению избыточности БД. 1 Это снижает эффективность базы данных: увеличивается расход памяти, может возрасти сетевой трафик. 1
- Сложность унификации программного кода. 4 Из-за различной структуры ключей в различных таблицах сложно унифицировать программный код. 4
Вместо естественных ключей часто используют суррогатные, которые создаются искусственно и не зависят от бизнес-логики. 3 Они устойчивы к изменениям данных и обеспечивают сохранность информации. 3