- •Содержание
- •Введение
- •1 Автоматизированные информационные системы
- •1.1 Основные понятия
- •1.2 Экономические информационные системы
- •1.3 Место бд в автоматизированной информационной системе
- •2 Методы и средства проектирования бд
- •2.1 Архитектура бд
- •2.2 Модели данных
- •2.3 Жизненный цикл бд
- •2.4 Методы проектирования бд
- •2.5 Case − технологии
- •3 Проектирование бд
- •3.1 Формирование внешнего уровня бд
- •3.1.1 Обоснование целесообразности создания аис
- •3.1.2 Структура предприятия. Информационные потоки
- •3.1.3 Описание входных и выходных документов
- •3.1.4 Функциональная структура аис
- •3.1.5 Выявление классов объектов и связей
- •3.1.5.1 Классы объектов
- •3.1.5.2 Связи между классами объектов
- •3.1.6 Неформализованное описание предметной области
- •3.1.7 Уровни доступа пользователей
- •3.2 Разработка концептуального уровня бд
- •3.2.1 Инфологическая модель предметной области
- •3.2.1.1 Методологии построения er—диаграмм
- •3.2.1.2 Шаблоны моделирования
- •3.2.1.3 Моделирование сложных структур
- •3.2.1.4 Проверка законченности er—диаграммы
- •3.2.1.5 Перекрестная проверка модели данных и иерархии функций
- •3.2.2 Даталогическая модель бд
- •3.2.2.1 Реляционная модель данных
- •3.2.2.2 Виды документирования длм реляционной бд
- •3.2.2.3 Формирование длм реляционной бд
- •3.2.2.4 Анализ схемы реляционной бд на соответствие заданной нормальной форме
- •3.2.2.5 Пример графического представления схемы реляционной бд
- •3.3 Проектирование внутреннего уровня бд
- •3.3.1 Выбор реляционной субд
- •3.3.2 Объекты бд
- •3.3.3 Физическая модель бд
- •3.3.3.1 Проектирование реляционных таблиц
- •3.3.3.2 Реализация ограничений целостности реляционной базы данных
- •3.3.3.3 Проектирование индексов
- •4 Создание бд
- •4.1 Подготовка среды хранения
- •4.2 Генерация схемы бд
- •4.3 Загрузка и корректировка данных из старой бд
- •4.4 Ввод и контроль данных в справочные таблицы
- •4.5 Словарь данных
- •5 Администрирование бд
- •5.1 Управление структурой бд
- •5.2 Защита данных
- •5.2.1 Авторизация пользователей
- •5.2.2 Управление параллельно работой пользователей
- •5.2.2.1 Транзакции
- •5.2.2.2 Проблемы, возникающие при параллельной обработке данных
- •5.2.2.3 Блокировка данных
- •5.2.2.4 Бесконечные ожидания и тупики
- •5.2.2.5 Уровни изоляции транзакций
- •5.2.3 Управление восстановлением бд
- •5.2.3.1 Резервное копирование бд
- •5.2.3.2 Способы восстановления бд
- •5.3 Управление субд
- •6 Вопросы проектирования приложений бд
- •6.1 Участие администратора бд в разработке приложения
- •6.2 Виды функций приложений бд
- •Список использованных источников
- •Приложение а
- •Вопросы для самостоятельной работы
- •Приложение б
- •Тесты для контроля знаний
- •Приложение в
- •Ответы на тесты
5.2.3.2 Способы восстановления бд
Одна из основных функций администратора БД – быть готовым к возможному отказу системы. В случае возникновения отказа база данных должна быть восстановлена быстро и с минимально возможными потерями. Процесс восстановления БД требует от АБД:
— определения, какие структуры базы данных затронуты и требуют восстановления;
— выполнения соответствующих шагов по восстановлению;
— рестарта экземпляра БД для восстановления его нормальной работоспособности;
— проверки, что в базе данных не остались некорректные данные, и действия пользователей не пропали.
Цель этих мероприятий – наиболее быстрый возврат к нормальной работе пользователей с БД. В то же время необходимо уберечь пользователей БД от любых проблем, связанных с возможными потерями и необходимостью дублирования работ по ведению данных.
Процесс восстановления зависит от типа отказа и размеров части базы, на которую отказ повлиял. Администратор БД должен предвидеть любой тип отказа и иметь соответствующую стратегию восстановления. При выборе стратегии восстановления необходимо исходить из альтернативы, связанной со степенью "восстановимости" и затратами на защиту БД. В общем случае, чем больше гарантия защиты данных, тем больше затраты на ее реализацию со стороны АБД.
Поскольку обработка данных в многопользовательских системах не может быть возобновлена точно с того места, где она была прервана, то существует возможность отойти назад до некоторой известной точки состояния БД и возобновить работу с БД с неё.
Наиболее простой стратегией является возможность восстановления базы данных из её копии, которая периодически делается администратором БД. Затем при возникновении сбоя база данных восстанавливается, и заново производятся все утерянные транзакции, например, осуществляется повторный ввод данных, не отраженных в ранее сделанной копии. Такая стратегия для баз данных с большим числом пользователей может и не позволить вернуть систему в то состояние, в котором она находилась до сбоя из—за того, что при параллельной работе трудно восстановить и синхронизовать все действия пользователей. Какой—то объем данных будет утрачен.
Существует ещё один подход к восстановлению БД. Он заключается в том, чтобы периодически делать копии базы данных и вести журнал всех изменений, произведенных в базе данных транзакциями со времени последнего копирования. Восстановление в случае сбоя может быть произведено одним из двух методов. Первый – база данных восстанавливается до известного (отраженного в копии) состояния, после чего выполняются все правильные транзакции согласно записям в журнале. Метод называют «откат вперед» (rolling forward). Второй метод – в случае сбоя отменяются все ошибочные транзакции, затем запускаются правильные транзакции, которые выполнялись в момент сбоя – «откат назад», (rolling back). Для восстановления данных любым из этих методом требуется ведение журнала результатов транзакций. Современные СУБД имеют такие средства. Журнал транзакций позволяет сохранять действия, произведенных с данными в хронологическом порядке — прежде чем транзакция будет выполнена, она будет записана в журнал. В случае сбоя журнал используется как для отмены, так и для выполнения заданных транзакций. Журнал транзакций рекомендуется размещать на отдельном устройстве, что дает возможность повысить производительность и надежность системы баз данных:
— в случае потери работоспособности носителя данных сохраняется возможность создания резервной копии журнала транзакций;
— повышается скорость записи в журнал транзакций, так как операции ввода/вывода, разделенные между двумя устройствами, выполняются быстрее;
— рост объема журнала транзакций не понизит общую производительность системы;
— создание архивных копий журнала транзакций и данных происходит быстрее, поскольку они создаются отдельно друг от друга.
Размеры журнала транзакций варьируются в зависимости от объема модифицируемых данных и частоты создания архивных копий. Как правило, выделяют от 10 до 25% места, зарезервированного для данных.
Запись действий, производимых тем или иным пользователем БД, может вестись также администратором БД и другими способами, например, посредством использования различных триггеров.
