Слайд 1Проектирование БД методом нормальных форм
Слайд 2Формирование исходного отношения
Проектирование базы данных начинается с определения всех
объектов, сведения о которых включены в базу, и определения их
атрибутов.
На первом этапе атрибуты сводятся в одну таблицу – исходное отношение.
Формирование исходного отношения рассмотрим на примере.
Слайд 3Предположим, что для деканата факультета создаётся база данных о преподавателях.
На первом этапе проектирования БД в результате общения с заказчиком
(деканом, например) должны быть определены сведения о том, как должна использоваться база данных и какую информацию заказчик хочет получать в процессе её эксплуатации.
В результате устанавливаются атрибуты, которые должны содержаться в отношениях БД, и связи между ними.
Перечислим имена выделенных атрибутов и их краткие характеристики.
Слайд 4ФИО – фамилия и инициалы преподавателя. Для простоты предположим, что
повторений нет.
Должн – должность, занимаемая преподавателем.
Оклад – оклад преподавателя.
Стаж –
преподавательский стаж.
Д_Стаж – надбавка за стаж.
Кафедра – название кафедры, где числится преподаватель.
Предмет – название предмета, читаемого преподавателем.
Группа – номер группы, в которой преподаватель проводит занятия.
ВидЗан – вид занятий, проводимых преподавателем в учебной группе.
В исходном отношении каждый атрибут кортежа должен быть простым (атомарным). Пример исходного отношения Преподаватель приведён в таблице 1.
Слайд 5Исходное отношение
Преподаватель
Слайд 6Данное отношение имеет следующую схему: Преподаватель (ФИО, Должн, Оклад, Стаж,
Д_Стаж, Кафедра, Предмет, Группа, ВидЗан).
Исходное отношение содержит избыточное дублирование данных,
которое является (по терминологии Э.Кодда) аномалией редактирования. Различают избыточность явную и неявную.
Слайд 7Явная избыточность заключается в том, что строки с данными о
преподавателях, проводящих занятия в нескольких группах, повторяются соответствующее число раз.
Например, все анкетные данные по Иванову А. повторяются столько раз, сколько он проводит занятий; если Иванов станет старшим преподавателем, придётся исправлять сведения о нём во всех кортежах.
В противном случае будет иметь место противоречие в данных, это является примером аномалии редактирования, обусловленной явной избыточностью данных в отношении.
Слайд 8Неявная избыточность проявляется в одинаковых окладах у всех ассистентов, например,
и в одинаковых надбавках за одинаковый стаж.
Поэтому, если при изменении
оклада за должность с 1000 до 1200 это значение изменят у всех, кроме Сидорова, база данных станет противоречивой. Это пример аномалии редактирования для варианта с неявной избыточностью.
Слайд 9Средством исключения избыточности в отношениях и аномалий редактирования является нормализация
отношений.
Слайд 10Проектирование БД – один из этапов жизненного цикла информационной системы.
Основная задача, которая решается в процессе проектирования БД, это задача
нормализации её отношений.
Рассматриваемый нами метод нормальных форм является классическим методом проектирования реляционных БД.
Этот метод основан на фундаментальном в теории БД понятии зависимости между атрибутами.
Слайд 11Выявление зависимостей между атрибутами
Выявление зависимостей между атрибутами необходимо для
выполнения проектирования БД методом нормальных форм.
Выявим зависимости между атрибутами отношения
ПРЕПОДАВАТЕЛЬ.
При этом учтем следующее условие, которое выполняется в данном отношении: один преподаватель в одной группе может проводить только один вид занятий (лекции или практические занятия).
Слайд 12ФИОДолжн
ФИООклад
ФИОСтаж
ФИОД_Стаж
ФИОКафедра
СтажД_Стаж
ДолжнОклад
ФИО,Предм,ГруппаВидЗан
Слайд 13Фамилия, имя и отчество у преподавателей факультета уникальны. Каждому преподавателю
однозначно соответствует его стаж, т.е. имеет место функциональная зависимость ФИОСтаж.
Обратное утверждение неверно, так как одинаковый стаж может быть у разных преподавателей.
Каждый преподаватель имеет определённую надбавку за стаж, т.е. имеет место функциональная зависимость ФИОД_Стаж, но обратная функциональная зависимость отсутствует, так как одну и ту же надбавку могут иметь несколько преподавателей.
Каждый преподаватель имеет определённую должность (ассистент, доцент), но одну и ту же должность могут иметь несколько преподавателей, т.е. имеет место функциональная зависимость ФИОДолжн, а обратная функциональная зависимость отсутствует.
Слайд 14Каждый преподаватель является сотрудником одной кафедры, поэтому имеет место функциональная
зависимость ФИОКафедра. На каждой кафедре много преподавателей, поэтому обратной функциональной
зависимости нет.
Каждому преподавателю соответствует конкретный оклад, который одинаков для всех преподавателей с одинаковыми должностями, что учитывается зависимостями ФИООклад и ДолжОклад.
Слайд 15Один и тот же преподаватель в одной группе по разным
предметам может проводить разные виды занятий. Определение вида занятий, которые
проводит преподаватель, невозможно без указания предмета и группы, поэтому имеет место функциональная зависимость ФИО,Предм,КлассВидЗан. Действительно, Петров М. в 256 группе читает лекции и проводит практические занятия. Но лекция он читает по ПО ЭВМ, а практику проводит по Паскалю.
Слайд 16Нами не были выделены зависимости между атрибутами ФИО, Предм и
Группа, поскольку они образуют составной ключ и не учитываются в
процессе нормализации исходного отношения.
Слайд 17Нормальные формы
Процесс проектирования БД с использованием метода нормальных форм
является итерационным и заключается в последовательном переводе отношений из первой
нормальной формы в нормальные формы более высокого порядка по определённым правилам.
Каждая следующая нормальная форма ограничивает определённый тип функциональных зависимостей, устраняет соответствующие аномалии при выполнении операций над отношениями БД и сохраняет свойства предшествующих нормальных форм.
Слайд 18Выделяют следующую последовательность нормальных форм:
Первая нормальная форма (1НФ);
Вторая нормальная
форма (2НФ);
Третья нормальная форма (3НФ);
Усиленная третья нормальная форма, или нормальная
форма Бойса-Кодда (БКНФ);
Четвёртая нормальная форма (4НФ);
Пятая нормальная форма (5НФ).
Слайд 19Первая нормальная форма
Отношение находится в первой нормальной форме, если
все его атрибуты являются простыми. Исходное отношение строится таким образом,
чтобы оно соответствовало первой нормальной форме.
Слайд 20Перевод отношения в следующую нормальную форму осуществляется методом декомпозиции без
потерь. Декомпозиция без потерь обеспечивает то, что запросы к исходному
отношению и к отношениям, полученным в результате декомпозиции, дают одинаковый результат.
Слайд 21Исходное отношение, используемое для иллюстрации метода, имеет составной ключ
ФИО, Предм, Группа и находится в 1НФ, поскольку все его
атрибуты простые.
Слайд 22В этом отношении можно выделить частичную зависимость атрибутов Стаж, Д_Стаж,
Должн, Оклад от ключа – указанные атрибуты находятся в функциональной
зависимости от атрибута ФИО, являющегося частью составного ключа.
Слайд 23Частичная зависимость от ключа приводит к следующему:
1. В отношении присутствует
явное и неявное избыточное дублирование данных, например:
Повторение сведений о стаже,
должности и окладе преподавателей, проводящих занятия в нескольких группах и/или по разным предметам;
Повторение сведений об окладах для одной и той же должности или о надбавках за одинаковый стаж.
2. Следствием избыточного дублирования данных является проблема их редактирования. Например, изменение должности у преподавателя Иванова А. потребует просмотра всех кортежей отношения и внесения изменений в те из них, которые содержат сведения о данном преподавателе.
Часть избыточности устраняется при переводе отношения в 2НФ.
Слайд 24Вторая нормальная форма
Отношение находится в 2НФ, если оно находится
в 1НФ и каждый неключевой атрибут функционально полно зависит от
первичного ключа (простого или составного).
Слайд 25Для устранения частичной зависимости и перевода отношения в 2НФ необходимо,
используя операцию проекции, разложить его на два отношения следующим образом:
Построить
отношение без атрибутов, находящихся в частичной функциональной зависимости от первичного ключа;
Построить отношение из части составного первичного ключа и атрибутов, зависящих от этих частей.
Слайд 26В результате получили два отношения R1 и R2 в
2НФ:
R1
Слайд 28В отношении R1 первичный ключ является составным и состоит из
атрибутов ФИО, Предмет, Группа. В отношении R2 ключ ФИО.
Переход ко
второй нормальной форме позволил исключить явную избыточность данных в таблице R2, однако по-прежнему имеет место неявная избыточность. Устранить неявную избыточность данных можно переводом отношения в третью нормальную форму.
Слайд 29Третья нормальная форма
Отношение находится в 3НФ, если оно находится
в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного
ключа.
Слайд 30В отношении R1 транзитивные зависимости отсутствуют, в отношении R2 они
есть: ФИОДолжнОклад, ФИОСтажД_Стаж.
Слайд 31Транзитивные зависимости также порождают избыточное дублирование информации в отношении.
Для
устранения избыточности используем операцию проекции на атрибуты, которые являются причиной
транзитивных зависимостей.
Преобразуем отношение R2, получив при этом отношения R3, R4 и R5. Эти отношения находятся в третьей нормальной форме.
Слайд 35На практике в большинстве случаев приведение отношений к третьей нормальной
форме является достаточным, и процесс проектирования базы данных на этом
заканчивается.
Однако, если в отношениях присутствует зависимость атрибутов составного ключа от неключевых атрибутов, необходимо перейти к усиленной третьей нормальной форме, или нормальной форме Бойса – Кодда (БКНФ).
Слайд 36Нормальная форма Бойса – Кодда
Отношение находится в БКНФ, если
оно находится в 3НФ и в нём отсутствуют зависимости ключей
(атрибутов составного ключа) от неключевых атрибутов.
Слайд 37В рассматриваемом примере подобной зависимости нет, поэтому процесс проектирования на
этом заканчивается.
Результатом проектирования является база данных, состоящая из таблиц
R1, R3, R4, R5.
В полученной БД имеется необходимое дублирование данных, но отсутствует избыточное.
Слайд 38Метод «сущность-связь» (ER-диаграмм)
Кроме метода нормальных форм Кодда, который используется при
проектировании небольших БД, применяют и другие методы, например, метод ER-диаграмм
(метод сущность – связь).
Этот метод используется при проектировании больших БД, на нём основан ряд CASE – систем.
Слайд 39Суть метода ER-диаграмм состоит в том, что из предметной области
решаемой задачи выделяются объекты (сущности).
Информация о каждом из них
представляется в виде объектного отношения.
На основе ряда правил объектные отношения могут связываться между собой с помощью связных отношений или непосредственно друг с другом.
Слайд 40На последнем этапе метода ER-диаграмм отношения, полученные в результате проектирования,
проверяются на принадлежность их к нормальной форме Бойса – Кодда.
После
завершения проектирования БД создаётся с помощью СУБД или системы программирования.
Слайд 41На практике не всегда можно получить идеально нормализованную БД. Часто
к этому и не стремятся.
Слайд 42Нормализация устраняет избыточную информацию в БД. Отношения нормализованной БД имеют
только один элемент избыточных данных – это поля связи, которые
одновременно присутствуют и у родительских и у дочерних таблиц (главных и подчинённых по другой терминологии).
При соблюдении принципа неизбыточности экономится дисковое пространство.
Слайд 43Однако у нормализованной БД есть недостатки практического характера.
Базы данных
в составе больших информационных систем, например АСУ крупных предприятий, могут
содержать сотни связанных между собой таблиц.
Человек не в состоянии одновременно анализировать большое число объектов с учётом их взаимосвязей; можно утверждать, что с увеличением числа нормализованных таблиц уменьшается целостное восприятие базы данных как системы взаимосвязанных данных.
Известны случаи, когда создавались системы, принципы функционирования которых признавались вышедшими за границы понимания.
Слайд 44В случае, когда в связанных таблицах имеется большое количество записей,
поиск данных может осуществляться медленнее, чем аналогичный поиск в ненормализованных
или не вполне нормализованных базах данных.
Таким образом, при работе с данными большого объёма приходится искать компромисс между требованиями нормализации и необходимостью повышения быстродействия системы.