Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая по СУБД Ms Access-2.doc
Скачиваний:
93
Добавлен:
11.06.2015
Размер:
758.78 Кб
Скачать
  1. Запросы субд

Основные информационные действия по выборкам реализованы в одиннадцати запросах.

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

Например, запрос Processes Quere вспомогательный для использования его в форме редактирования процессов. В отличие от таблицы процессов в него добавлено информационное поле о классе процесса, которое однозначно определяется по его приоритету.

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

    1. Запросы для выполнения задания 1.

• Определить, есть ли в системе процессы с запросами, превышающими возможности системы.

SELECT ResourseQuereis.ProcessID, Resurses.Resurs, ResourseQuereis.CounQuere, Resurses.ResursCount

FROM Resurses INNER JOIN ResourseQuereis ON Resurses.Код = ResourseQuereis.ResourseQuere

WHERE (((ResourseQuereis.CounQuere)>[Resurses].[ResursCount]));

Результат выполнения запроса Задание 1.

    1. Запросы для выполнения задания 2.

Выбрать очередь к ресурсу 'файл data1' в порядке убывания приоритетов.

SELECT ResourseQuereis.ProcessID, Processes.ProcessPrior, Resurses.Resurs, Processes.ProcessOwner

FROM Resurses INNER JOIN (Processes INNER JOIN ResourseQuereis ON Processes.ProcessKey = ResourseQuereis.ProcessID) ON Resurses.Код = ResourseQuereis.ResourseQuere

WHERE (((Resurses.Resurs)="Файл data1"))

ORDER BY Processes.ProcessPrior DESC;

    1. Запросы для выполнения задания 3.

Определить, в очередях к каким ресурсам есть процессы с приоритетом выше, чем у тех, которые владеют ресурсами.

Окончательно задание выполняется запросом Задание 3, использующем ряд вспомогательных запросов.

      1. Вспомогательные запросы к заданию 3.

- ResourseRelease – выборка процессов, имеющих выделенные ресурсы.

Структура запроса:

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

- ResourseNotRelease - выборка процессов, ожидающие выделения системой запрошенного ресурса.

- ResourseReleaseMaxPrior Запрос – осуществляет выборку записей по ресурсам процессов, ожидающих ресурс с процессами, захватившими ресурс и имеющими максимальный приоритет по этому ресурсу.

Соответствующий SQL запрос:

SELECT ResourseNotRelease.ProcessID AS ResourseNotRelease_ProcessID, ResourseNotRelease.ProcessPrior, ResourseNotRelease.ResourseQuere AS ResourseNotRelease_ResourseQuere, ResourseRelease.ProcessID AS ResourseRelease_ProcessID, ResourseReleaseMaxPrior.ResourseQuere AS ResourseReleaseMaxPrior_ResourseQuere, ResourseReleaseMaxPrior.[Max-ProcessPrior]

FROM ((Resurses INNER JOIN ResourseNotRelease ON Resurses.Код = ResourseNotRelease.ResourseQuere) INNER JOIN ResourseRelease ON Resurses.Код = ResourseRelease.ResourseQuere) INNER JOIN ResourseReleaseMaxPrior ON (ResourseRelease.ProcessPrior = ResourseReleaseMaxPrior.[Max-ProcessPrior]) AND (ResourseRelease.ResourseQuere = ResourseReleaseMaxPrior.ResourseQuere) AND (Resurses.Код = ResourseReleaseMaxPrior.ResourseQuere);