Нормализация до более высоких НФ путем разложения заменяет таблицу другими, которые естественным образом присоединяются к ней, которые являются ее проекциями. Таким образом, два компонента имеют одинаковый набор значений подстроки для любых общих столбцов, поскольку они являются проекциями оригинала. Таким образом, существует FK (внешний ключ) из набора столбцов и таблицы в другой набор столбцов и таблицы, если / если последний набор столбцов образует CK (ключ-кандидат) в последней таблице.
Здесь, если ваши оригинальные FD образуют покрытие: у вас есть People CKs {{FirstName, LastName, Career}}, адреса CKs {{FirstName, LastName}} & Careers CKs {{Career}}. Таким образом, ФК - это ФК Людей {Имя, Фамилия} по адресам и {Карьера} для Карьеры.
PS Часто при нормализации мы понимаем, что не хотим проекций исходной таблицы, но вместо этого нам нужны таблицы с заголовками, похожими на некоторые компоненты, но которые содержат больше строк. (Иногда это искажается как часть нормализации.) (Мы обнаруживаем & перепроектируем для аномалий удаления и вставки, хотя нормализация только обращается к аномалиям обновления.) Тогда у этих различных таблиц, которые мы выбираем, вообще нет тех же CK или наборов значений subrow как компоненты нормализации.
PS Нормализация в высшие НФ не вводит новые столбцы. Сюда входят столбцы идентификаторов.
PS Относительно "FK" обычно включает набор столбцов. Но это может означать список столбцов, ссылающийся на другой. Или список столбцов, где каждое имя появляется один раз, ссылаясь на другое. Но SQL «FK» не означает ни одного из этих реляционных понятий FK - он более или менее означает иностранный суперключ. Точно так же SQL «PK» более или менее означает первичный суперключ. См. Этот ответ.