База данных "Студенты и преподаватели"

Выявление сущностей, их атрибутов и ключей. Построение ER-диаграммы. Заполнение предварительных отношений атрибутами. Задание частных ограничений целостности данных. Разработка сценария инсталляции клиентской программы. Руководство пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 15.11.2012
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

  • ВВЕДЕНИЕ
  • 1. АНАЛИЗ ЗАДАЧИ
    • 1.1 Анализ предметной области, выявление необходимой пользователю функциональности
    • 1.2 Разработка общей архитектуры информационной системы
  • 2. РАЗРАБОТКА СЕРВЕРНОЙ ЧАСТИ ИНФОРМАЦИОННОЙ СИСТЕМЫ
    • 2.1 Выявление сущностей, их атрибутов и ключей
    • 2.2 Выявление связей
    • 2.3 Построение ER-диаграммы
    • 2.4 Переход от ER-диаграммы к предварительным отношениям
    • 2.5 Заполнение предварительных отношений атрибутами
    • На рисунке представлены следующие обозначения:
    • 2.6 Проверка предварительных отношений на соответствие нормальным формам
    • 2.7 Построение схемы данных
    • 2.8 Задание частных ограничений целостности данных
    • 2.9 Разработка хранимых процедур
    • 3.1 Организация взаимодействия клиентской программы с БД
    • 3.2 Разработка форм
    • 3.3 Разработка отчетов
    • 3.4 Разработка сценария инсталляции клиентской программы
    • 3.5 Руководство пользователя
  • Заключение
  • СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
  • Приложение 1: SQL-скрипт для создания БД
  • Приложение 2: исходный текст клиентской программы
  • Приложение 3: Сценарий инсталляции программы
  • ВВЕДЕНИЕ
  • база данный атрибут
  • Высшие учебные заведения являются важной частью жизни многих людей, как получающих высшее профессиональное образование, так и обучающих юных студентов разнообразным профессиональным навыкам. Зачастую вуз - не просто место работы или учёбы, это дружный коллектив и интересные мероприятия. Но всё же важнейшей функцией вуза является передача опыта многих поколений будущим молодым специалистам.
  • Эта тема показалась нам актуальной. Структура вуза довольно сложна, и чтобы облегчить работу преподавателей, ректора и студентов может использование базы данных, содержащей информацию о студентах и их успеваемости, преподавателях, специальностях, кафедрах и факультетах вуза. Преподаватели всегда смогут просматривать информацию о начисленных заработных платах, о предметах, которые они ведут. Студентам будет доступна информация о стипендиях и собственной успеваемости. Абитуриенты смогут ознакомиться со структурой вуза, его кафедрами, факультетами и специальностями. Ректору будут в удобной форме предоставляться необходимые данные обо всех студентах и преподавателях вуза. В обязанности администратора будет входить грамотная корректировка и обновление информации о вузе.
  • Для выполнения поставленной задачи будет использоваться следующее программное обеспечение:
  • · СУБД: MS SQL Server 2005;
  • · система программирования: Microsoft Visual C# 2005;
  • · CASE средства проектирования баз данных: Sybase PowerDesigner 15;
  • · программа инсталляции: Inno Setup 4.2.7.

1. АНАЛИЗ ЗАДАЧИ

1.1 Анализ предметной области, выявление необходимой пользователю функциональности

В данном курсовом проекте рассматривается такая область как «Студенты и преподаватели».

Каждый студент должен иметь возможность просматривать информацию о начисленных ему стипендиях и собственной успеваемости.

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

Ректору должна предоставляться вся необходимая информация о студентах и преподавателях.

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

Деятельность администратора шире, чем любого другого пользователя, т.к. именно он имеет возможность редактирования и сохранения сведений всей базы данных «Студенты и преподаватели». Именно от этого человека зависит правильность корректировки информации, доводимой до каждого конечного пользователя.

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

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

1.2 Разработка общей архитектуры информационной системы

В курсовом проекте применена клиент-серверная архитектура с применением двухзвенной модели DBS (DateBase Server - сервер баз данных). Для этой модели характерно, что функции компьютера клиента ограничиваются функциями представления информации, в то время как прикладные функции обеспечиваются приложением, находящемся на компьютере сервере. При этом приложения реализуются в виде хранимых процедур.

Процедуры обычно хранятся в словаре базы данных и разделяются несколькими клиентами.

Рисунок 1 - Двухзвенная модель архитектуры клиент-сервер

Достоинствами DBS является возможность хорошего администрирования приложения на этапах разработки, сопровождения и модификации, а также эффективного использования вычислительных и коммуникационных ресурсов.

2. РАЗРАБОТКА СЕРВЕРНОЙ ЧАСТИ ИНФОРМАЦИОННОЙ СИСТЕМЫ

2.1 Выявление сущностей, их атрибутов и ключей

В ходе разработки информационной системы были выявлены следующие сущности:

1. Студент

2. Первичный ключ: Номер зачётной книжки

3. Стипендия

4. Первичный ключ: ID стипендии

5. Экзамен

6. Первичный ключ: ID экзамена

7. Факультет

8. Первичный ключ: ID факультета

9. Группа

10. Первичный ключ: ID группы

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

12. Первичный ключ: Номер специальности

13. Кафедра

14. Первичный ключ: Номер кафедры

15. Экзамен

16. Первичный ключ: ID экзамена

17. Предмет

18. Первичный ключ: Номер предмета

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

20. Первичный ключ: ID преподавателя

21. Зарплата

22. Первичный ключ: ID зарплаты

23. Учёная степень

Первичный ключ: ID учёной степени

24. Преподаёт (Была выявлена при переходе от концептуальной модели данных к логической)

25. Первичный ключ: Номер занятия

2.2 Выявление связей

В ходе разработки информационной системы были выявлены следующие связи между сущностями:

1)

Рисунок 2 - Связь «Есть у».

Один преподаватель может иметь несколько учёных степеней. Одна запись об ученой степени может относиться только к одному преподавателю. Следовательно, имеет место связь 1..N. Каждая запись об учёной степени должна относиться к какому-либо преподавателю. Учёная степень есть не у каждого преподавателя. Следовательно, для связи «Учёная степень > Преподаватель» будет использоваться кардинальность 1,1, а для связи «Преподаватель > Учёная степень » - 0,n.

2)

Рисунок 3 - Связь «Выдается».

Один преподаватель может получать несколько заработных плат. Одна запись о зарплате может относиться только к одному преподавателю. Следовательно, имеет место связь 1..N. Каждая запись о зарплате должна относиться к какому-либо преподавателю. Но не каждый преподаватель имеет начисленную зарплату (например, только что нанятый преподаватель). Следовательно, для связи «Зарплата > Преподаватель» будет кардинальность 1,1, а для связи «Преподаватель > Зарплата» - 0,n.

3)

Рисунок 4 - Связь «Преподаёт».

Преподаватель может преподавать различные предметы, один и тот же предмет могут вести несколько преподавателей. Следовательно, имеет место связь N..N. Предмет может временно не преподаваться никаким преподавателем. Преподаватель может и не преподавать никакой предмет. Следовательно, для связи «Преподаватель > Предмет» будет использоваться кардинальность 0,n, а для связи «Предмет > Преподаватель» - 0,n.

4)

Рисунок 5 - Связь «Работает на».

На кафедре может работать несколько преподавателей. Каждый преподаватель работает только на одной кафедре. Следовательно, имеет место связь 1..N. На кафедре может временно не числиться ни одного преподавателя. Преподаватель должен быть закреплен за какой-либо кафедрой. Следовательно, для связи «Кафедра > Преподаватель» будет кардинальность 0,n., а для связи «Преподаватель > Кафедра» - 1,1.

5)

Рисунок 6 - Связь «По».

Экзамен по конкретному предмету может сдаваться несколько раз. Каждой записи об экзамене соответствует только один предмет. Следовательно, имеет место связь 1..N. Предмет может и не сдаваться на экзамене. Экзамен должен сдаваться только по существующим предметам. Следовательно, для связи «Предмет > Экзамен» будет кардинальность 0,n., а для связи «Экзамен > Предмет» - 1,1.

6)

Рисунок 7 - Связь «Числится на».

На факультете может учиться много студентов. Студент может учиться только на одном факультете. Следовательно, имеет место связь 1..N. На факультете может временно не числиться студентов. Каждый студент должен числиться на каком-либо факультете. Следовательно, для связи «Факультет > Студент» будет кардинальность 0,n., а для связи «Студент > Факультет» - 1,1.

7)

Рисунок 8 - Связь «Сдаётся».

Студент может сдавать несколько экзаменов. Каждый экзамен сдаётся только одним студентом. Следовательно, имеет место связь 1..N. Студент может не сдавать никаких экзаменов (например, первокурсник на первом семестре обучения). Каждый экзамен обязательно сдаётся каким-либо студентом. Следовательно, для связи «Студент > Экзамен» будет кардинальность 0,n., а для связи «Экзамен > Студент» - 1,1.

8)

Рисунок 9 - Связь «Выплачивается».

Студенту может начисляться несколько стипендий. Стипендия начисляется одному студенту. Следовательно, имеет место связь 1..N. Студент может не получать стипендий. Каждая запись о стипендии должна относиться к какому-либо зарегистрированному студенту. Следовательно, для связи «Студент > Стипендия» будет кардинальность 0,n., а для связи «Экзамен > Стипендия» - 1,1.

9)

Рисунок 10 - Связь «Относится к».

В группе может учиться много студентов. Студент может учиться только в одной группе. Следовательно, имеет место связь 1..N. В группе может временно не числиться студентов. Каждый студент должен относиться к какой-либо группе. Следовательно, для связи «Группа > Студент» будет кардинальность 0,n., а для связи «Студент > Группа» - 1,1.

10)

Рисунок 11 - Связь «Принадлежит».

Специальности может принадлежать несколько групп. Группа принадлежит только одной специальности. Следовательно, имеет место связь 1..N. На специальности может временно не числиться никаких групп. Группа должна относиться к какой-нибудь специальности. Следовательно, для связи «Специальность> Группа» будет кардинальность 0,n., а для связи «Группа > Специальность» - 1,1.

11)

Рисунок 12 - Связь «Выпускается».

Кафедра может выпускать несколько специальностей. Каждая специальность может выпускаться только одной кафедрой. Следовательно, имеет место связь 1..N. Кафедра может и не выпускать никаких специальностей. Но специальность должна принадлежать к какой-либо кафедре. Следовательно, для связи «Кафедра > Специальность» будет кардинальность 0,n., а для связи «Специальность > Кафедра» - 1,1.

2.3 Построение ER-диаграммы

ER-диаграмма, построенная для предметной области «Студенты и преподаватели», на основе выявленных ранее сущностей и связей между ними представлена на рисунке 13.

Рисунок 13 - Концептуальная модель данных для предметной области «Студенты и преподаватели».

2.4 Переход от ER-диаграммы к предварительным отношениям

Так как используется CASE-средство проектирования баз данных переход от концептуальной модели данных к предварительным отношениям (логической модели данных) осуществляется автоматически.

Покажем переход к предварительным отношениям на примере связи «Выдаётся». В данном случае используется связь 1..N. Кардинальность многосвязной сущности 1..1, односвязной 0..n. Следовательно, необходимо сформировать два предварительных отношения, то есть по одному для каждой сущности. Первичными ключами в отношениях будут ключи соответствующих сущностей. В отношение «Зарплата» будет добавлен внешний ключ для связи с отношением «Преподаватель». Предварительные отношения для связи «Выдаётся» показаны на рисунке 14.

Рисунок 14 - Предварительные отношения для связи «Выдаётся».

2.5 Заполнение предварительных отношений атрибутами

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

Рисунок 15 - Логическая модель данных для предметной области «Студенты и преподаватели».

На рисунке представлены следующие обозначения:

- Primary Key;

- Foreign Key;

- Mandatory;

- Необязательные поля.

2.6 Проверка предварительных отношений на соответствие нормальным формам

Для каждого отношения нашей БД построим диаграмму функциональных зависимостей и определим, в какой нормальной форме оно находится.

На рисунке 16 показана диаграмма функциональных зависимостей для отношения «Учёная степень».

Рисунок 16 - Диаграмма функциональных зависимостей для отношения

«Учёная степень».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 17 показана диаграмма функциональных зависимостей для отношения «Предмет».

Рисунок 17 - Диаграмма функциональных зависимостей для отношения

«Предмет».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 18 показана диаграмма функциональных зависимостей для отношения «Преподаватель».

Рисунок 18 - Диаграмма функциональных зависимостей для отношения

«Преподаватель».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 19 показана диаграмма функциональных зависимостей для отношения «Преподаёт».

Рисунок 19 - Диаграмма функциональных зависимостей для отношения

«Преподаёт».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 20 показана диаграмма функциональных зависимостей для отношения «Экзамен».

Рисунок 20 - Диаграмма функциональных зависимостей для отношения

«Экзамен».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 21 показана диаграмма функциональных зависимостей для отношения «Факультет».

Рисунок 21 - Диаграмма функциональных зависимостей для отношения

«Факультет».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 22 показана диаграмма функциональных зависимостей для отношения «Стипендия».

Рисунок 22 - Диаграмма функциональных зависимостей для отношения

«Стипендия».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 23 показана диаграмма функциональных зависимостей для отношения «Студент».

Рисунок 23 - Диаграмма функциональных зависимостей для отношения

«Студент».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 24 показана диаграмма функциональных зависимостей для отношения «Группа».

Рисунок 24 - Диаграмма функциональных зависимостей для отношения

«Группа».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 25 показана диаграмма функциональных зависимостей для отношения «Специальность».

Рисунок 25 - Диаграмма функциональных зависимостей для отношения

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

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 26 показана диаграмма функциональных зависимостей для отношения «Кафедра».

Рисунок 26 - Диаграмма функциональных зависимостей для отношения

«Кафедра».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

На рисунке 27 показана диаграмма функциональных зависимостей для отношения «Зарплата».

Рисунок 27 - Диаграмма функциональных зависимостей для отношения

«Зарплата».

Отношение находится в 1НФ, 2НФ, 3НФ, БКНФ.

2.7 Построение схемы данных

Так как используется CASE-средство проектирования баз данных, переход от логической модели данных к физической осуществляется автоматически. Физическая модель приведена на рисунке 28.

Рисунок 30 - Физическая модель данных для предметной области «Студенты и преподаватели».

2.8 Задание частных ограничений целостности данных

Все необходимые ограничения целостности задаются первичными и внешними ключами, а также разрешением каскадного обновления данных.

2.9 Разработка хранимых процедур

В данном курсовом проекте в ходе разработки информационной системы были созданы хранимые процедуры на добавление, обновление и удаление данных для каждой из таблиц, а также хранимые процедуры для идентификации пользователя:

1. Таблица Кафедра (dbo.Department)

1.1. Удаление данных

Use Университет

Go

Create proc [dbo].[DepartmentDelete]

(@ID int,@re int output)

as

set @re=0

if exists (select * from Department

where ID_Dep=@ID)

begin

if (exists (select * from Teachers

where Department=@ID))

or (exists (select * from Speciality

where Department=@ID))

set @re= -1 /*Нельзя удалить, потому что на кафедре есть преподаватели или специальности*/

else

delete from Department

where ID_Dep=@ID

end

else set @re= -2 /*Нельзя удалить, потому что нет такой кафедры*/

1.2. Добавление данных

Use Университет

Go

Create proc [dbo].[DepartmentInsert]

(@ShortName nvarchar(10),

@FullName nvarchar(100),@re int output)

as

set @re=0

if not exists (select * from Department

where ShortName=@ShortName or

FullName=@FullName)

insert into Department(ShortName,FullName) values(@ShortName,@FullName)

else set @re= -1

1.3. Обновление данных

Use Университет

Go

Create [dbo].[DepartmentUpdate]

(@ID int, @ShortName nvarchar(10),@FullName nvarchar(100),@re int output)

as

set @re=0

if exists (select * from Department

where ID_Dep=@ID)

begin

if exists (select * from Department

where (ShortName=@ShortName or

FullName=@FullName) and @ID<>ID_Dep)

set @re= -2else

update Department

set ShortName=@ShortName, FullName=@FullName

where ID_Dep=@ID

end

else set @re= -1

Входные параметры, используемые в данных процедурах:

@id int - Номер кафедры;

@ShortName nvarchar(10) - Краткое название кафедры;

@FullName nvarchar(100) - Полное название кафедры;

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

2. Таблица Экзамен (dbo. Exam)

2.1. Удаление данных

Use Университет

Go

Create [dbo].[ExamDelete]

(@ID int, @re int output)

as

set @re=0

if exists(select * from Exam where ID_Exam=@ID)

delete from Exam where ID_Exam=@ID

else set @re=-1

2.2. Добавление данных

Use Университет

Go

Create proc [dbo].[ExamInsert]

(@FIO nvarchar(5),@Subject nvarchar(50),@Mark nvarchar(1), @Date datetime, @re int output)

as

set @re=0

declare @subj int

if exists(select * from Student where Nzach=@FIO)

if exists (select * from subject where [name]=@Subject)

if (@mark='3')or(@mark='4')or(@mark='5')or(@mark='2')

begin

select @subj=Nsubject from subject where [name]=@Subject

if not exists(select * from Exam where (Nzach=@FIO)and(Date=@Date))

insert into Exam (Nzach,Nsubject,mark,date)

values (@FIO,@subj,@mark,@date)

else set @re=-4

end

else set @re=-3

else set @re=-2

else set @re=-1

2.3. Обновление данных

Use Университет

Go

Create proc [dbo].[ExamUpdate]

(@ID int,@FIO nvarchar(5),@Subject nvarchar(50),@Mark int, @Date datetime, @re int output)

as

set @re=0

declare @subj int

if exists(select * from exam where ID_Exam=@ID)

if exists(select * from Student where Nzach=@FIO)

if exists (select * from subject where [name]=@Subject)

if (@mark='3')or(@mark='4')or(@mark='5')or(@mark='2')

begin

select @subj=Nsubject from subject where [name]=@Subject

if not exists(select * from Exam where (ID_Exam<>@ID) and(Nzach=@FIO)and(Date=@Date))

update Exam

set Nzach=@FIO,Nsubject=@subj,mark=@mark,date=@date

where ID_Exam=@ID

else set @re=-4

end

else set @re=-3

else set @re=-2

else set @re=-1

else set @re=-5

Входные параметры, используемые в данных процедурах:

@id int - Номер экзамена;

@FIO nvarchar(5) - Номер зачётной книжки студента;

@Subject nvarchar(50)-Название сдаваемого предмета;

@Mark int - Оценка за экзамен;

@Date datetime - Дата сдачи экзамена;

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

3. Таблица Факультет (dbo. Faculty)

3.1. Удаление данных

Use Университет

Go

Create proc [dbo].[FacultyDelete]

(@ID int,@re int output)

as

set @re=0

if exists (select * from Faculty

where ID_Faculty=@ID)

begin

if (exists (select * from Student

where Faculty=@ID))

set @re= -1else

delete from Faculty

where ID_Faculty=@ID

end

else set @re= -2

3.2. Добавление данных

Use Университет

Go

Create roc [dbo].[FacultyInsert]

(@ShortName nvarchar(10),@FullName nvarchar(100),@re int output)

as

set @re=0

if not exists (select * from Faculty

where ShortName=@ShortName or

FullName=@FullName)

insert into Faculty(ShortName,FullName) values(@ShortName,@FullName)

else set @re= -1

3.3. Обновление данных

Use Университет

Go

Create proc [dbo].[FacultyUpdate]

(@ID int, @ShortName nvarchar(10),@FullName nvarchar(100),@re int output)

as

set @re=0

if exists (select * from Faculty

where ID_Faculty=@ID)

begin

if exists (select * from Faculty

where (ShortName=@ShortName or

FullName=@FullName) and ID_Faculty<>@ID)

set @re= -2

else

