РЕАЛИЗАЦИЯ МНОГОФУНКЦИОНАЛЬНОЙ ИС «Курсы повышения квалификации» НА ОСНОВЕ ОТКРЫТЫХ СТАНДАРТОВ
Заказать уникальную курсовую работу- 55 55 страниц
- 12 + 12 источников
- Добавлена 14.06.2024
- Содержание
- Часть работы
- Список литературы
ВВЕДЕНИЕ 3
1 Системный анализ предметной области 4
1.1 Описание предметной области 4
1.2 Описание входных документов для заполнения БД 6
1.3 Определение пользователей 6
1.4 Определение запросов 6
1.5 Определение выходных документов 7
2 Анализ сущностей и связей между ними: ER–диаграмма 8
3 Нормализация отношений: схема БД 11
4 Запросы 13
5 Анализ разрешений и запретов на операции с табличными данными для различных пользователей 22
6 Проектирование пользовательского интерфейса 25
6.1 Реализация всех запросов через вызовы хранимых процедур 25
6.2 Триггеры для работы пользователей с таблицами базы данных… 35
7 Обработка и визуализация данных 39
7.1 Обработка и визуализация данных инструментами языка программирования Python
...................................................................................................................................................39
7.2 Визуализация данных программными инструментами Excel 44
ЗАКЛЮЧЕНИЕ 47
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 49
ПРИЛОЖЕНИЕ А 50
ПРИЛОЖЕНИЕ Б 53
ПРИЛОЖЕНИЕ В 55
Mayavi. - devpractice.ru. 2020. - 412 с.: ил.ВизуализациявPython:matplotlib–URL:https://newtechaudit.ru/vizualizacziya- v-python-matplotlib/ (дата обращения: 10.02.2024).ИмпортданныхMySQLвExcel.URL: https://www.rldp.ru/mysql/excel130/import.html(дата обращения: 08.02.2024).Приложение А Листинг создания таблицCREATETABLE languages ( idint(11) NOTNULL AUTO_INCREMENT, languagevarchar(255) NOTNULL, language_ratiofloatNOTNULL, PRIMARY KEY (`id`)) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLE subsidiary ( sub_idint(11) NOTNULL AUTO_INCREMENT, adressvarchar(255) NOTNULL, PRIMARY KEY (`sub_id`)) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLElevels ( idint(11) NOTNULL AUTO_INCREMENT, levelvarchar(255) NOTNULL, PRIMARY KEY (`id`)) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLE customer ( idint(11) NOTNULL AUTO_INCREMENT, surname varchar(50) NOTNULL, namevarchar(50) NOTNULL, patronymic varchar(50) NOTNULL, level_idint(11) NOTNULL, adressvarchar(255) NOTNULL, phone_numbervarchar(255) NOTNULL, passport varchar(255) NOTNULL, is_contract_signedtinyint(1) NOTNULLDEFAULT'0', PRIMARY KEY (`id`), FOREIGN KEY (`level_id`) REFERENCES`levels`(`id`) ONDELETECASCADE) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLE worker ( idint(11) NOTNULL AUTO_INCREMENT, surname varchar(50) NOTNULL, namevarchar(50) NOTNULL, patronymic varchar(50) NOTNULL, education varchar(255) NOTNULL, experience int(11) NOTNULLDEFAULT'3', positionvarchar(50) NOTNULL, passport varchar(255) NOTNULL, phone_numbervarchar(255) NOTNULL, salary floatNOTNULL, sub_idint(11) NOTNULL, PRIMARY KEY (`id`), FOREIGN KEY (`sub_id`) REFERENCES`subsidiary`(`sub_id`) ONDELETECASCADE) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLEworker_languages ( idint(11) NOTNULL AUTO_INCREMENT, worker_idint(11) NOTNULL, language_idint(11) NOTNULL, PRIMARY KEY (`id`), FOREIGN KEY (`worker_id`) REFERENCES`worker`(`id`) ONDELETECASCADE, FOREIGN KEY (`language_id`) REFERENCES`languages`(`id`) ONDELETECASCADE) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLEstudents_groups ( idint(11) NOTNULL AUTO_INCREMENT, namevarchar(255) NOTNULL, capacityint(11) NOTNULL, worker_idint(11) NOTNULL, language_idint(11) NOTNULL, level_idint(11) NOTNULL, datedateNOTNULL, PRIMARY KEY (`id`), FOREIGN KEY (`worker_id`) REFERENCES`worker`(`id`) ONDELETECASCADE, FOREIGN KEY (`language_id`) REFERENCES`languages`(`id`) ONDELETECASCADE, FOREIGN KEY (`level_id`) REFERENCES`levels`(`id`) ONDELETECASCADE) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLE exams ( idint(11) NOTNULL AUTO_INCREMENT, namevarchar(255) NOTNULL, PRIMARY KEY (`id`)) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLEexams_rating ( idint(11) NOTNULL AUTO_INCREMENT, exam_idint(11) NOTNULL, student_idint(11) NOTNULL, teacher_idint(11) NOTNULL, phonetics_markint(11) NOTNULL, grammar_markint(11) NOTNULL, syntax_markint(11) NOTNULL, total_markint(11) NOTNULL, datedateNOTNULL, PRIMARY KEY (`id`), FOREIGN KEY (`exam_id`) REFERENCES`exams`(`id`) ONDELETECASCADE, FOREIGN KEY (`student_id`) REFERENCES`customer`(`id`) ONDELETECASCADE, FOREIGN KEY (`teacher_id`) REFERENCES`worker`(`id`) ONDELETECASCADE) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLE lessons ( idint(11) NOTNULL AUTO_INCREMENT, group_idint(11) NOTNULL, teacher_idint(11) NOTNULL, language_idint(11) NOTNULL, datedateNOTNULL, PRIMARY KEY (`id`), FOREIGN KEY (`group_id`) REFERENCES`students_groups`(`id`) ONDELETECASCADE, FOREIGN KEY (`teacher_id`) REFERENCES`worker`(`id`) ONDELETECASCADE, FOREIGN KEY (`language_id`) REFERENCES`languages`(`id`) ONDELETECASCADE) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLElesson_exams ( idint(11) NOTNULL AUTO_INCREMENT, exam_idint(11) NOTNULL, group_idint(11) NOTNULL, teacher_idint(11) NOTNULL, language_idint(11) NOTNULL, datedateNOTNULL, PRIMARY KEY (`id`), FOREIGN KEY (`exam_id`) REFERENCES`exams`(`id`) ONDELETECASCADE, FOREIGN KEY (`group_id`) REFERENCES`students_groups`(`id`) ONDELETECASCADE, FOREIGN KEY (`teacher_id`) REFERENCES`worker`(`id`) ONDELETECASCADE, FOREIGN KEY (`language_id`) REFERENCES`languages`(`id`) ONDELETECASCADE) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATETABLEcustomer_students_groups ( idint(11) NOTNULL AUTO_INCREMENT, customer_idint(11) NOTNULL, group_idint(11) NOTNULL, PRIMARY KEY (`id`), FOREIGN KEY (`customer_id`) REFERENCES`customer`(`id`) ONDELETECASCADE, FOREIGN KEY (`group_id`) REFERENCES`students_groups`(`id`) ONDELETECASCADE) ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;ПриложениеБ Листингдобавлениеданныхвтаблицы INSERTINTO`sunlang`.`languages` (`language`, `language_ratio`) VALUES ('Английский', '1.2');INSERTINTO`sunlang`.`languages` (`language`, `language_ratio`) VALUES ('Немецкий', '1.4');INSERTINTO`sunlang`.`languages` (`language`, `language_ratio`) VALUES ('Французский', '1.6');INSERTINTO`sunlang`.`languages` (`language`, `language_ratio`) VALUES ('Испанский', '2');INSERTINTO`sunlang`.`subsidiary` (`adress`) VALUES ('Пушкино-колотушкино 21');INSERTINTO`sunlang`.`subsidiary` (`adress`) VALUES ('Великого-Высотского 15');INSERTINTO`sunlang`.`subsidiary` (`adress`) VALUES ('Властелина-Кольцево 54');INSERTINTO`sunlang`.`subsidiary` (`adress`) VALUES ('Мордорово 1');INSERTINTO`sunlang`.`levels` (`level`) VALUES ('Начальный');INSERTINTO`sunlang`.`levels` (`level`) VALUES ('Уверенный');INSERTINTO`sunlang`.`levels` (`level`) VALUES ('Средний');INSERTINTO`sunlang`.`levels` (`level`) VALUES ('Продвинутый');INSERTINTO`sunlang`.`levels` (`level`) VALUES ('Дипломный');INSERTINTO`sunlang`.`customer` (`surname`, `name`, `patronymic`, `level_id`, `adress`, `phone_number`, `passport`, `is_contract_signed`) VALUES ('Иванов', 'Иван', 'Иванович', '1', 'Пушкина 54', '+7 999 99 999 99', '99 99 999999', '1');INSERTINTO`sunlang`.`customer` (`surname`, `name`, `patronymic`, `level_id`, `adress`, `phone_number`, `passport`, `is_contract_signed`) VALUES ('Михалков', 'Михаил', 'Михайлович', '2', 'Доброво 24', '+7 888 88 888 88', '88 88 888888', '0');INSERTINTO`sunlang`.`customer` (`surname`, `name`, `patronymic`, `level_id`, `adress`, `phone_number`, `passport`, `is_contract_signed`) VALUES ('Никитунов', 'Никита', 'Никитич', '3', 'Яблочкино 18', '+7 777 77 777 77', '77 77 777777', '0');INSERTINTO`sunlang`.`customer` (`surname`, `name`, `patronymic`, `level_id`, `adress`, `phone_number`, `passport`, `is_contract_signed`) VALUES ('Анастасиева', 'Анастасия', 'Станиславовна', '4', 'Телеграмово 13', '+7 666 66 666 66', '66 66 666666', '1');INSERTINTO`sunlang`.`customer` (`surname`, `name`, `patronymic`, `level_id`, `adress`, `phone_number`, `passport`, `is_contract_signed`) VALUES ('Кириллов', 'Кирилл', 'Кириллович', '5', 'Дурово 66', '+7 555 55 555 55', '55 55 555555', '1');INSERTINTO`sunlang`.`worker` (`surname`, `name`, `patronymic`, `education`, `experience`, `position`, `passport`, `phone_number`, `salary`, `sub_id`) VALUES ('Валетов', 'Владимир', 'Владимирович', 'Профессор', '35', 'Старшийпреподаватель', '99 99 999999', '+7 999 99 999 99', '150000', '1');INSERTINTO`sunlang`.`worker` (`surname`, `name`, `patronymic`, `education`, `experience`, `position`, `passport`, `phone_number`, `salary`, `sub_id`) VALUES ('Торнадов', 'Ромазан', 'Абдулаевич', 'Стажер', '1', 'Младшийпреподаватель ', '88 88 888888', '+7 888 88 888 88', '30000', '2');INSERTINTO`sunlang`.`worker` (`surname`, `name`, `patronymic`, `education`, `experience`, `position`, `passport`, `phone_number`, `salary`, `sub_id`) VALUES ('Макбуков', 'Стив', 'Джобович', 'Нет', '55', 'Тимлидпреподаватель', '77 77 777777', '+7 777 77 777 77', '550000', '3');INSERTINTO`sunlang`.`worker` (`surname`, `name`, `patronymic`, `education`, `experience`, `position`, `passport`, `phone_number`, `salary`, `sub_id`) VALUES ('Гутин', 'Владимир', 'Владимирович', 'ВысшееБакалавр', '27', 'Главныйпреподаватель', '66 66 666666', '+7 666 66 666 66', '350000', '4');INSERTINTO`sunlang`.`worker_languages` (`worker_id`, `language_id`) VALUES ('1', '1');INSERTINTO`sunlang`.`worker_languages` (`worker_id`, `language_id`) VALUES ('1', '2');INSERTINTO`sunlang`.`worker_languages` (`worker_id`, `language_id`) VALUES ('2', '3');INSERTINTO`sunlang`.`worker_languages` (`worker_id`, `language_id`) VALUES ('3', '4');INSERTINTO`sunlang`.`worker_languages` (`worker_id`, `language_id`) VALUES ('3', '1');INSERTINTO`sunlang`.`worker_languages` (`worker_id`, `language_id`) VALUES ('4', '1');INSERTINTO`sunlang`.`worker_languages` (`worker_id`, `language_id`) VALUES ('4', '2');INSERTINTO`sunlang`.`worker_languages` (`worker_id`, `language_id`) VALUES ('4', '3');INSERTINTO`sunlang`.`worker_languages` (`worker_id`, `language_id`) VALUES ('4', '4');INSERTINTO`sunlang`.`students_groups` (`name`, `capacity`, `worker_id`, `language_id`, `level_id`, `date`) VALUES ('Начальная', '5', '1', '1', '1', '2024-04-15');INSERTINTO`sunlang`.`students_groups` (`name`, `capacity`, `worker_id`, `language_id`, `level_id`, `date`) VALUES ('Средняя', '4', '2', '2', '2', '2024-04-15');INSERTINTO`sunlang`.`students_groups` (`name`, `capacity`, `worker_id`, `language_id`, `level_id`, `date`) VALUES ('Продвинутая', '4', '3', '3', '3', '2024-04-15');INSERTINTO`sunlang`.`students_groups` (`name`, `capacity`, `worker_id`, `language_id`, `level_id`, `date`) VALUES ('Профи', '2', '4', '4', '4', '2024-04-15');INSERTINTO`sunlang`.`exams` (`name`) VALUES ('Английский');INSERTINTO`sunlang`.`exams` (`name`) VALUES ('Испанскийвыпускной');INSERTINTO`sunlang`.`exams` (`name`) VALUES ('Немецкийпромежуточный');INSERTINTO`sunlang`.`exams_rating` (`exam_id`, `student_id`, `teacher_id`, `phonetics_mark`, `grammar_mark`, `syntax_mark`, `total_mark`, `date`) VALUES ('1', '1', '1', '5', '5', '5', '5', '2024-05-01');INSERTINTO`sunlang`.`exams_rating` (`exam_id`, `student_id`, `teacher_id`, `phonetics_mark`, `grammar_mark`, `syntax_mark`, `total_mark`, `date`) VALUES ('2', '2', '2', '2', '4', '4', '4', '2024-05-01');INSERTINTO`sunlang`.`exams_rating` (`exam_id`, `student_id`, `teacher_id`, `phonetics_mark`, `grammar_mark`, `syntax_mark`, `total_mark`, `date`) VALUES ('3', '3', '3', '3', '3', '3', '3', '2024-05-01');INSERTINTO`sunlang`.`lessons` (`group_id`, `teacher_id`, `language_id`, `date`) VALUES ('1', '1', '1', '2024-05-01');INSERTINTO`sunlang`.`lessons` (`group_id`, `teacher_id`, `language_id`, `date`) VALUES ('2', '2', '2', '2024-05-15');INSERTINTO`sunlang`.`lesson_exams` (`exam_id`, `group_id`, `teacher_id`, `language_id`, `date`) VALUES ('1', '1', '1', '1', '2024-05-01');INSERTINTO`sunlang`.`lesson_exams` (`exam_id`, `group_id`, `teacher_id`, `language_id`, `date`) VALUES ('2', '2', '2', '2', '2024-05-01');INSERTINTO`sunlang`.`lesson_exams` (`exam_id`, `group_id`, `teacher_id`, `language_id`, `date`) VALUES ('3', '3', '3', '3', '2024-05-15');INSERTINTO`sunlang`.`customer_students_groups` (`customer_id`, `group_id`) VALUES ('1', '1');INSERTINTO`sunlang`.`customer_students_groups` (`customer_id`, `group_id`) VALUES ('2', '2');INSERTINTO`sunlang`.`customer_students_groups` (`customer_id`, `group_id`) VALUES ('3', '3');Приложение 3 Заполненные таблицыCustomerscustomers_students_groupExamsexams_ratingLanguageslesson_examslessonsLevelsstudents_groupSubsidiaryWorkerworker_lannguages
2. Курсы по SQL. URL: Инструкция SQL CREATE TABLE (w3schools.com) (дата обращения: 08.02.2024)
3. «Объяснение SQL объединений JOIN: LEFT/RIGHT/INNER/OUTER»: [интернет ресурс] – URL: https://www.skillz.ru/dev/php/article- Obyasnenie_SQL_obedinenii_JOIN_INNER_OUTER.html – (дата обращения: 08.02.2024)
4. Курсы по SQL. URL: Группировка SQL по оператору (w3schools.com) (дата обращения: 08.02.2024)
5. Курсы по SQL. URL: ПОРЯДОК SQL ПО КЛЮЧЕВОМУ СЛОВУ
(w3schools.com) (дата обращения: 08.02.2024)
6. Андон Ф., Резниченко В. «Язык запросов SQL». Учебный курс. — СПб.: Питер; Киев: Издательская группа ВНУ, 2006. — 416 с.: ил.
7. Аграновский, А.В. Разработка и администрирование базы данных с открытым исходным кодом/ А.В. Аграновский, В.В. Боженко, Е.Л. Турнецкая. ‒ СПб.: ГУАП, 2022. ‒ 213 с., ил.
8. Документация MySQL – URL: MySQL :: MySQL Workbench (дата обращения:10.02.2024).
9. «13.6.7.5 SIGNAL Statement»: [Интернет ресурс] – URL: https://dev.mysql.com/doc/refman/8.0/en/signal.html#:~:text=To%20signal%20a%20generic%2 0SQLSTATE,simple_value_specification%20assignments%2C%20separated%20by%20comma s – (дата обращения: 08.02.2024г.);
10. Абрахманов М.И. Devpractice Team. Python. Визуализация данных. Matplotlib. Seaborn. Mayavi. - devpractice.ru. 2020. - 412 с.: ил.
11. Визуализация в Python: matplotlib – URL: https://newtechaudit.ru/vizualizacziya- v-python-matplotlib/ (дата обращения: 10.02.2024).
12. Импорт данных MySQL в Excel. URL: https://www.rldp.ru/mysql/excel130/import.html (дата обращения: 08.02.2024).