- •Курсовой проект Дисциплина «субд»
- •Введение.
- •1.Постановка задачи
- •1.1.Описание предметной области
- •1.2.Функциональные требования
- •2.Физическая модель
- •2.1.Используемая субд
- •3.Обеспечение целостности бд
- •4.Создание таблиц и ограничений.
- •5.Хранимые процедуры
- •6.Выходные формы
- •6.1.Представления
- •6.2.Отчетные хранимые процедуры и функции
- •7.Обеспечение безопасности
- •8.Оптимизация
- •9.Тестирование
- •Заключение
- •Библиографический список
- •Приложение 6 триггер
- •Приложение 7 Хранимые процедуры
- •Приложение 8 Отчетные формы
- •Приложение 9 Безопасность
- •Приложение 10 Индексы
- •Приложение 11 Тестирование
- •Приложение 12 Отчетные документы.
Приложение 8 Отчетные формы
---------------------------------------------------------------------------------------------------------------------Отчетные формы
--Отчет работы всех подразделений сортировка по улицам
CREATE VIEW printall
AS
SELECT NameStreet [Улица],
PersonalNumber [№ лифта],
FIO [ФИО],
TypeOfApp [Видзаявки],
TypeOfDefect [Виднеисправности],
BreakDescription [Описаниеполомки],
BreakLevel [степень],
BreakTime [времяполомки],
Speciality [Специальность]
FROM Street ST INNER JOIN Elevators EL
ON ST.IDStreet=EL.IDStreet
INNER JOIN Request RE
ON EL.IDElevator=RE.IDElevator
INNER JOIN TypeOfApplication TA
ON RE.IDTypeOfApplication=TA.IDTypeOfApplication
INNER JOIN Orders ORD
ON RE.IDRequest=ORD.IDRequest
INNER JOIN Electrician ELC
ON ORD.IDElectrician=ELC.IDElectrician
INNER JOIN Defects DFS
ON ORD.IDOrders=DFS.IDOrders
INNER JOIN Defect DF
ON DFS.IDDefect=Df.IDDefect
;
SELECT * FROMprintall
--вывод всех поломанных лифтов с высокой степенью
CREATE VIEW print1El
AS
SELECT NameStreet [Улица],
PersonalNumber [Номерлифта],
FIO [ФИО],
TypeOfApp [Видзаявки],
TypeOfDefect [Виднеисправности],
BreakDescription [Описаниеполомки],
BreakLevel [степеньполомки]
FROM Street ST INNER JOIN Elevators EL
ON ST.IDStreet=EL.IDStreet
INNER JOIN Request RE
ON EL.IDElevator=RE.IDElevator
AND BreakLevel=1
INNER JOIN TypeOfApplication TA
ON RE.IDTypeOfApplication=TA.IDTypeOfApplication
INNER JOIN Orders ORD
ON RE.IDRequest=ORD.IDRequest
INNER JOIN Electrician ELC
ON ORD.IDElectrician=ELC.IDElectrician
INNER JOIN Defects DFS
ON ORD.IDOrders=DFS.IDOrders
INNER JOIN Defect DF
ON DFS.IDDefect=Df.IDDefect;
SELECT * FROMprint1El
--функция вывода работы подразделения с определенной даты
CREATE FUNCTION PrintPodr
(@Date DATETIME,
@Spec VARCHAR(40))
RETURNS @Result TABLE(
NameStreetVARCHAR(40),
PersonalNumber INT,
FIO VARCHAR(80),
TypeOfAppVARCHAR(80),
TypeOfDefectVARCHAR(80),
BreakDescriptionVARCHAR(256),
BreakLevel BIT,
BreakTime DATETIME,
SpecialityVARCHAR(40)
)
AS
BEGIN
INSERT INTO @Result
SELECT
NameStreet [Улица],
PersonalNumber [№ лифта],
FIO [ФИО],
TypeOfApp [Видзаявки],
TypeOfDefect [Виднеисправности],
BreakDescription [Описаниеполомки],
BreakLevel [степень],
BreakTime [времяполомки],
Speciality [Специальность]
FROM Street ST INNER JOIN Elevators EL
ON ST.IDStreet=EL.IDStreet
INNER JOIN Request RE
ON EL.IDElevator=RE.IDElevator
INNER JOIN TypeOfApplication TA
ON RE.IDTypeOfApplication=TA.IDTypeOfApplication
INNER JOIN Orders ORD
ON RE.IDRequest=ORD.IDRequest
AND BreakTime> @Date
INNER JOIN Electrician ELC
ON ORD.IDElectrician=ELC.IDElectrician
AND Speciality = @Spec
INNER JOIN Defects DFS
ON ORD.IDOrders=DFS.IDOrders
INNER JOIN Defect DF
ON DFS.IDDefect=Df.IDDefect
RETURN;
END
SELECT * FROMPrintPodr('05.07.2011 012:00:00:00','Основнойэлектромеханик')
--Личная карточка лифта со всей историей
CREATE FUNCTION PrintElevator
(@NumVARCHAR(10))
RETURNS @Result TABLE(
NameStreetVARCHAR(40),
PersonalNumber INT,
FIO VARCHAR(80),
TypeOfAppVARCHAR(80),
TypeOfDefectVARCHAR(80),
BreakDescriptionVARCHAR(256),
BreakLevel BIT,
BreakTime DATETIME,
SpecialityVARCHAR(40)
)
AS
BEGIN
INSERT INTO @Result
SELECT
NameStreet [Улица],
PersonalNumber [№ лифта],
FIO [ФИО],
TypeOfApp [Видзаявки],
TypeOfDefect [Виднеисправности],
BreakDescription [Описаниеполомки],
BreakLevel [степень],
BreakTime [времяполомки],
Speciality [Специальность]
FROM Street ST INNER JOIN Elevators EL
ON ST.IDStreet=EL.IDStreet
AND PersonalNumber=@Num
INNER JOIN Request RE
ON EL.IDElevator=RE.IDElevator
INNER JOIN TypeOfApplication TA
ON RE.IDTypeOfApplication=TA.IDTypeOfApplication
INNER JOIN Orders ORD
ON RE.IDRequest=ORD.IDRequest
INNER JOIN Electrician ELC
ON ORD.IDElectrician=ELC.IDElectrician
INNER JOIN Defects DFS
ON ORD.IDOrders=DFS.IDOrders
INNER JOIN Defect DF
ON DFS.IDDefect=Df.IDDefect
RETURN;
END
SELECT * FROM PrintElevator (6)