Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Read uncommitted (чтение незафиксированных данных)




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

 

Билет№34.1) Какие задачи могут решаться использованием регулярных выражений в SQL – запросах?

2) Как соотносятся между собой понятия «сущность – связь» и зависимость (функциональная зависимость, многозначная зависимость и т.п.)?

3) При помощи какого предложения SELECT можно осуществить выборку всех потомков наперед заданного узла иерархии при моделировании иерархии способом правого и левого коэффициентов?

При данном способе моделирования иерархии некоторую трудность мо-жет создать задача определения всех непосредственных потомков для заданно-го узла. Для того чтобы выбрать всех непосредственных потомков заданного узла, нужно:

1) определить уровень этого заданного узла и нарастить полученное значе-ние на единицу – это будет значение уровня в дереве для непосредствен-ных потомков данного узла:

SELECT COUNT(*)+1 AS Level

FROM T AS B3, T AS E3

WHERE E3.L BETWEEN B3.L AND B3.R AND

E3.Node='D';

2) выбрать узлы уровня, вычисленного на предыдущем шаге:

SELECT DISTINCT B1.Node FROM T AS B1, T AS E1 WHERE

(SELECT COUNT(*) FROM T AS B2, T AS E2 WHERE

E2.L BETWEEN B2.L AND B2.R AND E2.Node=B1.Node)=

(SELECT COUNT(*)+1 FROM T AS B3, T AS E3 WHERE

E3.L BETWEEN B3.L AND B3.R AND E3.Node='D');

3) Окончательно из полученного на предыдущем шаге списка узлов вы-брать те узлы, которые имеют предком заданный узел:

SELECT B1.Node FROM T AS B1, T AS E1

WHERE (SELECT COUNT(*) FROM T AS B2, T AS E2 WHERE

E2.L BETWEEN B2.L AND B2.R AND E2.Node=B1.Node)=

(SELECT COUNT(*)+1 FROM T AS B3, T AS E3 WHERE

E3.L BETWEEN B3.L AND B3.R AND E3.Node='D') AND

B1.L BETWEEN E1.L AND E1.R AND E1.Node='D';

 

Билет№35.1) При помощи какого предложения SELECT можно осуществить выборку всех потомков наперед заданного узла иерархии при моделировании иерархии методом вспомогательной таблицы?

Выбор всех потомков для заданного узла (в примере это узел B) может быть осуществлен следующим предложением SQL:

SELECT T_Base.Node

FROM T_Base, T_Helper

WHERE T_Base.ID=T_Helper.UID and

T_Helper.ParentID=(SELECT ID FROM T_Base

WHERE Node='B');

2) Журнализация изменений БД. Индивидуальные откаты транзакций. Восстановление после «мягкого» сбоя («тёплый пуск»). Восстановление после «жесткого» сбоя («холодный пуск»).

Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных вида аппаратных сбоев: 1) так называемые мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера и 2) жесткие сбои, характеризуемые потерей информации на носителях внешней памяти. Поддержание надежности хранения данных в БД требует избыточности хранения данных. Журнал - это особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД. Протокола Write Ahead Log–WAL – эта стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Самая простая ситуация восстановления - индивидуальный откат транзакции. Достаточно для каждой транзакции поддерживать локальный журнал операций модификации БД, выполненных в этой транзакции, и производить откат транзакции путем выполнения обратных операций, следуя от конца локального журнала. Для восстановления БД после жесткого сбоя используют журнал и архивную копию БД. Архивная копия - это полная копия БД к моменту начала заполнения журнала. Восстановление идет исходя из архивной копии по журналу воспроизводится работа всех транзакций, которые закончились к моменту сбоя. В принципе, можно даже воспроизвести работу незавершенных транзакций и продолжить их работу после завершения восстановления.


Поделиться:

Дата добавления: 2015-04-18; просмотров: 79; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты