Нормализация отношений в реляционных моделях данных — презентация
logo
Нормализация отношений в реляционных моделях данных
  • Нормализация отношений в реляционных моделях данных
  • Нормализация реляционных баз данных
  • Избыточность данных
  • Пример избыточности
  • Нормализация отношений в реляционных моделях данных
  • Нормализация отношений в реляционных моделях данных
  • Как решается проблема в примере?
  • Нормальные формы базы данных
  • Основные нормальные формы
  • Дополнительные нормальные формы
  • Порядок нормальных форм
  • Первая нормальная форма
  • Главное правило 1 НФ
  • Пример приведения таблицы к первой нормальной форме
  • Нормализация отношений в реляционных моделях данных
  • Вторая нормальная форма
  • Главное правило 2 НФ
  • Пример приведения таблицы ко второй нормальной форме
  • Продолжение примера
  • Обратите внимание
  • Пример приведения таблицы ко второй нормальной форме (первичный ключ составной)
  • Продолжение примера
  • Продолжение примера
  • Декомпозиция
  • Продолжение примера
  • Третья нормальная форма
  • Главное правило 3 НФ
  • Пример приведения таблиц базы данных к 3 НФ
  • Проблема и решение
  • Продолжение примера
  • Продолжение примера
  • Нормальная форма Бойса -Кодда
  • Главное правило НФБК
  • Пример приведения таблиц базы данных к нормальной форме Бойса -Кодда
  • Продолжение примера
  • Продолжение примера
1/36

Изображение слайда

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

Изображение слайда

Избыточность данных  – это когда одни и те же данные хранятся в базе в нескольких местах, именно это и приводит к аномалиям. Избыточность данных создает предпосылки для появления различных аномалий, снижает производительность, и делает управление данными не гибким и не очень удобным. Т.е., нормализация нужна для: Устранения аномалий Повышения производительности Повышения удобства управления данными

Изображение слайда

Слайд 4: Пример избыточности

Идентификатор предмета Наименование предмета Материал 1 Стул Металл 2 Стол Массив дерева 3 Кровать ЛДСП 4 Шкаф Массив дерева 5 Комод ЛДСП

Изображение слайда

Слайд 5

Идентификатор предмета Наименование предмета Материал 1 Стул Металл 2 Стол Натуральное дерево 3 Кровать ЛДСП 4 Шкаф Массив дерева 5 Комод ЛДСП

Изображение слайда

Слайд 6

Идентификатор предмета Наименование предмета Материал 1 Стул Металл 2 Стол Натуральное дерево 3 Кровать ЛДСП 4 Шкаф Массив дерева 5 Комод ЛДСП 6 Тумба Дерево При этом Натуральное дерево, Массив дерева и Дерево это все еще один материал. Просто изменения вносили разные люди.

Изображение слайда

Слайд 7: Как решается проблема в примере?

ID предмета Наименование ID материала 1 Стул 2 2 Стол 1 3 Кровать 3 4 Шкаф 1 5 Комод 3 ID материала Материал 1 Массив дерева 2 Металл 3 ЛДСП

Изображение слайда

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

Изображение слайда

Слайд 9: Основные нормальные формы

Первая нормальная форма (1NF) Вторая нормальная форма (2NF) Третья нормальная форма (3NF) Четвертая нормальная форма (4NF) Пятая нормальная форма (5NF)

Изображение слайда

Слайд 10: Дополнительные нормальные формы

Ненормализованная форма или нулевая нормальная форма (UNF) Нормальная форма Бойса -Кодда (BCNF) Доменно-ключевая нормальная форма (DKNF) Шестая нормальная форма (6NF)

Изображение слайда

Слайд 11: Порядок нормальных форм

Ненормализованная форма или нулевая нормальная форма (UNF) Первая нормальная форма (1NF) Вторая нормальная форма (2NF) Третья нормальная форма (3NF) Нормальная форма Бойса -Кодда (BCNF) Четвертая нормальная форма (4NF) Пятая нормальная форма (5NF) Доменно-ключевая нормальная форма (DKNF) Шестая нормальная форма (6NF) Если БД находится в какой-либо НФ, она находится и во всех предыдущих!

Изображение слайда

Слайд 12: Первая нормальная форма

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

Изображение слайда

Слайд 13: Главное правило 1 НФ

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

Изображение слайда

Слайд 14: Пример приведения таблицы к первой нормальной форме

