База данных "Студенты и преподаватели"
Выявление сущностей, их атрибутов и ключей. Построение 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