УДК 004

Построение алгоритма выбора оптимальной нормальной формы при проектировании реляционных базы данных

Акатьев Ярослав Алексеевич – ассистент МИРЭА – Российского технологического университета

Бабынина Дарья Денисовна – студентка МИРЭА – Российского технологического университета

Яковчук Александра Вячеславовна – студентка МИРЭА – Российского технологического университета

Аннотация: Реляционные базы данных являются одним из основных способов для хранения и управления данными. Однако, в процессе проектирования РБД возникает сложная задача выбора оптимальной нормальной формы, которая наилучшим образом соответствует требованиям конкретного проекта. В данной статье будет подробно рассмотрена каждая из нормальных форм и предложен алгоритм, позволяющий выбрать наиболее подходящую при проектировании.

Ключевые слова: реляционные базы данных, нормальные формы.

Введение и постановка проблемы

С развитием информационных технологий и стремительным увеличением объемов данных всё более актуальным становится проектирование эффективных и оптимальных баз данных. Реляционные базы данных являются одним из основных способов для хранения и управления данными, и выбор правильной нормальной формы играет ключевую роль в оптимизации их структуры.

Однако, в процессе проектирования реляционных баз данных возникает сложная задача выбора оптимальной нормальной формы, которая наилучшим образом соответствует требованиям конкретного проекта. Проблема заключается в поиске баланса между избыточностью данных и эффективностью запросов, а также в учете требований к поддержке нормализации и производительности системы.

Каждая нормальная форма имеет свои особенности и применимость в различных сценариях. Поэтому построение алгоритма, способного определить оптимальную нормальную форму для конкретного случая, является важным шагом в создании эффективной базы данных. Этот процесс требует учета требований бизнеса, особенностей предметной области и предполагаемого объема и типа данных.

В данном контексте разработка алгоритма выбора оптимальной нормальной формы становится актуальной задачей, направленной на улучшение процесса проектирования баз данных и обеспечение их оптимальной работы в условиях быстрого развития информационных технологий. В данной статье будут рассмотрены все нормальные формы и будет предложен алгоритм выбора оптимальной.

Реляционные базы данных

Реляционные базы данных (РБД) представляют собой тип баз данных, основанных на реляционной модели данных, предложенной Эдгаром Коддом в 1970 году. Реляционная модель описывает данные в виде таблиц, состоящих из строк и столбцов. Каждая таблица представляет собой отношение, а строки в таблице представляют кортежи, а столбцы - атрибуты.

Преимущества реляционных баз данных включают структурированный способ хранения в виде таблиц, целостность и отсутствие избыточности данных, простоту и эффективность запросов, независимость программ и данных, эффективную работу с несколькими пользователями, предоставление инструментов и механизмов для успешного администрирования данных, надежность и согласованность транзакций. Чтобы это обеспечить, необходимо следовать принципам нормализации данных. Для этого используются, так называемые, нормальные формы – стандарты организации данных в РБД, используемые для минимизации избыточности информации и поддержания целостности данных. Существует несколько уровней нормальных форм, каждый из которых описывает определенные требования к таблице с данными. Рассмотрим каждый них подробнее.

Первая нормальная форма

Первая нормальная форма (1НФ) представляет собой первый уровень нормализации в РБД и устанавливает базовые требования к организации данных. Её цель заключается в обеспечении атомарности атрибутов, исключая возможность их декомпозиции на меньшие компоненты. Основной принцип 1НФ заключается в избегании сложных структур и многозначности отдельных ячеек.

Основные требования 1НФ включают в себя наличие атомарных значений (в каждой их ячеек находится только одно значение, а не список значений или структура данных), однозначную идентификацию каждого столбца, отсутствие упорядоченности столбцов и строк (данные не связаны с порядком расположения).

Применение 1NF обеспечивает более легкое управление данными, улучшает структуру базы данных и упрощает выполнение запросов, что важно для эффективной обработки и хранения информации, следовательно приведение к ней требуется в большинстве случаев.

Вторая нормальная форма

Вторая нормальная форма (2НФ) – следующий этап организации данных в РБД. Она стремится устранить проблемы, связанные с частичной зависимостью данных, которые могут возникнуть при наличии составных первичных ключей.

Основные принципы 2НФ включают соответствие 1НФ, устранение частичной зависимости (если у нас есть составной ключ, то все неключевые атрибуты должны зависеть от каждой части этого ключа).

