КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Откат изменений и целостность БД
Транзакции Использование генераторов Использование триггеров для реализации бизнес-правил Триггеры активно используются для реализации бизнес-правил. В частности, это может быть установка с помощью генераторов уникальных значений индексных полей, накапливание статистики в других таблицах и многое другое. Пример. Реализуем простейшее правило формирования уникального значения столбца. Пусть столбец N_RASH в таблице RASHOD должен содержать уникальное значение. Для этой цели определим генератор RASHOD_N_RASH и установим его начальное значение 20. CREATE GENERATO RASHOD_N_RASH SET GENERATOR RASHOD_N_RASH TO 20;
При добавлении новой записи будем присваивать столбцу N_RASH уникальное значение, полученное при помощи генератора: CREATE TRIGGER BI_RASHOD_GEN FOR RASHOD ACTIVE BEFORE INSERT BEGIN NEW.N_RASH = GEN_ID(RASHOD_N_RASH,1); END Генератор– хранимый на сервере БД механизм, возвращающий уникальные значения никогда не совпадающие со значениями, выданными тем же самым генератором в прошлом. Используется для установки уникальных значений столбцов. Для создания генератора используется оператор: CREATE GENERATOR ИмяГенератора; Установка стартового значения генератора: SET GENERATOR ИмяГенератора TO СтартовоеЗначение; Обращение к генератору (получение уникального значения): GEN_ID(ИмяГенератора, Шаг)
Пример: CREATE GENERATOR RASHOD_N_RASH; SET GENERATOR RASHOD_N_RASH TO 20; CREATE TRIGGER BI_RASHOD FOR RASHOD ACTIVE BEFORE INSERT AS BEGIN NEW.N_RASH = GEN_ID(RASHOD_N_RASH, 1); END
Существует несколько способов внесения изменений в таблицы БД. Для локальных (не серверных) БД характерен подход немедленного отображения изменений. Все изменения, внесенные операторами изменения данных в БД немедленно физически запоминаются в таблицах БД и становятся доступны для всех пользователей БД. Отказаться от изменений в этом случае невозможно. Необходимость отката изменений обуславливается тем, что БД всегда должна находиться в целостном состоянии. Классическим примером перехода БД из одного целостного состояния в другое является бухгалтерская проводка (операция), когда некоторая сумма S должна быть списана со счета K и зачислена на счет D. Только успешное выполнение этих двух операций гарантирует целостность информации в БД. Но целостность, например, будет нарушена, если в результате сбоя сумма S будет списана со счета K, но не будет зачислена на счет D. Поэтому в случае ошибки списания/зачисления суммы результаты предыдущей операции должны быть отменены. Существуют механизмы отката изменений в БД в случае невыполнения условия успешного завершения всех операций в составе группы. Один из таких механизмов носит название обработка транзакций. Обычно обработка транзакций реализуется серверами БД.
Дата добавления: 2014-12-23; Просмотров: 404; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |