Базы данных. Нормализация баз данных

YOUTUBE · 30.11.2025 09:03

Ключевые темы и таймкоды

Введение в нормализацию баз данных

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

Понятие нормальной формы

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

Проекция отношения

4:21
  • Проекция отношения удаляет ненужные атрибуты, сохраняя только нужные.
  • Проекция может содержать меньше кортежей, чем исходное отношение.
  • Проекция на пустое множество атрибутов может содержать один или ноль кортежей.

Естественное соединение

7:28
  • Естественное соединение восстанавливает исходные отношения из проекций.
  • Соединение коммутативно и ассоциативно.
  • Декомпозиция отношений корректна, если естественное соединение проекций совпадает с исходным отношением.

Теорема Хита

13:01
  • Теорема Хита утверждает, что декомпозиция на проекции при наличии функциональной зависимости корректна.
  • Доказательство включает в обе стороны, показывая, что исходное отношение входит в естественное соединение своих проекций.

Восстановление кортежей

13:56
  • Проекция кортежа на икс игрек должна входить в проекцию всего отношения.
  • Проекция на икс зет также должна входить в проекцию всего отношения.
  • Исходный кортеж входит в естественное соединение проекций.

Обратная декомпозиция

15:00
  • Кортеж справа должен быть получен естественным соединением двух кортежей.
  • Существует единственный игрек штрих, такой что икс игрек штрих зет принадлежит р.
  • Исходная кортеж икс игрек зет принадлежит отношению р.

Вопросы и ответы

17:33
  • Соединение кортежей из двух проекций.
  • Фиксирование левой проекции и соединение кортежей.
  • Результат соединения: н умножить на м кортежей с конкретным набором игриков.

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

18:46
  • В отношении нет повторяющихся групп атрибутов.
  • Все атрибуты атомарны и у отношения есть ключ.
  • Повторяющиеся группы атрибутов и не атомарные атрибуты запрещены.

Аномалии

25:01
  • Аномалии возникают при зависимости одной информации от другой.
  • Аномалии вставки: невозможность записи информации без другой информации.
  • Примеры аномалий вставки и их влияние на данные.

Аномалии удаления и вставки

26:19
  • Аномалия удаления: удаление информации влечет удаление другой полезной информации.
  • Аномалия вставки: вставка информации без указания конкретной дисциплины приводит к ошибкам.
  • Аномалия изменения: изменение записей в базе данных нарушает целостность данных.

Примеры аномалий

27:16
  • Пример аномалии изменения: разные телефоны для одного преподавателя приводят к ошибкам.
  • Пример аномалии удаления: удаление последнего курса лектора требует удаления информации о телефоне.
  • Пример аномалии вставки: вставка информации без указания дисциплины приводит к ошибкам.

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

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

Приведение к второй нормальной форме

33:09
  • Вторая нормальная форма требует, чтобы не ключевые атрибуты зависели от ключа в целом.
  • Декомпозиция по функциональной зависимости позволяет привести таблицу ко второй нормальной форме.
  • Пример декомпозиции: разделение таблицы на две части для устранения аномалий.

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

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

Определение функциональной зависимости

40:57
  • Обсуждение замены определения функциональной зависимости между не ключами.
  • Уточнение, что не ключевые атрибуты не должны быть частью ключей.
  • Переход к нормальной форме Бойса-Кодда.

Декомпозиция по функциональной зависимости

41:19
  • Использование теоремы Хита для декомпозиции по функциональной зависимости.
  • Декомпозиция по последней функциональной зависимости в цепочке.
  • Пример с отношением "икс н и а".

Проблемы с зависимостью

42:30
  • Объяснение, почему декомпозиция решает проблему опосредованной зависимости.
  • Пример с отношением "игрек н и а".
  • Утверждение, что в отношении "игрек н и а" нет проблем с зависимостью.

Уменьшение количества атрибутов

44:34
  • Объяснение, почему декомпозиция уменьшает количество атрибутов.
  • Пример с отношением, где все атрибуты зависят от ключа.
  • Утверждение, что декомпозиция приводит к уменьшению атрибутов.

Пример с преподавателем и группой

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

Аномалии обновления

48:30
  • Обсуждение аномалий обновления и их влияния на нормальную форму.
  • Утверждение, что нормальная форма Бойса-Кодда сильнее третьей нормальной формы.
  • Пример с аномалией обновления и её влиянием на нормальную форму.

Декомпозиция по функциональной зависимости

50:27
  • Объяснение, почему нормальная форма Бойса-Кодда сильнее третьей нормальной формы.
  • Пример декомпозиции по функциональной зависимости.
  • Утверждение, что всегда можно привести к нормальной форме Бойса-Кодда.

Пример с преподавателем и курсом

53:48
  • Пример декомпозиции отношения "преподаватель и курс".
  • Обсуждение корректности декомпозиции и уменьшения числа атрибутов.
  • Утверждение, что отношения из двух атрибутов находятся в нормальной форме Бойса-Кодда.

Потеря сведений

54:55
  • Пример с кафедрой и курсом, где каждый преподаватель читает ровно один курс.
  • Обсуждение потери сведений о том, на какой кафедре работает преподаватель.
  • Утверждение, что исходная функциональная зависимость не выполняется ни в одной таблице.

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

56:01
  • Нормальная форма Бойса-Код не всегда достижима с сохранением всех функциональных зависимостей.
  • Третья нормальная форма всегда достижима с сохранением всех функциональных зависимостей, но требует применения мозга и нескольких вариантов.
  • Нормальная форма Бойса-Код и третья нормальная форма имеют разные области применимости.

Практическое применение

