Архітектура файл-сервер


Архітектура інформаційної системи. Звернення до бази даних. Сервери баз даних.

Сервери баз даних

Термін "сервер баз даних" зазвичай використовують для позначення усієї СУБД, заснованої на архітектурі "клієнт-сервер", включаючи і серверну, і клієнтську частини. Такі системи призначені для зберігання і забезпечення доступу до баз даних.

Хоча зазвичай одна база даних цілком зберігається в одному вузлі мережі і підтримується одним сервером, сервери баз даних є простим і дешевим наближенням до розподілених баз даних, оскільки загальна база даних доступна для усіх користувачів локальної мережі.

Архітектура файл-сервер називається архітектурою віддаленого управління даними. Дана архітектура припускає наступний розподіл функцій: на клієнті розташовуються майже всі частини додатку: презентаційна частина додатку, прикладні функції, а також функції управління інформаційними ресурсами. Файловий сервер містить файли, необхідні для роботи додатків і самої СКБД і підтримує доступ до файлів (рис. 1.2).

 

Рис. 1.2. Архітектура файл-сервер СКБД посилає запити файловому серверу по всім необхідним їй даним.

Запит клієнта формулюється в командах мови маніпулювання даними. СКБД переводить цей запит в послідовність файлових команд. Кожна файлова команда викликає перекачування блоку інформації на клієнта. Далі на клієнтові СКБД аналізує отриману інформацію, і якщо в отриманому блоці не міститься відповідь на запит, то ухвалюється рішення про передачу наступного блоку інформації і т.д. Передача інформації з сервера проводиться до тих пір, поки не буде отримана відповідь на запит клієнта. При цьому виникають (і вирішуються) проблеми, зв'язані з можливим одночасним доступом декількох користувачів до одної і тієї ж інформації. Наприклад, при проектуванні додатків, що працюють з подібними базами даних, повинні бути вирішені такі проблеми: що робити, якщо користувач прочитав деякий запис і, поки він його переглядає та збирається змінити, інший користувач змінює або видаляє цей запис.

Одним з недоліків файл-серверних систем є непродуктивне завантаження мережі. Якщо, наприклад, клієнтові потрібно відшукати відомості про одну з фірм-партнерів, по мережі спочатку передається весь файл, що містить відомості про сотні партнерів – таким чином створюється локальна копія даних, і лише потім у локальній копії даних відшукується потрібний запис. Ясно, що при інтенсивній роботі з даними вже декількох десятків клієнтів пропускна здатність мережі може виявитися недостатньою, що серйозно позначиться на швидкості виконання запитів.

Неважко помітити, що між локальними і файл-серверними типами СКБД немає особливих розходжень, тому що їх частини власне СКБД (крім даних) знаходяться на комп'ютері клієнта. Тому традиційними засобами для створення файл-серверних систем є локальні СКБД. Однак такі системи не відповідають вимогам забезпечення цілісності даних. З цим зв'язаний ще один недолік файл-серверних СКБД, а саме те, що турбота про цілісність даних покладається на програми клієнтів, що приводить до ускладнення клієнтських додатків. Якщо вони недостатньо ретельно продумані, у базу даних легко занести помилки, що можуть відобразитись на всіх користувачах.

Крім цього недоліку використання файлового сервера несе ще і інші:

• на кожній робочій станції повинна знаходитися повна копія СКБД;

• управління паралельністю, відновленням і цілісністю ускладнюється, оскільки доступ до одних і тих же файлів можуть здійснювати відразу декілька екземплярів СКБД;

• вузький спектр операцій маніпулювання даними, який визначається тільки файловими командами;

• захист даних здійснюється тільки на рівні файлової системи.

Безумовною перевагою СКБД цього типу є відносна простота її створення й обслуговування. Тому файл-серверні СКБД можуть успішно використовуватися у невеликих фірмах з кількістю клієнтських місць до декількох десятків.