- •Курсовой проект Дисциплина «субд»
- •Введение.
- •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 Отчетные документы.
5.Хранимые процедуры
Хранимые процедуры представляют собой набор команд, состоящий из одного или нескольких операторов SQL и сохраняемый в базе данных в откомпилированном виде, что обеспечивает быстрый доступ к данным.
Процедуры добавления были реализованы для всех таблиц БД, а процедуры удаления и обновления только для некоторых.
Были созданы процедуры добавления/удаления/обносления данных для выполнения следующих бизнес-правил:
Добавление/правка данных о вызовах на устранение неисправностей в работе лифтов и ЛДСС;
Добавление/правка данных о технических осмотрах лифтов и ЛДСС;
Добавление/правка данных об аварийных обслуживаниях лифтов и ЛДСС;
Добавление/правка данных о личных данных электромехаников
Процедуры добавления данных:
PStreetINSERT
PTypeOfApplicationINSERT
PElectricianINSERT
PDefectINSERT
PElevatorsINSERT
PRequestINSERT
POrdersINSERT
PDefectsINSERT
Процедуры обновления данных:
UpdateStreet
UpdateElectrician
UpdateDefect
UpdateElevators
UpdateRequest
UpdateOrders
UpdateDefects
Процедуры удаления данных:
DeleteStreet
DeleteTypeOfApplication
DeleteElectrician
DeleteDefect
DeleteElevators
DeleteRequest
DeleteOrders
DeleteDefects
В качестве примера процедуры добавления данных ниже приведена хранимая процедура, которая будет вводить данные в таблицу Street(см. Приложение 7.)
CREATEPROC PStreetINSERT
@NameStreet VARCHAR(40)
AS
INSERT INTO Street
(NameStreet)
VALUES
(@NameStreet)
Пример процедуры удаления данных из таблицы TypeOfApplication(по умолчанию тип заявки может быть только «поломка», «застревание» или «техосмотр»)(см. Приложение 7.)
CREATEPROCDeleteTypeOfApplication
(@IDTypeOfApplicationINT)
AS
DELETEFROMTypeOfApplication
WHEREIDTypeOfApplication=@IDTypeOfApplication
Пример процедуры обновления (замены) данных в таблицеStreet, на случай если Улицу переименуют (см. Приложение 7.)
CREATEPROCUpdateStreet
(@IDStreetINT,
@NameStreetVARCHAR(40))
AS
UPDATEStreet
SETNameStreet=@NameStreet
WHEREIDStreet=@IDStreet
6.Выходные формы
В рамках данного курсового проекта организация данных в виде БД преимущественно была необходима для того, чтобы из БД можно было оперативно получить статистические данные, отчетные формы и другую необходимую и полезную для работы информацию.
Для получения конечных отчетных форм были использованы:
Представления;
Отчетные хранимые процедуры и функции;
В рамках данной курсовой работы было необходимо реализовать следующие отчеты:
Личная карточка каждого лифта со всей историей.
Отчет о работе выбранного подразделения начиная с определенной даты
Полный отчет всех подразделений
6.1.Представления
Механизм представления – мощное средство СУБД, позволяющее скрыть реальную структуру БД от некоторых пользователей за счет определения представлений.
В данном курсовом проекте представление использовалось для объединения данных из нескольких таблиц в статический отчет, а также ограничения доступа к базе данных.
Представления:
Printall-Отчет работы всех подразделений сортировка по улицам
print1El-вывод всех поломанных лифтов с высокой степенью
Пример представления:
Поскольку полный отчет о работе всех подразделений организации хранится в разных таблицах и для его вывода не нужны дополнительные входные параметры, то представляем его вывод в виде представления.(см. приложение 8)
CREATEVIEWprintall
AS
SELECTNameStreet [Улица],
PersonalNumber [№ лифта],
FIO [ФИО],
TypeOfApp [Вид заявки],
TypeOfDefect [Вид неисправности],
BreakDescription [Описание поломки],
BreakLevel [степень],
BreakTime [время поломки]
FROMStreetSTINNERJOINElevatorEL
ONST.IDStreet=EL.IDStreet
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