- •Курсовой проект Дисциплина «субд»
- •Введение.
- •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 Отчетные документы.
6.2.Отчетные хранимые процедуры и функции
Для формирования отчетных результатов вспомогательные процедуры и функции были объединены в несколько общих функций, которые на основе всех реализованных запросов получают необходимые для отчета данные.
Процедуры и функции:
PrintPodr -функция вывода работы подразделения с определенной даты
PrintElevator-Личная карточка лифта со всей историей
Пример отчета личной карточки лифта со всей историей:
В качестве входных параметров подаем личный номер лифта, для которого будет выводиться отчет. Далее используя эти параметры получаем данные овсех его поломках, ремонтах, техосмотрах и застреваний.(см. приложение 8)
--Личная карточка лифта со всей историей
CREATEFUNCTIONPrintElevator
(@NumVARCHAR(10))
RETURNS@ResultTABLE(
NameStreetVARCHAR(40),
PersonalNumberINT,
FIOVARCHAR(80),
TypeOfAppVARCHAR(80),
TypeOfDefectVARCHAR(80),
BreakDescriptionVARCHAR(256),
BreakLevelBIT,
BreakTimeDATETIME,
SpecialityVARCHAR(40)
)
AS
BEGIN
INSERTINTO@Result
SELECT
NameStreet [Улица],
PersonalNumber [№ лифта],
FIO [ФИО],
TypeOfApp [Видзаявки],
TypeOfDefect [Виднеисправности],
BreakDescription [Описаниеполомки],
BreakLevel [степень],
BreakTime [времяполомки],
Speciality [Специальность]
FROMStreetSTINNERJOINElevatorsEL
ONST.IDStreet=EL.IDStreet
ANDPersonalNumber=@Num
INNERJOINRequestRE
ONEL.IDElevator=RE.IDElevator
INNERJOINTypeOfApplicationTA
ONRE.IDTypeOfApplication=TA.IDTypeOfApplication
INNERJOINOrdersORD
ONRE.IDRequest=ORD.IDRequest
INNERJOINElectricianELC
ONORD.IDElectrician=ELC.IDElectrician
INNERJOINDefectsDFS
ONORD.IDOrders=DFS.IDOrders
INNERJOINDefectDF
ONDFS.IDDefect=Df.IDDefect
RETURN;
END
SELECT*FROMPrintElevator(6)
7.Обеспечение безопасности
В ходе изучения предметной области в рамках курсового проекта по дисциплине «Управление данными» были определены основные пользователи для работы с базой данных:
Диспетчер
Администратор
Диспетчер вносит/редактирует данные в нарядах, заявках, а также создает все необходимые отчеты
Администратор создает и редактирует все справочники
|
Диспетчеры |
Администраторы |
Заполнение/редактирование справочников |
- |
+ |
Заполнение/редактирование заявок |
+ |
- |
Заполнение/редактирование нарядов |
+ |
- |
Создание отчетов |
+ |
- |
Просмотр данных |
+ |
+ |
Так как диспетчеров в организации несколько, а также возможно администраторов тоже будет 2 (посменно или же на пол ставки), было создано две роли:
Диспетчеры
Администраторы
--роль диспетчеры
CREATEROLEDispatchers
--рольАдминистраторы
CREATEROLEAdministrators
Ролям были выделены следующие права доступа(см. приложение 9):
|
Dispatchers |
Administrators |
Street |
R |
RWED |
Electrician |
R |
RWED |
TypeOfApplication |
R |
RWED |
Defect |
RWED |
R |
Elevator |
R |
RWED |
Request |
RWED |
R |
Orders |
RWED |
R |
Defects |
RWED |
R |
PrintElevator |
R |
- |
PrintPodr |
R |
- |
print1El |
R |
- |
Printall |
R |
- |
Где R – права на чтение, W - права на запись, E – права на редактирование, D – права на удаление.
В свою очередь на каждую роль были созданы пользователи (см. приложение 9):
Диспетчер1
Диспетчер2
Диспетчер3
Администратор1
Администратор2
-- Пользователь – Диспетчер1
USEElevator
CREATEUSERDispatcher1
WITHOUTLOGIN
-- Пользователь – Администратор1
USEElevator
CREATEUSERAdministrator1
WITHOUTLOGIN
Затем пользователи были добавлены в роли:
--добавление членов в роль Dispatchers базы данных
sp_addrolememberDispatchers,
Dispatcher1
sp_addrolememberDispatchers,
Dispatcher2
sp_addrolememberDispatchers,
Dispatcher3
--добавлениечленовврольAdministratorsбазыданных
sp_addrolememberAdministrators,
Administrator1
sp_addrolememberAdministrators,
Administrator2
Таким образом, безопасность базы данных была обеспечена за счет создания необходимого числа учетных записей для различных ролей пользователей БД, ограничения их доступа к таблицам и предоставления им права выполнения хранимых процедур, отвечающих за необходимые им действия.