Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_практика_Visual Foxpro.doc
Скачиваний:
6
Добавлен:
26.09.2019
Размер:
1.28 Mб
Скачать

Практическая работа №4.

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

Задача работы: создать структуру и заполнить третью таблицу базы данных, определить первичные ключи и дополнительные индексы для второй и третьей таблиц.

Варианты заданий

1.

  1. Создать первичный ключ по полю Номер личного дела учителя для второй таблицы базы данных

  2. Создать третью таблицу, которая будет содержать сведения о факультативных занятиях каждого ученика Код учащегося. Номер личного дела учащегося. Номер личного дела учителя

  3. Создать первичный ключ по полю Код учащегося» и дополнительные индексы: по Номеру личного дела учащегося, по Номеру личного дела учителя

  4. Модифицировать структуру третьей таблицы, вставив поле Число часов в неделю

  5. Заполнить третью таблицу, учитывая, что первая цифра кода учащегося указывает на учебный предмет факультативного занятия, и каждый ученик может посещать факультативные занятия более чем по одному предмету.

2.

  1. Создать первичный ключ по полю Код товара для второй таблицы базы данных.

  2. Создать третью таблицу, которая будет содержать сведения о заказах: Код заказа, Код заказчика, Код товара, Количество

  3. Создать первичный ключ по полю Код заказа и дополнительные индексы: по Коду заказчика, по Коду товара.

  4. Модифицировать структуру третьей таблицы, вставив поле Дата заказа.

  5. Заполнить таблицу, учитывая, что каждый покупатель может сделать более одного заказа на разные товары

3.

  1. Создать первичный ключ по полю Код книги для второй таблицы базы данных.

  2. Создать третью таблицу, которая будет содержать сведения о заказах. Номер заказа, Код читателя, Код книги.

  3. Создать первичный ключ по полю Номер заказа и дополнительные индексы: по Коду читателя, по Коду книги

  4. Модифицировать структуру третьей таблицы, вставив поле Дата заказа.

  5. Заполнить таблицу, учитывая, что каждый читатель может заказать более одной книги.

4.

  1. Создать первичный ключ по полю Номер рейса для второй таблицы базы данных.

  2. Создать третью таблицу, которая будет содержать сведения о продаже билетов Номер по порядку, Номер пассажира, Номер рейса

  3. Создать первичный ключ по полю Номер по порядку и дополнительные индексы по Номеру пассажира, по Номеру рейса

  4. Модифицировать структуру третьей таблицы, вставив поле Дата вылета

  5. Заполнить таблицу, учитывая, что каждый пассажир может пользоваться услугами авиакомпании более одного раза

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

5.1. Определение отношений между таблицами.

Visual FoxPro различает все типы отношений, но поддерживает только один тип – один-ко-многим или много-к-одному. Установленные постоянные отношения между таблицами будут поддерживаться при создании форм, отчетов, запросов, представлении данных.

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

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

Аналогично, таблица Tovar является родительской и для нее определен первичный ключ по полю Код товара, а в таблице Zakaz по этому же полю определен индекс Regular – это дочерняя таблица. Таким образом, связь между таблицами Tovarl и Zakaz осуществляется по полю Код покупателя.

Для определения отношений между таблицами Pocupatel и Zakaz необходимо выполнить следующие действия:

  1. В окне конструктора проекта во вкладке Data установить курсор на имени базы данных. В нашем случае – Example. Затем нажать кнопку Modify. В результате откроется окно конструктора базы данных Database Designer.

  2. В родительской таблице Pocupatel установить курсор мыши на первичный ключ таблицы. Нажать кнопку мыши и, не отпуская ее, перетащить курсор мыши на индекс дочерней таблицы Zakaz, по которому устанавливается связь, то есть на Код покупателя. Отпустить кнопку мыши.

  3. Чтобы сохранить установленное отношение, необходимо нажать кнопку ОК, чтобы отказаться – Cancel. В результате выполненных действий в окне конструктора базы данных наглядно отобразится созданное отношение между таблицами:

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

  1. По двойному щелчку на линии, соединяющей таблицы, появляется окно диалога Edit Relationship, в котором слева приведены наименование и раскрывающийся список индексов родительской таблицы, а справа аналогичная информация о дочерней таблице. В этом же окне приведен тип отношений между таблицами One To Many:

рис 5.2. Окно диалога Edit Relationship

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

В результате установленных отношений таблица Zakaz связана с двумя таблицами Pocupatel и Tovar, так что зная код операции из таблицы Zakaz всегда можно получить сведения о покупателе и его покупке из таблиц Pocupatel и Tovar.