
110
Другой аспект многопользовательского доступа - это распараллелива-
ние доступа. То есть сервер баз данных должен уметь обрабатывать несколь-
ко запросов одновременно. Другими словами, если два пользователя почти
одновременно обратились к серверу баз данных со своими запросами, то сер-
вер не должен обрабатывать их строго по очереди (“вначале выполнить це-
ликом один запрос, а только затем другой”). В противном случае, какой-то
один очень сложный запрос может заставить ждать многих пользователей с
простыми запросами. В этом аспекте сервер баз данных аналогичен многоза-
дачной операционной системе.
Обеспечивать идентификацию и разграничение прав доступа раз-
ных пользователей к разным данным. В реальных информационных сис-
темах должно существовать разграничение по правам доступа к данным. Ка-
кие-то пользователи могут и читать и модифицировать данные, какие-то
пользователи могут только читать, а кто-то вообще может только вводить
данные, а читать не имеет право (см. Пример про резервирование билетов во
Введении). Таким образом, сервер баз данных должен, во-первых, уметь по-
нимать команды, которые описывают такое разграничение прав, а, во-
вторых, в процессе обслуживания запросов пользователя контролировать со-
блюдение этих разграничений.
Обеспечивать целостность и непротиворечивость данных в случае
аппаратных и программных сбоев. Несмотря на то, что за последнее время
надежность аппаратной части существенно выросла, абсолютно надежной
техники не бывает. В случае внезапного выключения и последующего вклю-
чения компьютера, на котором работает сервер базы данных, информация не
должна быть искажена или потеряна. Аналогично, если будет случайно вы-
ключен компьютер, на котором работает программа-клиент, сервер базы
данных должен определить этот факт и снять те блокировки, которые данная
программа-клиент установила, откатить незавершенные транзакции и, воз-
можно, выполнить другие действия.
Что касается программных сбоев, то здесь надо различать умышленные
попытки исказить информацию, или случайные ошибки в программах, кото-
рые могут привести к таким же последствиям. Например, списывание денег с
банковского счета должно приводить или к зачислению этой суммы на дру-
гой счет, или к появлению расходного документа. То есть нельзя просто так
списать или начислить деньги на счет. Злоумышленник, получивший доступ