Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инф2_Л№8_СУБД_Access.docx
Скачиваний:
13
Добавлен:
08.04.2015
Размер:
34.97 Кб
Скачать

Нормализация бд.

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

Требования для любой нормальной формы:

  • Каждая последующая НФ должна быть лучше предыдущей;

  • При переходе к следующей НФ свойства предыдущих сохраняются.

Вначале подробно исследуется предметная область. Допустим, в результате исследования установлено, что в БД необходимо отобразить информацию об объектах:

Объекты

Информация, например:

Студент

Ф.И.О., номер зачётной книжки и др.

Учебная группа

Шифр или номер группы и др.

Факультет

Название и др.

Учебный предмет

Название и др.

Оценка

Балл, название оценки и др.

Информация об объектах может быть значительно расширена. Например: о стоуденте – домашний адрес, телефон и т.д.

Первая нормальная форма (1НФ)

Свойства:

  • в отношении нет одинаковых кортежей (записей);

  • атрибуты не упорядочены и различны по наименованию;

  • кортежи (поля) не упорядочены;

  • значения атрибутов неделимы.

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

Примеры названий доменов (полей):

Код студента = fID_Student;

Фамилия студента = fLast_Name;

Имя студента = fFirst_Name;

Отчество студента = fMiddle_Name;

Шифр группы = fGroup;

Оценка = fMark;

Учебный предмет = fSubject;

Учебный семестр = fSemester.

1Нф. Фрагмент обобщённого отношения Образование (Education)

fID_Student

fLast_Name

fGroup

fMark

fSubject

fSemester

0001

Иванов

С11

4

Физика

1

0002

Петров

С12

3

Физика

1

0001

Иванов

С11

5

Математика

1

Создание отдельных кортежей (полей) Фамилия студента, Имя студена, Отчество студента вызвано соблюдением свойства 1НФ – неделимость значения атрибута. (Атрибут Фамилия Имя и Отчество студента явно можно разделить на три значения).

Поле fID_Student однозначно определяет каждого студента. Но, так как один и тот, же студент в этом отношении может упоминаться неоднократно, а свойство 1НФ – уникальность кортежей (записей) должно соблюдаться, в отношении применён составной ключ из полей fID_Student, fSubject, fSemester.

В результате создано большое отношение, удовлетворяющее всем свойствам 1НФ. Но с ним неудобно работать ввиду его громоздкости и избыточности (многие данные дублируются по несколько раз).

В результате при изменении содержания какого-либо атрибута изменение необходимо выполнить во всех кортежах, где эта информация встречается.