Проектирование БД
-
Нормализация
-
Процесс нормализации отношений
Нормализация — это процесс приведения структуры базы данных к виду, который минимизирует избыточность и дублирование информации . Её главная цель — устранить аномалии обновления (когда изменение одного факта требует правок в нескольких местах), чтобы обеспечить целостность и непротиворечивость данных . -
Нормальные формы
-
-
Свойства НФ
-
1НФ: Все атрибуты атомарны (неделимы), и каждое значение хранится в одной ячейке. В таблице нет повторяющихся групп .
-
· 2НФ: Таблица уже в 1НФ, и каждый неключевой атрибут полностью зависит от всего первичного ключа (устраняется частичная зависимость).
-
· 3НФ: Таблица уже в 2НФ, и ни один неключевой атрибут не зависит от другого неключевого атрибута (устраняется транзитивная зависимость) .
-
· НФБК: Более строгая версия 3НФ, где каждая детерминанта (атрибут, от которого зависят другие) является потенциальным ключом.
-
· 4НФ: Устраняет многозначные зависимости.
-
· 5НФ: Устраняет зависимости, возникающие при соединении (декомпозиция без потерь). На практике используется редко .
-
-
Первая нормальная форма (1НФ)
-
Вторая нормальная форма (2НФ)
-
Третья нормальная форма (3НФ)
-
Нормальная форма Бойса-Кодда (НФБК / BCNF)
-
Четвертая нормальная форма (4НФ)
-
Пятая нормальная форма (5НФ) (также известна как нормальная форма проекции-соединения)
-
-
-
-
Подходы
-
- Классический (традиционный) подход. Связан с автоматизацией документооборота и активно использовался в 80-е годы. Отправной точкой здесь служат существующие документы, на основе которых проектируется структура базы данных. Этот подход часто называют нисходящим, так как проектирование идёт от общих требований к деталям реализации .
-
- Современный подход. Связан с автоматизацией управления бизнес-процессами. В основе лежит выявление стандартных алгоритмов приложений (бизнес-логики). Данные и структура БД определяются под эти алгоритмы. Этот подход усилился с развитием объектно-ориентированного программирования и часто предполагает восходящее проектирование, особенно в распределенных системах, когда локальные БД интегрируются в единую структуру .
-