Логическое проектирование

Федеральное государственное бюджетное образовательное учреждение высшего образования «Чувашский государственный университет имени И. Н. Ульянова»

Факультет информатики и вычислительной техники

Кафедра вычислительной техники

 

 

Отчет по курсовой работе

по дисциплине Базы данных

на тему «Разработка платформы для автоматизации заполнения протоколов СНО»

 

 

Работу выполнил: студент группы ИВТ-41-15 Агниашвили Д.В.

Работу принял: Ржавин В.В.

 

г. Чебоксары, 2017

СОДЕРЖАНИЕ

Бизнес правила. 3

Пользователи данной базы данных: 3

Состав базы данных. 3

Типы связей. 5

Концептуальное проектирование. 5

Метод ER-диаграмм. 6

Логическое проектирование. 7

Создание запросов. 8

Описание запросов. 8

Виды запросов. 11

Разработка форм.. 12

Описание форм.. 12

Разработка отчетов. 14

Многомерное представление данных. 15

Реализация. 17

Интеграция базы данных MySQL с WORD.. 20

Интеграция с VKAPI. 31

Описание документов для импорта и экспорта данных. 31

Вывод. 32

Список использованной литературы. 33

Тексты платформы.. 34

 

 

 

Бизнес правила.

1. Запрещается давать больше призовых мест, чем 40% от общего числа участников.

2. Запрещаетсяизменять данные людям, которые не получили права редактирования.

3. На «Ч.Г.У.» в одной секции максимум только 3 рекомендации к публикации в сборнике трудов конференции.

Пользователи данной базы данных:

1. Секретарь

2. Сотрудник СНО факультета

3. Сотрудник СНО университета

4. Администратор

Состав базы данных.

1) Пользователь:

a. #ID

b. #НОМ_ФАКУЛЬТЕТА;

c. #НОМ_РОЛИ;

d. ID ВКонтакте;

e. Имя;

f. Фамилия;

g. Ссылка на фото;

2) Секция:

a. #ID

b. #НОМ_СЕКЦИИ;

c. #НОМ_ФАКУЛЬТЕТА;

d. Название;

e. Дата проведения;

f. Аудитория;

g. Статистика;

3) Факультет:

a. #ID

b. Короткое название;

c. Полное название

d. Название в родительном падеже

e. ФИО Декана

f. ФИО научного руководителя СНО

4) Комиссия:

a. #ID

b. #НОМ_СЕКЦИИ;

c. #НОМ_СТАТУСА;

d. ФИО;

e. #ДОЛЖНОСТИ;

5) Статус:

a. #ID;

b. Название;

6) Доклад:

a. #ID;

b. #НОМ_СЕКЦИИ;

c. Название;

d. Место;

e. Отметка «По программе»;

7) Рекомендации

a. #ID;

b. Название

c. Отметка, что доступно

8) Руководитель:

a. #ID;

b. #НОМ_ ДОКЛАДА;

c. ФИО;

d. Должность;

9) Докладчик:

a. #ID;

b. #НОМ_ДОКЛАДА;

c. #НОМ_ОПЦИИ;

d. ФИО;

e. Телефон;

10) Опции докладчика:

a. #ID;

b. #ДОКЛАДЧИКА;

c. #ТИП_ДОКЛАДЧИКА;

d. meta_key;

e. meta_value;

Типы связей.

Пользователь добавляет секцию (M:1)

Пользователь числится на факультете (M:1)

Секция имеет комиссию (1:M)

Комиссия делится на виды (M:1)

На секции показывают доклады (1:M)

У докладов есть руководители (1:M)

У докладов есть докладчики (1:M)

 

 

Концептуальное проектирование

Название Описание
1. Пользователь Содержит информацию о пользователе системы
2. Секция Содержит информацию о секции
3. Руководитель Содержит информацию о руководителе доклада
4. Комиссия Содержит информацию о комиссии секции
5. Докладчик Содержит информацию о докладчике
6. Доклад Содержит информацию о докладе

 

 

Метод ER-диаграмм.

 

 

Логическое проектирование

Создание запросов.

Описание запросов

