- •Содержание
- •Введение
- •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.2.2 Проблемы, возникающие при параллельной обработке данных
Пока пользователи БД читают одновременно данные, никаких проблем не происходит. Они могут появиться при одновременном обращении нескольких пользователей к одним и тем же данным с целью их корректировки. Важным при этом становится решение задачи обеспечения целостности БД, которая может быть нарушена вследствие взаимного влияния процессов друг на друга. Рассмотрим возникающие при этом проблемы.
1 Проблема утраченного обновления. Рассмотрим ситуацию, когда параллельно выполняются два процесса обработки одних и тех же данных Д пользователем А и пользователем В, т.е. выполняются две, независимые друг от друга транзакции, реализующие обновление одних и тех же данных Д (рисунок 34).
Пользователь А |
Пользователь В |
Выборка Д |
момент времени т1 |
|
момент времени т2 Выборка Д |
Обновление данных Д |
момент времени т3 |
|
момент времени т4 Обновление данных Д |
! Утраченное обновление |
момент времени т5 |
Рисунок 34 – Проблема утраченного обновления
И для пользователя В, и для системы в целом, обновление, сделанное пользователем А, будет утрачено (пользователь В его не увидит и сделает своё обновление, не учитывая обновление, сделанное пользователем А). Такая ситуация называется проблемой утраченного обновления.
2 Проблема зависимости от незафиксированных обновлений. Параллельно выполняются два процесса обработки одних и тех же данных Д – рисунок 35.
-
Пользователь А
Пользователь В
момент времени т1 Обновление Д
Выборка Д
момент времени т2
момент времени т3 ! Откат (возврат к пред.
состоянию)
Рисунок 35 – Проблема зависимости от незафиксированного обновления
Пользователь А, если ему разрешен просмотр этих же данных, в момент времени т2 увидит данные, которые окончательно не были зафиксированы в системе, и вполне может быть, что они ошибочные. Такая ситуация называется "зависимость от незафиксированных обновлений». Транзакция А становится зависимой от не сохраненного обновления данных Д в момент т2, т.е. в транзакции А принимают участие данные, которые больше не существуют.
3 Проблема несовместимого анализа. Параллельно выполняются два процесса обработки одних и тех же данных Д. Один пользователь создает отчет, который содержит как детальные, так и итоговые строки. Второй в это время изменяет данные, влияющие на формирование итоговых строк. Могут наблюдаться противоречия в отчете: сумма детальных строк может быть не равна итоговой цифре — целостность БД не нарушается, но документ неприемлем. Такая ситуация называется "проблемой несовместимого анализа".
Для корректной обработки параллельных транзакций без создания конфликтных ситуаций необходимо использовать некоторый метод управления параллелизмом. Методы могут быть пессимистическими (консервативными), поскольку они откладывают выполнение транзакций, способных в будущем создать конфликтную ситуацию и оптимистическими – строятся на предположениях, что конфликтная ситуация маловероятна, поэтому они допускают асинхронное выполнение транзакций в БД, а проверка на наличие конфликта откладывается на момент их завершения и фиксации данных в БД.