Сотрудник Контакт Иванов И.И. 123-456-789, 987-654-321 Сергеев С.С. Рабочий телефон 555-666-777, Домашний телефон 777-888-999 John Smith 123-456-789 John Smith 123-456-789 Таблица сотрудников в ненормализованном виде.

Изображение слайда

Слайд 15

Сотрудник Телефон Тип телефона Иванов И.И. 123-456-789 Иванов И.И. 987-654-321 Сергеев С.С. 555-666-777 Рабочий телефон Сергеев С.С. 777-888-999 Домашний телефон John Smith 123-456-789 Таблица сотрудников в первой нормальной форме.

Изображение слайда

Слайд 16: Вторая нормальная форма

Чтобы база данных находилась во второй нормальной форме (2NF), необходимо чтобы ее таблицы удовлетворяли следующим требованиям: Таблица должна находиться в первой нормальной форме Таблица должна иметь ключ Все неключевые столбцы таблицы должны зависеть от полного ключа ( в случае если он составной ) Если ключ составной, т.е. состоит из нескольких столбцов, то все остальные неключевые столбцы должны зависеть от всего ключа, т.е. от всех столбцов в этом ключе. Если какой-то атрибут (столбец) зависит только от одного столбца в ключе, значит, база данных не находится во второй нормальной форме. Иными словами, в таблице не должно быть данных, которые можно получить, зная только половину ключа, т.е. только один столбец из составного ключа.

Изображение слайда

Слайд 17: Главное правило 2 НФ

Таблица должна иметь правильный ключ, по которому можно идентифицировать каждую строку.

Изображение слайда

Слайд 18: Пример приведения таблицы ко второй нормальной форме

ФИО Должность Подразделение Описание подразделения Иванов И.И. Программист Отдел разработки Разработка и сопровождение приложений и сайтов Сергеев С.С. Бухгалтер Бухгалтерия Ведение бухгалтерского и налогового учета финансово-хозяйственной деятельности John Smith Продавец Отдел реализации Организация сбыта продукции Таблица сотрудников в первой нормальной форме.

Изображение слайда

Слайд 19: Продолжение примера

Табельный номер ФИО Должность Подразделение Описание подразделения 1 Иванов И.И. Программист Отдел разработки Разработка и сопровождение приложений и сайтов 2 Сергеев С.С. Бухгалтер Бухгалтерия Ведение бухгалтерского и налогового учета финансово-хозяйственной деятельности 3 John Smith Продавец Отдел реализации Организация сбыта продукции Таблица сотрудников во второй нормальной форме с простым первичным ключом.

Изображение слайда

Слайд 20: Обратите внимание

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

Изображение слайда

Слайд 21: Пример приведения таблицы ко второй нормальной форме (первичный ключ составной)

Название проекта Участник Должность Срок проекта (мес.) Внедрение приложения Иванов И.И. Программист 8 Внедрение приложения Сергеев С.С. Бухгалтер 8 Внедрение приложения John Smith Менеджер 8 Открытие нового магазина Сергеев С.С. Бухгалтер 12 Открытие нового магазина John Smith Менеджер 12 Таблица проектов организации в первой нормальной форме.

Изображение слайда

Слайд 22: Продолжение примера

Название проекта Участник Должность Срок проекта (мес.) Внедрение приложения Иванов И.И. Программист 8 Внедрение приложения Сергеев С.С. Бухгалтер 8 Внедрение приложения John Smith Менеджер 8 Открытие нового магазина Сергеев С.С. Бухгалтер 12 Открытие нового магазина John Smith Менеджер 12 Таблица проектов организации. Внедрен составной первичный ключ.

Изображение слайда

Слайд 23: Продолжение примера

Так как первичный ключ составной, необходимо проверить еще и второе требование, которое гласит, что  «Все неключевые столбцы таблицы должны зависеть от полного ключа». Другими словами, остальные столбцы, которые не входят в первичный ключ, должны зависеть от всего первичного ключа, т.е. от всех столбцов, а не от какого-то одного. Чтобы это проверить, можно задать себе несколько вопросов. Можем ли мы определить «Должность», зная только название проекта?  Нет. Для этого необходимо знать и участника. Значит, пока все хорошо. Идем дальше и проверяем другую часть ключа. Можем ли мы определить «Должность» зная только участника?  Да, можем. Значит   первичный ключ плохой, и требование второй нормальной формы не выполняется.

Изображение слайда

Слайд 24: Декомпозиция

Что делать в этом случае? Выполнить декомпозицию. Декомпозиция – это процесс разбиения одного отношения (таблицы) на несколько.

