Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры бд_2.doc
Скачиваний:
4
Добавлен:
14.09.2019
Размер:
145.41 Кб
Скачать

  1. Механизм работы связей между отношениями в реляционной базе данных (RBD).

Ри является прикладной ветвью формального механизма исчисления предикатов 1го порядка. Базов.понятия: переменная с определенной для нее областью допустимых значений; правильно построенная формула, опирающаяся на переменные предикаты и кванторы. В зависимости от того, что является областью определения различаются : исчисления картежей и доменов. 1) обл.определения переменных является некоторое отношение. 2) обл.определения доменов является домены, на которых определены значения атрибутов отношения БД, т.е. допустимое значение каждой переменой является значением некоторого домена.

Пример: имеется 2 отношения :1) подразделение (ном_подр,тн_рук,назв_подр); 2)исполнитель (ном_исп, имя_исп, разряд, ном_подр)

  1. Для того чтобы определить картежные переменные с именем СПЕЦ, область определения которая является отношением Исполнитель используется след.конструкция: range спец is Исполнитель Будем рассматривать все на картежных переменных. Руководитель подразделения НАЧ range НАЧ is подразделение

  2. Правила построения формулы (ППФ) служат для выражения условия, накладываемого на картежные переменные. СПЕЦ.Разряд=15 - предикат Допускатеся использование конструкции ППФ, в которой участвует переменные, которые используются и квантр EXIST, FORALL; используются логические and,or,not,if---then EXIST спец(спец.разряд=15)

  3. Для формулирования задачи или запроса в РИ для работы с БД необходим еще 1 компонент – целевой список, определяющий результирующее значение(отношение) как выражается список: нач.ном_подр, нач.зазр, ФИО=спец.имя_исп

Язык РИ декларативный,а не процедурный не ставится задача, что должны быть связи по внешнему ключу.

Эквивалентность

Подразделение

Ном_подр

Тн_рук

Наим_подр

1

1111

Адм.хох

2

2222

План.эконом.

3

2221

Реклама

4

3333

5

4444

Разработ

6

5555

7

6666

бухгалт

Исполнитель

Ном_исп

Имя_исп

Разряд

Ном_подр

1561

Иванов

15

3

2221

Козлов

18

3

1270

Петров

15

7

6666

гусев

18

7

1.Сделать ограничение 2ой табл. По услов РАЗР=15 и получить на выходе 3табл.

1561

Иванов

15

3

1270

Петров

15

7

2.переименовать ном_подр в отношении 1 на ном_сект

3.соединить по условию ном_подр=ном_сект табл.5

Ном_сект

Тн_рук

Наим_подр

Ном_исп

Имя_исп

Разр

Ном_подр

3

2221

Рекл

1561

Иванов

15

3

7

6666

Бухг

1270

Петров

15

7

4.проекция на ном_сект,тн_рук,наим_подр табл.6

3 2221 Рекл

7 6666 Бухг

5.соединить по условию тн-рук=ном_исп

3 2221 Рекл 2221 козлов 18 3

7 6666 Бухг 6666 Гусев 18 7

6.проекция на 1,3 и5

Ном_подр

Наим_подр

Имя_исп

3

Рекл.

Козлов

7

Бухг.

гусев

Sql:

Select podr.nom_podr,podr.name_podr,isp.fam

From podr,isp

Where isp.razr=15

Механизм работы

Сотрудники Подразделение

Н ом_сотр

Фам

Им

Отч

Ном_подр

Ном_подр

Назв_отд

телефон

Рук_отд

SET RELATION TO N_OTD INTO PODR.dbf

USE PODR

INDEX ON N_PODR TO DEPART

BROWSE

SELECT 2

USE ISP

BROWSE

SET RELATION TO N_PODR INTO PODR.dbf

GO 3

SELECT 1

BROWSE

3) Эквивалентность реляционной алгебры и реляционного исчисления

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

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

Все операции, выраженные реляционным исчислением , могут быть так же выражены реляционной алгеброй.

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

СПЕЦ. РАЗРЯД=15=предикат

EXIST СПЕЦ (СПЕЦ.РАЗРЯД=15)

4)Транзакция.

Люб.бд является годной к использованию т.т.т. когда ее состояние соответствует состоянию предметн.области, такое состояние называется целостным. При переходе должно от 1 цлост.сост. к другому

Транзакция-атамарное действие над Б.Д., переводящее её из одного состояния в другое. ТР-последовательность операций, которые должны быть либо выполнены, либо нет. Метод контроля-ведение журнала(фиксация изменений) если во время обработки транзакции сбой-ТР откатывается.. Из журнала восстанавливается на момент начала транзакций. Начала может быть заданно явно Begin transaction.

