Чаще всего системы строятся следующим образом. Есть клиентское приложение, которое соединяется с сервером БД и посредством SQL запросов манипулирует данными, отображаемыми в клиентском GUI интерфейсе. Клиентская часть таких систем обычно очень сложная и на сервер баз данных возлагается, в основном задача, хранения и поддержки целостности данных. Иногда базы данных поддерживают хранимые процедуры, что позволяет снизить сетевой трафик между сервером и клиентом. Такая система изображена на рис. 1.
Рис.1
Такой подход имеет свои плюсы и минусы. В плюс идет относительно простая архитектура системы и относительно высокая скорость работы при небольшом количестве клиентских обращений к серверу. В минус идет то, что такую систему сложно модернизировать, так как изменение в БД влекут за собой изменения в клиентской части и наоборот. В случае нехватки ресурсов сервера, приходится либо наращивать его вычислительную мощность либо использовать распределенную БД, которая не всегда сможет решить возникшую проблему.
Существует другой подход построения информационных систем. Система разделяется на три уровня. Каждый уровень имеет свои обязанности и функциональные возможности. На первом уровне находится клиентское приложение, которое обычно "легкое" и занимается в основном презентационным слоем системы. Второй уровень отвечает за бизнес логику системы и взаимодействует с презентационным слоем, отвечая на его запросы. Вторым уровнем называют сервер приложения. На третьем уровне находится база данных, которая, как уже говорилось выше, отвечает за хранения данных и за их целостность. Такая система изображена на рис. 2.
Рис.2
Такой подход тоже имеет свои плюсы и минусы. В плюс идет разделение системы на уровни, позволяющее относительно легко модернизировать систему. Например, сегодня у Вас СУБД MySQL, а завтра Вы купили ORACLE и для этого Вам нужно поправить только второй уровень, а презентационный слой даже не заметит изменений. Или, например, Ваш второй уровень не очень оптимально работает и Вы решили его усовершенствовать, нет проблем: первый и третий уровень могут быть не затронуты.