і являє користувачу. Так як клієнтського додатку надсилається результат виконання запиту, по мережі «подорожують» тільки ті дані, які необхідні клієнту. У результаті знижується навантаження на мережу. Оскільки виконання запиту відбувається там же, де зберігаються дані (на сервері), немає необхідності в пересиланні великих пакетів даних. Крім того, SQL-сервер, якщо це можливо, оптимізує отриманий запит таким чином, щоб він був виконаний в мінімальний час з найменшими накладними витратами.
Рис. 1.1.2 Архітектура" клієнт - сервер»
програмний архітектура база сервер
Все це підвищує швидкодію системи і знижує час очікування результату запиту. При виконанні запитів сервером суттєво підвищується ступінь безпеки даних, оскільки правила цілісності даних визначаються в базі даних на сервері і є єдиними для всіх додатків, що використовують цю БД. Таким чином, виключається можливість визначення суперечливих правил підтримки цілісності. Потужний апарат транзакцій, підтримуваний SQL-серверами, дозволяє виключити одночасна зміна одних і тих же даних різними користувачами і надає можливість відкатів до первинних значень при внесенні до БД змін, що закінчилися аварійно.
Отже, в результаті робота побудована наступним чином:
· База даних у вигляді набору файлів знаходиться на жорсткому диску спеціально виділеного комп'ютера (сервера мережі).
· СУБД розташовується також на сервері мережі.
· Існує локальна мережа, що складається з клієнтських комп'ютерів, на кожному з яких встановлено клієнтське додаток для роботи з БД.
· На кожному з клієнтських комп'ютерів користувачі мають можливість запустити додаток. Використовуючи надаваний додатком користувальницький інтерфейс, він ініціює звернення до СУБД, розташованої на сервері, на вибірку/оновлення інформації. Для спілкування використовується спеціальна мова запитів SQL, тобто по мережі від клієнта до сервера передається лише текст запиту.
· СУБД інкапсулює усередині себе всі відомості про фізичну структуру БД, розташованої на сервері.
· СУБД ініціює звернення до даних, що знаходяться на сервері, в результаті яких на сервері здійснюється вся обробка даних і лише результат виконання запиту копіюється на клієнтський комп'ютер. Таким чином, СУБД повертає результат в додаток.
· Додаток, використовуючи користувальницький інтерфейс, відображає результат виконання запитів.
Розглянемо, як виглядає розмежування функцій між сервером і клієнтом.
v Функції програми-клієнта:
· Посилка запитів серверу.
· Інтерпретація результатів запитів, отриманих від сервера.
· Представлення результатів користувачеві в деякій формі (інтерфейс користувача).
v Функції серверної частини:
· Прийом запитів від програм-клієнтів.
· Інтерпретація запитів.
· Оптимізація і виконання запитів до БД.
· Відправка результатів додатку-клієнта.
· Забезпечення системи безпеки і розмежування доступу.
· Управління цілісністю БД.
· Реалізація стабільності багато режиму роботи. В архітектурі «клієнт - сервер» працюють так звані «промислові» СУБД. Промисловими вони називаються через те, що саме СУБД цього класу можуть забезпечити роботу інформаційних систем масштабу середнього і великого підприємства, організації, банку. До розряду промислових СУБД належать MS SQL Server, Oracle, Gupta, Informix, Sybase, DB2, InterBase і ряд інших.
Як правило, SQL-сервер обслуговується окремим співробітником або групою співробітників (адміністратори SQL-сервера). Вони управляють фізичними характеристиками баз даних, виробляють оптимізацію, настройку і перевизначення різних компонентів БД, створюють нові БД, змінюють існуючі і т.д., а також видають привілеї (дозволу на доступ певного рівня до конкретних БД, SQL-серверу) різним користувачам.
Розглянемо основні переваги даної архітектури в порівнянні з архітектурою «файл-сервер»:
· Істотно зменшується мережевий трафік.
· Зменшується складність клієнтських додатків (велика частина навантаження лягає на серверну частину), а, отже, знижуються вимоги до апаратних потужностей клієнтських комп'ютерів.
· Наявність спеціального програмного засобу - SQL-сервера - призводить до того, що істотна частина проектних і програмістських задач стає вже вирішеною.
· Істотно підвищується цілісність і безпеку БД.