Я читаю о моделировании DW и начал задаваться вопросом, почему суррогатные ключи используются вообще?Зачем нужны суррогатные ключи?
Я понимаю, что иногда бизнес-ключи не являются целыми числами, что делает жизнь (а также объединение и индексирование) сложнее. Однако, что я не понимаю, почему нужно решить любопытное ограничение DW или RDBMS путем добавления и дополнительного столбца для управления уникальными идентификаторами?
Не было бы более уместным, чтобы такая функциональность была прозрачной для пользователей DW/RDBMS, и запись автоматически получит внутренний идентификатор из системы? Например, создание дайджеста SHA-1 всей строки или ее подмножества (те поля, которые могут быть представлены в некотором виде текстового формата).
Суррогатные ключи обычно представляют собой автоматически увеличивающиеся целые числа, длина которых составляет 32 бита. Так как вам нужно дублировать идентификатор строки в качестве внешнего ключа, где это применимо, это обычно экономит много места для дублирования длинных строк или нескольких столбцов. – apokryfos
Понял. Я не понимаю, почему пользователям DW приходится беспокоиться об этом и почему это не интегрированная функциональность программного обеспечения DW или RDBMS? – aviad
Я полагаю, что РСУБД не хочет налагать дополнительное пространство на суррогатные ключи в тех случаях, когда это необязательно. Что предлагает RDBMS - это механизм для разработчика БД для определения таких ключей, где это необходимо. – apokryfos