Безопасность баз данных

Этапы разработки базы данных

Этапы проектирования, создания и работы с базами данных иллюстрирует приведенная схема (рис. 7.3.1).

Рис. 7.3.1. Жизненный цикл базы данных

Базы данных – это файлы, но работа с ними отличается от работы с файлами других типов, создаваемых прочими приложениями. Всю работу по обслуживанию файловой структуры берет на себя операционная система. Для баз данных предъявляются особые требования с точки зрения безопасности, поэтому в них реализован другой подход к сохранению данных.

При работе с обычными приложениями (Microsoft Word, Microsoft Excel) для сохранения данных мы выдаем соответствующую команду, задаем имя файла и доверяемся операционной системе. Если мы закроем файл, не сохранив его, то вся работа по созданию или редактированию файла пропадет безвозвратно.

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

Проблема безопасности баз данных решается тем, что в СУБД для сохранения информации используется двойной подход. В части операций, как обычно, участвует операционная система компьютера, но некоторые операции сохранения происходя в обход операционной системы.

Операции изменения структуры базы данных, создания новых таблиц или иных объектов происходят при сохранении базы данных. Об этих операциях СУБД предупреждает пользователя. Это глобальные операции. Их никогда не проводят с базой данных, находящейся в коммерческой эксплуатации, – только с ее копией. В этом случае любые сбои в работе вычислительных систем не страшны.

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

Обычно, решив отказаться от изменений в документе, его просто закрывают без сохранения и вновь открывают предыдущую копию. Этот прием работает практически во всех приложениях, но только не в СУБД. Все изменения, вносимые в таблицы базы, сохраняются на внешнем носителе без нашего ведома, поэтому попытка закрыть базу данных «без сохранения» ничего не даст, так как все уже сохранено. Таким образом, редактируя таблицы баз данных, создавая новые записи и удаляя старые, мы как бы работаем с жестким диском напрямую, минуя операционную систему.

Необходимо также обратить внимание на то, что в СУБД имя файла задается досоздания новой базы, а не после того, как вся работа проделана и остается только сохранить результат (как, например, в MS Word или MS Excel). Сделано это из соображений обеспечения сохранности данных. Все изменения, вносимые в базу данных, сразу же отображаются и в ее файлах (а поэтому программе с самого начала надо знать их имена). Таким образом, сводится к минимуму риск потери важных данных даже при непредвиденных сбоях (например таких, как отключение электропитания).