Теория СУБД

СЕТЕВАЯ БАЗА ДАННЫХ

Почему локальные базы называ­ют локальными? Да потому что с дан­ными работает только один пользова­тель и потому что база данных и прог­рамма находятся на одном компьюте­ре. В случае с небольшими проектами это нормально, но для больших объе­мов данных один оператор не спра­вится с задачей и потребуется, чтобы несколько человек могли работать с общими данными.

Сетевые базы данных были призва­ны решить такие проблемы. В принци­пе, это те же локальные базы, только выложены они на сетевой диск серве­ра (это может быть простой файло­вый сервер или компьютер с шарами), и несколько клиентов обращаются к одной базе по сети.

Посмотрим, как происходит обраще­ние к базе данных. Программа и драй­вер находятся на клиенте, а данные находятся на сервере или просто на удаленном компьютере. Как програм­ма получает данные? Клиент переда­ет драйверу SQL-запрос, который дол­жен быть выполнен, но данные-то на­ходятся удаленно! Чтобы отработать запрос, вся нужная таблица (в случае с Access — вся база данных, потому что все в одном файле) выкачивается на компьютер клиента, где драйвер обра­батывает данные.

Я бы побил того, кто придумал такую технологию, потому что это самое нас­тоящее издевательство над системой. Представляешь, что будет, если надо выполнить запрос на базе данных в 1 Гб с телефонным соединением в 34 Кб/с? Это то же самое, что заставить

добывать нефть через трубоч­ку для молочных коктейлей.

А ведь некоторые российские ком­пании (не будет показывать паль­цем) предоставляли нам сетевые ре­шения на основе dbf-файлов в об­ласти бухгалтерии, делопроизвод­ства и экономики. Это уже издева­тельство. Меня несколько раз проси­ли восстановить умершие базы скла­дской программы, после того как встроенные в программу средства не справлялись с задачей.

Но страшнее всего начали вести себя индексы. У таблиц Paradox, если они на­ходились на расшаренном диске Win95, мне приходилось ремонтировать индек­сы как минимум раз в неделю. Когда я убрал файлы базы данных на сетевой диск сервера NetWare 3.11 (это был где-то 1998 год), проблемы с нарушением индексации сразу исчезли (наверное, потому что это действительно сервер, а не корявый Windows 9x).

При сетевом соединении многополь-зование получалось неполное. Изме­нения одного пользователя не были видны другим, приходилось переза­пускать программу или пересоеди­няться, потому что именно в момент коннекта программа сосет все данные