Имя запроса Текст запроса
  Все группы с префиксом Иванов Выводит список всех спикеров, у которых ФИО начинается с Иванов SELECT * FROM `speakers` WHERE `fio` LIKE `%Иванов %` AND `type ` IN (`chuvsu`,`_chuvsu`);
  ORDER BY 'date' LIMIT 5 Выводит все поля 5-ти самых последних секций SELECT * FROM `sections` ORDER BY 'date' LIMIT 5;
  Фильтр пользователей Сортирует студентов по ФИО и выдает докладчиков SELECT * FROM `users` WHERE `id_report` = ORDER BY `fio`;
  Созданиеархивной таблицы Создает временную таблицу сообщений студентов. CREATE TABLE IF NOT EXISTS `msgs_rar` ( `id` int(255) NOT NULL AUTO_INCREMENT, `datetime` datetime NOT NULL, `user_id` int(16) NOT NULL, `message` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `level` int(11) NOT NULL DEFAULT '0', UNIQUE KEY `id` (`id`));
  Удаление таблицы. Удаляет все записи из таблицы DROPTABLE `bot_sms`
  Обновление записи Администратор публикует идею UPDATE `ideas` SET `posted` = 1 WHERE `ID` =?
  Группирование данных Выдаёт из таблицы работ студентов выполненные работы SELECT COUNT(*),`lab_works`.`name_id`, SUM(`lab_works`.`is_complied`),`objects`.`name_object` FROM `lab_works` INNER JOIN `objects` ON `lab_works`.`name_id` = `objects`.`ID` WHERE `lab_works`.`user_id`=? AND `lab_works`.`type_works`=? AND `lab_works`.`time_start` <=? AND `lab_works`.`unix_time` >=? GROUP BY `lab_works`.`name_id`
  Вывод дублей Выводит повторяющие ФИО докладчиков SELECT `fio` FROM `speakers` GROUP BY ` fio ` HAVING COUNT `fio`) > 1
  Добавление записи INSERT INTO `users` (`id_vk`,`fio`,`GUID`) VALUES (?,?,?)
  Вывод плановых работ Выводит список работ которые нужно сдавать студенту SELECT `reports`.`ID` AS `ID_REPORT`, `speakers`.`ID` AS `ID_SPEAKER`, `reports`.`id_section`, `reports`.`name_report`, `reports`.`place`, IFNULL(`speakers`.`id_report`,0) AS `id_report`, IFNULL(`speakers`.`fio`,0) AS `fio`, IFNULL(`speakers`.`type`,0) AS `type` FROM `reports` LEFT JOIN `speakers` ON `reports`.`ID` =`speakers`.`id_report` WHERE `reports`.`id_section` =? AND `reports`.`place` > 0 ORDER BY Выводит список работ которые нужно сдавать студенту SELECT `all_labs`.`ID` AS `all_labs_ID`, `objects`.`name_object`, `object_types`.`type`, `all_labs`.`serial_num`, `all_labs`.`id_type`, `all_labs`.`id_object`, `all_labs`.`name`, IFNULL(`all_labs_unicum`.`ID`, '0') AS `all_labs_unicum_ID`, IFNULL(`all_labs_unicum`.`is_started`, '0') AS `is_started`, IFNULL(`all_labs_unicum`.`id_complied`, '0') AS `is_complied` FROM `all_labs` LEFT JOIN ( SELECT * FROM `all_labs_unicum` WHERE `all_labs_unicum`.`id_user` =? ) AS `all_labs_unicum` ON `all_labs`.`ID` = `all_labs_unicum`.`id_all_labs` INNER JOIN `objects` ON `all_labs`.`id_object` = `objects`.`ID` INNER JOIN `object_types` ON `object_types`.`ID` = `all_labs`.`id_type` WHERE `all_labs`.`id_group` =? AND `all_labs`.`term` =? ORDER BY `id_type`, `id_object`,`serial_num` SELECT SUM(`mark`)/COUNT(`mark`) FROM `works` WHERE `id_user` =? AND `id_type`!= 1
  Данные за период Вывести все доклады у всех секций за определенный период SELECT * FROM `sections` INNER JOIN `reports` ON ` reports `.`id_ section` = ` sections `.`ID` WHERE ` reports`.`date` >=?  
    SELECT `reports`.`ID` AS `ID_REPORT`, `speakers`.`ID` AS `ID_SPEAKER`, `speakers`.`id_position`, `reports`.`id_section`, `reports`.`name_report`, `reports`.`place`, IFNULL(`speakers`.`id_report`,0) AS `id_report`, IFNULL(`speakers`.`fio`,0) AS `fio`, IFNULL(`speakers`.`type`,0) AS `type` FROM `reports` LEFT JOIN `speakers` ON `reports`.`ID` =`speakers`.`id_report` WHERE `reports`.`id_section` =? ORDER BY `reports`.`place` "

Виды запросов

Вид запроса Шифр (ы)
  Запросы с выражениями, использующие 1. операторы строковых значений 2. все операторы сравнения с образцом 3. операторы обработки дат 4. операторы условных выражений 5. статистические функции по подмножеству 6. комплексные текстовые константы и константы даты  
  Использование логических операторов, включающих в себя комбинацию «И», «ИЛИ»  
  Запрос с вычисляемым полем  
  Запрос с предикатом TOP  
  Запрос, созданный из фильтра  
  Запрос с внутренним соединением по нескольким полям  
  Запрос с использованием внешнего соединения  
  Запрос с рекурсивным соединением  
  Запросы с параметрами  
  Запросы на группирование данных Вычислений итоговых значений по всем записям  
  Запросы на группирование данных Вычислений итоговых значений по группам записей 7, 13
  Отбор повторяющихся записей и записей без подчиненных  
  Запросы на удаление записи  
  Запросы на обновление записи  
  Запросы на добавление записей  
  Запросы на создание таблицы  
  Подчиненный запрос  
  Перекрестный запрос  

Разработка форм

Описание форм

Название формы Тип формы Назначение Примечание
  Данные по факультету Простая Секретарь с помощью данной формы определяет свой факультет. Числовые данные необходимы для подведения итогового отчета. Председатель факультета или администратор сайта заполняет эти данные
  Идеи сервиса Синхронизиризированная Каждый человек может с помощью лайков голосовать за понравившиеся идеи, а также с помощью формы добавлять новые. С помощью VKAPI администратору передаётся уведомление о новой идее для дальнейшей модерации.  
  Настройки профиля Форма, состоящая из вкладок. Редактирование данных пользователя.  
  Работа с секциями Форма, состоящая из вкладок, синхронизированная, диалоговое окно Редактирование данных секций  
  Секции Синхронизированная, ленточная Добавление и редактирование настроек секций.  

 

Разработка отчетов

Название отчёта Тип отчета Назначение
  Отчёт по школьникам Табличный (в столбец), с группировкой Выводит количество школьников от группированных по школам
  Дипломы Составной отчёт Выводит с помощью шаблона дипломы по секци
  Докладчики относительно факультетов Перекрестный Показывает таблицу и график по факультетам

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: