Прежде чем приступить к первому шагу проектирования базы данных – нормализации – необходимо дать определение этому процессу.
Нормализация – процесс организации данных в базе данных, который включает: создание таблиц и установление связей между таблицами по некоторым правилам для защиты данных и для того, чтобы сделать базу данных более гибкой, избавлением от двух факторов: избыточности и противоречивости. Две основные идеи нормализации можно выделить следующим образом:
• атрибуты должны зависеть от ключа, от всего ключа целиком и ни от чего другого, кроме ключа. Если это не так, следует разбить атрибуты на отдельные отношения;
• если можно разбить отношение на два или более отношений с меньшим количеством атрибутов таким образом, что соединение последних в точности воспроизводит исходное состояние, то это нужно сделать.
Отношение R находится в первой нормальной форме тогда и только тогда, когда все входящие в него домены содержат только атомарные (неделимые) значения. Основные действия:
• удалить повторяющиеся группы в отдельных таблицах;
• создать отдельные таблицы для каждого множества отношений;
• определить первичный ключ в каждом отношении.
Для приведения данного ненормализованного отношения к первой нормальной форме необходимо определить ключевой атрибут, затем определить тип отношения остальных атрибутов к ключу. Ключевой атрибут выбирается как наиболее подходящий для уникального определения сущностей в нашей системе.
Мы имеем следующие атрибуты: ФИО преподавателя, Группа, Дата экзамена, Наименование экзамена, Кафедра. Добавим к ним Код преподавателя, Код кафедры, Код экзамена, Код группы.
В качестве ключевого атрибута выберем Код преподавателя и определим его связь с другими атрибутами.
Связь может быть двух типов один–к–одному, т.е. один преподаватель может работать на одной кафедре (совместительство рассматривать не будем), у него может быть только одно имя; и один–ко–многим, т.е. один преподаватель читает несколько предметов у нескольких групп.
В завершении необходимо создать две таблицы и выделить первичный ключ в каждом отношении. В первую таблицу войдут атрибуты, которые связаны с первичным ключом как один–к–одному, а во вторую – как один–ко–многим.
Оба полученных отношения находятся в первой нормальной форме.