Учет успеваемости студентов

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    3,02 Мб
  • Опубликовано:
    2015-06-24
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Учет успеваемости студентов

Министерство образования и науки РФ

Пермский национальный исследовательский политехнический университет

Электротехнический факультет

Кафедра ИТАС





 
 
Курсовая работа по базам данных
На тему: Учет успеваемости студентов


Выполнил

Шаякбаров Н.Ф.








Пермь 2015

Введение

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

Язык SQL широко применяется в работе с базами данных. Значительная сфера IT-сферы так или иначе связана с ним. Несмотря на свою кажущуюся простоту, язык SQL предоставляет огромные возможности для работы с базами данных.

В ходе работы будет проведена систематизация и углубление теоретических знаний о базах данных и методах работы с ними. Помимо этого, курсовая работа позволит практически применить методы проектирования информационных систем, освоить выбранную СУБД и выработать навыки работы с базой данных.

Для выполнения курсовой работы была выбрана СУБД MS Access - один из нынешних лидеров рынка программного обеспечения для работы с базами данных. Для программирования пользовательского приложения был выбран компилятор CODEGear - как один из наиболее удобных, современных и наиболее часто встречающихся.

1.      Цели и задачи курсовой работы


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

Задачи курсовой работы:

) практическое применение методов проектирования ИС;

) выработка навыков работы с БД;

) усвоение приемов работы с СУБД Access и языком SQL;

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

Студент (НомерЗачетки, Фамилия, ДомашнийАдрес, Группа),

Предмет (КодПредмета, Наименование),

Экзамен (КодПредмета, НомерЗачетки, ДатаЭкзамена).

Далее нужно запрограммировать систему, позволяющую получать ответы на запросы:

) получите данные о студентах указанной группы, например ПОВТ-06;

) получите данные о студентах, сдавших экзамен после указанной даты;

) получите данные о студенте по номеру его зачетки;

) получите данные о количестве студентов, сдававших экзамены по предметам;

) получите сведения о количестве студентов, получивших положительные оценки;

) получите название предмета, по которому поставлено наибольшее количество двоек;

) получите данные о предметах, которые сдавали студенты заданной группы;

) получите домашние адреса студентов, сдавших на «отлично» указанный предмет.

Необходимо разработать формы ввода, просмотра и редактирования данных в базе и создать отчеты по таблице «Студенты», по запросам 1, 7, 8.

2.      Выбор СУБД для реализации БД


Основными критериями для выбора служили: 1) Доступность ПО; 2) Знакомство с ПО; 3) Функциональные возможности;

В качестве реляционной СУБД была выбрана MSAccess, по следующим причинам:

1)      Access легко взаимодействует с другими программами;

2)      Access широко распространён;

3)      Access наиболее привычен, имеет удобный интерфейс, широкий функционал и субъективно понятен.

Несмотря на отсутствие лицензии, можно использовать Access в режиме trial.

В сравнении Access с другими реляционными СУБД можно сказать следующее. Большая часть СУБД аналогичная и различается незначительно. Вопрос выбора СУБД чаще всего упирается в удобство и привычку использования той или иной СУБД, ну и конечно доступности. На примере того же OpenOfficeBase можно сказать, что различия не всегда могут быть найдены обычным пользователем.  Самым существенным различием между Access и Base для меня стало трудность прикрепления БД от Base к сторонним ПО разработки, т.к. не все они знают о такой СУБД. По этой причине, Access наиболее удобен для разработки БД. [1]

Для разработки клиентского приложения была выбрана свободно распространяемая CODEGearRADStudio. Основными преимуществами данного ПО можно назвать:

)        Поддержка большого количества языков разработки;

2)      Поддержка технологии ADO;

)        Широкий функционал и лёгкая интеграция VS с Access.

3.      Обоснование выбора способа соединения с БД


Технология ADO имеет как свои недостатки, так и свои преимущества. Основными преимуществами можно назвать:

