Я изучаю базы данных и, очевидно, мне приходится иметь дело с нормальными формами. Теперь я придумал этот очень простой пример; задано отношение R с атрибутами {A, B, C} и функциональными зависимостями {A,B -> C , A -> C} .
Ключ-кандидат K для этого отношения должен быть {A, B} (не вдаваясь в то, как найти ключи-кандидаты). Отношение не находится во 2НФ, так как неключевой атрибут C зависит только от A, который является правильным подмножеством K. (Я предполагаю, что дается 1NF, хотя я не могу знать домены атрибутов).
Теперь, чтобы добраться до 3NF, мне придется использовать алгоритм синтеза, поэтому я сначала нахожу канонический набор функциональных зависимостей, который будет {A -> C} (также не вдаваясь в то, как найти каноническое множество). Теперь, чтобы получить отношения в 3NF, я формирую новое отношение R1, которое содержит атрибуты {A,C}. Поскольку K не содержится в R1, мне нужно создать новое отношение R2, содержащее один из ключей-кандидатов (здесь K< /эм>).
Это приводит к двум отношениям R1 (A,C) и R2 (A,B), и я готов, поскольку и R1, и R2 находятся в 3NF.
Моя работа правильная? Есть ли что-то еще, о чем я должен знать? Большое спасибо за любые предложения!
РЕДАКТИРОВАТЬ: Как указано в комментарии, мой пример неисправен. Хотя было бы правильно с немного другим соотношением, а именно R (A,B,C,D) с FD {A,B -> C, B -> D} .. Я не буду пройдитесь по остальным еще раз, так как я думаю, что сделал алгоритм правильно, хотя пример был ложным.