Разработка серверной части ИС в СУБД MS SQL Server. Разработка серверной части клиент-серверной информационной системы в заданной предметной области, страница 3

Создание таблицы «Должности» с полями:  Код_Должности (первичный ключ), Название_Должности, Оклад. Предоставляет информацию о должностях.

USE [KursProject]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[Должности](

[Код_Должности] [int] IDENTITY(1,1) NOT NULL,

[Название_Должности] [nchar](15) NULL,

[Оклад] [money] NULL,

CONSTRAINT [PK_Должности] PRIMARY KEY CLUSTERED

(

[Код_Должности] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

Обоснование соответствия разработанной БД требованиям нормализации:

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

Инструкции создания представлений на языке Transact-SQL:Отдел кадров (все данные о сотрудниках, отображение сведений о сотрудниках с определенными: ФИО, стажем работы).

Данные Отображение сведений обо всех сотрудниках:

USE KursProject

GO

CREATE VIEW Сведения_обо_всех_сотрудниках

AS

SELECT        Код_Сотрудника, ФИО, Пол, Дата_Рождения, Образование, Телефон, Адрес

FROM            dbo.Сотрудники

Результат:

Предложены следующие операции обработки данных, требующие использования пользовательских функций трех типов: скалярной, табличных Inline и Multi-statement.

1.  Скалерная функция.

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

Рисунок 1 – Создания и выполнения скалярной функции

2.  Табличная Inline функция.

С помощью функции можно узнать всех сотрудников и занимаемые ими должности в заданный промежуток времени.

Рисунок 2 – Создания и выполнения табличной inline функции

3.Табличная Multi-statement функция.

С помощью функции можно узнать ФИО и образования персонала по заданному полу.

Рисунок 3 – Создания и выполнения табличной Multi-statement функции

Для разработанной БД предложены операции обработки данных, требующие использования локальных хранимых процедур. Разработать две хранимых процедуры и протестировать их работу.

С помощью первой хранимой процедуры можно узнать количество женщин среди сотрудников.

Рисунок 4 – Результат создания и выполнение первой хранимой процедуры

С помощью второй хранимой процедуры можно узнать список должностей, имеющих оклад больше или равен задаваемому (в нашем тесте пример оклада составлял «1000000»)

Рисунок 5 – Результат создания и выполнение второй хранимой процедуры

Для БД были разработаны следующие DML-триггеры.

Триггер InsteadofDelete для таблицы Услуги. Триггер выполняется вместо удаления записей из таблицы. Удаляемая запись переносится в таблицу «АрхивУслуг», которая предварительно создана (с такими же полями, как в таблицу «Услуги»)

CREATE TRIGGER InsteadofDelete ON Услуги

INSTEAD OF DELETE

AS

SET NOCOUNT OFF

INSERT INTO АрхивУслуг

SELECT Код_Услуги, Наименование, Новшества, Цена

FROM deleted

Delete Услуги where Код_Услуги in (select Код_Услуги from deleted)

Рисунок 6 – Удаления записи из таблицы «Услуги»

Рисунок 7 – Запись которая была удалена из таблиц «Услуги»

Триггер InsteadofInsert для таблицы Услуги. Триггер выполняется вместо добавления записей из таблицы. Если наименование добавляемой услуги совпадает с существующим в БД то это остановка не будет занесена в БД. 

CREATE TRIGGER InsteadOfInsert on Услуги

INSTEAD OF INSERT

AS

SET NOCOUNT ON

IF (NOT EXISTS (SELECT P.Наименование

FROM Услуги P, inserted I

WHERE P.Наименование = I.Наименование))

INSERT INTO Услуги

SELECT Код_Услуги,Наименование,Новшества,Цена

FROM inserted

ELSE PRINT 'Такая услуга существует.'

Рисунок 8 – Попытка добавления остановки, которая существует

Вывод: Разработали серверную часть клиент-серверной информационной системы в заданной предметной области средствами СУБД MS SQL Server. Разработали и настроили свойства таблиц и представлений; Создали диаграмму БД; Создали триггеры, обеспечивающие целостность БД; Хранимые процедуры; Пользовательские функции различных типов.