Скачиваний:
95
Добавлен:
02.05.2014
Размер:
446.49 Кб
Скачать

7.1.5 Создание триггеров базы данных

Для создания триггеров базы данных применяются SQL-операторы CREATE TRIGGER. Они обеспечивают реализации нестандартных ограничений и операционных правил, специфицированных на предыдущем этапе в таблицах 5.4–5.5. При программировании триггеров ориентировались на диалект Transact-SQL для Microsoft SQL Server 2005.

По согласованию с руководителем проекта для реализации были выбран один триггер базы данных, а именно:

– триггер «…», реализующий ограничение … (см. табл. 5._).

CREATE TRIGGER [ПредметнаяОбласть_тип]

ON [Предметная область]FOR INSERT,UPDATE AS

DECLARE

@KodTipa CHAR (6)

BEGIN TRANSACTION

SELECT @KodTipa = [Код типа]

FROM INSERTED

IF NOT EXISTS (

SELECT*FROM тип

WHERE [Код типа] = @KodTipa)

BEGIN

ROLLBACK TRANSACTION

RAISERROR('Несуществующий тип предметной области',16,1)

END

ELSE

BEGIN

COMMIT TRANSACTION

END

7.2 Sql-код создания представлений отображения

В данном подразделе в соответствии со способами и формами представлений на основе модели соединения таблиц записываются SQL-операторы создания виртуальных таблиц (представлений) CREATE VIEW и хранимых процедур CREATE PROCEDURE, которые обеспечивают реализацию внешних представлений базы данных, соответствующих разработанным моделям отображения (см. разд. 6 и документ2008.654600.БД.КР.016.МО«Модели отображения»). Сделан следующий выбор между виртуальными таблицами и хранимыми процедурами при задании представлений отображения:

– для функции 1 «Патенты», требующей вычисление виртуального атрибута, — на основе виртуальных таблиц;

– для функции 2 «Оформление заявки» — на основе хранимых процедур;

– для функции 3 «Лицензии» — на основе виртуальных таблиц (для корневого представления) и хранимых процедур (для остальных представлений).

При программировании ориентировались на диалект Transact-SQL Microsoft SQL Server 2005. Результаты приведены ниже для отдельных функций.

7.2.1 Представления отображения для функции 1

Здесь представлены SQL-операторы CREATE VIEW, предназначенные для создания представлений отображения для функции 1 «Патенты» в соответствии с разработанными концептуальными моделями отображения (см. разд. 6.2.1). Все отображения для этой функции построены в виде виртуальных таблиц (View):

CREATE VIEW [dbo].[VПатенты] AS

SELECT [Патенты].[Рег. номер],

[Патенты].[Код ОИС],

[Документы].[Дата получения],

[ОИС].[Наименование ОИС],

[ОИС].[Код категории],

[ОИС].[Код типа],

[Категория].[Наименование],

COUNT([Патенты].[Рег. номер])AS[Количество авторов]

FROM(((([Патенты]

INNERJOINДокументы

ON[Патенты].[Рег. номер]=Документы.[Рег. номер])

INNERJOIN[ОИС]

ON[Патенты].[Код ОИС]=[ОИС].[Код ОИС])

INNERJOIN[Автор патента]

ON[Автор патента].[Рег. номер]=[Патенты].[Рег. номер])

INNERJOIN[Категория]

ONОИС.[Код категории]=Категория.[Код категории])

GROUPBY[Патенты].[Рег. номер],

[Патенты].[Код ОИС],

[Документы].[Дата получения],

[ОИС].[Код ОИС],

[ОИС].[Наименование ОИС],

[ОИС].[Код категории],

[ОИС].[Код типа],

[Категория].[Наименование]

CREATEVIEW[dbo].[VАвтор]AS

SELECT[Автор].[Код автора],

[Автор].[ФИО автора],

[Автор патента].[Код организации],

[Автор патента].[Код должности],

[Должность].[Название должности],

[Организация].[название организации]

FROM((([Автор]

INNERJOIN[Автор патента]

ON[Автор].[Код автора]=[Автор патента].[Код автора])

INNERJOIN[Должность]

ON[Автор патента].[Код должности]=[Должность].[Код должности])

INNERJOIN[Организация]

ON[Автор патента].[Код организации]=[Организация].[Код организации])

CREATEView[dbo].[VПредметная область]AS

SELECT[Предметная область].[Код типа],

[Тип].[Наименование],

[Предметная область патента].[Примечание]

FROM(([Тип]

INNERJOIN[Предметная область]

ON[Тип].[Код типа]=[Предметная область].[Код типа])

INNERJOIN[Предметная область патента]

ON[Предметная область].[Код типа]=[Предметная область патента].[Код

типа])

Соседние файлы в папке База данных - ВУЗ. Отдел интеллектуальной собственности