Люди, которые читают C.J.Date Введение в систему баз данных или книги аналогичного уровня, не должны иметь проблем с определением нормализации и денормализации.
Однако память не то, чем она была раньше, и я часто нахожу, что я смотрю на какой-то дизайн и говорю, что она не нормализована, хотя я не могу найти, какая из нормальных форм она нарушает.
Фактический пример, иллюстрирующий это:
Если мы имеем отношения
r1 (A, B, C)
и r2 (A, D)
с FDs: AB- > C и A- > D
и r1
представляют собой подробные данные, а r2
- сводка этих данных (другими словами, каждый экземпляр D является функцией значений в r1. В этом примере пусть это будет промежуточным значением значений C в соответствии с A из г1).
Пример экземпляра
r1 =
A B C
1 1 10
1 2 20
2 1 10
2 2 25
r2 =
A D
1 30
2 35
Итак, хотя я не могу сказать, что он ломается, например, 2NF или 3NF, я, похоже, придерживаюсь идеи, что дизайн все еще денормализуется в следующем смысле (от Codd, EF "Дальнейшая нормализация базы данных" Реляционная модель ", стр. 34, комментируя причины нормализации за пределами 1NF):
- Чтобы освободить коллекцию отношений от нежелательной вставки, обновления и удаления;
- Чтобы уменьшить необходимость в реструктуризации коллекции отношений, поскольку новые типы данных вводит и тем самым увеличивает срок службы диапазон прикладных программ;
- Сделать реляционную модель более информативной для пользователей;
- Сделать коллекцию отношений нейтральной для запроса статистика, в которой эти статистические данные которые могут измениться с течением времени.
Как я могу сказать, если мы определим D как сумму всех Cs из r1, где A из r1 равно A из r2, то, если мы обновим C в r1, и мы не обновим D в r2, мы может закончиться нежелательной зависимостью от обновления, а данные заканчиваются в несогласованном состоянии. Я нахожу эту причину, чтобы вызвать r1 и r2 денормализованными и думать о них как денормализованные. (На самом деле целое r2 является функцией от r1 и возвращает нулю новые факты в модель: r2 = f (r1))
Итак, вопросы:
- можно ли назвать r1 и r2 денормализованным?
- если да, то почему? если нет, то почему? (в соответствии с которым правило? или согласно определению?)
Примечание:
Тем, кто набирает достаточно интересные вопросы, чтобы ответить на них, я прошу предоставить либо что-то цитируемое, либо поставить его в виде конкретных предположений и выводов (или, другими словами, если вы собираетесь ввести ваше мнение, пожалуйста, следуйте ему с некоторыми соображениями).
ИЗМЕНИТЬ Я принял ответ dportas. Я попытаюсь немного добавить сюда: C.J.Date может делать четкое и четкое различие:
Большая часть теории дизайна связана с сокращение избыточности; нормализация уменьшает избыточность в пределах relvars, ортогональность уменьшает его relvars.
цитируется Глубина базы данных: теория реляционных отношений для практиков
и на следующей странице
как неспособность нормализовать все путь подразумевает избыточность и может привести к некоторые аномалии, так и несоблюдение ортогональности.