Изображение слайда

Слайд 25: Продолжение примера

Проекты ID проекта Название проекта Срок проекта (мес.) 1 Внедрение приложения 8 2 Открытие нового магазина 12 Участники ID участника Участник Должность 1 Иванов И.И. Программист 2 Сергеев С.С. Бухгалтер 3 John Smith Менеджер Связь проектов и участников этих проектов ID проекта ID участника 1 1 1 2 1 3 2 2 2 3

Изображение слайда

Слайд 26: Третья нормальная форма

Требование третьей нормальной формы (3NF) заключается в том, чтобы в таблицах отсутствовала транзитивная зависимость. Транзитивная зависимость – это когда неключевые столбцы зависят от значений других неключевых столбцов.

Изображение слайда

Слайд 27: Главное правило 3 НФ

Таблица должна содержать правильные неключевые столбцы.

Изображение слайда

Слайд 28: Пример приведения таблиц базы данных к 3 НФ

Табельный номер ФИО Должность Подразделение Описание подразделения 1 Иванов И.И. Программист Отдел разработки Разработка и сопровождение приложений и сайтов 2 Сергеев С.С. Бухгалтер Бухгалтерия Ведение бухгалтерского и налогового учета финансово-хозяйственной деятельности 3 John Smith Продавец Отдел реализации Организация сбыта продукции Таблица сотрудников во второй нормальной форме.

Изображение слайда

Слайд 29: Проблема и решение

Столбец  «Описание подразделения»  не зависит напрямую от первичного ключа. Мы это выяснили, когда задали себе один вопрос  «Каким образом описание подразделения связано с сотрудником?».  Ответ:  «Атрибут описание подразделения содержит детальные сведения того подразделения, в котором работает сотрудник». Решение: декомпозиция на 2 таблицы.

Изображение слайда

Слайд 30: Продолжение примера

Табельный номер ФИО Должность Подразделение 1 Иванов И.И. Программист 1 2 Сергеев С.С. Бухгалтер 2 3 John Smith Продавец 3 Таблица сотрудников в третьей нормальной форме.

Изображение слайда

Слайд 31: Продолжение примера

Идентификатор подразделения Подразделение Описание подразделения 1 Отдел разработки Разработка и сопровождение приложений и сайтов 2 Бухгалтерия Ведение бухгалтерского и налогового учета финансово-хозяйственной деятельности 3 Отдел реализации Организация сбыта продукции Таблица подразделений в третьей нормальной форме.

Изображение слайда

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

Требования нормальной формы Бойса -Кодда следующие: Таблица должна находиться в третьей нормальной форме. Здесь все как обычно, т.е. как и у всех остальных нормальных форм, первое требование заключается в том, чтобы таблица находилась в предыдущей нормальной форме, в данном случае в третьей нормальной форме; Ключевые атрибуты составного ключа не должны зависеть от неключевых атрибутов. Отсюда следует, что требования нормальной формы Бойса -Кодда предъявляются только к таблицам, у которых первичный ключ составно й. Таблицы, у которых первичный ключ простой, и они находятся в третьей нормальной форме, автоматически находятся и в нормальной форме Бойса -Кодда.

Изображение слайда

Слайд 33: Главное правило НФБК

Часть составного первичного ключа не должна зависеть от неключевого столбца.

Изображение слайда

Слайд 34: Пример приведения таблиц базы данных к нормальной форме Бойса -Кодда

Проект Направление Куратор 1 Разработка Иванов И.И. 1 Бухгалтерия Сергеев С.С. 2 Разработка Иванов И.И. 2 Бухгалтерия Петров П.П. 2 Реализация John Smith 3 Разработка Андреев А.А. При этом по описанию предметной области курировать проект может только человек, чья профессия совпадает с направлением. Таблица проектов и кураторов в 3 НФ.

Изображение слайда

Слайд 35: Продолжение примера

Идентификатор куратора ФИО Направление 1 Иванов И.И. Разработка 2 Сергеев С.С. Бухгалтерия 3 Петров П.П. Бухгалтерия 4 John Smith Реализация 5 Андреев А.А. Разработка Таблица кураторов.

Изображение слайда

Последний слайд презентации: Нормализация отношений в реляционных моделях данных: Продолжение примера

Проект Идентификатор куратора 1 1 1 2 2 1 2 3 2 4 3 5 Таблица связи кураторов и проектов.

Изображение слайда

Похожие презентации