·        Технология ADO предлагает разработчику удобный прикладной интерфейс для OLE DB;

·        ADO удобна в обращении, так как предоставляет объекты Automation, скрывающие интерфейсы OLE DB, что позволяет программисту уделять основное внимание решаемым задачам, а не сложностям технологии OLE DB;

·        ADO-объекты разрешается применять на любой платформе, которая поддерживает СОМ и Automation;

·        ADO-набор данных допустимо отсоединять от источника данных и передавать другим приложениям, при этом возможно изменение данных набора в отрыве от сети и источника данных.

Ко всему вышесказанному стоит прибавить тот факт, что ADO проста в использовании и привычна. Это и стало ключевым моментом в выборе технологии соединения. [2]

В качестве языка для разработки клиентского приложения использовался Delphi. В качестве ПО для разработки использовался CodeGear. Преимуществами CodeGear можно назвать:

)        Поддержка множества языков программирования;

2)      Поддержка технологии ADO.

)        Простота и интуитивность интерфейса, собранность интерфейса в едином окне;

)        Широкий функционал;

)        Привычность, большое количество учебных материалов в сети;

4.      Интерфейсы и приложения для технологических операций с БД


Рисунок 1 - форма ввода таблицы «Предмет»

Рисунок 2 - форма просмотра таблицы «Предмет»

Рисунок 3 - форма редактирования таблицы «Предмет»

Рисунок 4 - форма ввода таблицы «Студент»

Рисунок 5 - форма просмотра таблицы «Студент»

Рисунок 6 - форма редактирования таблицы «Студент»

Рисунок 7 - форма редактирования таблицы «Экзамен»

Рисунок 8 - форма ввода таблицы «Экзамен»

Рисунок 9 - форма просмотра таблицы «Экзамен»

Рисунок 10 - Отчёт по запросу 1

Рисунок 11 - Отчёт по запросу 2

Рисунок 12 - Отчёт по запросу 8

5.      Приёмы работы с Базой Данных


В СУБД были установлены связи между таблицами. Тип связей между:

)        КодПредмета(Экзамен) - КодПредмета(Экзамен) один-ко-многим, так как одному коду соответствует несколько экзаменов. Т.е. один и тот же предмет сдают многие студенты.

2)      НомерЗачётки(Студент) - НомерЗачётки(Студент) многие-ко-многим, т.к. один студент может сдавать несколько экзаменов, по нескольким предметам, и несколько студентов могут сдавать один и тот же экзамен.

Рисунок 13 - Логическая модель базы данных

Связи с отношением «многие-ко-многим» создаются в базе данных с помощью промежуточных (связующих) таблиц. Связующая таблица содержит столбцы первичного ключа обеих связываемых таблиц. Была создана связующая таблица «Студент + Экзамен». Она содержит в себе ключевой ключ НомерЗачётки таблицы «Студент» и id_записи, ключевой ключ таблицы «Экзамен».

Рисунок 14 - Cвязующая таблица

Физическая модель данных - это конкретные места хранения данных в конкретной СУБД. Модель зависит от конкретной СУБД. Объектами физической модели являются таблицы и поля с типами данных, определенными для выбранной СУБД. Объекты именуются в соответствии с правилами СУБД. Одной логической модели данных может соответствовать несколько физических моделей.

Так как, CODEGear не может работать с версиями MS Access после 2003, то было создано две базы данных. Одна из них версия 2003 - для работы с пользовательским приложением, другая аналогичная, с формами ввода, просмотра, редактирования, отчётами, запросами в режиме конструктора и так далее.

Рисунок 15 - Физическая модель базы данных

 

6.      Алгоритм работы приложения


Если описывать основной алгоритм программы в работе, а именно осуществление запросов к Базе Данных, то можно выразить его следующим образом:

НАЧАЛО

         ОЧИСТИТЬ.SQL;

         ВЫКЛЮЧИТЬ КОМПОНЕНТ ADO Query;

         ДОБАВИТЬ НОВЫЙ.SQL;

         ВКЛЮЧИТЬ КОМПОНЕНТ ADOQuery;

         ВЫРАВНИТЬ СТОЛБЦЫ;

         ЗАДАТЬ ШИРИНУ СТОЛБЦОВ;

КОНЕЦ

Теперь давайте рассмотрим пошагово:

)        Необходимо очистить предыдущий SQL-запрос для корректного вывода нового. Данный шаг выполняется строкой кода ADOQuery1.SQL.Clear;

2)      Выключение компонента ADOQuery (т.е. выставление свойства Active в положение false) происходит автоматически, при очистке содержащейся в нём SQL-строки;

)        Новый SQL-запрос передаётся через 2 шага. Сначала срабатывает оператор множественного выбора, который передаёт необходимый запрос в компонент Memo2, затем уже вне оператора множественного выбора данный запрос передаётся в SQL строку ADOQuery. Это сделано для того, что бы пользователь легко мог найти ошибку в SQLзапросе, в случае если она допущена;

)        Включение компонента ADOQuery происходит так же после оператора множественного выбора, строчкой кода ADOQuery1.Active:=true;

)        Выравнивание столбцов и задача их ширины не обязательны, но позволяют легче просматривать полученные данные;

Далее приведём код программы:

Код, выполняющийся при создании формы

Код для вывода таблицы из Базы Данных и форматирования таблицы DBGrid

Код, выполняющий смену переменных оперирующих в запросах

данные алгоритм access логический

Основной код, отвечающий за SQL запросы


Подробно разберём запросы:

1)      SELECT * FROM Студент WHERE Группа = '''+group+''' - простой запрос выборки всех столбцов из таблицы Студент с условием, что столбец Группа будет равен переменной строковой переменной group.

)        SELECT * FROM Студент WHERE НомерЗачёткиIN(SELECT НомерЗачётки FROM Экзамен WHERE ДатаЭкзамена>'''+date+''') - запрос с вложенным запросом. Вложенный запрос выдаёт все номера зачётки, из таблицы Экзамен, у которых ДатаЭкзамена позднее 01.01.2015. Конструкция IN принимает значения из вложенного запроса. Далее на основе полученных НомеровЗачётки из таблицы Студент выбираются все данные.

3)      SELECT * FROM Студент WHEREНомерЗачётки='+IntToStr(numb)+' - простой запрос выборки всех данных из таблицы студенты с условием, что НомерЗачётки будет равняться целочисленной переменной numb.

4)      SELECTCOUNT(*) FROM Экзамен WHEREКодПредмета='+IntToStr(pred)+' - простой запрос использующий агрегатную функцию COUNT(*) для подсчёта экзаменов по заданному КодуПредмета.

5)      SELECTCOUNT(*) FROM Экзамен WHERE Оценка>3 - запрос использующий агрегатную функцию COUNT(*) для подсчёта количество оценок выше 3, в таблице Экзамен.

)        SELECT TOP 1 Наименование FROM Предмет WHERE КодПредметаIN(SELECT COUNT(*) as Оценка FROM Экзамен WHERE Оценка=2 GROUP BY КодПредмета ORDER BY 1 DESC) - сложный запрос на выборку. TOP 1 - означает, что будет выводиться только первый по значению. GROUPBYКодПредмета - означает что данные группируются по заданному полю. ORDERBY 1 DESC- задаёт, что упорядочивание происходит по 1 столбцу в порядке убывания. Таким образом, вложенный запрос подсчитывает количество Оценок равных 2, затем получает два результата 2 (Математика), 1(Физика). Сортирует их в порядке убывания. Затем передаёт в основной запрос, который выводит только самый верхний, т.е. максимальный.

)        SELECT Наименование FROM Предмет WHERE КодПредметаIN(SELECT КодПредмета FROM Экзамен WHERE НомерЗачетки IN(SELECT НомерЗачетки FROM Студент WHERE Группа='''+group+''')) - сложный запрос, использующий две вложенности. Сначала выбирается НомераЗачётки из таблицы Студенты, в соответствии с прописанной группой, далее номера передаются и просматривается каким Экзаменам соотвествуют данные номера в таблице Экзамен и наконец в Таблице КодПредмета выводятся предметы.

)        SELECT ДомашнийАдрес FROM Студент WHERE НомерЗачёткиIN(SELECT НомерЗачётки FROM Экзамен WHERE Оценка=5 andКодПредмета='+IntToStr(pred)+') - сложный запрос использующий вложенность. Изначально вложенный запрос выбирает такие НомераЗачётки в таблице Экзамен, у которых Оценка по определённому предмету 5. Затем данные передаются и из таблицы Студент находится их ДомашнийАдрес.

