Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Базы данных.doc
Скачиваний:
20
Добавлен:
18.02.2016
Размер:
258.05 Кб
Скачать
  1. Этапы жизненного цикла базы данных.

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

Стадии:

  1. предпроектное обследование:

  • сбор материалов для проектирования, формирование требований, изучение объекта проектирования;

  • анализ материалов;

  • анализ материалов обследования;

  1. проектирование:

  • техническое проектирование, поиск наиболее рациональных проектных решений по всем аспектам разработки;

  • рабочее проектирование, в процессе которого осуществляется разработка и доводка программ, корректировка БД, создание документации на поставку, установку технических средств и инструкций.

  1. Реализация (Создание внешнего, концептуального и внутреннего определений базы данных и прикладных программ)

  2. Тестирование (Приложение базы данных тестируется с целью обнаружения ошибок, а также его проверки на соответствие всем требованиям, выдвинутым пользователями)

  3. ввод в систему эксплуатации:

  • подготовка к внедрению;

  • установка и ввод в эксплуатацию технических средств, загрузка БД, проведение опытных испытаний всех компонентов системы;

  • сдача в эксплуатацию.

  1. эксплуатация и сопровождение (На этом этапе приложение базы данных считается полностью разработанным и реализованным. Впредь вся система будет находиться под постоянным наблюдением и соответствующим образом поддерживаться, В случае необходимости в функционирующее приложение могут вноситься изменения, отвечающие новым требованиям. Реализация этих изменений проводится посредством повторного выполнения некоторых из перечисленных выше этапов жизненного цикла)

  2. снятие с эксплуатации.

  1. Этапы проектирования баз данных.

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

Процесс проектирования БД представляет собой последовательность переходов от неформального словесного описания информационной структуры предметной области к формализованному описанию объектов предметной области в терминах некоторой модели.

Требования к БД

  1. БД должна удовлетворять информационным требованиям организации.

  2. БД должна обеспечивать получение требуемых данных за определенное время

  3. БД должна легко расширяться и изменяться.

  4. Доступ к данным должен быть ограничен. Необходимо защитить данные от несанкционированного использования или изменения.

Можно выделить следующие этапы проектирования БД:

    1. Системный анализ и словесное описание информационных объектов предметной области.

    2. Проектирование инфологической модели предметной области – частично формализованное описание объектов предметной области в терминах некоторой семантической модели, например в терминах ER – модели.

    3. Даталогическое проектирование, т.е. описание БД в терминах принятой даталогической модели данных.

    4. Физическое проектирование БД, т.е. выбор эффективного размещения БД на внешних носителях для обеспечения наиболее эффективной работы приложения.

Между вторым и третьи этапами необходимо принять решение с использованием какой стандартной СУБД будет реализовываться наш проект.

  1. Использование механизма транзакций в базах данных.

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

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

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

Возможны два варианта завершения транзакции. Если все операторы выполнены успешно и в процессе выполнения транзакции не произошло никаких сбоев программного или аппаратного обеспечения, транзакция фиксируется.

Фиксация транзакции - это действие, обеспечивающее запись на диск изменений в базе данных, которые были сделаны в процессе выполнения транзакции. До тех пор, пока транзакция не зафиксирована, возможно аннулирование этих изменений, восстановление базы данных в то состояние, в котором она была на момент начала транзакции. Фиксация транзакции означает, что все результаты выполнения транзакции становятся постоянными. Они станут видимыми другим транзакциям только после того, как текущая транзакция будет зафиксирована. До этого момента все данные, затрагиваемые транзакцией, будут "видны" пользователю в состоянии на начало текущей транзакции.

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

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

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

При выполнении любого оператора SQL, который вносит изменения в базу данных, СУБД автоматически заносит очередную запись в журнал транзакций. Запись состоит из двух компонентов: первый - это состояние строки до внесения изменений, второй - ее же состояние после внесения изменений. Только после записи в журнал транзакций СУБД действительно вносит изменения в базу данных.

Сериализация транзакций гарантирует, что каждый пользователь (программа), обращающаяся к базе данных, работает с ней так, как будто не существует других пользователей (программ), одновременно с ним обращающихся к тем же данным. Для практической реализации этой дисциплины большинство коммерческих СУБД используют механизм блокировок. Механизм блокировок разрешает проблемы, связанные с доступом нескольких пользователей (программ) к одним и тем же данным. Однако его применение связано с существенным замедлением обработки транзакций, вызванным необходимостью ожидания, когда освободятся данные, захваченные конкурирующей транзакцией. СУБД может блокировать всю базу данных целиком, таблицу базы данных, часть таблицы, отдельную строку. Описанное выше называется уровнями блокировки. Современные СУБД используют в большинстве блокировки на уровне частей таблиц (страниц) и/или на уровне записей. Помимо уровней блокировки, выделяют также тип блокировки или схему блокировки. Конкурирующие транзакции могут захватывать данные, в то же время разрешая доступ к этим данным другим транзакциям, но только для чтения. Кроме того, транзакции могут блокировать данные, не допуская захвата тех же данных другими транзакциями, в том числе и только для чтения. Для пользователя распределенной базы данных глобальная транзакция выглядит как обычная. Это означает, что, хотя в процессе выполнения распределенной транзакции происходит изменение данных в нескольких базах на автономных узлах, сам этот процесс организован таким образом, что программисту, инициирующему обработку транзакции внутри своей программы, нет необходимости заботиться о синхронности завершения транзакции на каждом из узлов, ею затрагиваемых.