
КП СУБД Вьюгин А.А.pptx
- Количество слайдов: 22
Курсовой проект Дисциплина «СУБД» Тема: «Разработка базы данных для системы «Учесть обслуживание, технический осмотр и ремонт лифтов в домах города Сыктывкар компанией ООО «ОТИС-Лайн» » » Вьюгин Антон ИСТ-09
Цель • Целью данного курсового проекта является построение физической модели базы данных для автоматизированной системы. 2
Задачи • Переход от логической модели базы данных к физической. • Создание выходных форм, а именно хранимых процедур и функций • Организация обеспечения безопасности базы данных. • Оптимизация базы данных за счет индексов и анализа запросов. • Тестирование базы данных. 3
Функции системы Управление данными (добавление/правка данных): • О вызовах на устранение неисправностей в работе лифтов и ЛДСС; • О технических осмотрах лифтов и ЛДСС; • Об аварийных обслуживаниях лифтов и ЛДСС; • О личных данных электромехаников Формирование необходимых форм отчетов: • Личная карточка каждого лифта со всей историей. • Отчет о работе аварийных электромехаников. • Отчет о работе основных электромехаников • Полный отчет работы организации 4
Создание таблиц Были созданы следующие таблицы: • • Street (Улица) - справочник Electrician (Электромеханик) - справочник Type. Of. Application (Вид заявки) - справочник Defect (Неисправность) - справочник Elevators (Лифт) Request (Заявка) Orders (Наряд) Defects (Неисправности) 5
Именование объектов Таблицы базы данных именуются в соответствии с их содержимым и на английском языке, т. к. он является интернациональным. Например таблица хранящая в себе данные о лифтах (личный номер, дом, подъезд и т. п. ) называется Elevator. Именование процедур и функций осуществляется по следующему шаблону: • Добавление <имя таблицы>INSERT, • Удаление - < имя таблицы >Delete, • Обновление - < имя таблицы >Update, • Отчетные формы - print<имя объекта или действия> 6
Таблица Street Таблица Улица (Street) Атрибут Наименование атрибута Тип атрибута Ограничения ID Улицы IDStreet INT PRIMARY KEY Название улицы Name. Street VARCHAR (40) UNIQUE NOT NULL CREATE TABLE Street (IDStreet INT IDENTITY NOT NULL, Name. Street VARCHAR(40) NOT NULL ); ALTER TABLE Street WITH CHECK ADD CONSTRAINT IDStreet. Primary PRIMARY KEY (IDStreet), CONSTRAINT Name. Street. Unique UNIQUE (Name. Street); 7
Логическая модель См. Приложение 1
Физическая модель См. Приложение 2
Процедурная целостность Процедуры добавления данных: • • PStreet. INSERT PType. Of. Application. INSERT PElectrician. INSERT PDefect. INSERT PElevators. INSERT PRequest. INSERT POrders. INSERT PDefects. INSERT Процедуры удаления данных: • • Delete. Street Delete. Type. Of. Application Delete. Electrician Delete. Defect Delete. Elevators Delete. Request Delete. Orders Delete. Defects Процедуры обновления данных: • • Update. Street Update. Electrician Update. Defect Update. Elevators Update. Request Update. Orders Update. Defects 10
Пример Ввод данных в таблицу Street: CREATE PROC PStreet. INSERT @Name. Street VARCHAR(40) AS INSERT INTO Street (Name. Street) VALUES (@Name. Street) Удаление данных из таблицы Type. Of. Application: CREATE PROC Delete. Type. Of. Application (@IDType. Of. Application INT) AS DELETE FROM Type. Of. Application WHERE IDType. Of. Application = @ IDType. Of. Application 11
Транзакции Транзакция – неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными, приводящая к одному из двух возможных результатов: либо последовательность выполняется, если все операторы правильные, либо вся транзакция откатывается, если хотя бы один оператор не может быть успешно выполнен. В данном курсовом проекте транзакции не использовались. 12
Триггер – это откомпилированная SQL-процедура, исполнение которой обусловлено наступлением определенных событий внутри реляционной базы данных. Был создан триггер, запрещающий исправлять разряд электромеханика в отношении Electrician на менее низкий ALTER TRIGGER Low. Class ON Electrician FOR UPDATE AS IF EXISTS (SELECT 'TRUE' FROM inserted I LEFT JOIN deleted D ON D. IDElectrician=I. IDElectrician WHERE I. Class<D. Class) BEGIN RAISERROR (' Нельзя понижать разряд электромеханика!!!', 16, 1) ROLLBACK TRAN END 13
Выходные формы Представления: • Printall -Отчет работы всех подразделений сортировка по улицам • print 1 El -вывод всех поломанных лифтов с высокой степенью Процедуры и функции: • Print. Podr -функция вывода работы подразделения с определенной даты • Print. Elevator -Личная карточка лифта со всей историей 14
Пример представления Полный отчет работы организации: CREATE VIEW printall AS SELECT Name. Street [Улица], Personal. Number [№ лифта], FIO [ФИО], Type. Of. App [Вид заявки], Type. Of. Defect [Вид неисправности], Break. Description [Описание поломки], Break. Level [степень], Break. Time [время поломки] FROM Street ST INNER JOIN Elevator EL ON ST. IDStreet=EL. IDStreet INNER JOIN Request RE ON EL. IDElevator=RE. IDElevator INNER JOIN Type. Of. Application TA ON RE. IDType. Of. Application=TA. IDType. Of. Application 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 15
Обеспечение безопасности Было создано две роли: • Dispatchers (Диспетчеры) • Administrators (Администраторы) На каждую роль были созданы пользователи: • Dispatcher 1 (Диспетчер1) • Dispatcher 2 (Диспетчер2) • Dispatcher 3 (Диспетчер3) • Administrator 1 (Администратор1) • Administrator 2 (Администратор2) Ролям были выделены следующие права доступа: Street Electrician Type. Of. Application Defect Elevator Request Orders Defects Print. Elevator Print. Podr print 1 El printall Dispatchers R RWED RWED R R Administrators RWED R R R - 16
Обеспечение безопасности --роль диспетчеры CREATE ROLE Dispatchers --роль Администраторы CREATE ROLE Administrators -- пользователь – Диспетчер1 USE Elevator CREATE USER Dispatcher 1 WITHOUT LOGIN ………… -- пользователь – Администратор1 USE Elevator CREATE USER Administrator 1 WITHOUT LOGIN ……………. --добавление членов в роль Dispatchers sp_addrolemember Dispatchers, Dispatcher 1 sp_addrolemember Dispatchers, Dispatcher 2 sp_addrolemember Dispatchers, Dispatcher 3 --добавление членов в роль Administrators sp_addrolemember Administrators, Administrator 1 sp_addrolemember Administrators, Administrator 2 17
Оптимизация Индекс – особый объект БД, создаваемый с целью увеличения производительности поиска данных. Помимо кластеризованных, в данном курсовом проекте были использованы некластеризованные индексы, которые накладывались на внешние ключи, и индексы с ограничением на уникальность. Примеры индексов: --Type. Of. Application CREATE UNIQUE INDEX Unique. Type. Of. Application. Index ON Type. Of. Application (Type. Of. App ASC) --Defect CREATE UNIQUE INDEX Unique. Defect. Index ON Defect (Type. Of. Defect ASC) --Elevators CREATE NONCLUSTERED INDEX Elevatorts. IDStreet ON Elevators (IDStreet ASC) CREATE UNIQUE INDEX Unique. Elevators. Index ON Elevators (Building, Door, Personal. Number ASC) 18
Тестирование Вывод отчетов Вывод работы аварийных электромехаников SELECT * FROM Print. Podr ('05. 07. 2011 012: 00: 00', ‘Аварийный электромеханик') Перечень адресов и регистрационных номеров лифтов и ЛДСС, аварийное обслуживание которых осуществляется данной ЛАС (ДПАС): Адрес и регистрационны й номер лифта Дата и время поступления заявки ФИО Причина электромеханика неисправности Дата и время исправления неисправности SELECT * FROM Print. Elevator (6) 19
Тестирование Вывод отчетов SELECT * FROM printall Наряд на устранение неисправностей в работе лифтов и ЛДСС: Адрес объекта Дата и время ФИО поступления электромеха заявки ника Причина Дата и время неисправнос исправления ти неисправнос ти 20
Заключение • Создана физическая модель базы данных Elevator из сущностей Street, Electrician, Type. Of. Application, Defect, Elevators, Request, Orders, Defects. • Обеспечена целостность БД с использованием декларативных (ограничения PRIMARY KEY, FOREIGN KEY, UNIQUE и CHECK) и процедурных методов (PStreet. INSERT, Update. Street, TRIGGER Low. Class и др. ) • Созданы хранимые процедуры и функции для вывода отчетных форм (Printall, print 1 El, Print. Podr, Print. Elevator) • Созданы роли (Dispatcher, Administrator) и пользователи для обеспечения безопасности базы данных. • Оптимизирована база данных за счет индексов. • Произведено тестирование базы данных. 21
Спасибо за внимание
КП СУБД Вьюгин А.А.pptx