Компоненты и процедуры разработанной программы


. Документация пользователя

Установка соединения БД с клиентским приложением происходит с помощью компонента ADOConnection, в котором в режиме обозревателя задаётся необходимая строка соединения. Если бы у нас было многооконное приложение, то был бы смысл в отключении и подключении БД динамически, но так как у нас всего одно окно, это не имеет большого значения.

Рисунок 16 - Свойство канала

Для соеденения использовался провайдер MicrosoftJet 4.0 OLEDBProvider и технология ADO. Строка соединения связанна с другими компонентами связи - ADOQuery, DataSourseи DBGrid.

Рисунок 17 - Тестовые данные таблицы «Студент»

Рисунок 18 - Тестовые данные таблицы «Экзамен»

Рисунок 19 - Тестовые данные таблицы «Предмет»

8. Интерфейс приложения


Интерфейс приложения состоит из следующих компонентов:

DBGrid - необходимый для отображения Базы Данных;- содержащий строку подключения с БД;

ADOQuery - содержащий запросы SQL;

компонента Memo - служащие для вывода текста запроса и объяснения, что он должен делать;

компонентовLabel - для вывода на экран пояснительных надписей;

компонента Edit - для ввода данных новых переменных;

Рисунок 20 - Интерфейс приложения

9. Результаты работы приложения


Таблицы Отображение таблицы «Студент»

Рисунок 21 - таблица «Студент»

Отображение таблицы «Экзамен»

Рисунок 22 - таблица «Экзамен»

Отображение таблицы «Предмет»

Рисунок 23 - таблица «Предмет»

 

Запросы

Запрос 1- получите данные о студентах указанной группы;

Рисунок 24 - ответ на запрос 1

Запрос 2 - получите данные о студентах, сдавших экзамен после указанной даты;

Рисунок 25 - ответ на запрос 2

Запрос 3 - получите данные о студенте по номеру его зачетки;

Рисунок 26 - ответ на запрос 3

Запрос 4 - получите данные о количестве студентов, сдававших экзамены по предметам;

Рисунок 27 - ответ на запрос 4

Запрос 5 - получите сведения о количестве студентов, получивших положительные оценки;

Рисунок 28 - ответ на запрос 5

Запрос 6 - получите название предмета, по которому поставлено наибольшее количество двоек;

Рисунок 29 - ответ на запрос 6

Запрос 7 - получите данные о предметах, которые сдавали студенты заданной группы;

Рисунок 30 - ответ на запрос 7

Запрос 8 - получите домашние адреса студентов, сдавших на «отлично» указанный предмет;

Рисунок 31 - ответ на запрос 8

Заключение


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

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

)        Практически применены различные методы проектирования информационных систем;

2)      Были выработаны навыки работы с базами данных;

)        Усвоены приёмы работы с СУБД Access и языком SQL;

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

Вдобавок к этому, были получены навыки по использованию технологии соединения с базами данных - ADO.

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

 

Приложение 1

 

Листинг процедуры создания формы


Приложение 2

Листинг SQL-запросов

Похожие работы на - Учет успеваемости студентов

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!