Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_04_MA_1a.rtf
Скачиваний:
10
Добавлен:
16.07.2019
Размер:
20.63 Mб
Скачать

Указания по выполнению

1.2.1.Откройте разработанную Вами в лабораторной работе №1 БД «Магазин». Согласно инфологической модели, в таблице «Товары» поле «Код» является полем первичного ключа, а в таблице «Поставщики» полем первичного ключа является «Код поставщика». Для таблицы «Товары» поле «Код поставщика» является полем вторичного ключа, по нему и будет осуществляться связь между двумя таблицами.

Установите ключи в этих таблицах. Для этого в окне БД щелкните по названию соответствующей таблицы и далее по вкладке Конструктор. Для установки

к люча необходимо выделить поле и щелкнуть Правка – Ключевое поле. При этом перед полем появляется знак ключа

Совпадение записей в ключевых полях не допускаются. Откройте назван­ные таблицы и убедитесь в этом (рис.2).

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

В нашем случае поле «Код поставщика» в таблице «Поставщики» - ключевое, а в «Товары» является полем вторичного ключа, и в этом поле совпадения допускаются, так как согласно нашей модели каждый поставщик может поставлять различные товары.

Обратите внимание, что программа выставляет тип отношений связи в зависимости от определения свойств полей. В данной работе применяется явный способ указания свойств полей связи (для главной таблицы «Поставщики» поле «Код поставщика» выбирается индексированным (совпадения не допускаются), а в таблице «Товары» поле «Код поставщика» индексированное (совпадения допускаются).

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

В данном случае связь поставщики - товары является одно-многозначной, так как один поставщик поставляет разные наименования товаров, а товар одного наименования поставляется единственным поставщиком.

Это означает, что по полю «Код поставщика» осуществляется одномногозначная связь между таблицами «Поставщики» и «Товары», что графически изображается на схеме данных (рис.2).

Рис.2. Определение таблиц «Поставщики» и «Товары» в режиме конструктора. При правильном определении свойств поля «Код поставщика» устанавливается связь 1:М.

Создание схемы данных

Для связывания таблиц необходимо выбрать следующие пункты меню: Сервис - Схема данных. В появившемся окне Добавление таблицы необходимо выделить таблицу «Поставщики» и щелкнуть по кнопке Добавить. Аналогично добавьте таблицу «Товары» и выберите Закрыть.

В окне «Схема данных» в главной таблице «Поставщики» щелкните левой кнопкой мыши по полю «Код поставщика».

Далее, при нажатой кнопке мыши, протащите ее указатель в поле «Код поставщика» подчиненной таблицы «Товары» и отпустите мышь. Откроется окно Изменение связей. При этом в строке «Тип отношения» автоматически установится один-ко-многим.

В возникшем окне Изменение связи включите флажки «Обеспечение целостности данных», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей».

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

Убедитесь, что связь существует. Для этого, например, в таблице «Поставщики» измените в поле «Код поставщика» номер 1 на 6, при этом в таблице «Товары» в поле «Код поставщика» должны произойти автоматические изменения значений кода с 1 на 6.

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

Пусть теперь каждый поставщик поставляет один и только один товар. В этом случае осуществляется связь один-к-одному.

Наиболее просто получить таблицы новой БД следующим образом:

- щелкните в окне БД по таблице «Товары»;

- выберите Правка - Копировать;

- выберите Правка - Вставить и дайте имя таблице «ТоварыН».

Проделайте аналогичные действия в БД «Магазин» для получения таблицы «ПоставщикиН».

Откройте таблицу «ТоварыН» и отредактируйте записи в поле «Код поставщика» так, чтобы не было повторяющихся цифр в поле «Код поставщика», например, так:

Код поставщика

1

5

2

6

7

3

4

8

9

Всех новых поставщиков, имеющих коды 5,6,7,8,9, необходимо описать в таблице «ПоставщикиН». Для этого выполните следующее:

- откройте таблицу «ПоставщикиН»;

- создайте пять новых записей, записав в поле «Код поставщика» последовательно цифры 5, 6, 7, 8, 9;

- заполните записями поля БД, соответствующие значениям 5,6,7,8,9 поля «Код поставщика». При этом можно скопировать предыдущие записи.

Откройте таблицу «ТоварыН» в режиме Конструктора. В свойствах поля «Код поставщика» выберите из падающего меню следующее:

Индексированное поле

Да (совпадения не допускаются)

1.2.3.Выберите в главном меню Сервис - Схема данных. Добавьте таблицы «ТоварыН» и «ПоставщикиН». Для этого щелкните правой кнопкой мыши по бланку Схемы данных и выберите Добавить таблицу. Возникнет окно «Добавление таблицы». Из падающего меню выделите таблицу «ТоварыН» и щелкните по кнопке Добавить. Далее выделите «ПоставщикиН» и щелкните Добавить. Закройте окно.

Поставьте мышку на имя поля «Код поставщика» в таблице «ПоставщикиН» и, не отпуская кнопку мыши, перетащите ее указатель на поле «Код поставщика» в таблице «ТоварыН». Отпустите мышь. Появиться окно «Изменение связей». Установите все флажки, как и ранее.

Убедитесь, что связь 1: 1 по полю «Код поставщика» получилась (рис.2а).

Рис.2а. Вид бланка схемы данных со связями между таблицами «Товары» и «Поставщики» а также «ТоварыН» и «ПоставщикиН».

Дополнительное задание

Добавьте таблицу «Продавцы» и установите связь 1:М с таблицей «Товары» по полю «Код» и связь 1:М с таблицей «Поставщики». Рассмотрите отношение связи многие-ко-многим.

Предъявите преподавателю:

1.Таблицы «Товары», «Поставщики» и «ТоварыН», «ПоставщикиН».

2.Схему данных с указанием связей между таблицами «Товары» и «Поставщики»; «ТоварыН» и «ПоставщикиН».

Контрольные вопросы

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

2. Что произойдет в таблице «Товары», если в таблице «Поставщики» заменить код поставщика 1 на 8?

3. Что произойдет, если в таблице «Товары» есть поставщик с конкретным значением кода поставщика, а в таблице «Поставщики» его нет?

4. Какая разница в инфологических моделях и свойствах таблиц«Товары», «Поставщики» и «ТоварыН», «ПоставщикиН»?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]