double arrow

Универсальное отношение

Рассмотрим задачу проектирования БД на базе следующей таблицы:

Таблица «Сессия»

ФИО студента Семестр Дисциплина Форма отчетности Оценка Количество часов ФИО преподавателя Должность
Иванов В.П. Английский язык Зачет Цветкова А.Ю. Доцент
Математический анализ Зачет Рыбин К.К. Ст. преп.
Математический анализ Экзамен Раков И.И. Проф.
Программирование Зачет Незабудкина З.П. Преп.
Программирование Экзамен Зайчиков А.А. Доцент
Линейная алгебра Зачет Волков Г.И. Преп.
Линейная алгебра Экзамен Волков Г.И. Преп.

ФИО студента Семестр Дисциплина Форма отчетности Оценка Количество часов ФИО преподавателя Должность
Петрова А.П. Английский язык Зачет Цветкова А.Ю. Доцент
Математический анализ Зачет Рыбин К.К. Ст. преп.
Математический анализ Экзамен Раков И.И. Проф.
Программирование Зачет Незабудкина З.П. Преп.
Программирование Экзамен Зайчиков А.А. Доцент
Линейная алгебра Зачет Волков Г.И. Преп.
Линейная алгебра Экзамен Волков Г.И. Преп.
                 

Шкала оценок: 0 – незачет, 1 – зачет, 2, 3, 4, 5 – оценки.

Этот вариант таблицы «Сессия» не является отношением, т.к. большинство ее столбцов не атомарны. Значение любого атрибута реляционной таблицы является атомарным, если само это значение, в свою очередь, не является реляционной таблицей (отношением). Атомарными являются значения столбцов ФИО СТУДЕНТА, СЕМЕСТР. Остальные столбцы таблицы – множественные.

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

Для преобразования данных в отношение необходимо реконструировать таблицу, например, с помощью процесса вставки. Результат имеет вид:

Универсальное отношение «СЕССИЯ»

ФИО студента Семестр Дисциплина Форма отчетности Оценка Количество часов ФИО преподавателя Должность
Иванов В.П. Английский язык Зачет Цветкова А.Ю. Доцент
Иванов В.П. Математический анализ Зачет Рыбин К.К. Ст. преп.
Иванов В.П. Математический анализ Экзамен Раков И.И. Проф.
Иванов В.П. Программирование Зачет Незабудкина З.П. Преп.
Иванов В.П. Программирование Экзамен Зайчиков А.А. Доцент
Иванов В.П. Линейная алгебра Зачет Волков Г.И. Преп.
Иванов В.П. Линейная алгебра Экзамен Волков Г.И. Преп.
Петрова А.П. Английский язык Зачет Цветкова А.Ю. Доцент
Петрова А.П. Математический анализ Зачет Рыбин К.К. Ст. преп.
Петрова А.П. Математический анализ Экзамен Раков И.И. Проф.
Петрова А.П. Программирование Зачет Незабудкина З.П. Преп.
Петрова А.П. Программирование Экзамен Зайчиков А.А. Доцент
Петрова А.П. Линейная алгебра Зачет Волков Г.И. Преп.
Петрова А.П. Линейная алгебра Экзамен Волков Г.И. Преп.

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

Однако при использовании универсального отношения возникают следующие проблемы:

1. Избыточность данных. Значения столбцов таблицы многократно повторяются. Повторяются также и некоторые наборы значений столбцов, например, данные о дисциплине.

2. Потенциальная противоречивость. Если при вводе данных, например, количества часов для дисциплины АНГЛИЙСКИЙ ЯЗЫК, была допущена ошибка, то для ее исправления необходимо найти все строки, содержащие сведения об этой дисциплине, и во всех этих строках произвести изменения. Также при заполнении такой таблицы могут быть использованы различные формы записи одного и того же значения, например: АНГЛ. ЯЗЫК и АНГЛИЙСКИЙ ЯЗЫК, МАТ. АНАЛИЗ и МАТЕМАТИЧЕСКИЙ АНАЛИЗ.

3. Аномалии модификации:

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

b. аномалии удаления. Обратная проблема возникает при необходимости удаления записей, содержащих информацию об успеваемости всех студентов по конкретной дисциплине. При таком удалении будут утрачены и сведения о преподавателе, ведущем данную дисциплину.

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

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

Студенты   Преподаватели   Дисциплины
               
ФИО студента   ФИО преподавателя   Дисциплина
1. Иванов В.П.   1. Волков Г.И.   1. Алгоритмы и структуры данных
2. Петрова А.П.   2. Зайчиков А.А.   2. Английский язык
3. Сидоров К.К.   3. Карпов К.Ю.   3. Линейная алгебра
      4. Незабудкина З.П.   4. Математический анализ
      5. Раков И.И.   5. Операционные системы, среды и оболочки
      6. Рыбин К.К.   6. Программирование
      7. Соболев И.Г.   7. Теория вероятности и математическая статистика
      8. Цветкова А.Ю.      
Учебный план
             
Дисциплина Семестр Количество часов Форма отчетности Преподаватель Должность
зачет Цветкова А.Ю. Доцент
зачет Волков Г.И. Преп.
экзамен Волков Г.И. Преп.
зачет Рыбин К.К. Ст. преп.
экзамен Раков И.И. Проф.
зачет Незабудкина З.П. Преп.
экзамен Зайчиков А.А. Доцент
зачет Цветкова А.Ю. Доцент
зачет Карпов К.Ю. Преп.
экзамен Раков И.И. Проф.
экзамен Зайчиков А.А. Доцент
экзамен Соболев И.Г. Доцент
зачет Незабудкина З.П. Преп.
экзамен Незабудкина З.П. Преп.

Результаты сессии
     
Студент Учебный план Оценка

В таблицах РЕЗУЛЬТАТЫ СЕССИИ и УЧЕБНЫЙ ПЛАН конкретные значения заменены на их номера в других таблицах. Это значительно упрощает процедуру модификации текстовых значений.

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

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

После применения правил нормализации логические группы данных располагаются не более чем в одной таблице. Это дает следующие преимущества:

- данные легко обновлять или удалять;

- исключается возможность рассогласования копий данных;

- уменьшается возможность введения некорректных данных.


Сейчас читают про: