МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙКОЙ ФЕДЕРАЦИИ
ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНСТИТУТ МАТЕМАТИКИ И КОМПЬЮТЕРНЫХ НАУК
Кафедра информационных систем
Курсовая работа
по дисциплине «Базы данных»
Учет нагрузки преподавателей.
Выполнил: Солецкий Д.А.
385 группа
Проверил: Моор А.П.
Старший преподаватель кафедры ИС
Тюмень 2011
Оглавление
1.Описание задачи. 3
1.1.Предметная область. 3
1.2.Функции приложения. 3
1.3.Первичный документ. 4
2.Нормализация. 5
3.Разработка модели «сущность-связь». 8
4.Описание (диаграмма) БД.. 13
4.1.Таблицы БД.. 13
4.2.Диаграмма БД.. 14
5.Описание приложения. 15
5.1.Требования к приложению.. 15
5.2.Реализация. 15
Заключение. 17
Учет нагрузки преподавателей — область, без которой не возможна нормальная работа учебного заведения.
База данных предоставляет возможность отслеживания и регулирования учебной нагрузки преподавателей.
Программа должна позволять просматривать нагрузку преподавателей по семестрам у разных специальностей по разным предметам. Набор групп для преподавателей не ограничен, как и предметов.
Приложение, работающее с базой данных учета нагрузки преподавателей:
1. Добавление, редактирование, удаление данных о преподавателях, предметах, специальностях, факультетах, кафедрах, должностях и учебных часах;
2. Оформление учета преподавателей по семестрам, специальностям и предметам;
3. Сортировка данных;
4. Формирование отчетов и экспорт данных в MSExcel.
| №
|
7
|
| ФИО преподавателя
|
Кириллов А.А
|
| Кафедра
|
Физики
|
| Должность
|
Старший преп.
|
| Семестр
|
2
|
| Факультет |
Специальность |
Предмет |
Часов лекций |
Часов практики |
| Код |
Название |
Код |
Название |
Код |
Название |
| 1 |
ИМИКН |
1 |
КБ |
1 |
Теорет. Механика |
20 |
20 |
| 2 |
Физика |
15 |
15 |
| 2 |
КОИБАС |
2 |
Физика |
17 |
16 |
| 3 |
Математика |
12 |
15 |
| 2 |
Физический |
3 |
Физика |
2 |
Физика |
25 |
30 |
| 4 |
Теплофизика |
1 |
Теорет. Механика |
20 |
5 |
| 2 |
Физика |
13 |
25 |
При проведении нормализации были учтены все столбы, указанные в первичном документе. Первичный документ «Заказ» можно представить в виде таблицы.
| № |
ФИО |
Код кафе
дры
|
Кафе
дра
|
Код долж
ности
|
Долж
ность
|
Семес
тр
|
Код факу
ль
тета
|
Факультет |
Код специаль
ности
|
Специаль
ность
|
Код предме
та
|
Предмет |
Часов лекций |
Часов практики |
| 1 |
Кирилов А.А |
2 |
Физики |
1 |
Старший препод. |
2 |
1 |
ИМИКН |
1 |
КБ |
1 |
Теорет. Механика |
20 |
20 |
| 2 |
Физика |
15 |
15 |
| 2 |
КОИБАС |
2 |
Физика |
17 |
16 |
| 3 |
Математика |
12 |
15 |
| 2 |
Физический |
3 |
Физика |
2 |
Физика |
25 |
30 |
| 4 |
Теплофизика |
1 |
Теорет. Механика |
20 |
5 |
| 2 |
Физика |
13 |
25 |
1НФ:
Повторяющаяся группа: Код факультета (Id_fak), Факультет (name_fak), Код специальности (Id_spec), Специальность (name_spec), Код предмета (Id_pred), Предмет (name_pred), Часы лекций (lek), Часы практик (prak). Для того чтобы в отношении на пересечении каждой строки и каждого столбца содержалось только одно значение, продублируем значения атрибутов, не входящих в повторяющуюся группу:
| id_prep |
Prep |
id_kaf |
name_kaf |
id_dol |
name_dol |
Semestr |
Id_fak |
name_fak |
Id_spec |
name_spec |
Id_pred |
name_pred |
Lek |
Prak |
| 1 |
Кирилов А.А |
2 |
Физики |
1 |
Старший препод. |
2 |
1 |
ИМИКН |
1 |
КБ |
1 |
Теорет. Механика |
20 |
20 |
| 1 |
Кирилов А.А |
2 |
Физики |
1 |
Старший препод. |
2 |
1 |
ИМИКН |
1 |
КБ |
2 |
Физика |
15 |
15 |
| 1 |
Кирилов А.А |
2 |
Физики |
1 |
Старший препод. |
2 |
1 |
ИМИКН |
2 |
КОИБАС |
2 |
Физика |
17 |
16 |
| 1 |
Кирилов А.А |
2 |
Физики |
1 |
Старший препод. |
2 |
1 |
ИМИКН |
2 |
КОИБАС |
3 |
Математика |
12 |
15 |
| 1 |
Кирилов А.А |
2 |
Физики |
1 |
Старший препод. |
2 |
2 |
Физический |
3 |
Физика |
2 |
Физика |
25 |
30 |
| 1 |
Кирилов А.А |
2 |
Физики |
1 |
Старший препод. |
2 |
2 |
Физический |
4 |
Теплофизика |
1 |
Теорет. Механика |
20 |
5 |
| 1 |
Кирилов А.А |
2 |
Физики |
1 |
Старший препод. |
2 |
2 |
Физический |
4 |
Теплофизика |
2 |
Физика |
13 |
25 |
Выберем потенциальные ключи:
id_prep, semestr, id_spec, id_pred - однозначно определяет строку в 1НФ
Единственный ключ он же первичный
Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз,
а первые результаты появляются уже в течение первых 7 дней.
Зарегистрироваться и Начать продвижение
Частичные функциональные зависимости: id_prep -> prep, id_kaf, name_kaf,id_dol, name_dol
id_spec -> name_spec, id_fak, name_fak
id_pred -> name_pred
Вынесем зависимые атрибуты с копией их детерменанта в отдельные отношения.
Итог
2
НФ
:
А (id_prep, semestr, id_pred, id_spec
,lek,prak)
Б(id_spec
, name_spec, id_fak, name_fak)
В(id_prep
, prep, id_kaf, name_kaf, id_dol, name_dol)
Г(id_pred
, name_pred)
Транзитивные зависимости:
В А транзитивных зависимостей нет
В
Б
: id_spec -> id_fak, id_fak -> name_fak
Отношение Б разбивается на два отношения:
Б1(id_spec
, name_spec, id_fak)
Б2(id_fak
, name_fak)
В
В
: id_prep -> id_kaf, id_kaf -> name -> kaf; id_prep -> id_dol, id_dol -> name_dol
Отношение В разбивается на 3 отношения:
В1(id_prep
, prep, id_kaf,id_dol)
В2( id_kaf, name_kaf)
B3(id_dol, name_dol)
В Г Транзитивных зависимостей нет
Итог
3
НФ
А (id_prep, semestr, id_pred, id_spec
, lek, prak)
Б1(id_spec
, name_spec, id_fak)
Б2(id_fak
, name_fak)
В1(id_prep
, prep, id_kaf, id_dol)
В2( id_kaf, name_kaf)
B3(id_dol, name_dol)
Г(id_pred
, name_pred)
НФБК
Отношения Б1, Б2, В1, B2, B3, Г: не имеют составных потенциальных ключей, следовательно они в НФБК
Отношения А имеет только один составной потенциальный (он же первичный ключ, следовательно оно в НФБК
Итог нормализации совпадает с итогом 3НФ
Итерация 1
Требования к программе:
· Хранить информацию о преподавателях ведущих учебную деятельность;
· Хранить информацию о предметах;
· Хранить информацию о специальностях;
Определение сущностей:
· Преподаватель;
· Предмет;
· Специальность
Может преподавать
Может преподаваться
Может
преподавать
Могут
 учиться
Итерация 2
Уточнение сущностей:
Преподавателю определяют учебную нагрузку;
Преподаватель может вести несколько предметов у нескольких специальностей;
 Должна содержать Должна содержать
     
  
Должна содержать
Может работать Может быть Может бытьИтерация 3
Уточнение сущностей:
Специальность характеризуется факультетом; Преподаватель имеет должность и относиться к какой-либо кафедре;
Определение атрибутов:
· Преподаватель содержит уникальный код, ФИО, Должность, Кафедру;
· Карточка учета содержит уникальный код, код преподавателя, код предмета, код специальности, семестр и часы нагрузки;
· Специальность содержит уникальный код, наименование специальности и код факультета;
· Факультет содержит код факультета, название;
· Кафедра содержит код кафедры, название;
· Должность содержит код должности, название;
· Предмет содержит код предмета, название;
Сервис онлайн-записи на собственном Telegram-боте
Попробуйте сервис онлайн-записи VisitTime на основе вашего собственного Telegram-бота:
— Разгрузит мастера, специалиста или компанию;
— Позволит гибко управлять расписанием и загрузкой;
— Разошлет оповещения о новых услугах или акциях;
— Позволит принять оплату на карту/кошелек/счет;
— Позволит записываться на групповые и персональные посещения;
— Поможет получить от клиента отзывы о визите к вам;
— Включает в себя сервис чаевых.
Для новых пользователей первый месяц бесплатно.
Зарегистрироваться в сервисе
Концептуальная модель
Кафедра
|
Код кафедры |
| Название кафедры |

Специальность
|
| Код специальности |
| Название специальности |
| Код факультета |
Преподаватель
|
Код преподавателя |
| ФИО преподавателя |
| Код кафедры |
| Код должности |
   
Должность
|
Код должности |
| Название должности |
       
| Предмет |
Код предмета |
| Название предмета |
| Факультет |
Код факультета |
| Название факультета |
Физическая модель
Table Kaf
|
Id_kaf(int) |
| name_kaf( varchar30) |

| Table Itog |
| Id_prep(int) |
  Id_spec(int) |
| Semester(int) |
| Id_pred(int) |
| Lek(int) |
| Prak(int) |
Table Spec
|
| Id_spec(int) |
| Name_spec(varchar30) |
| Id_fak (int) |
Table Prep
|
Id_prep(int) |
| Name_prep( varchar30) |
| Id_kaf(int) |
| Id_dol(int) |

   
Table Dol
|
Id_dol(int) |
| Name_dol(varchar20) |
  
| Table Pred |
Id_pred(int) |
| Name_pred(varchar30) |
| Table Fak |
Id_fak(int) |
| Name_fak(varchar30) |
| Название |
Тип поля |
Назначение |
| Table
Itog
(Учет нагрузки преподавателей)
|
Id_itog
int
№
|
| Id_prep |
int |
Код преподавателя |
| Id_spec |
int |
Код специальности |
| Semeste |
int |
Семестр |
| Id_pred |
int |
Код предмета |
| Lek |
int |
Часов лекций |
| Prak |
int |
Часов практики |
| Table Prep
(Преподаватели)
|
| Id_prep |
int |
Код преподавателя |
| Name_prep |
varchar30 |
ФИО преподавателя |
| Id_kaf |
int |
Код кафедры |
| Id_dol |
int |
Код должности |
| Table Kaf
(Кафедры)
|
| Id_kaf |
int |
Код кафедры |
| name_kaf |
varchar30 |
Название кафедры |
| Table Dol
(Должности)
|
| Id_dol |
int |
Код должности |
| Name_dol |
varchar20 |
Название должности |
| Table Pred
(Предметы)
|
| Id_pred |
int |
Код предмета |
| Name_pre |
varchar30 |
Название предмета |
| Table Spec
(Специальности)
|
| Id_spec |
int |
Код специальности |
| Name_spec |
varchar30 |
Название специальности |
| Id_fak |
int |
Код факультета |
| Table Fak
(Факультеты)
|
| Id_fak |
int |
Код факультета |
| Name_fak |
varchar30 |
Название факультета |

Приложение должно обеспечивать:
· Ввод, модификацию и удаление любых данных из БД
· Отображение данных с фильтрами и сортировкой
· Отображение не менее трех форм обобщенной информации (отчетов) с обязательным подведением итогов. По крайней мере, два отчета должны строиться на основе сложных выборок (три и более таблицы).
· Стабильную работу без ошибок в коде, ведущих к потере функциональности.
· Функциональный и интуитивно понятный интерфейс (интуитивно понятный интерфейс – это когда пользователь может работать с программой без вопросов к разработчику)
В приложении содержатся справочные таблицы в которые можно добавлять данные.

Рис.1. Справочная таблица «Преподаватели».

Рис. 2. Главная таблица и 3 запроса в выпадающем списке.
Так же в приложении содержится 3 запроса:
· Итоговый (обобщающий)
· Суммарная нагрузка преподавателей
· Нагрузка по кафедрам

Рис.3. Запрос «Итоговый» с демонстрацией фильтра по семестрам.
Информацию из запросов можно вывести в Exсel. Для этого необходимо нажать кнопку “Вывести в Exсel”.
В итоговом отчете предусмотрены сортировки по столбцам: «№», «Преподаватель» и «Специальность».

Рис.4. Сортировка по столбцу «Преподаватель»
В результате работы была разработана база данных для учета нагрузки преподавателей. Проект базы данных включает нормализацию и модель сущность связь, на их основе была разработана серверная часть в MicrosoftSQlServer 2008. Нормализация проводилась на основании первичного документа и доведена, до нормальной формы Бойса-Кодда, модель сущность связь так же включает концептуальную и физическую модели.
Разработанное клиентское приложение обеспечивает все необходимые функции, такие как: ввод, модификация, удаление данных базы данных, сортировка данных, создание отчетов. При разработке были созданы представления в базе данных на сервере.
|