ScholarGate
Ассистент

Проектирование и нормализация баз данных

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

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

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

Scope

Эта область охватывает теорию и практику уточнения реляционных схем: функциональные и многозначные зависимости как семантические ограничения, определяющие проектирование, иерархию нормальных форм (от 1НФ до НФБК, 4НФ) и декомпозицию отношений для устранения избыточности при сохранении соединений без потерь и, по возможности, зависимостей. Она исключает нотации концептуального моделирования, такие как диаграммы «сущность-связь» (рассматриваемые в моделях данных и языках запросов), и выбор физического дизайна, такой как индексирование.

Sub-topics

Core questions

  • Какие функциональные и многозначные зависимости существуют между атрибутами отношения?
  • Какие аномалии — обновления, вставки, удаления — вызывает избыточность?
  • Какие условия определяют каждую нормальную форму и какую избыточность каждая из них устраняет?
  • Как можно декомпозировать отношение без потери информации?
  • Когда сохранение зависимостей должно быть обменено на более высокую нормальную форму?

Key concepts

  • функциональная зависимость
  • аксиомы Армстронга и замыкание
  • потенциальные ключи и первичные атрибуты
  • аномалии обновления, вставки, удаления
  • первая, вторая, третья нормальная форма
  • нормальная форма Бойса-Кодда
  • многозначные зависимости и 4НФ
  • декомпозиция без потерь соединения
  • сохранение зависимостей

Key theories

Функциональные зависимости и замыкание
Функциональная зависимость X → Y утверждает, что X определяет Y; аксиомы Армстронга позволяют вычислить замыкание множества зависимостей, что лежит в основе поиска ключей и тестирования нормальных форм.
Нормальные формы
Первая, вторая и третья нормальные формы, а также нормальная форма Бойса-Кодда налагают постепенно более строгие условия на функциональные зависимости для устранения избыточности; четвертая нормальная форма расширяет это на многозначные зависимости.
Декомпозиция без потерь соединения и с сохранением зависимостей
Декомпозиция желательна только в том случае, если она не приводит к потерям (исходное отношение может быть реконструировано путем соединения частей) и в идеале сохраняет зависимости (все исходные зависимости могут быть применены к частям), что является критериями, ограничивающими способы разделения схем.

Clinical relevance

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

History

Кодд представил первую, вторую и третью нормальные формы в начале 1970-х годов и, совместно с Бойсом, более строгую нормальную форму Бойса-Кодда. Рональд Фейгин позднее определил четвертую и пятую нормальные формы на основе многозначных и зависимостей соединения. Вместе эти результаты превратили проектирование схем из искусства в теорию, основанную на ограничениях зависимостей.

Debates

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

Key figures

  • Edgar F. Codd
  • Raymond F. Boyce
  • Ronald Fagin

Related topics

Seminal works

  • codd1972
  • silberschatz2019
  • garciamolina2008

Frequently asked questions

Почему избыточность вызывает проблемы, если я осторожен?
Избыточное хранение одного и того же факта в нескольких строках приводит к аномалиям: обновление может изменить одни копии, но не другие (аномалия обновления), вы можете быть не в состоянии записать факт без несвязанных данных (аномалия вставки), или удаление строки может привести к потере информации, которую вы хотели сохранить (аномалия удаления). Нормализация устраняет избыточность, которая делает это возможным.
В чем разница между НФБК и третьей нормальной формой?
Обе формы устраняют избыточность, вызванную функциональными зависимостями, но НФБК является более строгой: она требует, чтобы левая часть каждой нетривиальной зависимости была суперключом. Схема может быть в 3НФ, но не в НФБК. НФБК всегда обеспечивает декомпозицию без потерь, но может не сохранять зависимости, поэтому иногда сохраняется 3НФ.

Methods for this concept

Related concepts