Завершается:

1)успешно : все изменения внесены в Б.Д.

2)ошибочно: прерывает roll back(требуется откат).

Если работают 2 транзакции, то могут произойти коллизии. Грязное чтение - Т1 модифицировало некий элемент Б.Д. После этого Т2 прочитало этот элемент до окончания Т1. Если Т1 завершенна roll back, то получается, что Т2 прочитала несуществующие данные. Неповторяемое чтение-т1 прочитала содержимое элемента данных, после этого друг.т2 модфицировала или удалила это элемент Если Т1 прочитает содержимое, то оно получит новое значение или обнаружит, что элемент данных более не существует. Фантом-т1 прочитало содержимое нескольких элементов данных, удовлетворяющих некоторому условию после этого т2 создает элемент данных, удовлетворяющий этому условию и зафиксир., если т1 повторит чтение с тем же услов. Получит друг.набор данных.

5.во избежание коллизий возникло понятие сериализации-способы к упорядочиванию или параллельной обработке транзкаций

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

Существуют два базовых подхода к сериализации транзакций - основанный на синхронизационных захватах объектов базы данных и на использовании временных меток. Суть обоих подходов состоит в обнаружении конфликтов транзакций и их устранении.

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

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

Принудительное упорядочивание транзакций обеспечив. С помощью мех.блок. или синх.захватов.

Механизм синхронизационных захватов или блокировок – если кортеж не изменяется непредсказуемо и без ведома Т, то он блокируется

Режимами сериализационных захватов является s-блокировка (по чтению) и x-блокировка (по записи). X-блокировка полностью закрывает доступ к запросам для этого элемента.

(при операциях изменения, добавления и удаления

  1. Если ТР налагает на объ. Ч-блок. То люб.запрос друг. ТР с блок.этого объ.будет отвергнут

  2. Если ТР налаг. Ы-блок.

А)запрос со стороны друг.ТР с ы-блок. Будет отвергнут

Б)запрос со стороны друг. ТР с ы-блок. На этот объ.будет приянт.

Существуют блокировки: 1) БД, 2) Таблицы, 3) Листа, 4) Кортежа, 5) Отдельного поля.

Мех синхр захват

(Если есть инфа по IS, IX, SIX захватам, прошу добавить).

Is верхний уровень six (is)

Самой большой проблемой захватов и блокировок являетсявозможность появления циклов. Это приводит к взаимной блокировке и тупику.

(Если не лево, то право, паутинкой накрест)

Захват может быть по одному объекту, а ожидание от многих.

Механизм временных меток - альтернативный метод сериализации транзакций.

Если T1 начался раньше T2, то система обеспечивает такой режим управления, как если бы T1 был целиком выполнен до T2.

Перед выполнением операций над объектом, проверяется, не закончился ли T, производившая действия над ним. Если нет, объект помечается и производится транзакция.

Если t(T) > t(T1), то есть T моложе T1, T получает новую временную метку, иначе – наоборот (?????).

К недостаткам можно отнести потенциально большее количество откатов, чем в случае синхронизационных захватов.

Вырабатываются глобальные метки (?????).

Гранулирован.

При применении этого подхода синх.захваты могут запрашиваться к объ.разн.уровня, файлам, отношениям, картежам, требуем уровням объектов определения, тем какая операция выполняется. Объ.захвата – отношение, а для выполнения удален.картежа-картеж. Объ.любого уровня м.б. захвачен в режиме s или х, ввод.спец протоколом гранулиров.захватов и нов.типы захватов. Перед захватом объ. В режиме s или х соотвествует более верхнему уровню должен быть захвачен в режиме is,ix,six. Примечание: при намеривания читать картежи из отношения R это отношение должно быть захвачено в режиме is, а до этого в таком же режиме должен быть захвачен файл. При намерении удалить картежи из отношения R это отношение должно быть захвачено в режиме ix ( а до этого в таком же режиме должен быть захвачен и файл) при намерении удалить, если выполнить длинную(?) операцию просматривания картежей, то экономичнее всего захыватывать это отнощение в режиме six (и до этого файл в режиме is)

Предикатные

Несмотря на привлекательность гранулированного синхронизационного захвата он не решит проблему фантомов. Более привлекательными является механизм предикатных захватов, т.е. захватывается предикой (захватывается условие), которым удовлетворяют эти объекты. Проблема фантомов не возникает при использовании для синхронизации уровня отношений потому как отношение как логичный объект представляет собой неявные условия для входных в него кортежей. Захват отношения это простой и частный случай предикатного захвата. Поскольку любая операция над реляционной БД задается некоторым условием, т.е. в ней указывается неконкретный набор объектов БД над которым надо выполнять операцию, а условие которому должны удовлетворять объекты этого набора идеальным выбором было бы требовать синхронизационный захват в режиме S или X этого условия. Если посмотреть на общий вид условий например в SQL то становится абсолютно непонятно как определить совместимость 2-х предикатных захватов. Без этого исполнять предикатные захваты для синхронизации транзакции, невозможно. Эта проблема не разрешима. Эта проблема решится для простых условий.

