Теоремы приведения к НФ
Нормальные формы.
Отношение находится в 1 нф, если все его атрибуты атомарны (приним единств значение).
18 Восстановление БД
- возвращ-е БД в правил-е (корректн) состояние после сбоев. Для поддержки процесса восстановления предназначены транзакции.
Транзакция– послед-ть операций, выполн-х с БД, переводящая БД из одного согласов-го состояния в др. согласов-е состояние.(соглас. сост–сост при кот не нарушена целостн БД)
Напр, произв-ся 2 операции, кот д. б. или вместе выполн. или невыполн. Пусть 1-я выполн-сь успешно, а при выполн-и 2-й произойдет сбой, то в БД окажется противор-я инф. Такие операции д. б. объед-ны в транзакцию.
Свойства транзакции:
1. Атомарность. Транзакция либо выполняется целиком, либо не выполняется вообще.
2. Согласованность. До и после выполненя транзакции БД наход-ся в соглас-м состоянии.
3. Изолированность. Транз, конкурирующие за доступ к БД, выполн изолированно друг от др (или послед-но).
4. Долговечность. Если транз завершена успешно, то изме-нения, кот-е она выполнила, не могут быть потерны.
Вар-ты завершения транз
Транзакция м завершиться 2-мя способами:
1. Фиксация – Commit (обеспеч-е долговерч-ти)
2. Откат – Rollback (при этом аннулир-ся все действия, кот успели вып-ся, и БД перевод-ся в то сост-е, в кот. она была до начала транзакции.
При успешном заверш-и транзакции - фиксация, иначе – откат.
Структура журнала транз
Восстан-е БД в исх-е сост-е возможно благодаря журн транзакций – последов-й файл, в кот-й запис-ся все выполенные операции над БД (в рамках транз).
Фиксир-ся имя транз-и и её действ-я. Сущ-т 2 вида журналов:
1. С немедленным обновле-нием (изм-я в БД произв-ся по ходу)
Транз-я 1 запись до операции запись после операции
…..
Транз-я 1 Commit / Rollback
В случае неудачи - чтение журнала в обр. порядке и восстан-е.
2. С отложенным обновлен
Изм-я в БД не произв-ся – только обновл журнал. Если транз-я заверш-сь успешно, СУБД просматр-т журнал и выполняет все операции. Иначе-просто ничего не делается.
19 Физическая модель БД
Стр-ра хран-я данных: страницы
Единицы хран-я - хранимая запись. Состоит из двух частей:
1. Служебная часть. Испол-ся для идентиф-и записи, задания её типа и т.п. 2. Инф-я часть. содержит зн-я эл-в данных.
Всё простр-во памяти БД обычно раздел-ся на части (области, разделы и др.). Области памяти испол-ся для размещения хранимых записей одного или неск. типов и разбив-ся на пронум-е страницы фиксир-го размера. Обычно в системах обработку данных на ур. страниц ведёт ОС, а обр-ку записей внутри страницы - СУБД. Страницы представл-ся в среде ОС блоками внешней памяти, кластерами или секторами, доступ к кот осуществляется за одно обращение.
Страница имеет заголовок, содержащий служебн. инф (напр, идент-р, ссылку на след страницу), вслед за кот. распол-ся данные. На странице размещ-ся неск записей и есть свобод-й участок для размещ-я нов. записей. Если запись не помещ-ся на 1 странице, она разбив-ся на фрагм-ты, кот. хран-ся на разн страницах и имеют ссылки друг на друга.
Кластеризация– физич-е упоряд-е записей, является методом совместного хране-ния родственных данных (таблиц). Кластер – это структура памяти, в кот. хранится набор таблиц (в одних и тех же блоках данных).
Внутрифайловая кл-я – физ.упоряд-е внутри 1 табл. иначе межфайл-я (если необ-мо частое обращ-е к неск. табл-м ).
Преимущ-во: Уменьш-ся обмен с диском, улучш-ся время доступа к кластериз-м таблицам и их соедин-м.
Совместное хран-е - на 1 странице (блоке памяти) хранятся данные из всех кластериз-х табл, имеющие одинаковое зн-е кластерного ключа (столбец или набор общий для класт-х тбл).
Индексы
Для ускор-я доступа к записям созд-ся спец струк-ра – индекс, кот. опред-т соотв-е зн-я атрибута (их группы) и местопол-я записи. => Струк-ра инд-го ф-ла: основ обл-ть и индексная обл. (хранит RID). RID-указатель – физич адрес записи. Табл в БД м. иметь больш кол-во строк, кот. хран-я в произв-м порядке, их поиск по задан-му зн-ю путем послед-го просмотра строк табл м. занимать много времени. Индекс формир-ся из зн-й 1 или неск столбцов табл и указателей на соотв-е стр табл (RID) , что позв-т находить нужную стр по задан. зн-ю.
20 Жизненный цикл информационной системы
Этапы жизненного цикла:
1.Анализ требований
2.Проектирование
3.Реализация ИС
4.Этап внедрения
5.Эксплуатац и сопровожд
Модель – последовательность этапов жизненного цикла.
1)Каскадная
В основном для структурированных задач, когда известно какая дб система.
+ можно четко спланиров кажд этап, время, рес-сы
- отсутств обр связи, ведет к накоплению ошибок
2)Каскадная с возвращением
+- как у 1
+ возм устранен ошиб
3)Спиральная
прототип и его эволюция
+ быстр получение прототипа, → более ранняя оц рисков
– на этапе прототипир можно зациклится, сложно опр бюджет проекта
Отношение нах-ся во 2нф, если оно находится в 1нф и в нем отсутствуют неполные функц-е завис-ти от ключа. R(A, B, C, D), {A, B} – ключ. {A, B} → C и {A, B} → D - по опред-ю ключа
B → C - неполная завис-ть от ключа (атрибут завис-т от части ключа)
Переход к 2нф – декомпозиция: R1(B, C), B – ключ; R2(A, B, D), {A, B} – ключ.
Отнош находится в 3нф, если оно находится в 2нф и в нем отсутствуют транзитивные зависимости от ключа.
R(A, B, C, D), A – ключ.
A → В, A → C, A → D - по опред-ю ключа
С → D - транзитивная зависимость от ключа
Переход к 3нф – декомпоз-я: R1(C, D), C – кл; R2(A, B, C), A – кл
Отношение находится в нормальной форме Бойса-Кодда (НФБК), если оно находится в 3нф и в нем отсутствуют функц-е завис-ти ключевых атрибутов от неключевых.
Отношение находится в 4нф, если оно находится в НФБК и в нем отсутст-т многозн-е завис-ти (кот. не явл-ся функцион-ми).
Декомпозиция- действия по раздел-ю 1 отнош на неск отнош. Пусть исх-я схема R с мн-м функц-х завис-ей F была приведена в рез-те декомпоз-и к схеме отнош-й R1,R2,…,Rk с мно-м функции-х завис-й F1, F2, … , Fk.
Свойства декомпозиции:
1. Соединения без потерь: люб. отнош-е r со схем. R удовл-т соотнош-ю: r(R) = πR1(r) >< πR2(r) >< … >< πRk(r) (>< - - соедин-е).
2. Сохранения зависимо-стей, если из объединения всех завис-й F1, F2, … , Fk м вывести все завис-ти F.
Теоремы приведения к НФ.
1. Всякая схема отнош-я R с мн-м функц-х завис-й F м. б. приведена к декомпоз-и в 3НФ с сохран-м завис-й и соедин-м без потерь.
2. Всякая схема отнош-я R с мн-м функц-х завис-й F и мн-м многозн-х завис-й M м. б. приведена к декомпоз-и в 4НФ с соедин-м без потерь.
Блокировка
Транз-и м. выполн-ся паралл-но. В таком случ, м. возникнуть ситуация, при кот. разные транз-и изменяют одни и те же данные, в рез-те чего м. возник-ть противореч-ть в данных. Решение: механизм блокировок. Пока транз-я не закончена, нет доступа к данным объекта (синхронизацион-й захват). После окончания объект разблокируется.
Объекты блок-к: БД, табл, запись или группа записей, фиксация 1 конкр-го зн-я (ячейки).
2 вида блокировок:
1. Монопольная блок-ка (eXclusive) – никакая др. тран не м. обратится к данным (не позв-т вып дейст над тбл).
2. Блокировка с раздел-м доступом (Shared) – остальн транз м. читать данные (позв-т вып-ть чтение из табл).
Если транз не м. выполнятся по причине заблокир данных, она ожидает завершения той транз-и, кот. их заблок-ла.
Возник-т проблемы при выполн-и блок-ки =>
Тупик– когда обе транз ждут друг друга. Выход из тупика – выполн-е отката какой-либо транзакции. СУБД ч/з опред-е промеж-ки врем. провер-т сост-е транзак-й, строит схему (граф) - если находит цикл => тупик. Тогда СУБД оценив-т кажд. транз и выбир-т с наиб-м весом (напр. вес=кол-во транз-й ожидающ-х её)
Уровни изолированности транзакций.
Dirty Read (Uncomitted) – не зафиксир чтение. Транзакция м читать не зафиксир данные.
Read Commited – невоспроизводимое чтение. Транз-я м. видеть только зафиксированные данные.
Repeatable Read – воспроизводимое чтение. Видит только те данные к-е были на момент старта транз-и, т.е транц-я б. раб. с копией БД.
Serialized – сериализуемая. Транз выполн последов-но, ∀ блокирует БД а др ждут её.