Шаг 14 - Разделение таблиц

Реляционная модель баз данных подразумевает под собой понятие уровней нормальности таблиц. Есть пять уровней. С ними мы познакомимся попозже, а пока посмотрим как в таблице бороться с избыточностью. Давате к нашей базе данных "Телефоны" добавим поле должность. Дл этого выделите таблицу и нажмите кнопку "Конструктор". Внесите поле и закройте его. Также внесите вот такие данные.

14_1.gif (3903 b)

Как видите поле "Должность" имеет повторяющиеся значения. То есть количество названий специальностей ограничено и они будут повторяться. В этом нет ничего страшного, но вот такой вопрос. Что вы будете делать, если специальность программист будет переименована в программер :-) искать во всей таблице ??? А если у Вас людей работает тысячи. Кроме того под это поле нужно выделять место. Проще будет поставить код специальности и место будет меньше. Одно из главных правил "Повторяющиеся" записи должны быть преобразованы в отдельную таблицу. Можно сказать, что мы создаем классификатор. Слово классификатор больше по смыслу подходит. Итак, нам нужна таблица с наваниями специальностей. Давайте ее создадим. Вот такую.

14_2.gif (1837 b)

Занесите в нее названия специальностей. Их всего две: программист и оператор.

Вот теперь нам надо связать эти две таблицы. Откройте таблицу "телефоны" в конструкторе. Удалите поле должность. Будем создавать новое поле, но начнем сразу с выбора типа поля. Там есть пункт мастер подстановок.

14_3.gif (3014 b)

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

14_4.gif (2686 b)

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


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 21.07.2000