Бакалавр
Дипломные и курсовые на заказ

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Рисунок 14 — Cвязующая таблица Физическая модель данных — это конкретные места хранения данных в конкретной СУБД. Модель зависит от конкретной СУБД. Объектами физической модели являются таблицы и поля с типами данных, определенными для выбранной СУБД. Объекты именуются в соответствии с правилами СУБД. Одной логической модели данных может соответствовать несколько физических моделей. Рисунок 13… Читать ещё >

Учет успеваемости студентов (реферат, курсовая, диплом, контрольная)

Министерство образования и науки РФ Пермский национальный исследовательский политехнический университет Электротехнический факультет Кафедра ИТАС

Курсовая работа по базам данных

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

Выполнил

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

Пермь 2015

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

НАЧАЛО

1 ОЧИСТИТЬ. SQL;

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

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

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

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

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

КОНЕЦ

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

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

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

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

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

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

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

Код, выполняющийся при создании формы Код для вывода таблицы из Базы Данных и форматирования таблицы DBGrid

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

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

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

2) 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, в таблице Экзамен.

6) 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(Физика). Сортирует их в порядке убывания. Затем передаёт в основной запрос, который выводит только самый верхний, т. е. максимальный.

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

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

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

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

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

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

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

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

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

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

DBGrid — необходимый для отображения Базы Данных;

ADOConnection — содержащий строку подключения с БД;

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

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

2 компонента ComboBox — необходимых для выбора запросов или таблиц;

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

4 компонента 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 и в конструкторе запросов, были сделаны отчёты по запросам, созданы таблицы и заполнены тестовыми данными, формы просмотра, редактирования и ввода данных.

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

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

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

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

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

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

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

Приложение 1

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

Приложение 2

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

.ur

Показать весь текст
Заполнить форму текущей работой