КАТЕГОРИИ: Архитектура-(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) |
Bno varchar(3) not null)
Sno VARCHAR(5), Ono VARCHAR(5) NOT NULL, Rent MONEY MOT NULL, Type CHAR(l) NOT NULL, Pcode VARCHAR(B), City VARCHAR(15) NOT NULL, Area VARCHAR(15), Street VARCHAR(25) NOT NULL, Pno VARCHAR(5) NOT NULL, CREATE TABLE property_for_rent( Реализация в среде СУБД INGRES 6.4 Реализация с использованием триггеров Некоторые СУБД, например Oracle, позволяют использовать триггеры. Триггером называют действие, связанное с событием, вызвавшим изменение в содержимом таблицы. В СУБД Oracle три типа событий вызывают запуск триггеров — это попытки вставить (INSERT), обновить (UPDATE) или удалить (DELETE) один из кортежей (записей, строк) таблицы. Триггеры могут использоваться для организации или расширения поддержки ссылочной целостности данных, для реализации сложных бизнес-правил и контроля за внесением в данные изменений. Приведенный ниже пример демонстрирует, как в среде СУБД Oracle можно организовать контроль за внесением в атрибут Rent таблицы Property_for_Rent изменений, превышающих десять процентов исходного значения. CREATE TRIGGER property_before_update BEFORE UPDATE ON property_for_rent FOR EACH ROW WHEN (NEW.rent/OLD.rent>l.l) BEGIN INSERT INTO property_for_rent_audit VALUES (:OLD.pno,:OLD.street,:OLD.area,:OLD.city,:OLD.pcode, :OLD.type,:OLD.rooms,:OLD.rent,:OLD.ono,:OLD.sno,:OLD.bno) END
В этом примере для таблицы Property_for_Rent создается триггер типа before update (Перед обновлением). Как следует из его названия, предусмотренные этим триггером действия, будут выполняться до фиксации в базе данных результатов выполнения транзакций обновления. Команды между ключевыми словами BEGIN и END будут выполняться при каждом обновлении строки в таблице Property_for Rent, которое удовлетворяет условию, указанному в предложении WHEN. Этот триггер предполагает существование таблицы с именем Property_for_Rent_Audit, в которую будут помещаться копии обновленных записей, удовлетворяющих условиям отбора. В некоторых СУБД, не совместимых с новым Стандартом языка SQL, отсутствует поддержка одной или более фраз PRIMARY KEY, FOREIGN KEY и DEFAULT. Аналогичным образом, многие типы СУБД не поддерживают понятия доменов. В частности, в среде целевой СУБД типа INGRES 6.4 таблица Property for Rent может быть создана с помощью следующего оператора языка SQL: Rooms SMALLINT NOT NULL,
В данном случае все требования, предъявляемые к допустимости значений ключей, принимаемым по умолчанию значениям и доменам атрибутов, должны быть реализованы программно в самих приложениях, которые должны разрабатываться с учетом всех этих требований. Исключением из данного правила являются только ограничения для значений первичных ключей, которые могут быть реализованы с помощью организации уникальных индексов, как описывается ниже. Альтернативный вариант — определить структуру хранения этой таблицы в виде двоичного дерева или ISAM-файла (приложение Б).
Дата добавления: 2014-01-07; Просмотров: 257; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |