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

Разделы: Информатика


Представленный урок (2 академических часа) рассчитан на учащихся 3 курса среднего профессионального образования по дисциплине «Информационные системы и базы данных» (по специальности 050202 «Информатика»).  

Тип урока: комбинированный урок

Цели урока:

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

Методические задачи:

  • организовать деятельность учащихся по изучению нормализации баз данных и проведению исследований в соответствии с поставленной целью;
  • совершенствовать навыки проектирования БД;
  • научить анализировать и обобщать полученную информацию.

Оборудование: компьютеры, проектор, экран, программные средства: пакет Microsoft Office.

План проведения урока

  1. Подготовительный этап.
  2. Выступления учащихся.
  3. Выполнение практического задания.
  4. Подведение итогов.
  5. Домашнее задание.

ХОД УРОКА

1. Подготовительный этап

За неделю в классе выбираются 2 группы по 2-3 человека.

Перед ними ставятся задачи:

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

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

На данном этапе преподаватель осуществляет консультирование учащихся.

2. Выступления учащихся

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

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

Процесс нормализации заключается в разложении (декомпозиции) исходных отношений БД на более простые отношения. При этом на каждой ступени этого процесса схемы отношении приводятся в нормальные формы. Для каждой ступени нормализации имеются наборы ограничений, которым должны удовлетворять отношения БД. Тем самым удаляется из таблиц базы избыточная неключевая информация.

Процесс нормализации основан на понятии функциональной зависимости атрибутов: атрибут А зависит от атрибута В (В ––> А), если в любой момент времени каждому значению атрибута В соответствует не более одного значения атрибута А.

Зависимость, при которой каждый неключевой атрибут зависит от всего составного ключа и не зависит от его частей, называется полной функциональной зависимостью. Если атрибут А зависит от атрибута В, а атрибут В зависит от атрибута С (С ––>  В  ––> А), но обратная зависимость при этом отсутствует, то зависимость С от А называется транзитивной.

Общее понятие нормализации подразделяется на несколько нормальных форм.

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

ПРИМЕР 1

Зададимся целью построить базу данных, информирующую пользователя (учащегося 4 курса по специальности «Информатика») об учебных предметах (например, Название предмета, Цикл, Объем часов). Кроме этого, нас будут интересовать данные о преподавателях (например, Фамилия, Имя, Отчество, Категория, Оклад, Адрес).

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

Выступление учащихся:

Учащиеся информируют студентов группы о полученных результатах (Раздают распечатанные таблицы, выступление может сопровождаться слайдом презентации). (Приложение 1)

Преподаватель: Получаем следующее отношение (выступление преподавателя может сопровождаться презентацией, в которой отражены все этапы нормализации):

ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов, Преподаватели).

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

Переведем атрибут с повторяющимися значениями в новую сущность, назначим ей первичный ключ Код преподавателяи свяжем с исходной сущностью ссылкой на ее первичный ключ Код предмета. В результате получим две сущности, причем во вторую сущность добавятся характеризующие ее атрибуты:

ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия, Имя, Отчество, Категория, Оклад, Адрес, Код предмета).

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

Заметим, что атрибут Циклв сущности ПРЕДМЕТ, характеризующий принадлежность предмета к циклу обще-профессиональных, гуманитарных и социально-экономических дисциплин или предметной подготовки, не полностью зависит от уникального идентификатора Код предмета, так как разные предметы могут иметь одно и то же значение атрибута Цикл. Перенесем этот атрибут в новую сущность ЦИКЛ и получим три взаимосвязанных сущности:

ПРЕДМЕТ (Код предмета, Название, Код цикла, Объем часов);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия, Имя, Отчество, Категория, Оклад, Адрес, Код предмета);
ЦИКЛ (Код цикла, Название цикла).

Информационный объект находится в третьей нормальной форме (ЗНФ), если он уже находится во второй нормальной форме и ни один его описательный атрибут не зависит от каких-либо других описательных атрибутов. Атрибуты, зависящие от других неидентифицирующих атрибутов, нормализуются путем перемещения зависимого атрибута и атрибута, от которого он зависит, в новый информационный объект.

В данном случае неключевые атрибуты Категорияи Окладнаходятся в транзитивной зависимости: несколько человек могут работать по одной и той же категории. При изменении категории, нужно будет менять данные в каждой записи, содержащей эту категорию, следовательно, требуется создать новую сущность КАТЕГОРИЯ с находящимися в транзитивной зависимости атрибутами Название категориии Оклади сделать ссылку от сущности ПРЕПОДАВАТЕЛЬ на сущность КАТЕГОРИЯ:

ПРЕДМЕТ (Код предмета, Название, Код цикла, Объем часов);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия, Имя, Отчество, Код категории, Адрес, Код предмета);
ЦИКЛ (Код цикла, Название никла);
КАТЕГОРИЯ (Код категории, Название категории, Оклад);

ПРИМЕР 2

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

Выступление учащихся:

Учащиеся информируют студентов группы о полученных результатах (Раздают распечатанные таблицы, выступление может сопровождаться слайдом презентации). (Приложение 2)

Преподаватель(комментирует и задает вопросы):

