Базы данных: Методические указания к лабораторным работам (Создание простейшей базы данных. Главная (управляющая) форма информационной системы «Кафедра»), страница 7

4.Создание подчинённой формы. Создайте новую форму. Назовите её «факультеты». Отобразите в ней все поля, кроме «код_фак».

Теперь в форме «факультеты» нужно создать подчинённую форму, в которой будут показываться данные о группах, входящих в состав показываемого в главной форме факультета. Раздвиньте границы формы «факультеты так, чтобы в ней поместилась таблица с данными о группах. На панели элементов найдите элемент «Подчинённая форма/отчёт» и установите его в форме «факультеты».

Рис. 3. Форма «факультет» с подчинённой формой

В окне мастер подчинённых форм установите переключатель «Имеющиеся таблицы и запросы» и щёлкните по кнопке «Далее».

В следующем окне мастер подчинённых форм выберите таблицу «группы» и все поля, кроме «Код_гр». Далее выберите переключатель «Выбор из списка» и оставьте предложенное название подчинённой формы. На рис.3 показана форма «факультет» с подчиненной формой. В подчинённой форме показаны группы, входящие в состав просматриваемого в основной форме факультета.

Перейдите в режим формы и просмотрите несколько записей.

Поддержка целостности базы данных, имеющей связи «многие ко многим»

Цель работы: научиться создавать вспомогательные таблицы для сведения одной связи «многие ко многим» к двум связям «один ко многим» и обеспечения целостности данных.

В данной работе нужно:

·   создать таблицу «дисциплины» и вспомогательную таблицу «преп_дис»,

·  создать схему связей между таблицами,

·  ввести данные в созданные таблицы.

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

1.Создайте таблицу «дисциплины»  имеющую следующую структуру:

№ п.п.

Имя поля

Тип данных

Размер поля

1

код_дис

Счётчик

Длинное целое

2

предмет

Текстовый

40

3

лекции

Числовой

Целое

4

практика

Числовой

Целое

В полях «лекции» и «практика» хранится количество учебных часов, отводимых на лекции и практику соответственно.

Введите в таблицу «дисциплины» несколько записей.

2.Создайте таблицу «преп_дис»,  имеющую следующую структуру:

№ п.п.

Имя поля

Тип данных

Размер поля

1

код_преп_дис

счётчик

Длинное целое

2

код_преп

Числовой

Длинное целое

3

код_дис

Числовой

Длинное целое

Введите в таблицу «преп_дис»  несколько записей, связывающих преподавателей и дисциплины. На рис. 4 показан пример, в котором преподаватель Андреев В.К. ведёт Pascal, информатику и Fortran, а Семёнова Е.М. ведёт информатику и Pascal.

Рис. 4. Связь между преподавателями и предметами

3. Внесение связей между таблицами в схему данных. Выполнение этого пункта аналогично выполнению п.3 предыдущей лаб. работы. Отличие состоит в том, что с таблицей «преп_дис» связаны две таблицы. Схема данных показана на рис. 5.

Рис. 5. Схема данных с использованием вспомогательной таблицы «преп_дис»

Формы для просмотра и ввода данных, имеющих связи «многие ко многим»

Цели работы:

·  научиться создавать подчинённые формы для просмотра данных из основных таблиц с использованием вспомогательных,

·  научиться создавать экранные формы, с помощью которых при вводе пользователем данных, имеющих связи «многие ко многим», автоматически заполняется вспомогательная таблица (см. лаб. работу №6) со связями «один ко многим».

·   

1.Дополнение формы «преп_просм» подчинённой формой с данными о предметах, которые ведёт преподаватель. Откройте форму «преп_просм» в режиме конструктора. На панели элементов найдите элемент «Подчинённая форма/отчёт» и установите его в открытой форме.