Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных ( 2012).doc
Скачиваний:
9
Добавлен:
25.11.2019
Размер:
1.98 Mб
Скачать

7.III. Связь m:n

Связь вида M:N может быть установлена тогда, когда нескольким записям в одной таблице соответствует несколько записей в другой таблице.

  1. В режиме конструктора создайте

    1. таблицу «Бригада» со следующими полями:

  • Nr – числовое – Номер бригады рабочих (первичный ключ);

  • Name - текстовое (50 символов) – Фамилия бригадира.

    1. таблицу «Расписание» со следующими полями:

  • Hold – числовое – Номер трюма (элемент составного ключа отношения);

  • Team_Nr - числовое – Номер бригады рабочих (элемент составного ключа отношения)

ВНИМАНИЕ! Для того чтобы объявить, что в таблице «Расписание» используется составной ключ, Выделите первую строку таблицы конструктора, затем выделите вторую строку при нажатой клавише “CTRL” и, затем, нажмите на кнопку с изображением ключа на панели инструментов

  1. Откройте окно «Схема данных». В окне «Схема данных» выполните команду Связи|Добавить таблицу и в диалоговом окне укажите таблицы «Бригады», «Расписание» и «Размерения», Закройте окно «Добавление таблицы». Расположите макеты таблиц таким образом чтобы связи между таблицами были видны и не закрывались другими таблицами.

  2. Установите связь между полями [Расписания.Hold] и [Размерения.Hold], а также между полями [Расписания.Team_Nr] и [Бригады.Nr] . Не забудьте устанавливать отметки, необходимые для обеспечения проверки целостности базы данных. Закройте окно «Схема данных»

  3. Введите в таблицы «Бригады» и «Расписание» следующие записи (Рисунок 11)

Рисунок 11

Nr

Name

1

Петров

2

Иванов

3

Сидоров

Hold

Team_Nr

1

1

1

2

2

3

3

3

4

2

  1. Попробуйте ввести в таблицу «Расписание» следующие записи (Рисунок 12) . Будьте готовы дать пояснения к результатам выполнения этой операции

Рисунок 12

Hold

Team_Nr

5

1

1

4

4

3

  1. Выполните команду создания нового запроса при помощи конструктора. Укажите, что запрос будет строиться на основании данных таблиц «Бригады», «Расписание» и «Размерения». В верхней строке таблицы формирования запроса укажите поля, которые следует использовать в запросе: [Расписание.Hold], [Расписание.Team_Nr] и [Бригады.Name].

  2. Выполните запрос. Обратите внимание на то, что при помощи дополнительной таблицы «Расписание» реализована связь вида M:N между таблицами «Размерения» и «Бригады». Эта связь использована для построения запроса.

  3. Сохраните запрос под названием «Расписание работы»

КОНТРОЛЬНОЕ ЗАДАНИЕ

================== Обязательные для выполнения задания ==================

  1. Создайте следующие таблицы

    1. [Опасные грузы](Code, Description)

    2. [Виды груза](Type, Description),

где [Опасные грузы].Code – код опасного груза (первичный ключ)

[Опасные грузы].Description – текстовое описание опасного груза (например, “взрывоопасный” или “кислота”)

[Виды груза].Type – вид груза (первичный ключ) - 20”, 40”, R20”

[Виды груза]. Description – название типа груза (например, “Контейнер 20 фут”)

  1. Введите в созданные таблицы такое количество записей, чтобы обеспечить возможность связывания этих таблиц с таблицей «Каргоплан»

  2. Установите связи между таблицами Каргоплан.Тип - [Виды груза].Type, Каргоплан.Код - Опасные грузы].Code с обеспечением проверки целостности связей

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

Указание. Для создания отчета предварительно сформируйте соответствующий запрос с использованием связей между таблицами.

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

  1. Рассчитайте моменты веса груза в каждом трюме судна

Указание. Момент веса какого-либо груза рассчитывается как произведение веса груза на плечо (расстояние центра тяжести груза от начала координат). Суммарный вес груза в трюме можно получить, используя запрос, построенный на базе таблицы «Каргоплан». Расстояния от начала координат до геометрического центра каждого трюма даны в таблице «Размерения»

  1. Рассчитайте координату центра тяжести груза судна вдоль продольной оси судна

Указание. Центр тяжести системы из N грузов массой M1, M2,…Mn, расположенных в координатах X1, X2,…Xn (рисунок 3),

можно рассчитать по следующей формуле:

Xo = (X1*M1+X2*M2+…+Xn*Mn) / (M1+M2+…+Mn) (1)

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

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

  1. Рассчитайте координату центра тяжести загруженного судна вдоль продольной оси судна

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

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