- •Курсовая работа
- •--Даталогическое моделирование --Создание базы данных и объектов базы данных
- •1. Выбор автоматизируемых функций и информационного обеспечения
- •1.1. Описание предметной области
- •1.2. Выбор и описание автоматизируемых функций
- •2. Даталогическое моделирование
- •3. Создание базы данных и объектов базы данных
- •3.1. Создание базы данных
- •Создание таблиц
- •3.3. Создание связей
- •3.3.2.. Схема базы данных уголовное_дело
- •3.4. Создание запросов
- •3.5. Создание фильтров
- •3.6. Создание триггеров
- •3.7. Создание пользовательских функций
- •3.8. Создание ограничений
- •3.9. Создание пользователей и ролей
- •4. Резервное копирование.
- •Список использованной литературы
3.5. Создание фильтров
На основе запроса " Запрос звание+сотрудник " создадим фильтры, отображающие следователей по установленному званию.

Рис. 3.5.1. Окно созданных представлений
Для того чтобы создать фильтр, нужно установить критерий отбора записей. Пусть наш фильтр отображает только следователей имеющих звание "капитан". В строке "звание", в столбце "Filter" задаю следующее условие отбора ='Капитан'. (рис. 3.5.2.).

Рис. 3.5.2. Окно выбранных представлений
Настроим сортировку записей в фильтре. После установки сортировки записей в фильтре проверим его работоспособность, выполнив его. Результат выполнения фильтра должен выглядеть как на рис. 3.5.2.
В режиме SQL запрос выглядит так:
SELECT ФИО, должность, звание
FROM dbo.[звание+сотрудник]
WHERE (звание = 'Капитан')

Рис. 3.5.3. Проверка работоспособности фильтра
В режиме скрипта SQL запрос выглядит так (как показано на рис. 3.5.4)

Рис. 3.5.4. Окно фильтра "фильтр_звание" через скрипт
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[фильтр_звания]
AS
SELECT ФИО, должность, звание
FROM dbo.[звание+сотрудник]
WHERE (звание = 'Капитан')
GO
3.6. Создание триггеров
Создадим триггеры для таблицы "следователь". (рис. 3.6.1.).

Рис. 3.6.1. Вид создания триггеров
Создадим триггер, выводящий сообщение "запись добавлена" при добавлении записи в таблицу "следователь". Создадим новый триггер.
Появится следующее окно с новым триггером (рис. 3.6.2):

Рис. 3.6.2. Окно структуры триггера
В окне нового триггера наберём код как показано на рис. 3.6.3.

Рис. 3.6.3. Окно создания триггера в SQL запросе
Выполним набранный код.
В режиме скрипта SQL запрос выглядит так:
CREATE TRIGGER [dbo].[Индикатор добавлення в следователь]
ON [dbo].[следователь]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
PRINT 'Запись добавлена'
END
3.7. Создание пользовательских функций
Создадим "функцию отбора по возрасту" (рис. 3.7.1)

Рис. 3.7.1 Вид создания функций
В окне новой функции наберём код как показано на рис. 3.7.2.

Рис. 3.7.2. Окно создания функций в SQL запросе
Из рис. 3.7.1 видно, что создаваемая функция "Функция отбора по возрасту" выполняется после записи ввода всей записи представленной в данной окне.
Данная функция будет считать сколько лет следователю, находящемся в базе данных «уголовное_дело». Проверяю создалась ли функция.(рис. 3.7.3).

Рис. 3.7.3.
Появится следующее окно. (рис. 3.7.4):

Рис. 3.7.4. dbo.Функция отбора по возрасту
В режиме скрипта SQL запрос выглядит так:
CREATE FUNCTION [dbo].[Функция отбора по возрасту]
(
-- Add the parameters for the function here
)
RETURNS TABLE
AS
RETURN
(
SELECT ФИО, [дата_рождения], Возраст = DateDiff(yy, [дата_рождения], GetDate()) FROM следователь
)
Просмотрим созданную функцию через запрос. (рис. 3.7.5)

Рис. 3.7.5. Окно созданных функций
Добавим запрос "функцию отбора по возрасту".
Появится окно конструктора запросов (рис. 3.7.6).

Рис. 3.7.6. Окно выбранной функции
Определим поля, отображаемые при выполнении запроса. Определим отображаемые поля нашего запроса, как это показано на рис. 3.7.6, отобразим поле "ФИО" и "Возраст".
Проверим запрос на работоспособность и сохраняем его. Результат выполнения запроса появиться в виде таблицы в области результата (рис. 3.7.7).
Запрос появится в папке "Views" БД "уголовное_дело" в обозревателе объектов (рис. 3.7.7).

Рис. 3.7.7. Проверка созданной функции
Проверим работоспособность созданного запроса вне конструктора запросов. Результат представлен на рис. 3.7.7.
Данный запрос при выполнении дает информацию возраст следователю.
В режиме SQL запрос выглядит так:
SELECT TOP (100) PERCENT ФИО, Возраст
FROM dbo.[Функция отбора по возрасту]() AS [Функция отбора по возрасту_1]
ORDER BY ФИО, Возраст DESC
В режиме скрипта SQL запрос выглядит так (как показано на рис. 3.7.8.)

Рис. 3.7.8. Окно функции "Function Возраст_следователя" через скрипт
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[Возраст_следователя]
AS
SELECT TOP (100) PERCENT ФИО, Возраст
FROM dbo.[Функция отбора по возрасту]() AS [Функция отбора по возрасту_1]
ORDER BY ФИО, Возраст DESC
GO
