Материал: 905

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

не только номер его зачетки, но и название факультета. Таким образом, первичный ключ будет состоять из двух полей: № зачетки и Факультет.

Первичный ключ – поле (или группа полей), которое единственным образом идентифицирует (определяет) каждую строку в таблице.

По значению первичного ключа может быть найден единственный экземпляр записи.

Внешний ключ

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

Пример

Пусть в базе данных имеются таблицы со сведениями о студентах и об итогах сессии.

Таблица «Студенты»

№ зачетки

Фамилия

Имя

Отчество

Пол

Дата рождения

М 98-23

Иванов

Иван

Петрович

М

11.11.81

М 98-24

Петров

Петр

Петрович

М

12.09.81

М 97-25

Петров

Петр

Петрович

М

11.09.80

Таблица «Итоги сессии»

№ зачетки

Название экзамена

Дата

Оценка

М 98-23

Физика

02.01.99

Хорошо

М 98-23

Математика

08.01.99

Отлично

М 98-23

Информатика

12.01.99

Хорошо

М 98-24

Физика

02.01.99

Отлично

Эти таблицы связаны между собой с помощью поля № зачетки. Поле, используемое как внешний ключ для связи таблиц, в одной из таблиц должно быть ключевым (первичным ключом).

Отношения между таблицами

Отношения между таблицами строятся на основе отношений между объектами, описанными в таблицах.

Существует четыре типа отношений между объектами:

один-к-одному (1:1);

один-ко-многим (1:М);

6

многие-к-одному (М:1);

многие-ко-многим (М:М).

Отношение «один-к-одному»

Отношение 1:1 означает, что каждая запись одной таблицы соответствует только одной записи другой таблицы.

Пример

Предметная область: институт. Объекты: факультеты и деканы. Отношение: занимаемая должность.

Факультеты Деканы

Связь таблиц осуществляется на основании данных в совпадающих полях (внешних ключах).

 

«Факультеты»

 

 

 

 

 

 

«Деканы»

 

 

 

 

 

 

 

 

 

 

 

 

 

Код факультета

 

 

 

Код декана

 

 

 

 

 

 

 

 

Название (полное)

 

 

 

 

ФИО

 

 

Код декана

 

 

 

 

 

 

Ученая степень

 

 

 

 

 

 

 

 

 

Таблица «Факультеты»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код факультета

Название

 

Код декана

 

 

1

ТТМ

 

 

 

 

11

 

 

2

ПГС

 

 

 

 

12

 

Таблица «Деканы»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код декана

 

ФИО

Ученая степень

 

11

Гордыч Д.С.

Канд. техн. наук

 

 

12

Кардаев Е.М.

Канд. техн. наук

 

 

Отношение «один-ко-многим»

Отношение 1:М означает, что одна запись первой таблицы может соответствовать нескольким записям второй таблицы.

7

Пример

Предметная область: институт. Объекты: студенты и экзамены. Отношение: сдача экзамена.

Студент Экзамен

Таблица «Студенты»

 

№ зачетки

Фамилия

Имя

Отчество

Пол

Дата рождения

 

М 98-23

Иванов

Иван

Петрович

М

11.11.81

 

 

М 98-24

Петров

Петр

Петрович

М

12.09.81

 

СМ 99-2

Иванов

Иван

Иванович

М

11.11.82

Таблица «Итоги сессии»

№ зачетки

Название экзамена

Дата

Оценка

М 98-23

Физика

02.01.99

Хорошо

М 98-23

Математика

08.01.99

Отлично

М 98-24

Физика

02.01.99

Удовл.

М 98-24

История

11.01.99

Хорошо

Отношение «многие-к-одному»

Отношение М:1 означает, что одна запись второй таблицы может соответствовать нескольким записям первой таблицы. Этот вид отношений аналогичен отношению 1:М.

Пример

Предметная область: институт. Объекты: студенты и факультеты. Отношение: учеба.

Студенты Факультеты

8

Отношение «многие-ко-многим»

Отношение М:М означает, что одна запись первой таблицы может быть связана с несколькими записями второй таблицы, и наоборот.

Пример

Предметная область: институт. Объекты: преподаватели и дисциплины.

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

Таблица «Дисциплины»

 

Код

Название

Семестр

 

125

Информатика

1

 

53

Информационные технологии

2

 

 

25

Технологии программирования

3

Таблица «Преподаватели»

Код

ФИО

Должность

Код кафедры

 

 

53

Иванов И. П.

Доцент

1

 

 

53

Петров С. В.

Доцент

1

 

 

 

 

125

Смирнов С. Д.

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

1

 

 

125

Петров С. В.

Доцент

1

 

 

 

 

25

Петров С. В.

Доцент

1

 

 

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

Согласно теории реляционных баз данных, для хранения данных, связанных отношением М:М, требуются три таблицы: по одной для каждого объекта и одна для хранения связи между ними. Промежуточная таблица будет содержать идентификаторы (первичные ключи) связанных объектов.

«Дисциплины»

«Занятия»

 

 

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

 

 

 

 

 

 

 

 

 

 

Код

Код занятия

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

 

 

 

 

 

 

 

Название

 

 

 

Код дисциплины

 

 

ФИО

 

 

 

 

 

 

 

Семестр

 

 

 

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

 

 

Должность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код кафедры

9

 

 

 

 

Код

 

 

 

Название

 

Семестр

 

 

 

 

 

 

 

 

125

Информатика

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

53

Информационные технологии

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25

Технологии программирования

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код

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

 

 

 

 

 

 

 

 

 

 

 

 

 

53

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

53

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

125

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

125

 

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

ФИО

Должность

 

Код кафедры

 

 

 

11

 

Иванов И. П.

Доцент

 

1

 

 

 

 

 

 

 

 

 

 

12

 

Петров С. В.

Доцент

 

1

 

 

 

 

 

 

 

 

 

 

13

 

Смирнов С. Д.

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

 

1

 

 

 

 

 

 

 

 

 

 

Проектирование нормализованных баз данных

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

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

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

1НФ

2НФ

3НФ

4НФ

Рис. 1. Нормальные формы

10