9 Тупиковые ситуации параллельного исполнения транзакций. Механизм обработки тупиков.

Пример

О1 О2

Т1 Т2

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

Основой обнаружения тупиков является постоянное поддержание графа транзакций.

Граф ожидания транзакции — ориентированный двудольный граф, в котором 2 вида вертикальных транзакций и ?объектам?.

В этом графе существует дуга из транзакции к объекту, если для транзакции существует удовлетворенный захват объекта. Существует дуга из объекта к транзакции если транзакция ожидает удовлетворения захвата объекта.

Легко показать, что в системе тупик, если на графе есть цикл. Захваты могут быть по 1, но ожидать много. Для распознавания тупика производится граф транзакций. И в графе ищутся циклы.

Традиционной техникой нахождения циклов в орграфе является редукция графа.

1) Находим вершину в которой одинаковые стрелки (исход, вход)

2) Если находим значит не будет циклится, выключаем стрелку.

3) Далее так же стрелки из …

4) Повторяем шаги 1 и 2

5) Если таких вершин больше нет, а стрелки существуют, то есть циклы.

Разрушение тупика транзакции с выбора в цикле транзакции — жертвы, чтобы обеспечить работу других.

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

Механизм временных меток.

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

Основная идея:

Если т1 началась раньше транзакции т2, т. е. система обеспечивает как если бы т1 была целиком выполнена до начала т2. Для каждой транзакции метка т приписывается.

При выполнении действий над объектом транзакция т помечает это своей меткой с типом ожидания чтения. Перед выполнением операций т1 выполняет:

1) проверяет не закончилась ли транзакция т, помечает этот объект. Если т закончилась т1 помечает объект и выполняет операцию

2) если т не завершилось то т1 проверяет конфликтность операций. Если операции конфликтны при объекте остается метка с меньшим значением и т выполняет свою операцию.

3) Если т(Т)>т(Т1) производится откат

4) Если т(Т)<т(Т1) то т1 ставит новую метку и начинается снова.

К недостатку относится потенциально более частые откаты транзакции чем при синхронизационном откате. Связано с более грубыми определениями конфликтов.

10 Журнализация модификации данных в БД. Назначение, ситуации, требующие восстановления БД.

Поскольку основой поддержания целостности является механизм транзакций, поэтому механизм журнализации связан с транзакциями.

Ситуации требующие восстановления:

1) Индивидуальный откат транзакций ROLLBACK

Возможны случаи когда откат инициируется системой (возникает исключительная ситуация). Для отката нужно устранить модификации.

2) «Мягкий сбой» - потеря оперативной памяти.

3) «Жесткий сбой» - повреждение носителя

Архивные копии. Бывает поддержание только общего журнала.

2варианта ведения журнала

  1. Для каждой транзакции поддерживать отдельный локальный журнал этой транзакции.

  2. Поддержание только общего журнала( при индвиудуальных откатах)

11. Журнализация транзакций и буферизация. Восстановление данных при индивидуальном откате транзакции.

Журнал изменений тесно связан не только с управлением транзакций но и с буферизацией страниц БД в ОП, т.к объективно существует разницы в скорости работы процессора и памяти ,и устройств внешней памяти. Буферизация страниц БД в ОП это единственный реальный способ достижения удовлетворит. Эффективности СУБД

Имеются 2 вида буферов:

-буфер журнала

-буфер страниц ОП ,которые содержат связанную информацию

И те и другие могут выталкиваться во ВП. Проблема состоит в выработке политики выталкивания которое обеспечило бы возможность восстанавливать состояние БД после сбоя.

Проблема не возникает при индивидуальных откатах транзакций , поскольку в этих случаях содержимое ОП не утрачено и можно пользоваться содержимым буфера журнала так и буфером страниц.

Но если произошел мягкий сбой и содержимое буфера утрачено, для проведения восстановления БД необходимо иметь некоторые согласованные состояния журнала и БД на ВП.

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

Мин. Требованиям гар-м возможны требования согласованного состояния БД ,является выталкивание при фиксации транзакции всех записей об изменении в БД этой транзакцией.

При этом последние записи в журнале производятся от имени данной транзакции . Явл. Спец запись о конце транзакции.