Учет нагрузки преподавателей

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙКОЙ ФЕДЕРАЦИИ

ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНСТИТУТ МАТЕМАТИКИ И КОМПЬЮТЕРНЫХ НАУК

Кафедра информационных систем











Курсовая работа 

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

	Учет нагрузки преподавателей.









Выполнил: Солецкий Д.А.

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








Описание задачи



Предметная область

Учет нагрузки преподавателей — область, без которой не возможна нормальная работа учебного заведения.

База данных предоставляет возможность отслеживания и регулирования учебной нагрузки преподавателей.

Программа должна позволять просматривать нагрузку преподавателей по семестрам у разных специальностей по разным предметам. Набор групп для преподавателей не ограничен,  как и предметов.



Функции приложения

Приложение, работающее с базой данных учета нагрузки преподавателей:

Добавление, редактирование, удаление данных о преподавателях, предметах, специальностях, факультетах, кафедрах, должностях и учебных часах;

Оформление учета преподавателей по семестрам, специальностям и предметам;

Сортировка данных;

Формирование отчетов и экспорт данных в MS Excel.











Первичный документ

№

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НФ				

Единственный ключ он же первичный					

Частичные функциональные зависимости: 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

Уточнение сущностей:

Специальность характеризуется факультетом;
Преподаватель имеет должность и относиться к какой-либо кафедре;









Могут обучаться

Может

преподаваться

Факультет

Должность

Кафедра

Принадлежит

Имеет

Имеет

Относиться к

Хранит

Храниться

Содержать

Содержать

Должна содержать

Может работать

Преподаватель

Специальность

Предмет

Карточка учета



























Определение атрибутов:

	Преподаватель содержит уникальный код, ФИО, Должность, Кафедру;

	Карточка учета содержит уникальный код, код преподавателя, код предмета, код специальности, семестр и часы нагрузки;

	Специальность содержит уникальный код, наименование специальности и код факультета;

	Факультет содержит код факультета, название;

	Кафедра содержит код кафедры, название;

	Должность содержит код должности, название;

	Предмет содержит код предмета, название;

Концептуальная модель

		

Кафедра



Код кафедры

Название кафедры





                                                                                                   

Учет нагрузки преподавателя



Код преподавателя

Код специальности

Семестр

Код предмета

Часов лекций

Часов практики

                    

Специальность



Код специальности

Название специальности

Код факультета





Преподаватель



Код преподавателя

ФИО преподавателя

Код кафедры

Код должности



	

                                                                                                                                                                  



	Должность

	

	Код должности

	Название должности

	

	



         



Предмет

Код предмета

Название предмета

Факультет

Код факультета

Название факультета

	

	

Физическая модель

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. Сортировка по столбцу «Преподаватель»



Заключение

В результате работы была разработана база данных для учета нагрузки преподавателей.  Проект базы данных включает нормализацию и модель сущность связь, на их основе была разработана серверная часть в Microsoft SQl Server 2008. Нормализация проводилась на основании первичного документа и доведена, до нормальной формы Бойса-Кодда, модель сущность связь так же включает концептуальную и физическую модели.

Разработанное клиентское приложение обеспечивает все необходимые функции, такие как: ввод, модификация, удаление данных базы данных, сортировка данных, создание отчетов. При разработке  были созданы представления в базе данных на сервере.  















		





















3