Содержание
Введение 3
1 Постановка задачи 4
2 Анализ задания 5
3 Формирование отношений базы данных 7
4 Разработка алгоритмов реализации запросов 9
5 Реализация запросов 11
Заключение 13
Список использованных источников 14
Введение
В настоящее время в разных сферах деятельности все более нуждаются в средствах, позволяющих быстро и безошибочно перерабатывать большое количество информации. Применение таких средств позволяет существенно снизить затраты и повысить эффективность работы. Например, в каждом учебном заведение большой поток данных (абитуриенты, студенты, преподаватели, данные об успеваемости и т.п.) и чтобы снизить время обработки информации и облегчить работу сотрудникам заведений создается информационная система, которая может это позволить.
В данной работе разрабатывается реляционная база данных для контроля учебного процесса в высшем учебном заведении. Задачей контроля будет хранение данных о студентах, преподавателях, дисциплинах и успеваемости, а также выявление неуспевающих студентов и определение эффективности работы преподавателей.
План работ.
1. Создать базу данных.
2. Заполнить базу данных, в соответствии с реалиями РГАТУ.
3. Написать 3 запроса для данной базы данных.
1 Постановка задачи
Необходимо сформировать реляционную базу данных «ВУЗ», которая задается следующими отношениями:
- “Дисциплины” (Номер дисциплины, Наименование дисциплины, Статус дисциплины, Вид занятий, Количество часов по видам занятий);
- “Преподаватели” (Табельный номер преподавателя, ФИО преподавателя, Должность, Ученая степень, Стаж работы);
- “Студенты” (Номер студента, ФИО, Курс, Группа, Факультет, Рост, Вес);
- “Итоги” (Номер студента, Номер дисциплины, Табельный номер преподавателя, Оценка).
При заполнении таблиц следует учесть следующие требования:
- кардинальное число записей в таблице «Дисциплины» — 10;
- кардинальное число записей в таблице «Преподаватели» — 14;
- кардинальное число записей в таблице «Итоги» — 42;
- кардинальное число записей в таблице «Студенты» — 30;
- должно быть не менее 5-ти студентов с каждого курса.
Реализовать на основе базы данных следующие запросы:
- найти ФИО преподавателей, по дисциплинам которых средний балл выше 4;
- найти дисциплины, лекции по которым читают кандидаты наук ;
- найти студентов, которые не успевают по дисциплинам, имеющим статус «по выбору».
2 Анализ задания
Из задания следует, что нужно создать реляционную базу данных и реализовать запросы. Для этого нужно использовать систему управления базами данных (СУБД) и язык SQL.
СУБД — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных. В качестве СУБД выберем Microsoft Access.
Microsoft Access — реляционная СУБД корпорации Microsoft. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных. Преимущества Access.
1. Расположения всех объектов, которыми оперирует Access в одном файле. Это позволяет без труда переносить программу на другие ПК.
2. Наличие возможности управления объектами Access через высокоуровневый, стандартный для пакета Office, язык программирования VBA.
3. Возможность создания в таблицах таких полей как Счетчик и OLE.
4. Возможность организации ссылочной целостности через удобный интерфейс — СХЕМА БД.
5. Наличие мастеров для создания тех или иных операций с программой;
6. Макросы.
7. Обработка на клиенте при определенных условиях только индексов и возврат с файл сервера данных по отобранным индексам.
8. Удобный визуальный редактор запросов (редактор запросов по образцу).
9. Наличие возможности программного управления транзакциями для поддержки целостности БД.
10. Наличие довольно неплохого оптимизатора запросов.
11. Проекты ACCESS — один из лучших сред для разработки клиентской части к MS SQL Server.
12. Работа с ODBC, возможность интерактивной разработки запросов для различных СУБД.
13. Наличие RunTime версии.
14. Возможность защиты кода паролем и «компиляция» в mde/ade формат для распространения среди конечных пользователей.
Недостатки Access.
1. Расположения всех объектов, которыми оперирует Access в одном файле. Больше актуально для разработчиков многопользовательских вариантов программ, так как приходится затрачивать дополнительные усилия для удобства разработки.
2. Трудности в разработке «нестандартного» GUI.
3. Склонность к разрушению БД при сетевых сбоях или локальном сбое железа.
4. Низкая производительность при большом кол-ве пользователей при работе в классической ФС архитектуре.
5. Неудобный редактор запросов интерактивного SQL.
6. Нестрогая совместимость версий Access при разработке проектов с разными версиями MS SQL Server.
7. Различие оформления инструкций запросов/функций в режимах конструкторов.
3 Формирование отношений базы данных
Помимо хранения непосредственно данных, то есть свойств объектов предметной области, одной из задач базы данных является поддержка структуры информации – сведений о том, в каких отношениях находятся записи между собой.
Кроме поддержки структуры информации, должен быть некоторый механизм, позволяющий идентифицировать записи, то есть отличать их друг от друга. Таким механизмом являются первичные ключи – подмножества полей таблиц, однозначно определяющие записи. Таким образом, если набор полей таблицы является первичным ключом, то две разные записи не могут иметь одинаковые значения по этим полям.
Второе назначение первичного ключа – поддержка связей между записями разных таблиц. Так как первичный ключ однозначно идентифицирует запись в таблице, то аналогичный набор полей, называемый внешним ключом, можно использовать и для ссылки на эту запись из другой таблицы.
Схема отношений и типы атрибутов в базе данных показаны на рисунке 3.1
Рисунок 3.1 – Схема базы данных
Поля «Номер студента», «Номер преподавателя» и «Номер дисциплины» в таблице «Итоги» являются внешними ключами и ссылаются на первичные ключи в таблицах «Студенты», «Преподаватели» и «Дисциплины» соответственно.
Для поддержания ссылочной целостности для таблиц вводятся следующие ограничения:
– обновление первичного ключа в любой из таблиц вызовет каскадное
– обновление значения соответствующего внешнего ключа в таблице «Итоги»;
– удаление первичного ключа в любой из таблиц сформирует ошибку и вызовет откат операции удаления.
4 Разработка алгоритмов реализации запросов
Запрос 1.
Найти Фамилию Имя Отчество преподавателей, по дисциплинам которых средний балл выше 4.
Алгоритм реализации запроса 1 будет выглядеть следующим образом.
1. Из отношения «Преподаватели» выбирается атрибут «ФИО преподавателя».
2. Из отношения «Дисциплины» выбирается атрибут «Наименование дисциплины».
3. Из отношения «Итоги» выбирается атрибут «Оценка».
4. Выполняется связка по ключу таблиц «Дисциплины» и «Преподаватели» с таблицей «Итоги».
5. Группируются данные для расчета средней оценки для каждого преподавателя и по каждой дисциплине.
6. Выбираются записи со средней оценкой больше 4.
Запрос 2.
Найти дисциплины, лекции по которым читают кандидаты наук Алгоритм реализации запроса 2 будет выглядеть следующим образом.
1. Из отношения «Дисциплина» выбираются атрибуты «Наименование дисциплины».
2. Из отношения «Преподаватели» выбирается атрибут «ФИО преподавателя» и «Ученая степень» .
3. Выполняется связка по ключу таблиц «Дисциплина» и «Преподаватели».
4. Выбираются записи из таблицы «Преподаватели», где значение атрибута «Ученая степень» равно «кандидат наук».
5. Выбираются записи из таблицы «Дисциплина», где значение атрибута «Наименование дисциплины» равно ‘лекции’.
Запрос 3.
Найти студентов, которые не успевают по дисциплинам, имеющим статус «по выбору».
Алгоритм реализации запроса 3 будет выглядеть следующим образом.
1. Из отношения «Студенты» выбираются атрибуты «ФИО студента».
2. Из отношения «Итого» выбираются атрибуты «Оценка».
3. Из отношения «Дисциплина» выбирается атрибут «Наименование дисциплины».
4. Выполняется связка по ключу таблиц «Итоги» и «Студенты», «Дисциплина».
5. Выбираются записи из таблицы «Итоги», где значение атрибута «Оценка» меньше тройки.
6. Выбираются записи из таблицы «Дисциплины», где значение атрибута «Статус дисциплины» равно «По выбору».
7. Группируются данные для подсчета количества двоек для каждого студента.
5 Реализация запросов
SQL — формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД).
Далее приведены тексты запросов на языке SQL.
Запрос 1.
SELECT Prepodavatel.fio, Disiplina.name_disp, Avg(Itogo.osenka) AS [Avg-osenka]
FROM Prepodavatel INNER JOIN (Disiplina INNER JOIN Itogo ON Disiplina.number_disp = Itogo.number_disp) ON Prepodavatel.tab_number = Itogo.tab_number
GROUP BY Prepodavatel.fio, Disiplina.name_disp
HAVING (((Avg(Itogo.osenka))>4));
Результат выполнения запроса 1 показан на рисунке 5.1
Рисунок 5.1 – Результат выполнения запроса 1
Запрос 2.
SELECT Disiplina.name_disp, Prepodavatel.fio, Prepodavatel.uch_stepen
FROM Prepodavatel INNER JOIN (Disiplina INNER JOIN Itogo ON Disiplina.number_disp = Itogo.number_disp) ON Prepodavatel.tab_number = Itogo.tab_number
GROUP BY Disiplina.name_disp, Prepodavatel.fio, Prepodavatel.uch_stepen, Disiplina.vid_zan
HAVING (((Prepodavatel.uch_stepen)=»кандидатнаук») AND ((Disiplina.vid_zan)=»лекции»));
Результат выполнения запроса 2 показан на рисунке 5.2
Рисунок 5.2 – Результат выполнения запроса 2
Запрос 3.
SELECT student.fio_stud, Disiplina.name_disp, Disiplina.stat_disp, Itogo.osenka
FROM student INNER JOIN (Disiplina INNER JOIN Itogo ON Disiplina.number_disp = Itogo.number_disp) ON student.number_stud = Itogo.number_stud
GROUP BY student.fio_stud, Disiplina.name_disp, Disiplina.stat_disp, Itogo.osenka
HAVING (((Disiplina.stat_disp)=»повыбору») AND ((Itogo.osenka)<3));
Результат выполнения запроса 3 показан на рисунке 5.3
Рисунок 5.3 – Результат выполнения запроса 3
Заключение
В ходе выполнения курсовой работы была разработана реляционная база данных, которая позволяет хранить и использовать данные о преподавателях, студентах, дисциплинах и итогах обучения в учебных заведениях.
В данном документе кратко описаны используемые средства для создания базы данных и написания запросов. Кратко рассмотрен этап формирования отношений базы данных. Подробно изложены алгоритмы запросов и показаны результаты их выполнения.
Список использованных источников
1. Тонкий Л. В. «Разработка баз данных», – Рыбинск: РГАТА, 2007. – 48с.
2. Дейт К. Дж. «Введение в системы баз данных», – Издательский Дом «Вильяме», 2005. – 1328с.