Тогда необходимо отказаться от жесткой привязки преподавателя к предмету в сущности ПРЕПОДАВАТЕЛЬ, создав дополнительную сущность ИЗУЧЕНИЕ, которая будет показывать, как связаны между собой преподаватели и предметы:

ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия, Имя, Отчество, Категория, Оклад, Адрес);
ИЗУЧЕНИЕ (Код предмета, Код преподавателя).

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

2 НФ:
ПРЕДМЕТ (Код предмета, Название, Код цикла, Объем часов);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия, Имя, Отчество, Категория, Оклад, Адрес);
ИЗУЧЕНИЕ (Код предмета,Код преподавателя);
ЦИКЛ (Код цикла, Название цикла).

3 НФ:
ПРЕДМЕТ (Код предмета, Название, Код цикла, Объем часов);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия, Имя, Отчество, Код категории, Адрес);
ИЗУЧЕНИЕ (Код предмета,Код преподавателя);
ЦИКЛ (Код цикла, Название никла);
КАТЕГОРИЯ (Код категории, Название категории, Оклад).

Преподаватель(задает вопросы):

1. С какой целью производится нормализация базы данных?
2. В чем заключается требования первой, второй и третей нормальных форм?

3. Практическое задание

Нормализуйте следующие отношения – приведите к третьей нормальной форме:

ОТДЕЛ КАДРОВ ПРЕДПРИЯТИЯ (Отделы, Сотрудники, Должности, Оклад).

Определим назначение будущей информационной системы. Она должна информировать пользователей:

  • О личных данных сотрудников;
  • О занимаемых должностях;
  • О распределении сотрудников по отделам;
  • О выполнении задания.

Уточним, что:

  • Каждый сотрудник занимает только одну должность;
  • Каждый отдел может работать над одним или несколькими заданиями;
  • Каждый сотрудник в каждом отделе выполняет ровно одно задание.

Пример практического задания, выполненного учащимися:

Таким образом, можно получить следующее отношение:

СОТРУДНИКИ (Номер сотрудника, Фамилия, Имя, Отчество, Стаж работы в организации, Пол, Дата рождения, Адрес, Телефон, Должность, Оклад, Задание, Отдел),
где Номер сотрудника – ключевое поле.

Это отношение не находиться в первой нормальной форме, т.к. несколько сотрудников могут выполнять одно задание.

Переведем атрибут с повторяющимися значениями в новую сущность, назначим ей первичный ключ (Код задания) и свяжем с исходной сущностью ссылкой на ее первичный ключ (Номер сотрудника).

В результате получим две сущности:

СОТРУДНИКИ (Номер сотрудника, Фамилия, Имя, Отчество, Стаж работы в организации, Пол, Дата рождения, Адрес, Телефон, Должность, Оклад, Код задания);
ЗАДАНИЕ (Код задания, Название задания, Отдел).

Полученные выражения соответствуют случаю, когда несколько сотрудников выполняют одно задание, но каждый сотрудник не может принимать участие более чем в одном задании.
Атрибут Отдел в сущности ЗАДАНИЕ, не полностью зависит от идентификатора Код задания, т.к. разные задания могут иметь одно и то же значение атрибута Отдел.
Согласно требованиям второй нормальной формы, перенесем атрибут Отдел в новую сущность ОТДЕЛ.

Получим:

СОТРУДНИКИ (Номер сотрудника, Фамилия, Имя, Отчество, Стаж работы в организации, Пол, Дата рождения, Адрес, Телефон, Должность, Оклад, Код задания);
ЗАДАНИЕ (Код задания, Название задания, Код отдела);
ОТДЕЛ (Код отдела, Название отдела).

Согласно требованиям третей нормальной формы, необходимо создать новую сущность ДОЛЖНОСТЬ, т.к. атрибуты Должность и Оклад находятся в транзитивной зависимости.

Таким образом, получим:

СОТРУДНИКИ (Номер сотрудника, Фамилия, Имя, Отчество, Стаж работы в организации, Пол, Дата рождения, Адрес, Телефон, Код задания, Код должности);
ЗАДАНИЕ (Код задания, Название задания, Код отдела);
ОТДЕЛ (Код отдела, Название отдела);
ДОЛЖНОСТЬ (Код должности, Название должности, Оклад).

4. Подведение итогов

5. Домашнее задание

Подготовить информацию для заполнения БД «Отдел кадров предприятия».

Литература:

  1. Гончаров А. Ю. Acceess 2007. Справочник с примерами. – М.: КУДИЦ-ПРЕСС, 2008.
  2. Кузин А. В., Левонисова С. В. Базы данных. Учебное пособие для студ. высш. учеб. заведений. – М.: Издательский центр «Академия», 2008.
  3. Перевозчикова М. С., Петухова М. В. Практикум по программному обеспечению ЭВМ. Реляционные базы данных. Система управления базами данных Acceess: ч. V. – Киров: Изд-во ВГГУ, 2005.
  4. Семакин И. Г., Хеннер Е. К. Информационные системы и модели. Практикум по элективному курсу. – М.: БИНОМ. Лаборатория знаний, 2006.
  5. Семакин И. Г., Хеннер Е. К. Информационные системы и модели. Учебное пособие по элективному курсу. – М.: БИНОМ. Лаборатория знаний, 2007.
  6. Угринович Н. Д. Информатика и информационные технологии. Учебник для 10 – 11 классов. – М.: БИНОМ. Лаборатория знаний, 2007.