update Faculty

set ShortName=@ShortName, FullName=@FullName

where ID_Faculty=@ID

end

else set @re= -1

Входные параметры, используемые в данных процедурах:

@id int - Номер факультета;

@ShortName nvarchar(10) - Краткое название факультета;

@FullName nvarchar(100) - Полное название факультета;

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

4. Таблица Группа (dbo. Group)

4.1. Удаление данных

Use Университет

Go

Create proc [dbo].[GroupDelete]

(@ID int,@re int output)

as

set @re=0

if exists (select * from [group] where ID_Group=@ID)

if not exists (Select * from student where [Group]=@ID)

delete from [Group]

where ID_Group=@ID

else set @re= -1

else set @re= -2

4.2. Добавление данных

Use Университет

Go

Create proc [dbo].[GroupInsert]

(@number nvarchar(4),@speciality nvarchar(6),@re int output)

as

set @re=0

if not exists (Select * from [Group] where Number=@number)

if exists (select * from speciality where nspec=@speciality)

begin

declare @p int

select @p=ID_Spec From Speciality where nspec=@speciality

insert into [Group](number,speciality)

values(@number,@p)

end

else set @re= -2

else set @re= -1

4.3. Обновление данных

Use Университет

Go

Create proc [dbo].[GroupUpdate]

(@ID int, @Number nvarchar(4),@speciality nvarchar(6),@re int output)

as

set @re=0

if exists (select * from [group]

where ID_Group=@ID)

if exists (select * from [group]

where Number=@Number and ID_Group<>@ID)

set @re= -2

else

if exists(select * from speciality where nspec=@speciality)

begin

declare @p int

select @p=ID_Spec from speciality where nspec=@speciality

update [group]

set Number=@Number, Speciality=@p

where ID_Group=@ID

end

else set @re=-3

else set @re= -1

Входные параметры, используемые в данных процедурах:

@id int - ID группы;

@Number nvarchar(4)-Номер группы;

@speciality nvarchar(6) -Номер специальности;

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

5. Таблица Стипендия (dbo. Grant)

5.1. Удаление данных

Use Университет

Go

Create proc [dbo].[GrantDelete]

(@ID int,@re int output)

as

set @re=0

if exists (Select * from [Grant]

where ID_Grant=@ID)

delete from [Grant]

where ID_Grant=@ID

else set @re= -1

5.2. Добавление данных

Use Университет

Go

Create proc [dbo].[GrantInsert]

(@Student nvarchar(5),@volume money,@date datetime,@re int output)

as

if exists (Select * from Student

where Nzach=@Student)

BEGIN

set @re=0

insert into [Grant](Student,GrantSize,date)

values (@Student,@volume,@date)

END

else set @re= -1

5.3. Обновление данных

Use Университет

Go

Create proc [dbo].[GrantUpdate]

(@ID int,@Student nvarchar(5),@volume money,@date datetime,@re int output)

as

if exists (Select * from [Grant]

where ID_Grant=@ID)

if exists (Select * from Student

where Nzach=@Student)

begin

set @re=0

update [Grant]

set student=@Student,GrantSize=@volume,date=@date

where ID_Grant=@ID

end

else set @re= -2

else set @re= -1

Входные параметры, используемые в данных процедурах:

@id int - ID стипендии;

@Student nvarchar(5)-Номер зачётной книжки студента;

@volume money - Объём стипендии;

@date datetime - Дата начисления стипендии.

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

6. Таблица Учёная степень (dbo. SDegree)

6.1. Удаление данных

Use Университет

Go

Create proc [dbo].[SDegreeDelete]

(@ID int, @re int output)

as

if exists (Select * from SDegree

where ID_UchStep=@ID)

begin

set @re=0

delete from SDegree

where ID_UchStep=@ID

end

else set @re= -1

6.2. Добавление данных

Use Университет

Go

Create proc [dbo].[SDegreeInsert]

(@Teachers int,@sdegree nvarchar(50),@date datetime,@re int output)

as

if exists (Select * from Teachers

where Nprep=@Teachers)

BEGIN

insert into SDegree(Teachers,SDegree,date)

values (@Teachers,@sdegree,@date)

set @re=0

END

else set @re= -1

6.3. Обновление данных

Use Университет

Go

Create proc [dbo].[SDegreeUpdate]

(@ID int,@Teachers int,@SDegree nvarchar(50),@date datetime,@re int output)

as

if exists (Select * from SDegree

where ID_UchStep=@ID)

if exists (Select * from Teachers

where Nprep=@Teachers)

begin

set @re=0

update SDegree

set Teachers=@Teachers,SDegree=@SDegree,date=@date

where ID_UchStep=@ID

end

else set @re= -2

else set @re= -1

Входные параметры, используемые в данных процедурах:

@id int - ID учёной степени;

@Teachers int - Номер преподавателя;

@SDegree nvarchar(50)-Наименование учёной степени;

@date datetime - Дата получения учёной степени.

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

7. Таблица Специальность (dbo. Speciality)

7.1. Удаление данных

Use Университет

Go

Create proc [dbo].[SpecialityDelete]

(@ID int,@re int output)

as

set @re=0

if exists (select * from Speciality

where ID_Spec=@ID)

begin

if exists (select * from [Group]

where Speciality=@ID)

set @re= -1

else

delete from Speciality

where ID_Spec=@ID

end

else set @re= -2

7.2. Добавление данных

Use Университет

Go

Create proc [dbo].[SpecialityInsert]

(@Nspec nvarchar(6),@Name nvarchar(100),@Department nvarchar(10),@StudyCost money,@re int output)

as

set @re=0

if not exists (select * from Speciality

where Nspec=@Nspec or

[Name]=@Name)

if exists (Select * from Department

where ShortName=@Department)

begin

declare @p int

select @p=ID_Dep from Department where ShortName=@Department

insert into Speciality(Nspec,[Name],Department,StudyCost)

values (@Nspec,@Name,@p,@StudyCost)

end

else set @re= -2

else set @re= -1

7.3. Обновление данных

Use Университет

Go

Create proc [dbo].[SpecialityUpdate]

(@ID int,@Nspec nvarchar(6),@Name nvarchar(100),@Department nvarchar(10),@StudyCost money,@re int output)

as

set @re=0

if not exists (select * from Speciality

where (Nspec=@Nspec or

[Name]=@Name) and ID_Spec<>@ID)

begin

if exists (select * from Department where ShortName=@Department)

begin

declare @p int

select @p=ID_Dep from Department where ShortName=@Department

Update Speciality

set Nspec=@Nspec,[Name]=@Name,Department=@p,StudyCost=@StudyCost

where ID_Spec=@ID

end

else set @re=-1

end

else set @re= -2

Входные параметры, используемые в данных процедурах:

@id int -номер специальности;

@Nspec nvarchar(6) - код специальности;

@Name nvarchar(100) - название специальности;

@Department nvarchar(10) - краткое название выпускающей кафедры;

@StudyCost money - стоимость обучения на специальности

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

8. Таблица Студент (dbo. Student)

8.1. Удаление данных

Use Университет

Go

Create proc [dbo].[StudentDelete]

(@Nzach nvarchar(5),@re int output)

as

set @re=0

if exists (select * from student where Nzach=@Nzach)

begin

delete from Exam where Nzach=@Nzach

delete from [Grant] where Student=@Nzach

delete from Student where Nzach=@Nzach

end

else set @re=-1

8.2. Добавление данных

Use Университет

Go

Create proc [dbo].[StudentInsert]

(@Nzach nvarchar(5),@FIO nvarchar(50),@group nvarchar(4),@faculty nvarchar(10),@fo nvarchar(10),@factory nvarchar(100),@ispay bit,@re int Output)

as

set @re=0

if not exists (select * from student where Nzach=@Nzach)

if exists(select * from [Group] where Number=@group)

if exists (select * from Faculty where ShortName=@faculty)

begin

declare @a int,@b int

select @a=ID_Group from [Group] where Number=@group

select @b=ID_Faculty from Faculty where ShortName=@faculty

insert into Student

values(@Nzach,@FIO,@b,@a,@fo,@factory,@ispay)

end

else set @re=-3

else set @re=-2

else set @re=-1

8.3. Обновление данных

Use Университет

Go

Create proc [dbo].[StudentUpdate]

(@Nzach nvarchar(5),@FIO nvarchar(50),@group nvarchar(4),@faculty nvarchar(10),@fo nvarchar(10),@factory nvarchar(100),@ispay bit,@re int Output)

as

set @re=0

if exists(select * from [Group] where Number=@group)

if exists (select * from Faculty where ShortName=@faculty)

begin

declare @a int,@b int

select @a=ID_Group from [Group] where Number=@group

select @b=ID_Faculty from Faculty where ShortName=@faculty

update Student

set FIO=@FIO,Faculty=@b,[Group]=@a,StudyForm=@fo,Factory=@factory,IsPay=@ispay

where Nzach=@Nzach

end

else set @re=-3

else set @re=-2

Входные параметры, используемые в данных процедурах:

@Nzach nvarchar(5)- номер зачётной книжки;

@FIO nvarchar(50) - ФИО студента;

@group nvarchar(4) - номер группы студента;

@faculty nvarchar(10) - краткое навание факультета студента;

@fo nvarchar(10) - форма обучения;

@factory nvarchar(100) - предприятие, оплачивающее обучение (для студентов по целевому набору)

@ispay bit - платит ли студент за обучение

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

9. Таблица Предмет (dbo. Subject)

9.1. Удаление данных

Use Университет

Go

Create proc [dbo].[SubjectDelete]

(@Nsubject int,@re int output)

as

set @re=0

if exists (select * from subject

where Nsubject=@Nsubject)

begin

if (exists (select * from Teach

where Subject=@Nsubject))

or (exists (select * from Exam

where Nsubject=@Nsubject))

set @re= -1else

delete from subject

where Nsubject=@Nsubject

end

else set @re= -2

9.2. Добавление данных

Use Университет

Go

Create proc [dbo].[SubjectInsert]

(@Name nvarchar(50),@re int output)

as

set @re=0

if not exists (select * from Subject

where [Name]=@Name)

insert into Subject ([Name]) values(@Name)

else set @re= -1

9.3. Обновление данных

Use Университет

Go

Create proc [dbo].[SubjectUpdate]

(@ID int,@name nvarchar(50), @re int output)

as

Set @re=0

if not exists (select * from Subject where [name]=@name)

update Subject

set [Name]=@name

where Nsubject=@ID

else set @re=-1

Входные параметры, используемые в данных процедурах:

@ID int - Номер предмета;

@name nvarchar(50) - Название предмета.

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

10. Таблица Преподает (dbo. Teach)

10.1. Удаление данных

Use Университет

Go

Create proc [dbo].[TeachDelete]

(@ID int, @re int output)

as

set @re=0

if exists(select * from teach where ID_Teach=@ID)

delete from teach where ID_Teach=@ID

else set @re=-1

10.2. Добавление данных

Use Университет

Go

Create proc [dbo].[TeachInsert]

(@prep char(50),@Subject char(50),@date datetime, @re int output)

as

set @re=0

if exists(select * from teachers where FIO=@prep)

if exists(select * from subject where [Name]=@Subject)

begin

declare @a int,@b int

select @a=Nsubject from subject where [Name]=@Subject

select @b=Nprep from teachers where FIO=@prep

if not exists (select * from Teach where (subject=@a) and (Teachers=@b) and (date=@date))

insert into teach (Subject,Teachers,date)

values (@a,@b,@date)

else set @re=-2

end

else set @re=-3

else set @re=-1

10.3. Обновление данных

Use Университет

Go

Create proc [dbo].[TeachUpdate]

(@ID int,@prep char(50),@Subject char(50),@date datetime, @re int output)

as

set @re=0

if exists(select * from teach where ID_Teach=@ID)

if exists(select * from teachers where FIO=@prep)

if exists(select * from subject where [Name]=@Subject)

begin

declare @a int,@b int

select @a=Nsubject from subject where [Name]=@Subject

select @b=Nprep from teachers where FIO=@prep

if not exists (select * from Teach where (subject=@a)and(Teachers=@b)and(date=@date))

update teach

set Subject=@a,Teachers=@b,date=@date

where ID_Teach=@ID

else set @re=-4

end

else set @re=-3

else set @re=-1

else set @re=-2

Входные параметры, используемые в данных процедурах:

@ID int - Номерзаписи о преподавании;

@prep char(50) - ФИО преподавателя;

@Subject char(50) - название предмета;

@date datetime - Дата.

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

11. Таблица Преподаватель (dbo. Teachers)

11.1. Удаление данных

Use Университет

Go

Create proc [dbo].[TeachersDelete]

(@ID int, @re int output)

as

set @re=0

if exists (select * from Teachers where Nprep=@ID)

if not exists (select * from Teach where Teachers=@ID)

begin

delete from SDegree where Teachers=@ID

delete from salary where Teachers=@ID

delete from Teachers where Nprep=@ID

end

else set @re=-2

else set @re=-1

11.2. Добавление данных

Use Университет

Go

Create proc [dbo].[TeachersInsert]

(@FIO nvarchar(50),@Department nvarchar(10),@Dolznost nvarchar(50),@DatePrin datetime, @re int output)

as

set @re=0

if exists(select * from Department where ShortName=@Department)

begin

declare @p int

select @p=ID_Dep from Department where ShortName=@Department

insert into teachers (FIO,Department,Dolznost,DatePrin)

values (@FIO,@p,@Dolznost,@DatePrin)

end

else set @re=-1

11.3. Обновление данных

Use Университет

Go

Create proc [dbo].[TeachersUpdate]

(@ID int,@FIO nvarchar(50),@Department nvarchar(10),@Dolznost nvarchar(50),@DatePrin datetime, @re int output)

as

set @re=0

if exists(select * from teachers where Nprep=@ID)

if exists(select * from Department where ShortName=@Department)

begin

declare @p int

select @p=ID_Dep from Department where ShortName=@Department

update teachers

set FIO=@FIO,Department=@p,Dolznost=@Dolznost,DatePrin=@DatePrin

where Nprep=@ID

end

else set @re=-1

else set @re=-2

Входные параметры, используемые в данных процедурах:

@ID int - Номер преподавателя;

@FIO nvarchar(50)- ФИО преподавателя;

@Department nvarchar(10) - краткое название кафедры, где преподаватель работает

@Dolznost nvarchar(50) - должность, занимаема преподавателем

@DatePrin datetime - дата принятия на работу

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

12. Таблица Зарплата (dbo. Salary)

12.1. Удаление данных

Use Университет

Go

Create proc [dbo].[SalaryDelete]

(@ID int,@re int output)

as

if exists (Select * from salary

where ID_Zarplata=@ID)

begin

delete from salary

where ID_Zarplata=@ID

set @re=0

end

else set @re= -1

12.2. Добавление данных

Use Университет

Go

Create proc [dbo].[SalaryInsert]

(@Teachers int,@volume money,@date datetime,@re int output)

as

if exists (Select * from Teachers

where Nprep=@Teachers)

BEGIN

set @re=0

insert into Salary(Teachers,Volume,date)

values (@Teachers,@volume,@date)

END

else set @re= -1

12.3. Обновление данных

Use Университет

Go

Create proc [dbo].[SalaryUpdate]

(@ID int,@Teachers int,@volume money,@date datetime,@re int output)

as

if exists (Select * from salary

where ID_Zarplata=@ID)

if exists (Select * from Teachers

where Nprep=@Teachers)

begin

set @re=0

update Salary

set Teachers=@Teachers,volume=@volume,date=@date

where ID_Zarplata=@ID

end

else set @re= -2

else set @re= -1

Входные параметры, используемые в данных процедурах:

@ID int - Номер записи о зарплате;

@Teachers int - Номер преподавателя

@volume money - размер зарплаты

@date datetime - дата начисления

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

13. Идентификация пользователей

13.1. Идентификация студента

Create proc [dbo].[StuPass]

(@pass nvarchar(5),@re int output,@FIO nvarchar(50)output)

AS

set @re=0

if exists (select * from student where Nzach=@pass)

select @FIO=FIO from Student where Nzach=@pass

else set @re=-1

13.2. Идентификация преподавателя

Create proc [dbo].[TeachPass]

(@pass int,@re int output,@FIO nvarchar(50) output)

AS

set @re=0

if exists (select * from teachers where Nprep=@pass)

select @FIO = FIO from TEACHERS where Nprep=@pass

else set @re=-1

Входные параметры, используемые в данных процедурах:

@pass nvarchar(5)/ @pass int - пароль пользователя (соответственно номер зачётной книжки и номер преподавателя)

Выходные параметры, используемые в данных процедурах:

@Re int - Вспомогательная переменная, позволяющая определить успешность или не успешность выполнения операции.

@FIO nvarchar(50) - ФИО пользователя

3. РАЗРАБОТКА КЛИЕНТСКОЙ ЧАСТИ ИНФОРМАЦОННОЙ СИСТЕМЫ

3.1 Организация взаимодействия клиентской программы с БД

Для доступа к базе данных использовалась технология ADO.NET. Экземпляры компонентов доступа к БД, применённые в данном проекте, приведены в таблице 1.

Таблица 1

Тип компонента и его описание

Экземпляры компонентов

Назначение

DataConnectionDialog

Вызывает диалоговое окно с настройками для подключения

_dialog

Настроить подключение для синхронизации с базой данных

SqlConnection

Предоставляет уникальный сеанс связи с источником данных SQL Server.

conDB

Установка соединения с сервером. Используется в коде всей программы.

SqlCommand

Представляет инструкцию Transact-SQL или хранимую процедуру, выполняемую над базой данных SQL Server.

com

Выполнение запросов к БД или вызов хранимых процедур.

SqlDataAdapter

Представляет набор выполняемых над данными команд и подключения базы данных, которые используется для заполнения и обновления базы данных SQL Server.

da

Извлечение и сохранение данных в БД. Используется для создания сложных наборов данных (из нескольких таблиц).

DataSet

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

ds

Хранит данные из БД в виде таблиц для дальнейшего их отображения компонентом DataGridView

DataGridView

предоставляет настраиваемую таблицу для отображения данных.

dataGridView1 - dataGridView20

Отображение данных таблиц созданной базы данных

BindingNavigator

Представляет собой панель для редактирования данных в таблицах

BindingNavigator1 - BindingNavigator8

Необходимы для навигации в таблицах БД.

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

Клиентская программа работы с БД была создана в стиле MDI-приложения.

При запуске программы на экран выводится форма заставки zast с логотипом программы.

Форма представлена в файлах: zast.cs, zast.Designer.cs, zast.resx.

Для авторизации пользователя создана форма Password. Список компонентов данной формы и их назначение представлены следующим образом:

· «Войти» - кнопка подтверждения авторизации;

· «Выход» - кнопка для выхота из программы;

· Переключатели «Абитуриент», «Студент», «Преподаватель», «Ректор» и «Администратор» - для выбора типа пользователя;

· TextBoxPassword - поле для ввода пароля.

Форма представлена в файлах: Password.cs, Password.Designer.cs, Password.resx.

После входа загружается главное (родительское) окно программы, в пределах которого и будут отображаться необходимые формы. Основным элементом формы является «Главное меню», обеспечивающее доступ к основным функциям программы.

Форма представлена в файлах: MainForm.cs, MainForm.Designer.cs, MainForm.resx.

Если вход осуществил «администратор», на экране отобразится форма EditForm. Форма состоит из вкладок, на каждой из которых размещены элементы:

· Переключатели «Добавить запись», «Изменить запись», «Удалить запись» для определения типа действий, выполняемых над базой данных;

· Поля ввода - компоненты типа TextBox - для ввода данных;

· Таблица просмотра информации базы данных (компоненты dataGridView);

· Кнопка для выполнения действий над базой данных.

На вкладке «Преподают» размещены выпадающие списки для удобного ввода преподавателя и предмета.

Форма представлена в файлах EditForm.cs, EditForm.Designer.cs, EditForm.resx.

Если вход осуществил «Абитуриент», на экране отобразится форма AbiturientForm. Форма состоит из вкладок, на каждой из которых размещены элементы:

· Таблица просмотра информации базы данных (компоненты dataGridView);

· Панель навигации по базе данных (компонент BindingNavigator);

· Выпадающий список для выбора поля, по которому будет произведен поиск.

Форма представлена в файлах: AbiturientForm.cs, AbiturientForm.Designer.cs, AbiturientForm.resx.

Если вход осуществил «Студент», на экране отобразится форма StudForm. Форма состоит из вкладок, на каждой из которых размещены элементы:

· Таблица просмотра информации базы данных (компоненты dataGridView);

· Панель навигации по базе данных (компонент BindingNavigator);

На вкладке «Моя успеваемость» расположен выпадающий список для выбора поля, по которому будет произведен поиск.

Форма представлена в файлах StudForm.cs, StudForm.Designer.cs, StudForm.resx.

Если вход осуществил «Преподаватель», на экране отобразится форма TeacherForm. Форма состоит из вкладок, на каждой из которых помещены следующие элементы:

· Таблица просмотра информации базы данных (компоненты dataGridView);

· Панель навигации по базе данных (компонент BindingNavigator);

Форма представлена в файлах TeacherForm.cs, TeacherForm.Designer.cs, TeacherForm.resx.

Если вход осуществлён «Ректором», на экране отобразится форма RectorForm. Форма состоит из вкладок, на каждой из которых помещены следующие элементы:

· Таблица просмотра информации базы данных (компоненты dataGridView);

· Панель навигации по базе данных (компонент BindingNavigator);

· Выпадающий список для выбора поля, по которому будет произведен поиск.

Форма представлена в файлах RectorForm.cs, RectorForm.Designer.cs, RectorForm.resx.

При выборе любого подпункта из меню «Отчёт» отобразится форма ReportsForm, обеспечивающая вывод отчета и возможность его распечатки. Форма содержит в себе единственный элемент - объект для просмотра отчетов (ReportViewer).

Форма представлена в файлах: ReportsForm.cs, ReportsForm.Designer.cs, ReportsForm.resx.

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

В рамках данной информационной системы были разработаны следующие отчеты:

stud.rpt - список студентов университета (доступно пользователю, вошедшему как «Ректор»);

teacher.rpt - список преподавателей университета (доступно пользователю, вошедшему как «Ректор»);

StudInfo.rpt - успеваемость вошедшего в программу студента.

3.4 Разработка сценария инсталляции клиентской программы

Для разработки дистрибутива клиентского приложения была использована программа Inno Setup 4.2.7. Рассмотрим структуру полученного скрипта.

В секции [Setup] указаны имя приложения, его версия, путь установки по умолчанию и некоторые другие параметры. В секции [Tasks] указаны дополнительные возможности, предоставляемые пользователю в процессе установки, а именно: создание ярлыка приложения на рабочем столе или на панели быстрого запуска. В секции [Files] определены пути к файлам, которые будут распакованы в процессе установки. Секция [Icons] показывает какие иконки будут добавлены для приложения. В секции [Run] указана настройка, предоставляющая пользователю возможность запуска приложения сразу после установки. Полный текст данного скрипта приведен в Приложении 3.

Для создания базы данных на сервере необходимо запустить скрипт StudentsAndTeachers.sql (см. Приложение 1).

3.5 Руководство пользователя

Чтобы запустить программу, выполните двойной щелчок левой клавишей мыши по значку StudentAndTeashers.exe. На экране появится заставка программы. Затем - окно выбора соединения (рисунок 31).

Рисунок 31 - Окно выбора соединения.

В случае успешного соединения появляется форма авторизации пользователей (рисунок 32), если же подключение было выбрано неверно, то пользователь не может войти в программу.

Рисунок 32 - Форма авторизации.

На форме авторизации необходимо ввести пароль. Паролем является номер зачётной книжки - для пользователя «студент», порядковый номер - для пользователя «преподаватель», пароль “admin” - для пользователя «администратор», пароль “rector” - для пользователя «ректор». Для пользователя «абитуриент» пароль не требуется. В случае ввода существующего пароля будет выведено сообщение приветствия и откроется главное окно программы, в противном случае вход будет запрещен (рисунок 33). Пользователь сможет снова попытаться ввести пароль на форме авторизации.

Рисунок 33 - Введен неверный пароль.

Введем пароль одного из студентов: 05123. Откроется окно пользователя «Студент» (рисунок 34).

Вошедший в программу студент будет видеть информацию в таблицах о своей успеваемости и стипендии.

Рисунок 34 - Окно «Студент»

Введем в поле параметра поиска строку “Инф”, в результате чего увидим аттестацию по предмету Информатика (рисунок 35).

Рисунок 35 - Успеваемость студента по предмету «Информатика»

Далее в главном меню выберем пункт Отчет ->Моя успеваемость. В результате откроется окно для просмотра успеваемости студента в виде отчета (рисунок 36).

Рисунок 36 - Просмотр отчёта об успеваемости.

Теперь зайдем в программу как «Администратор». Администратор, в отличие от студента, имеет возможность редактирования и сохранения результатов всей базы данных «Университет». Именно от этого человека зависит правильность корректировки информации, доводимой до студентов и преподавателей. Для того чтобы зайди в программу с правами администратора в главном меню программы выберем пункт «Файл» - «Сменить пользователя». В появившемся окне авторизации выберем пользователя «Администратор» и введем пароль: admin. Перед нами появится окно «Редактирование» (Рисунок 37).

Рисунок 37 - Окно «Редактирование»

Само окно «Редактирование» состоит из двенадцати вкладок, на каждой из которых размещены таблицы соответствующей предметной области.

Перейдем на вкладку «Факультеты» и выполним добавление факультета в базу данных, для чего введём необходимые данные в соответствующие поля и нажмем кнопку «Добавить». В результате в основную таблицу добавятся введённые данные. По аналогии добавляются записи на остальных вкладках. Также данные таблиц можно изменять и удалять.

Окно, отображаемое для пользователя «Абитуриент», представлено на рисунке 38. Абитуриент может просматривать информацию о специальностях, кафедрах и факультетах университета.

Рисунок 38 - Окно «Абитуриент».

Окно, отображаемое для пользователя «Ректор», представлено на рисунке 39.

Рисунок 39 - Окно «Ректор»

Ректор может просматривать полную информацию о преподавателях и студентах. Информация может быть представлена как с помощью таблицы, так и в виде отчётов, которые вызываются с помощью соответствующего пункта меню «Отчёт». Отчёт о преподавателях университета представлен на рисунке 40.

Рисунок 40 - Просмотр отчёта о преподавателях.

