- •1. Введение. Базы данных и управление ими
- •1.1. Предмет курса и задачи курса
- •1.2. Система баз данных: данные, аппаратное обеспечение
- •2. Архитектура информационной системы
- •2.1. Компоненты систем баз данных
- •2.2. Три уровня архитектуры: внешний, концептуальный и внутренний
- •2.3. Архитектура «Клиент/сервер»
- •2.4. Системы управления базами данных
- •2.5. Локальные информационные системы
- •2.6. Способы разработки и выполнения приложений
- •2.7. Схема обмена данными при работе с бд
- •Контрольные вопросы по курсу «Управление данными»
2.7. Схема обмена данными при работе с бд
Рассмотрим внутренние механизмы обмена данными на примере организации информационной системы, функционирующей на одном персональном компьютере, когда пользователь работает с "полной" версией программы СУБД. В качестве операции обмена данными между пользователем и БД используем операцию выбора данных. Операции обмена данными при добавлении, модификации (замене) или удалении отличаются несущественно. Схема обмена данными представлена на рис. 2.9, где тонкими стрелками обозначены связи по управлению, утолщенными – связи по информации.
Основные этапы взаимодействия пользователя с БД:
Пользователь терминала (1) в процессе диалога с приложением формулирует запрос (2) на некоторые данные из БД.
Приложение (3) на программном уровне средствами языка манипулирования данными формулирует запрос (4), с которым обращается к СУБД.
СУБД, используя свои системные управляющие блоки, таблицы и словарь данных, определяет местоположение требуемых данных и обращается (5) за ними к ОС.
Программы методов доступа файловой системы ОС считывают (6) из внешней памяти искомые данные и помещают их в системные буферы СУБД.
СУБД, преобразуя полученные данные к требуемому формату, посылает их (7) в соответствующую область программы и сигнализирует (8) о завершении операции каким-либо образом (например, кодом возврата).
Результаты выбора данных из базы приложение (3)отображает (9) на терминале пользователя (1).
Рис. 2.9. Схема обмена данными при работе с базой данных
Цикл взаимодействия пользователя с БД упрощается, если пользователь работает в диалоговом режиме с СУБД (без приложения). В этом случае основные этапы взаимодействия пользователя с БД:
Пользователь терминала (10) формулирует на языке запросов СУБД, например QBE, по связи (11) требование на выборку некоторых данных из базы.
СУБД определяет местоположение требуемых данных и обращается (5) за ними к ОС, которая считывает (6) из внешней памяти искомые данные и помещает их в системные буферы СУБД.
Информация из системных буферов преобразуется (12) к требуемому формату, после чего отображается (13) на терминале пользователя (10).
Если компьютер и ОС поддерживают многопользовательский режим работы, то в вычислительной системе (ВС) может функционировать многопользовательская СУБД (МСУБД). В этом случае в ВС возможно одновременное обслуживание нескольких пользователей, работающих непосредственно с СУБД или с приложениями, каждое из которых может поддерживать работу с одним или несколькими пользователями. Иногда к ВС подключается так называемый «удаленный пользователь», находящийся на некотором удалении от ЭВМ и соединенный с ней при помощи какой-либо передающей среды (интерфейс ЭВМ, телефонный канал связи, радиоканал, оптико-волоконная линия и т.д.). Обычно такой пользователь программным способом эмулируется под обычного локального пользователя. СУБД, как правило, этой подмены «не замечает» и работает по обслуживанию запросов обычным образом.
В МСУБД при выполнении различных операций процессы, подобные описанным выше и показанным на рис. 2.10, протекают параллельно. При обслуживании нескольких параллельных источников запросов (от пользователей и приложений) СУБД так планирует использование своих ресурсов и ресурсов ЭВМ, чтобы обеспечить независимое или почти независимое выполнение операций, порождаемых запросами. МСУБД часто применяются на больших и средних ЭВМ, где основным режимом использования ресурсов является коллективный доступ.
На персональном компьютере пользователь обычно работает один, но с различными программами, в том числе и одновременно (точнее попеременно). Иногда такими программами оказываются СУБД: различные программы или разные копии одной и той же СУБД. Последняя ситуация возникает, например, при работе с различными базами данных с помощью СУБД Access. Технология одновременной работы пользователя с несколькими программами неплохо реализована в WINDOWs. Каждая выполняемая программа имеет свое окно взаимодействия с пользователем, и имеются удобные средства переключения между программами. При работе в WINDOWs СУБД избавлена от необходимости поддержания нескольких сеансов работы с пользователем.
Рис. 2.10. Схема обмена данными при работе с БД
Взаимодействие пользователя, СУБД и ОС при обработке запроса на получение данных (цифрами отмечена последовательность действий):
Пользователь в процессе диалога с приложением посылает СУБД запрос на получение данных из БД (стрелка 1). Запрос формулируется на программном уровне средствами языка манипулирования данными.
СУБД анализирует права пользователя и внешнюю модель данных и подтверждает или запрещает доступ пользователя к запрошенным данным (стрелка 2, 3).
В случае запрета на доступ к данным СУБД сообщает пользователю об этом (стрелка 12) и прекращает дальнейший процесс обработки запроса. Если доступ подтвержден, то СУБД определяет часть концептуальной модели, которая затрагивается запросом пользователя (стрелка 4).
СУБД получает информацию о запрошенной части концептуальной модели (стрелка 5).
СУБД, используя свои системные управляющие блоки, таблицы и словарь данных, запрашивает информацию о местонахождении данных на физическом уровне (файлы или физические адреса) (стрелка 6).
В СУБД возвращается информация о местоположении данных в терминах операционной системы (стрелка 7).
СУБД, используя средства операционной системы, обращается к ОС за необходимыми данными (стрелка 8).
ОС, используя программы методов доступа файловой системы, осуществляет перекачку информации из устройств хранения и пересылает ее в системный буфер (стрелка 9).
ОС оповещает СУБД каким-либо образом (например, кодом возврата) об окончании пересылки данных (стрелка 10).
СУБД выбирает из доставленной информации, находящейся в системном буфере, только то, что нужно пользователю, преобразует полученные данные к требуемому формату и пересылает эти данные в рабочую область пользователя (стрелка 11).
СУБД обладает достаточно развитым интеллектом, поэтому, если пользователь повторно обращается к СУБД с новым запросом, то права доступа уже не проверяются. Если анализ нового запроса показывает, что необходимые данные уже находятся в системном буфере, то СУБД осуществит только действия стрелки 11, пропустив считывание из БД.