Обсуждение процесса нормализации баз данных.
Зачем проводить нормализацию и что такое нормальная форма базы данных.
Рекомендация канала "Диджитал Медиа" для получения полезных материалов.
Определение реляционных баз данных.
Упорядоченная информация, связанная отношениями.
Логическое представление в виде таблиц.
Нормализация как процесс удаления избыточных данных.
Нормализация как метод проектирования баз данных.
Избыточность данных создает аномалии и снижает производительность.
Избыточность данных приводит к аномалиям.
Пример с таблицей мебели и необходимостью изменения данных.
Аномалии возникают при добавлении, изменении и удалении данных.
Пример с таблицей мебели и материалами.
Создание отдельной таблицы для материалов.
Устранение аномалий через нормализацию.
Каждая сущность должна храниться отдельно.
Использование ссылок для связи между таблицами.
Введение в нормальные формы базы данных.
Нормализация базы данных включает проектирование таблиц с соблюдением определенных правил и требований.
Нормальная форма базы данных — это набор правил и критериев, которым должна отвечать база данных.
Чем выше нормальная форма, тем меньше аномалий в базе данных.
Процесс нормализации включает переход от одной нормальной формы к другой.
Существует пять основных нормальных форм: первая, вторая, третья, четвертая и пятая.
Дополнительные нормальные формы: ненормализованная форма, нормальная форма Бойса-Кодда, доменно-ключевая нормальная форма и шестая нормальная форма.
База данных считается нормализованной, если она находится в третьей нормальной форме.
Нормализация до третьей формы является стандартной практикой, так как устраняет достаточное количество аномалий без снижения производительности.
Нормализация до четвертой и последующих форм встречается редко и в основном теоретическая.
Для нормализации базы данных до следующей нормальной формы, она уже должна находиться в предыдущей нормальной форме.
Пример: для нормализации до третьей нормальной формы, база данных должна быть во второй нормальной форме.
Перед нормализацией базы данных, она должна быть приведена к табличному виду, соответствующему принципам реляционной теории.
В реляционной теории порядок строк и столбцов не имеет значения.
Пример: таблицы с порядковыми номерами строк не являются реляционными.
В таблице не должно быть дублирующих строк и массивов значений.
Пример: таблица сотрудников не находится в первой нормальной форме из-за дублирующих строк и списков значений.
Для приведения таблицы к первой нормальной форме, необходимо удалить дублирующие строки и хранить данные одного типа в столбцах.
Назначение строк - хранить данные, столбцов - структурную информацию, ячеек - атомарное значение.
Таблица должна быть создана с соблюдением реляционных принципов.
Все реляционные базы данных находятся в первой нормальной форме.
Таблица должна находиться в первой нормальной форме и иметь ключ.
Все не ключевые столбцы должны зависеть от полного ключа.
Если ключ составной, все столбцы должны зависеть от всех его частей.
Таблица сотрудников удовлетворяет первой нормальной форме.
Вводится первичный ключ - табельный номер.
Если табельный номер не уникален, создается искусственный ключ.
Таблица проектов находится в первой нормальной форме.
Первичный ключ определяется как комбинация названия проекта и участника.
Проверяется, что все не ключевые столбцы зависят от полного ключа.
Если первичный ключ не удовлетворяет требованиям, выполняется декомпозиция.
Создаются три таблицы: проекты, участники и связь между проектами и участниками.
Связь между таблицами реализуется через таблицу связи.
Третья нормальная форма требует отсутствия транзитивной зависимости.
Не ключевые столбцы не должны зависеть от значений других не ключевых столбцов.
Главное правило: таблица должна содержать правильные не ключевые столбцы.
Проверка таблицы сотрудников на наличие транзитивной зависимости.
Столбец описания подразделения не зависит напрямую от первичного ключа.
Решение: декомпозиция таблицы на две части для устранения транзитивной зависимости.
Нормальная форма Бойса-Кодда является промежуточной между третьей и четвертой нормальной формой.
Требования: таблица должна быть в третьей нормальной форме, ключевые атрибуты составного ключа не должны зависеть от не ключевых атрибутов.
Главное правило: часть составного первичного ключа не должна зависеть от не ключевого столбца.
Организация реализует множество проектов с несколькими функциональными направлениями.
Каждый проект имеет своего куратора, который специализируется на конкретном направлении.
Для хранения информации о кураторах проектов создается таблица с составным первичным ключом проект + направление.
Таблица находится в третьей нормальной форме, так как первичный ключ зависит от всего ключа.
Таблица не соответствует нормальной форме Бойса-Код, так как направление зависит от не ключевого атрибута куратор.
Для приведения таблицы к нормальной форме Бойса-Код необходимо разбить её на несколько таблиц: кураторы и связь кураторов и проектов.
В таблицах не должно быть нетривиальных многозначных зависимостей.
Многозначная зависимость возникает, когда два атрибута зависят от одного и того же значения.
Пример: курсы, преподаватели и аудитории в учебном заведении.
Таблица курсов, преподавателей и аудиторий.
Один и тот же курс может вести разные преподаватели и читаться в разных аудиториях.
Для составления расписания необходимо знать возможности учебного заведения.
Многозначные зависимости приводят к аномалиям при удалении или изменении данных.
Пример: удаление преподавателя Иванова требует удаления информации о аудиториях.
Многозначные зависимости делают невозможным независимое редактирование атрибутов.
В таблице не должно быть многозначных зависимостей.
Решение проблемы: вынести многозначные зависимости в отдельные таблицы.
Пример: таблица связи студентов, курсов и хобби.
Первичный ключ составной, курсы и хобби не связаны, но зависят от студента.
Таблица не в четвертой нормальной форме.
Проблема неоднозначной выборки данных.
Пример: выборка хобби студентов, посещающих курс, приводит к ошибкам.
В реальности такие таблицы не встречаются.
Нормализация до пятой и шестой нормальной формы практически невозможна.
Нормализация устраняет аномалии, но снижает производительность.
Нормализация устраняет аномалии, но снижает производительность после четвертой нормальной формы.
Полностью нормализованная база данных сложна и неудобна.
Важно найти баланс между отсутствием аномалий и производительностью.
Переменные отношения находятся в пятой нормальной форме, если каждая нетривиальная зависимость определяется потенциальным ключом.
Определение пятой нормальной формы сложно сформулировать простыми словами.
Пятая нормальная форма требует, чтобы каждая нетривиальная зависимость соединения определялась потенциальным ключом таблицы.
Декомпозиция таблицы на три таблицы позволяет избежать потери данных при соединении.
Таблица находится в пятой нормальной форме, если данные после декомпозиции совпадают с исходными.
Если данные после декомпозиции отличаются, возникает зависимость соединения.
Декомпозиция без потерь означает, что данные после соединения таблиц совпадают с исходными.
Таблица в пятой нормальной форме не содержит зависимостей соединения.
Таблица хранит информацию о связи сотрудников с проектами и направлениями работы.
Определение пятой нормальной формы зависит от требований предметной области.
Пример: Иванов может работать только в направлении разработка, Сергеев — в любом направлении, кроме разработки.
Таблица находится в четвертой нормальной форме, но существуют зависимости, определяемые частью потенциального ключа.
Для устранения зависимостей выполняется декомпозиция без потерь на три проекции.
Три таблицы: связь сотрудников и проектов, связь сотрудников и направлений, связь проектов и направлений.
Запрос соединяет три таблицы и проверяет, совпадают ли данные.
Если данные совпадают, таблица находится в пятой нормальной форме.
Пятая нормальная форма гарантирует отсутствие аномалий при разбиении на проекции.
Таблицы, требующие пятой нормальной формы, встречаются редко и являются неудачными с точки зрения проектирования.
Для приведения таблицы к пятой нормальной форме необходимо хорошо разбираться в предметной области и определить зависимости соединения.
Доменно-ключевая нормальная форма DICQNF не определяется в терминах функциональных зависимостей или зависимостей соединения.
В фокусе внимания DICQNF находятся ограничения доменов и ключей.
Ограничение домена предписывает использование значений из заданного домена.
Ограничение ключа утверждает, что атрибут или комбинация атрибутов является потенциальным ключом.
Каждое наложенное ограничение должно быть логическим следствием ограничений доменов и ключей.
Таблица в DICQNF обязательно находится в пятой нормальной форме.
Не всегда возможно привести таблицу к DICQNF.
Шестая нормальная форма введена для работы с хронологическими базами данных.
Хронологические базы могут хранить текущие, исторические и будущие данные.
Вертикальная декомпозиция таблиц напоминает классическую нормализацию.
Исследователи предлагают максимально возможную вертикальную декомпозицию.
Пятая нормальная форма основана на зависимостях соединения.
Шестая нормальная форма требует удовлетворения всех нетривиальных зависимостей соединения.
Нет необходимости приводить базу данных до определенной нормальной формы.
Важно руководствоваться требованиями к системе и предметной области.
Ошибки нормализации становятся очевидными при анализе операций над данными.
Руководствуйтесь здравым смыслом при нормализации базы данных.
Подписывайтесь на канал и оставляйте комментарии с пожеланиями для будущих видео.