-
Архітектура клієнт-сервер
Загальне поширення комп'ютерних мереж породило ще одну, крім необхідності розробки стандартизованої мови запитів, проблему. Ця проблема виникає, коли кілька користувачів з різних комп'ютерів починають змінювати ту саму базу даних. Доти поки база даних відкрита «тільки для читання» особливих труднощів не виникають, але, як тільки декільком користувачам дозволяється модифікувати базу, виникають важко розв'язні конфлікти. Ці проблеми переборюються в рамках моделі бази даних типу « клієнт-сервер». При реалізації цієї моделі система управління базами даних розділяється на дві частини - «клієнт» і «сервер». Програма «клієнт» розміщається на користувальницькій машині й дозволяє формувати запити (як правило, мовою SQL), які по мережі передаються на спеціалізовану машину (часто теж називану «сервером»), де працює програма «сервер». У такий спосіб термін «сервер» іноді ставиться до комп'ютера, а іноді до програмного забезпечення.
Програма «сервер» обробляє запит, формує з бази даних необхідну вибірку записів і відсилає її програмі «клієнтові». Якщо користувач припускає змінювати інформацію в запитаній вибірці, доступ будь-якого іншого користувача для модифікації обраних записів блокується ("монопольне захоплення"). Якщо користувач запитує інформацію «тільки для читання», то доступ до обраних записів не обмежується ("колективне захоплення").
Основний механізм, що дозволяє уникнути конфліктів між користувачами, полягає в розбивці процесу обробки інформації на елементарні події – групи команд SQL, які можуть виконуватися (або не виконуватися) тільки всі разом. Такі групи команд називаються транзакціями. Транзакція починається щораз, коли на вхід «сервера» починають надходити команди SQL, якщо ніяка інша транзакція не є активною. Транзакція закінчується або командою внести зміни в базу даних, або відмовою від внесення змін («відкіт»). Якщо в процесі виконання команд виникає яка-небудь помилка, автоматично виконується «відкіт» і база даних залишається у вихідному стані.
Основним призначенням систем баз даних, безумовно, являється підтримка розробки і виконання додатків баз даних. Тому на високому рівні систему баз даних можна розглядати як систему з дуже простою структурою, що складається з описаних нижче за дві частини, - сервера (внутрішнього компонента, або машини бази даних) і клієнтів (зовнішніх компонентів, або зовнішніх інтерфейсів), як показано на мал. 4.
Сервер - це сама СУБД. Він підтримує усі основні функції СУБД, а саме: визначення даних, маніпулювання даними, захист даних, підтримку цілісності даних і так далі. Зокрема, він надає повну підтримку зовнішнього, концептуального і внутрішнього рівнів. Тому сервер в цьому контексті - це просто інша назва для СУБД.
Клієнти - це різні застосування, які виконуються за допомогою СУБД. Такими є як додатки, написані користувачами, так і вбудовані застосування, що надаються постачальниками СУБД або деякими сторонніми постачальниками програмного забезпечення. Звичайно, в самому сервері різниця між вбудованими застосуваннями і додатками, написаними користувачем, не виявляється, оскільки усі ці застосування використовують один і той же інтерфейс сервера, а саме інтерфейс зовнішнього рівня.

Мал. 4. Архітектура "клієнт-сервер"
Клієнт-сервер (англ|. Client-server|) — мережева архітектура, в якій пристрої є або клієнтами, або серверами. Клієнтом (front| end|) є запрошуюча машина (зазвичай ПК), сервером (back| end|) — машина, яка відповідає на запит. Обидва терміни (клієнт і сервер) можуть застосовуватися як до фізичних пристроїв, так і до програмного забезпечення.
Перевага:
1) Дозволяє організувати мережу з великою кількістю комп'ютерів.
2) Централізоване управління обліковими записами.
3) Ефективний доступ до мережевих ресурсів.
Недоліки:
1) Непрацездатність сервера може зробити непрацездатною мережа.
2) Адміністрування даної системи вимагає кваліфікованого професіонала.
3) Висока вартість устаткування.