Окно пользователя «Преподаватель» представлено на рисунке 41. Преподаватель может просматривать данные о предметах, которые он ведет, о собственной зарплате и о полученных учёных степенях.

Рисунок 41 - Окно «Преподаватель»

Чтобы закрыть программу StudentsAndTeachers, необходимо выполнить команду меню «Файл» - «Выход», либо нажать на крестик в правом верхнем углу главного окна приложения.

Заключение

В ходе работы над курсовым проектом было выполнено создание БД, организовано взаимодействие с клиентским приложением. Осуществлены операции добавления, изменения и удаления информации через хранимые процедуры, просмотр данных через запросы к БД.

В результате выполнения курсового проекта получена информационная система, предоставляющая пользователям простой и удобный способ взаимодействия с базой данных. Информационная система легко модифицируема и возможна дальнейшая ее доработка (как базы данных, так и клиентского приложения) для расширения круга решаемых задач. Выполненная работа полностью удовлетворяет поставленной задаче.

Список используемой литературы

1. Благодаров А.В., лекции «Клиент-серверные приложения БД», 2010 г

2. Вьера Р. «SQL SERVER 2000. Программирование», 2 части, 2004г.

3. Троелсен Э. «C# и платформа .NET 3.0, специальное издание», СПб.: Питер, 2008. - 1456 с.

4. Библиотека MSDN для Visual Studio 2005.

Приложение 1: SQL-скрипт для создания БД

USE [master]

GO

/****** Объект: Database [Университет] Дата сценария: 04/18/2011 16:40:34 ******/

CREATE DATABASE [Университет] ON PRIMARY

( NAME = N'Университет', FILENAME = N'E:\USERS\STUD\DB\840\Университет.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )

LOG ON

( NAME = N'Университет_log', FILENAME = N'E:\USERS\STUD\DB\840\Университет_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)

GO

use Университет

go

/*==============================================================*/

/* DBMS name: Microsoft SQL Server 2000 */

/* Created on: 04.06.2011 0:46:59 */

/*==============================================================*/

/*==============================================================*/

/* Table: Department */

/*==============================================================*/

create table Department (

ID_Dep int identity,

FullName nvarchar(100) not null,

ShortName nvarchar(10) not null

)

go

alter table Department

add constraint PK_DEPARTMENT primary key nonclustered (ID_Dep)

go

alter table Department

add constraint AK_IDENTIFIER_2_DEPARTME unique (FullName)

go

alter table Department

add constraint AK_IDENTIFIER_3_DEPARTME unique (ShortName)

go

/*==============================================================*/

/* Table: Exam */

/*==============================================================*/

create table Exam (

ID_Exam int identity,

Student nvarchar(5) not null,

Subject int not null,

Mark int not null,

Date datetime not null

)

go

alter table Exam

add constraint CKC_MARK_EXAM check (Mark between 2 and 5)

go

alter table Exam

add constraint PK_EXAM primary key nonclustered (ID_Exam)

go

/*==============================================================*/

/* Table: Faculty */

/*==============================================================*/

create table Faculty (

ID_Faculty int identity,

ShortName nvarchar(100) not null,

FullName nvarchar(10) not null

)

go

alter table Faculty

add constraint PK_FACULTY primary key nonclustered (ID_Faculty)

go

alter table Faculty

add constraint AK_IDENTIFIER_2_FACULTY unique (FullName)

go

alter table Faculty

add constraint AK_IDENTIFIER_3_FACULTY unique (ShortName)

go

/*==============================================================*/

/* Table: "Grant" */

/*==============================================================*/

create table "Grant" (

ID_Grant int identity,

Student nvarchar(5) not null,

GrantSize money not null default 1200,

Date datetime not null


Подобные документы

  • Анализ предметной области. Определение функций пользователя, атрибутов, ключей, сущностей и связей. Проектирование инфологической модели данных. Спецификация входных и выходных запросов. Разработка процедур и средств реализации ограничений целостности.

    курсовая работа [7,2 M], добавлен 21.04.2015

  • Выявление сущностей и связей, атрибутов сущностей и назначение первичных ключей при разработке базы данных. Реляционная модель данных. Описание стадий жизненного цикла информационной системы: анализ, проектирование, реализация, внедрение, сопровождение.

    курсовая работа [152,2 K], добавлен 11.05.2014

  • Анализ предметной области. Перечень хранимой информации: таблицы, поля, типы. Выделение сущностей, атрибутов, ключей, связей. Начальное заполнение данными БД. Создание и запуск базовых запросов. Проектирование базы данных в среде Enterprise Architect.

    курсовая работа [1,6 M], добавлен 16.02.2016

  • Теоретические основы проектирования и разработки баз данных, правила формирования отношений из диаграмм ER-типа. Определение сущностей и их взаимосвязей, атрибутов и ключей. Разработка модели базы данных, повышение производительности доступа к информации.

    курсовая работа [1,5 M], добавлен 24.12.2011

  • Описание предметной области, определение функциональных требований к системе и построение диаграммы потока данных. Построение модели "сущность-связь", описание сущностей и атрибутов модели. Построение реляционной базы данных и описание ее таблицы.

    курсовая работа [624,5 K], добавлен 30.05.2019

  • Основные проблемы проектирования реляционных баз данных "МВД". Инфологическое описание сущностей и атрибутов программного обеспечения. Разработка датологической модели данных и гарантирование ее безопасности и целостности. Реализация запросов на SQL.

    курсовая работа [3,0 M], добавлен 28.06.2011

  • Разработка информационной системы с клиент-серверной архитектурой "Складской учет мебельного магазина". Выявление связей, сущностей, их атрибутов и ключей. Проектирование логической и физической моделей данных. Задание типов данных для полей таблиц.

    курсовая работа [860,7 K], добавлен 18.01.2015

  • Анализ реляционных баз данных и способов манипулирования ими. Основные понятия баз данных, архитектура СУБД, модели данных. Модель сущность-связь, характеристика связей, классификация сущностей, структура первичных и внешних ключей, целостности данных.

    курсовая работа [166,6 K], добавлен 18.07.2012

  • Автоматизация работы дежурной службы телекоммуникационной компании. Спецификации сущностей, атрибутов, связей, ссылочной целостности и таблиц. Даталогическая модель базы данных. Запросы пользователей и SQL–запросы. Интерфейс конечного пользователя.

    курсовая работа [301,2 K], добавлен 16.02.2013

  • Рaзрaботка бaзы дaнных в Microsoft SQL Server 2005 для aвтомaтизaции процессa контроля прокaтa видеофильмов: перечень сущностей и атрибутов, выбор ключей, содержимое тaблиц, составление запросов к базе данных, триггеров и клиентского приложения.

    курсовая работа [940,3 K], добавлен 21.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.