Вторая нормальная форма используется при существовании информации, связанной с различными аспектами, например, в электронной коммерции (помогает обеспечить выполнение более сложных вопросов, необходимых в этой области), финансовых системах (помогает обеспечить корректность данных и их соответствие установленным стандартам), управлении персоналом и т.д.

Третья нормальная форма

Третья нормальная форма (3НФ) является следующим уровнем нормализации. Её цель – устранение транзитивных зависимостей, что подразумевает зависимость некоторых неключевых атрибутов через первичный ключ.

Таблица в 3НФ соответствует второй нормальной форме, в ней устранены транзитивные зависимости (ни один неключевой атрибут не является зависимым от подобного). Соответственно, зависимости A → B и B → C должны быть заменены на A → C).

3НФ является, так называемым “золотым стандартом”, оптимальной формой, поэтому используется в таких крупных системах, как здравоохранение и образование.

Нормальная форма Бойса-Кодда

BCNF представляет более строгий уровень нормализации в реляционных базах данных, нацеленный на устранение многозначных зависимостей и обеспечение более высокого уровня структурной чистоты данных.

Основные принципы нормальной формы Бойса-Кодда включают соблюдение 3НФ, отсутствие многозначных зависимостей (неключевые атрибуты полностью функционально зависимы от первичного ключа).

Эта нормальная форма используется для предотвращения аномалий обновления в множестве связанных между собой таблиц, например, в финансовых системах с несколькими видами счетов или в базах данных для транзакций и финансовых операций, где постоянно происходит обновление данных и важна их корректность в связанных таблицах.

Четвёртая нормальная форма

Четвёртая нормальная форма (4НФ) – это уровень нормализации, который стремится устранить многозначные зависимости, которые могут возникнуть в результате наличия композитных атрибутов или составных ключей.

4НФ соответствует 3НФ и BCNF, многозначные зависимости разделены (если у нас есть атрибут, который функционально зависит от составного ключа и не зависит от частей составного ключа, то этот атрибут должен быть атомарным и не может содержать множественные значения).

4НФ используется при варьировании атрибутов в разные периоды времени, например, в исторических данных (4NF помогает удерживать историю изменений, сохраняя предыдущие версии данных в отдельных таблицах) или в финансовых системах с изменяющимися ставками и тарифами, чтобы более эффективно обрабатывать обновления без изменения всей базы данных.

Пятая нормальная форма

Пятая нормальная форма (5НФ) направлена на устранение зависимостей между атрибутами через полные функциональные зависимости. Используется для работы с многозначными зависимостями, которые могут возникнуть при наличии сложных структур. Такая нормализация помогает избежать повторения информации, сложности запросов и аномалий.

Основные принципы 5НФ включают соответствие предыдущим нормальным формам и обработку множественных зависимостей (сосредотачивается на управлении множественными зависимостями, которые могут возникнуть в результате наличия многозначных атрибутов или отношений).

5НФ применяется в ситуациях, когда данные могут иметь множество значений для одного и того же ключа, и эти значения также зависят друг от друга. Например, в географических информационных системах или в системах учёта изменений в многомерных моделях данных, так как в таких системах важно избегать избыточности и гибко и чётко представлять многомерные данные.

Доменно-ключевая нормальная форма

Доменно-ключевая нормальная форма – это расширение Бойса-Кодда (BCNF), была предложена для устранения некоторых ограничений, которые могут возникнуть в контексте проектирования баз данных.

Основные идеи DKNF включают соответствие предыдущим НФ, зависимость только от ключа, минимизацию доменов, полное покрытие ключа и абсолютную независимость между ними. Процесс приведения к DKNF может потребовать разделения таблицы на более мелкие, связанные таблицы, чтобы обеспечить соответствие этим требованиям.

Применение DKNF может предоставить более высокий уровень структуризации данных, что важно для поддержания целостности и избегания избыточности.

DKNF используется в системах, в которых нужно обеспечить высокую точность и полноту данных, например, в комплексно-аналитических или в системах управления безопасностью и доступом, где важно отслеживать изменения в правилах доступа и проводить аудиторскую проверку.

Шестая нормальная форма

Шестая нормальная форма (6НФ) – это высший уровень нормализации, она редко применяется в реальных системах из-за своей сложности и ограниченной применимости, рассматривает случаи многозначных зависимостей, возникающих в многомерных базах данных или в случае, когда используются многозначные факты и многозначные отношения.

Основные принципы 6НФ включают соответствие предыдущим НФ, минимизацию многозначных зависимостей (одному значению атрибута может соответствовать несколько значений другого атрибута, однако 6НФ старается минимизировать количество многозначных зависимостей и разделять их), эффективную организацию данных. Приведение к 6NF требует разбиения данных на отдельные отношения, связанные с определенными измерениями или многомерными аспектами. В реальных приложениях рассмотрение и применение 6NF требует особого внимания к структуре данных и требует подхода, специфичного для конкретной проблемы.

6НФ используется в базах данных, где сущности и их связи могут быть высоко структурированы и вложены друг в друга, например, в системах управления графовыми данными (может быть полезной для представления связей между узлами и их атрибутами, что особенно важно в графовых структурах данных) или в семантических базах данных и онтологии (помогает сохранять ясность в отношениях и значениях).

Таким образом, шестая нормальная форма помогает эффективно организовать данные в сложных структурах, предотвращая избыточность и обеспечивая более высокий уровень структуризации данных. Однако, применение 6НФ может потребовать определенных усилий и обеспечивать дополнительные преимущества только в определенных случаях.

Вывод

В процессе проектирования реляционных баз данных выбор оптимальной нормальной формы является ключевым моментом, влияющим на эффективность, надежность и удобство сопровождения базы данных. Каждая нормальная форма предоставляет определенные преимущества и подходит для конкретных сценариев использования (таблица 1).

Нормальная форма

Пример использования

1НФ

2НФ

Электронная коммерция, финансовые системы

3НФ

Здравоохранение, образование

BCNF

Финансовые системы с несколькими видами счетов, базы данных для транзакций и финансовых операций

4НФ

Исторические данные, финансовые системы с меняющимися ставками и тарифами

5НФ

Географические информационные системы, системы учёт изменений в многомерных моделей данных

DCNF

Комплексно-аналитические системы, системы управления безопасностью и доступом

6НФ

Системы управления графовыми данными, семантические базы данных

Отбор подходящей нормальной формы требует внимательного анализа требований бизнеса, характеристик данных и условий их использования, однако он может быть упрощен с использованием представленного ниже алгоритма:

image001

Рисунок 1. Алгоритм выбора оптимальной нормальной формы.

Нормализация данных важна для предотвращения избыточности, аномалий и обеспечения целостности данных. Однако, при выборе оптимальной нормальной формы, необходимо учитывать баланс между избыточностью и производительностью. Чаще всего РБД приводят к 3-ей нормальной форме, но в системах с более сложной архитектурой может потребоваться нормализация до более высоких уровней. Например, когда мы имеем дело с нетривиальными множественными зависимостям, может потребоваться приведение к 6НФ. Но высокий уровень нормализации может привести к сложным запросам и замедлению выполнения операций, особенно в случае больших объемов данных.

Таким образом, эффективное проектирование реляционных баз данных требует компромисса между структурированием данных и производительностью. Понимание специфики задач и характера данных в контексте предметной области позволяет выбирать оптимальные нормальные формы, создавая гибкие, эффективные и удовлетворяющие потребности базы данных.

Список литературы

  1. Реляционные базы данных [Электронный ресурс]. – Режим доступа: URL: https://cloud.yandex.ru/docs/glossary/relational-database.s.
  2. Как работает реляционная БД [Электронный ресурс]. – Режим доступа: URL: https://habr.com/ru/companies/vk/articles/266811.
  3. Нормализация отношений. Шесть нормальных форм [Электронный ресурс]. – Режим доступа: URL: https://habr.com/ru/articles/254773.
  4. Нормализация [Электронный ресурс]. – Режим доступа: URL: https://liannoi.gitbook.io/sql-server/directory/normalization
  5. Normalization: 1NF, 2NF, 3NF [Электронный ресурс]. – Режим доступа: URL: https://medium.com/informatics/normalization-1nf-2nf-3nf-18bedb4faa29.
  6. Нормальная форма [Электронный ресурс]. – Режим доступа: URL: https://ru.wikipedia.org/wiki/Нормальная_форма.

Интересная статья? Поделись ей с другими: