I. Клиент-серверная архитектура приложения
- Пользователь вводит данные через элементы управления и ввода в графическом интерфейсе
- Клиентская программа отсылает эти данные по сети (как правило через протокол прикладного уровня HTTP с транспортным уровнем TCP/IP) на сервер приложения. В качестве форматов данных для отправки на сервер приложения выступают такие форматы сериализации как JSON, XML и ряд бинарных (но это сейчас очень редко).
- Сервер приложения парсит эти данные, валидирует, анализирует и на основе этого отправляет запрос по сети на сервер базы данных (на сервера БД, если база распределенная). Это как правило делается по протоколу транспортного уровня TCP с кастомными протоколами прикладного уровня (у MySQL свой протокол, у PosgreSQL свой). Также он модет отправлять на каждый запрос от клиента множество запросов объединенных или не объединенных одной транзакцией. Как правило данные на сервер БД отправляются в бинарном виде.
- Сервер базы данных получает от сервера приложения команды на исполнение запросов (это может быть, например, текст SQL команды и следующие за ней бинарные данные аргументов или номер server side prepared statement и далее бинарные данные аргументов), исполняет запросы и отправляет серверу приложения ответ в виде результатов запросов или коды ошибок. Во время исполнения запросов при успешном выполнении их данные на носителе могут изменяться. Происходит это так: сервер БД вызывает функции операционной системы для работы с накопителем, передавая им адреса и значения, которые нужно поменять или добавить или удалить. Эти функции вызывают соответствующие функции драйверов этих накопителей, которые обеспечивают передачу этих данных по интерфейсу связи с этими устройствами хранения. Микропроцессор устройства хранения, получив эти данные, выполняет инструкции, которые приводят к модификации данных на носителе.
- Если сервер БД расположен на одном и том же хосте с сервером приложения, то для связи между ними может использоваться общая память (shared memory), именованные каналы (named pipes) и прочие механизмы межпроцессного взаимодействия (interprocess communication)
II. Десктопное приложение
Отличий особенно нет за исключением того, что нет слоя сервера приложения: клиентская программа и сервер приложения совмещены в одном, передача данных происходит в оперативной памяти.