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

 

Рассмотрим задачу проектирования БД на базе сводной таблицы, пример которой приведен на рис. 6.1. Предложенная таблица отражает результаты сдачи сессии (шкала оценок: 0 – незачет; 1 – зачет;  2, 3, 4, 5 – экзаменационная оценка).

Этот вариант таблицы «Сессия» не является отношением, так как большинство ее столбцов не атомарны. Атомарными являются лишь значения столбцов «ФИО студента», «Семестр». Остальные столбцы таблицы – множественные.

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

Однако очевидно, что такое преобразование приводит к возникновению большого объема избыточных данных.

 

ФИО студента

Семестр

Дисциплина

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

Оценка

Кол-во часов

ФИО

преподавателя

Иванов В. П.

1

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

зачет

1

60

Цветкова А. Ю.

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

зачет

1

28

Рыбин К. К.

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

экзамен

5

32

Раков И. И.

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

зачет

1

36

Незабудкина З. П.

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

экзамен

5

32

Зайчиков А. А.

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

зачет

1

24

Волков Г. И.

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

экзамен

4

28

Волков Г. И.

История Отечества

экзамен

5

24

Москвин А. П.

Петрова А.П.

1

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

зачет

1

60

Цветкова А. Ю.

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

зачет

1

28

Рыбин К. К.

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

экзамен

3

32

Раков И. И.

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

зачет

1

36

Незабудкина З. П.

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

экзамен

4

32

Зайчиков А. А.

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

зачет

1

24

Волков Г. И.

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

экзамен

4

28

Волков Г. И.

История Отечества

экзамен

5

24

Москвин А. П.

Сидоров К.К.

3

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

зачет

1

60

Цветкова А. Ю.

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

зачет

1

20

Карпов К. Ю.

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

экзамен

5

28

Раков И. И.

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

экзамен

5

32

Зайчиков А. А.

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

экзамен

4

32

Соболев И. Г.

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

зачет

1

36

Незабудкина З. П.

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

экзамен

4

32

Незабудкина З. П.

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

зачет

1

24

Лабиринтов Е. Н.

 

Рис. 6.1. Исходные данные для создания БД «Сессия»

 

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

 

ФИО студента

Семестр

Дисциплина

Форма

отчетности

Оценка

Кол-во часов

ФИО

преподавателя

Иванов В. П.

1

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

зачет

1

60

Цветкова А.Ю.

Иванов В. П.

1

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

зачет

1

28

Рыбин К.К.

Иванов В. П.

1

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

экзамен

5

32

Раков И.И.

Иванов В. П.

1

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

зачет

1

36

Незабудкина З.П.

Иванов В. П.

1

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

экзамен

5

32

Зайчиков А.А.

Иванов В. П.

1

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

зачет

1

24

Волков Г.И.

Иванов В. П.

1

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

экзамен

4

28

Волков Г.И.

Иванов В. П.

1

История Отечества

экзамен

5

24

Москвин А.П.

Петрова А. П.

1

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

Зачет

1

60

Цветкова А.Ю.

Петрова А. П.

1

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

Зачет

1

28

Рыбин К.К.

Петрова А. П.

1

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

экзамен

3

32

Раков И.И.

Петрова А. П.

1

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

Зачет

1

36

Незабудкина З.П.

Петрова А. П.

1

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

экзамен

4

32

Зайчиков А.А.

Петрова А. П.

1

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

Зачет

1

24

Волков Г.И.

Петрова А. П.

1

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

экзамен

4

28

Волков Г.И.

Петрова А. П.

1

История Отечества

экзамен

5

24

Москвин А.П.

Сидоров К. К.

3

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

Зачет

1

60

Цветкова А.Ю.

Сидоров К. К.

3

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

Зачет

1

20

Карпов К.Ю.

Сидоров К. К.

3

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

экзамен

5

28

Раков И.И.

Сидоров К. К.

3

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

экзамен

5

32

Зайчиков А.А.

Сидоров К. К.

3

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

экзамен

4

32

Соболев И.Г.

Сидоров К. К.

3

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

зачет

1

36

Незабудкина З.П.

Сидоров К. К.

3

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

экзамен

4

32

Незабудкина З.П.

Сидоров К. К.

3

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

зачет

1

24

Лабиринтов Е.Н.

 

Рис. 6.2. Универсальное отношение «Сессия»

 

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

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

2. Потенциальная противоречивость. Если при вводе данных, например, количество часов для дисциплины «Английский язык», была допущена ошибка, то для ее исправления необходимо найти все строки, содержащие сведения об этой дисциплине, и во всех этих строках провести изменения. Более того, при заполнении такой таблицы могут быть использованы различные формы записи одного и того же значения – например: «Англ. язык» и «Английский язык»; «Мат. анализ» и «Математический анализ».

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

 

   Студенты              Преподаватели                               Дисциплины

ФИО студента

 

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

 

Дисциплина

1

Иванов В. П.

 

1

Волков Г. И.

 

1

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

2

Петрова А. П.

 

2

Зайчиков А. А.

 

2

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

3

Сидоров К. К.

 

3

Карпов К. Ю.

 

3

История Отечества

 

 

 

4

Лабиринтов Е. Н.

 

4

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

 

 

 

5

Москвин А. П.

 

5

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

 

 

 

6

Незабудкина З. П.

 

6

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

 

 

 

7

Раков И. И.

 

7

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

 

 

 

8

Рыбин К. К.

 

8

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

 

 

 

9

Соболев И. Г.

 

9

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

 

 

 

10

Цветкова А. Ю.

 

 

 

Учебный план                                                        Результаты сессии

Дисциплина

Семестр

Кол-во часов

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

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

 

Студент

Учебный план

Оценка

1

2

1

60

зачет

10

 

1

1

1

2

3

1

24

экзамен

5

 

1

2

5

3

4

1

24

зачет

1

 

1

3

1

4

4

1

28

экзамен

1

 

1

4

4

5

5

1

28

зачет

8

 

1

5

1

6

5

1

32

экзамен

7

 

1

6

5

7

7

1

36

зачет

6

 

1

7

1

8

7

1

32

экзамен

2

 

1

8

5

9

2

3

60

зачет

10

 

2

1

1

10

5

3

20

зачет

3

 

2

2

5

11

5

3

28

экзамен

7

 

2

3

1

12

1

3

32

экзамен

2

 

2

4

4

13

8

3

32

экзамен

9

 

2

5

1

14

6

3

36

зачет

6

 

2

6

3

15

6

3

32

экзамен

6

 

2

7

1

16

9

3

24

зачет

4

 

2

8

4

 

Рис. 6.3. Разделение универсального отношения «Сессия»

 

Заменим в таблицах «Результаты сессии» и «Учебный план» конкретные значения на их номера в других таблицах и получим, помимо значительного упрощения процедуры модификации текстовых значений, дополнительные возможности по включению строк в таблицы «Студенты», «Преподаватели», «Дисциплины», что значительно расширяет возможности БД.

Теперь при изменении названия «Математический анализ» на «Мат. анализ» исправляется единственное значение в таблице «Дисциплины». И даже если оно вводится с ошибкой, то это не может повлиять на связь между дисциплиной, преподавателем и студентом (в связующей таблице «Результаты сессии» используются номера дисциплин учебного плана, а не их названия).

 

 

К оглавлению

Назад к разделу "Глава 6. Проектирование реляционной базы данных"

Вперед к разделу "6.2. Функциональная и многозначная зависимости"