У зв'язку з розширенням ринку інформаційних послуг виробники програмного забезпечення стали випускати усе більше інтелектуальні, а виходить, і об'ємні програмні комплекси. Багато організацій й окремих користувачів часто не могли розмістити придбані продукти на власних ЕОМ. Для обміну інформацією і її поширення були створені мережі ЕОМ, а узагальнюючі програми й дані стали встановлювати на спеціальних файлових серверах.
Завдяки працюючої з файловими серверами СУБД, безліч користувачів одержують доступ до тим самим баз даних. Спрощується розробка різних автоматизованих систем керування організаціями. Однак при такому підході вся обробка запитів із програм або з терміналів користувальницьких ЕОМ на них і виконується, тому для реалізації навіть простого запиту необхідно зчитувати з файлового сервера або записувати на нього цілі файли, а це веде до конфліктних ситуацій і перевантаження мережі. Для виключення зазначених недоліків була запропонована технологія клієнт-сервер, але при цьому знадобилася єдина мова спілкування із сервером – вибір припав на SQL.
Технология клієнт-сервер означає такий спосіб взаємодії програмних компонентів, при якому вони утворять єдину систему. Як видно із самої назви, існує якийсь клієнтський процес, що вимагає певних ресурсів, а також серверний процес, що ці ресурси надає. Зовсім необов'язково, щоб вони перебували на одному комп'ютері. Звичайно прийнято розміщати сервер на одному вузлі локальної мережі, а клієнтів – на інших вузлах.
У контексті бази даних клієнт управляє користувальницьким інтерфейсом і логікою додатка, діючи як робоча станція, на якій виконуються додатки баз даних. Клієнт приймає від користувача запит, перевіряє синтаксис і генерує запит до бази даних мовою SQL або іншій мові бази даних, що відповідає логіку додатка. Потім передає повідомлення серверу, очікує надходження відповіді й форматує отримані дані для подання їхньому користувачеві. Сервер приймає й обробляє запити до бази даних, після чого відправляє отримані результати назад клієнтові. Така обробка включає перевірку повноважень клієнта, забезпечення вимог цілісності, а також виконання запиту й відновлення даних. Крім цього підтримується керування паралельністю й відновленням.
Архітектура клієнт-сервер має ряд переваг:
· забезпечується більше широкий доступ до існуючих баз даних;
· підвищується загальна продуктивність системи: оскільки клієнти й сервер перебувають на різних комп'ютерах, їхні процесори здатні виконувати додатка паралельно. Настроювання продуктивності комп'ютера із сервером спрощуються, якщо на ньому виконується тільки робота з базою даних;
· знижується вартість апаратного забезпечення; досить потужний комп'ютер з більшим пристроєм зберігання потрібний тільки серверу – для зберігання й керування базою даних;
· скорочуються комунікаційні витрати. Додатка виконують частина операцій на клієнтських комп'ютерах і посилають через мережу тільки запити до баз даних, що дозволяє значно скоротити обсяг даних, що пересилають по мережі;
· підвищується рівень несуперечності даних. Сервер може самостійно управляти перевіркою цілісності даних, оскільки лише на ньому визначаються й перевіряються всі обмеження. При цьому кожному додатку не прийде виконувати власну перевірку;
· архітектура клієнт-сервер природно відображається на архітектуру відкритих систем.