- •33 Курсовая на тему создание базы данных «Операционная система»
- •Введение
- •Основные аспекты современных систем управления базами данных
- •Базы данных
- •Реляционная модель данных
- •Реляционная база данных
- •Система управления базами данных
- •Структура базы данных
- •Механизм запросов и язык sql
- •Нормализация отношений
- •Информационные связи между таблицами
- •Постановка задачи
- •Основные сущности операционной системы
- •Процессы и потоки
- •Ресурсы
- •Выборки:, реализующие суть работы
- •Интерфейс пользователя
- •Основные сведения об интерфейсе пользователя
- •Главная форма базы данных «Операционная система»
- •Формы результатов задания
- •Просмотр и редактирования форм задания основных данных
- •Запросы субд
- •Запросы для выполнения задания 1.
- •Запросы для выполнения задания 2.
- •Запросы для выполнения задания 3.
- •Вспомогательные запросы к заданию 3.
- •Основной запрос для Задания 3.
- •Запросы для выполнения задания 4.
- •Вспомогательные запросы к заданию 4.
- •Основной запрос Задания 4
- •Заключение
Запросы субд
Основные информационные действия по выборкам реализованы в одиннадцати запросах.
Некоторые запросы созданы для редактирования данных, некоторые являются вспомогательными для запросов, реализующих суть заданий.
Например, запрос Processes Quere вспомогательный для использования его в форме редактирования процессов. В отличие от таблицы процессов в него добавлено информационное поле о классе процесса, которое однозначно определяется по его приоритету.
Реализация заданий выполнена через запросы, и далее отражены запросы в группировке выполнения заданий.
Запросы для выполнения задания 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.
Запросы для выполнения задания 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;
Запросы для выполнения задания 3.
• Определить, в очередях к каким ресурсам есть процессы с приоритетом выше, чем у тех, которые владеют ресурсами.
Окончательно задание выполняется запросом Задание 3, использующем ряд вспомогательных запросов.
Вспомогательные запросы к заданию 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);