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

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

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

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

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

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

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

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

Студенты

Преподаватели

Дисциплины

ФИО студента

ФИО преподавателя

Дисциплина

1.   

1.   

1.   

Алгоритмы и структуры данных

2.   

2.   

2.   

Английский язык

3.   

3.   

3.   

Линейная алгебра

4.   

4.   

Математический анализ

5.   

5.   

Операционные системы, среды и оболочки

6.   

6.   

Программирование

7.   

7.   

Теория вероятности и математическая статистика

8.   

Учебный план

Дисциплина

Семестр

Количество часов

Форма отчетности

Преподаватель

Должность

1

2

1

60

зачет

Доцент

1

3

1

24

зачет

Преп.

1

3

1

28

экзамен

Преп.

1

4

1

28

зачет

Ст. преп.

1

4

1

32

экзамен

Проф.

1

6

1

36

зачет

Преп.

1

6

1

32

экзамен

Доцент

1

2

3

60

зачет

Доцент

1

4

3

20

зачет

Преп.

1

4

3

28

экзамен

Проф.

1

1

3

32

экзамен

Доцент

1

7

3

32

экзамен

Доцент

1

5

3

36

зачет

Преп.

1

5

3

32

экзамен

Преп.


Результаты сессии

Студент

Учебный план

Оценка

1

1

1

1

2

5

1

3

1

1

4

4

1

5

1

1

6

5

1

7

1

2

1

1

2

2

5

2

3

1

2

4

4

2

5

1

2

6

5

2

7

1

1

1

1

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10