57:38
  • В нормальной форме Бойса-Код могут распадаться функциональные зависимости, что требует дополнительных средств проверки.
  • Третья нормальная форма позволяет сохранить все функциональные зависимости.
  • Нормальная форма Бойса-Код является окончательной с точки зрения функциональных зависимостей.

Аномалии и нормальные формы

58:53
  • Нормальные формы решают определенные аномалии, но не все виды аномалий.
  • Четвертая нормальная форма Бойса-Код также борется с определенными аномалиями.
  • Приведение к третьей нормальной форме возможно по последней функциональной зависимости в цепочке.

Многозначные зависимости

1:01:41
  • Нормальная форма Бойса-Код является окончательной с точки зрения функциональных зависимостей.
  • Для определения четвертой нормальной формы Фейгин ввел концепцию многозначной зависимости.
  • Многозначная зависимость определяет множество значений, зависящих от множества атрибутов.

Теорема Фейгина

1:07:38
  • Теорема Фейгина утверждает, что декомпозиция корректна тогда и только тогда, когда множество атрибутов множественно определяет другое множество атрибутов.
  • Это обобщение теоремы Хита, где декомпозиция корректна при множественной зависимости.

Доказательство корректной декомпозиции

1:08:14
  • Корректная декомпозиция множественной зависимости.
  • Проекции кортежей принадлежат исходному отношению.
  • Соединение кортежей из множественной зависимости.

Обратная сторона доказательства

1:09:04
  • Корректная декомпозиция приводит к множественной зависимости.
  • Дополнительные кортежи принадлежат исходному отношению.
  • Теорема Фейгина утверждает корректность декомпозиции.

Равноправие атрибутов

1:11:01
  • Атрибуты в множественной зависимости равноправны.
  • Икс множественно определяет игрек и зет.
  • Тривиальные множественные зависимости.

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

1:14:07
  • Левая часть множественной зависимости является ключом.
  • Отношения в нормальной форме Бойса-Кодда.
  • Декомпозиция множественной зависимости уменьшает количество атрибутов.

Пример отношения без четвертой нормальной формы

1:17:00
  • Отношение из двух атрибутов может не быть в четвертой нормальной форме.
  • Декартово произведение как пример.
  • Одноэлементное отношение всегда в четвертой нормальной форме.

Пример с курсом и лекторами

1:20:25
  • Курс множественно определяет лекторов и книги.
  • Декомпозиция курса на лекторов и книги.
  • Рекомендованная литература не зависит от преподавателя.

Независимость лекторов и литературы

1:23:11
  • Лекторы и литература независимы друг от друга.
  • Разделение на две таблицы для удобства.

Теорема Фейгина и зависимости соединения

1:23:43
  • Теорема Фейгина утверждает, что множественные зависимости не могут дать новых аномалий.
  • Зависимости соединения требуют новых видов зависимостей.
  • Пример с отношениями курса, преподавателя и группы.

Ограничения на декомпозицию

1:24:25
  • Декомпозиция требует наложения ограничений на исходную таблицу.
  • Обратная задача: понять, какое ограничение соответствует декомпозиции.

Примеры зависимостей соединения

1:25:08
  • Курс множественно определяет преподавателя и группу.
  • Функциональная зависимость для преподавателя и группы.
  • Соединение трех проекций для проверки корректности.

Аномалии вставки и удаления

1:27:46
  • Вставка строки в таблицу может привести к аномалиям.
  • Невозможно сохранить информацию о читаемых курсах отдельно.
  • Таблица находится в четвертой нормальной форме, но возможны аномалии.

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

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

Процесс нормализации

1:35:04
  • Приведение отношения к первой нормальной форме.
  • Практическое применение нормализации для улучшения структуры данных.

Нормальные формы и функциональные зависимости

1:35:16
  • Переход от второй нормальной формы к третьей может привести к потере функциональных зависимостей.
  • Нормальная форма Бойса-Кодда является лучшей для функциональных зависимостей.
  • Четвертая нормальная форма обеспечивает декомпозицию не более чем на два отношения.
  • Пятая нормальная форма является лучшей для декомпозиции, и более высоких нормальных форм не существует.

Теоремы Дейта-Фейгина

1:36:09
  • Теорема Дейта-Фейгина-1: если все ключи простые, то отношения находятся в пятой нормальной форме.
  • Теорема Дейта-Фейгина-2: если существует хотя бы один простой ключ, то отношения находятся в четвертой нормальной форме.
  • Эти теоремы помогают обосновать нахождение отношений в пятой нормальной форме.

Модель сущностей-связей

1:37:41
  • Отношения, построенные по модели сущностей-связей, обычно находятся в третьей нормальной форме или выше.
  • Использование модели сущностей-связей может быть эффективным, но требует внимательности.

Другие операции и доменно-ключевая нормальная форма

1:38:10
  • Нормальные формы могут быть определены не только через проекции и соединения, но и через разбиение и объединение множеств.
  • Доменно-ключевая нормальная форма требует, чтобы все ограничения были следствием ограничений доменов и ключей.
  • Достижение доменно-ключевой нормальной формы требует интуитивного подхода и не имеет конструктивного алгоритма.

Де-нормализация

1:40:49
  • Де-нормализация может быть необходима для повышения производительности, отказываясь от преимуществ старших нормальных форм.
  • Пример: хранение среднего балла студента в самой таблице, что требует обновления при изменении оценок.
  • В случае де-нормализации необходимо вручную отслеживать все зависимости и аномалии.

Заключение

1:42:43
  • Обсуждение нормальных форм и де-нормализации можно найти в главах Дейта и Ульман.
  • Желающие могут ознакомиться с теорией более подробно по приведенным ссылкам.
  • Перерыв до 13:40, поиск желающих на практику в чате.