Приложения для работы с локальными базами данных______________481

ное время будет потрачено на выполнение манипуляций с данными и в целом бу-
дет потеряно для приложения.

Автономные базы данных полезны для развития тех приложений, которые
распространены среди многих пользователей, каждый из которых поддерживает
отдельную базу данных. Это, например, приложения, обрабатывающие документа-
цию небольшого офиса, кадровый состав небольшого предприятия, бухгалтерские
документы небольшой бухгалтерии. Каждый пользователь такого приложения ма-
нипулирует своими собственными данными на своем компьютере. Пользователю
нет необходимости иметь доступ к данным любого другого пользователя, так что
отдельная база данных здесь вполне приемлема.

Файл-серверные базы. данных отличаются от автономных тем, что они могут
быть доступны многим клиентам через сеть. Это очень удобно, так как изменения
в таких базах данных видят все пользователи. Например, базу данных сотрудни-
ков крупного учреждения целесообразно делать именно такой, чтобы администра-
торы отдельных подразделений обращались к ней, а не заводили у себя локальные
базы данных (позднее будет показано, как сделать, чтобы сохранялась конфиден-
циальность информации и чтобы каждый администратор видел только ту инфор-
мацию, которая относится к его подразделению).

Сама база данных хранится на сетевом файл-сервере в единственном экземп-
ляре. Для каждого клиента во время работы создается локальная копия данных, с
которой он манипулирует. При этом возникают (и решаются) проблемы, связан-
ные с возможным одновременным доступом нескольких пользователей к одной и
той же информации. Например, при проектировании приложений, работающих с
подобными базами данных, должны быть решены такие проблемы: что делать,
если пользователь прочел некоторую запись и, пока он ее просматривает и собира-
ется изменить, другой пользователь меняет или удаляет эту запись.

Одним из недостатков баз данных файл-сервер является непроизводительная
загрузка сети. При каждом запросе клиента данные в его локальной копии полно-
стью обновляются из базы данных на сервере. Даже если запрос относится всего к
одной записи, обновляются все записи данных. Если записей в базе данных много,
то даже при небольшом числе клиентов сеть будет загружена очень основательно,
что серьезно скажется на скорости выполнения запросов.

Другой недостаток связан с тем, что забота о целостности данных при такой
организации работы возлагается на программы клиентов. Если они недостаточно
тщательно продуманы, в базу данных легко занести ошибки, которые могут отра-
зиться на всех пользователях.

Для больших баз данных с множеством пользователей часто используются
базы данных на платформе клиент/сервер. В этом случае доступ к базе данных
для группы клиентов выполняется специальной программой — сервером SQL, ра-
сположенным обычно на отдельном мощном компьютере. Клиент дает задание сер-
веру выполнить те или иные операции поиска или обновления базы данных. И
мощный сервер, ориентированный на операции с запросами самым оптимальным
способом, выполняет их и сообщает клиенту результаты своей работы.

Подобная организация работы повышает эффективность выполнения прило-
жений за счет использования мощности сервера, разгружает сеть, обеспечивает хо-
роший контроль целостности данных.

В базах данных клиент/сервер возникает дополнительная проблема — спроекти-
ровать приложение так, чтобы оно максимально использовало возможности сервера и
минимально нагружало сеть, передавая через нее только минимум информации.

Реализация платформы клиент/сервер реализуется такими серверами баз дан-
ных, как Interbase, Oracle, Informix, Sybase SQL Server, DB2, MS SQL Server.

16 Зак.764