
- •Владимир Николаевич Петров Юрий Избачков Информационные системы
- •Аннотация
- •Юрий Сергеевич Избачков, Владимир Николаевич Петров Информационные системы: Учебник для вузов Введение
- •Информационные системы
- •База данных
- •Case‑средства
- •Средства разработки
- •Для кого предназначена эта книга
- •Как составлена книга
- •Часть I. Анализ и проектирование информационных систем
- •Часть II. Delphi – система быстрой разработки приложений
- •Часть III. Выборка данных и отображение ее результатов
- •Часть IV. Компоновка приложения и управление проектом
- •Часть V. Технология com
- •Часть VI. Программирование для Интернета
- •Факторы, влияющие на развитие корпоративных информационных систем
- •Развитие методик управления предприятием
- •Развитие общих возможностей и производительности компьютерных систем
- •Развитие подходов к технической и программной реализации элементов информационных систем
- •Основные составляющие корпоративных информационных систем
- •Соотношение между составляющими информационной системы
- •Классификация информационных систем
- •Классификация по масштабу
- •Классификация по сфере применения
- •Классификация по способу организации
- •Области применения и примеры реализации информационных систем
- •Бухгалтерский учет
- •Управление финансовыми потоками
- •Управление складом, ассортиментом, закупками
- •Управление производственным процессом
- •Управление маркетингом
- •Документооборот
- •Оперативное управление предприятием
- •Предоставление информации о фирме
- •Требования, предъявляемые к информационным системам
- •Гибкость
- •Надежность
- •Эффективность
- •Безопасность
- •Глава 2 Жизненный цикл информационных систем
- •Общие сведения об управлении проектами
- •Понятие проекта
- •Классификация проектов
- •Основные фазы проектирования информационной системы
- •Концептуальная фаза
- •Подготовка технического предложения
- •Проектирование
- •Разработка
- •Ввод системы в эксплуатацию
- •Процессы, протекающие на протяжении жизненного цикла информационной системы
- •Основные процессы жизненного цикла
- •Разработка
- •Эксплуатация
- •Сопровождение
- •Вспомогательные процессы жизненного цикла
- •Организационные процессы
- •Структура жизненного цикла информационной системы
- •Начальная стадия
- •Стадия уточнения
- •Стадия конструирования
- •Стадия передачи в эксплуатацию
- •Модели жизненного цикла информационной системы
- •Каскадная модель жизненного цикла информационной системы
- •Основные этапы разработки по каскадной модели
- •Основные достоинства каскадной модели
- •Недостатки каскадной модели
- •Спиральная модель жизненного цикла
- •Итерации
- •Преимущества спиральной модели
- •Недостатки спиральной модели
- •Глава 3 Методология и технология разработки информационных систем
- •Методология rad
- •Основные особенности методологии rad
- •Объектно‑ориентированный подход
- •Визуальное программирование
- •Событийное программирование
- •Фазы жизненного цикла в рамках методологии rad
- •Фаза анализа и планирования требований
- •Фаза проектирования
- •Фаза построения
- •Фаза внедрения
- •Ограничения методологии rad
- •Профили открытых информационных систем
- •Понятие профиля информационной системы
- •Принципы формирования профиля информационной системы
- •Структура профилей информационных систем
- •Профиль прикладного программного обеспечения
- •Профиль среды информационной системы
- •Профиль защиты информации
- •Профиль инструментальных средств
- •Стандарты и методики
- •Виды стандартов
- •Методика cdm фирмы Oracle
- •Общая структура
- •Особенности методики cdm
- •Международный стандарт iso/iec 12207: 1995‑08‑01
- •Общая структура
- •Основные и вспомогательные процессы жизненного цикла
- •Особенности стандарта iso 12207
- •Универсальный язык моделирования
- •Предшественники uml
- •Структура uml
- •Глава 4 Реляционные базы данных
- •Общие сведения о базах данных
- •Основные функции систем управления базами данных
- •Непосредственное управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Протоколирование
- •Поддержка языков баз данных
- •Эволюция систем управления базами данных
- •Субд первого поколения
- •Реляционные субд
- •Объектно‑ориентированные субд
- •Реляционная модель данных
- •Базовые понятия реляционной модели данных
- •Тип данных
- •Атрибуты, схема отношения, схема базы данных
- •Пустые значения
- •Ключи отношения
- •Связанные отношения
- •Внешние ключи отношения
- •Условия целостности данных
- •Типы связей между таблицами
- •Конец ознакомительного фрагмента.
Протоколирование
Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя.
Аппаратные сбои обычно подразделяются на два вида:
• мягкие сбои связаны с внезапной остановкой компьютера и обычно являются следствием внезапного выключения питания или «зависания» операционной системы;
• жесткие сбои характеризуются потерей информации на носителях внешней памяти.
Программные сбои обычно возникают вследствие ошибок в программах. Причем эти ошибки могут быть как в самой СУБД, что может привести к аварийному завершению ее работы, так и в пользовательской программе. Первый случай можно рассматривать как разновидность мягкого аппаратного сбоя. Во втором случае незавершенной остается только одна транзакция.
В любом случае, для восстановления информации в базе данных необходимо иметь некоторую дополнительную информацию. Таким образом, для надежного хранения данных требуется их избыточность. Причем та часть информации, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенным методом поддержания такой избыточной информации является ведение журнала изменений базы данных.
Журнал представляет собой недоступную пользователям и поддерживаемую с особой тщательностью часть базы данных, в которую поступают записи обо всех изменениях основной части базы данных. Иногда используются две копии журнала, располагаемые на разных физических дисках.
В разных СУБД изменения базы данных протоколируются на разных уровнях: иногда запись в журнале соответствует некоторой логической операции изменения базы данных, иногда – минимальной внутренней операции модификации страницы внешней памяти. Могут также использоваться одновременно оба подхода.
Во всех случаях придерживаются стратегии упреждающей записи в журнал (Write Ahead Log, WAL). Несколько утрируя, можно сказать, что эта стратегия подразумевает внесение в журнал записи об изменении любого объекта базы данных до того, как будет выполнено и зафиксировано изменение этого объекта. Если в СУБД поддерживается протокол WAL, то с помощью журнала можно решить все проблемы восстановления базы данных после любого сбоя.
Самая простая ситуация восстановления – откат отдельной транзакции. Строго говоря, для этого не требуется общесистемный журнал изменений базы данных. Достаточно для каждой транзакции поддерживать локальный журнал операций модификации базы данных, выполненных в этой транзакции, и производить откат транзакции путем выполнения обратных операций, следуя от конца локального журнала. В некоторых СУБД так и делают, но в большинстве систем локальные журналы не поддерживают, а откат отдельной транзакции выполняют по общесистемному журналу, для чего все записи, относящиеся к одной транзакции, связывают обратным списком (от конца к началу).
При мягком сбое во внешней памяти основной части базы данных могут находиться объекты, модифицированные транзакциями, не закончившимися к моменту сбоя, и могут отсутствовать объекты, модифицированные транзакциями, которые к моменту сбоя успешно завершились (по причине очистки буферов оперативной памяти при мягком сбое). При соблюдении протокола WAL во внешней памяти журнала должны гарантированно находиться записи, относящиеся к операциям модификации обоих видов объектов. Целью восстановления после мягкого сбоя является приведение внешней памяти основной части базы данных в такое состояние, которое возникло бы при фиксации во внешней памяти изменений всех завершившихся транзакций и не содержало бы никаких следов незаконченных транзакций. Для того чтобы этого добиться, сначала производят откат незавершенных транзакций, а потом повторно воспроизводят те операции завершенных транзакций, результаты которых не сохранились во внешней памяти.
Для восстановления базы данных после жесткого сбоя используют журнал и архивную копию базы данных. Архивная копия – это полная копия базы данных, полученная к началу заполнения журнала (хотя имеются и другие варианты трактовки этого термина). Естественно, для нормального восстановления базы данных после жесткого сбоя необходимо, чтобы журнал не пропал. Тогда восстановление базы данных состоит в том, что на основе данных архивной копии по журналу повторно выполняются все транзакции, которые закончились к моменту сбоя. В принципе, можно даже воспроизвести работу незавершенных транзакций и продолжить их работу после завершения восстановления. Однако в реальных системах это обычно не делается, поскольку процесс восстановления после жесткого сбоя является достаточно длительным.