Автор: Пользователь скрыл имя, 06 Января 2013 в 02:16, курсовая работа
Во многих областях человеческой деятельности используются базы данных. В общем смысле термин «база данных» (БД) можно применить к любой совокупности связанной информации, объединенной вместе по определенному признаку, т.е. к набору структурированных данных (организованных определенным образом). При этом большинство БД использует таб-личный способ представления, где данные располагаются по строкам (которые называются за-писями) и столбцам (которые называются полями), все записи должны состоять из одинаковых полей и все данные одного поля должны иметь один тип.
Введение 3
1. Области применения файлов. 4
2. Постановка задачи на разработку базы данных 6
2.1 Анализ предметной области 6
2.2 Требования к информационной системе 6
3. Проектирование модели данных 7
3.1 Семантическая модель данных 7
3.2 Логическая модель данных 9
3.3 Определение физических характеристик атрибутов 10
4. Реализация системы 12
4.1 Создание, связывание и заполнение таблиц 12
4.2 Реализация запросов к базе данных 14
4.3 Создание отчетов 20
4.4 Создание форм 20
Заключение 23
Список использованных источников 24
Приложение А 25
Приложение Б 26
Рисунок 4 Параметры связи
Разработанная схема данных приведена в приложении А.
Теперь заполняем таблицы «Дисциплины», «Группы» и «Преподаватели» данными, открыв их в режиме ввода данных. После заполнения таблицы «Группы» можно заполнять таблицу «Студенты», для которой поле «Номер группы» является обязательным. Там, где использовался «Мастер подстановок», выбираем значения из списка. Заполненные таблицы изображены на рисунке 5. Таблицы «Экзамены» и «Оценки» заполнены через специально разработанные экранные формы (см.раздел 4.3) и приведены на рисунке 6.
Рисунок 5 Заполненные таблицы «Дисциплины», «Группы», «Преподаватели» и «Студенты»
Рисунок 6 Заполненные таблицы «Экзамены» и «Оценки»
После создания таблиц разрабатываем запросы, которые будут использоваться пользователями базы данных.
Создаем запрос «Все результаты», который будет отбирать все оценки, полученные студентами на экзаменах (используется для формирования отчета «Результаты экзаменов»). Запрос разрабатываем в следующем порядке:
Переключаемся в режим SQL и просматриваем текст запроса:
SELECT Экзамены.[Номер
экзамена], Экзамены.Дата, Экзамены.[Номер
группы], Дисциплины.[Наименование
FROM Студенты INNER JOIN ((Дисциплины INNER JOIN (Группы INNER JOIN Экзамены ON Группы.[Номер группы] = Экзамены.[Номер группы]) ON Дисциплины.[Код дисциплины] = Экзамены.[Код дисциплины]) INNER JOIN Оценки
ON Экзамены.[Номер экзамена] = Оценки.[Номер экзамена]) ON Студенты.[Номер зачетки] = Оценки.[Номер зачетки];
Результат выполнения этого запроса изображен на рисунке 8.
Рисунок 7 Запрос «Все результаты» ( режим Конструктор)
Рисунок 8 Запрос «Все результаты» (выполнение)
Создаем запрос «Все сдающие», который будет отбирать все возможные комбинации «Группа – Номер зачетки – Код дисциплины)» для тех экзаменов, дата которых уже прошла (используется для формирования отчета «Должники»). Для этого запроса выбираем таблицы «Группы», «Студенты» «Экзамены» и «Дисциплины»; выбираем поля таблиц, которые должны попасть в отчет (см.рис.9). Для отбора только по прошедшим экзаменам для поля «Дата» таблицы «Экзамены» устанавливаем условие отбора « < Now() ». Сортировку данных выполняем по полям «Номер группы» (таблица «Группы») и «ФИО» (таблица «Студенты»).
Рисунок 9 Запрос «Все сдающие» ( режим Конструктор)
Переключаемся в режим SQL и просматриваем текст запроса:
SELECT Группы.[Номер группы],
Дисциплины.[Наименование дисци
FROM Дисциплины INNER JOIN ((Группы INNER JOIN Экзамены ON Группы.[Номер группы] = Экзамены.[Номер группы]) INNER JOIN Студенты ON Группы.[Номер группы] = Студенты.[Номер группы]) ON Дисциплины.[Код дисциплины] = Экзамены.[Код дисциплины]
WHERE (((Экзамены.Дата)<Now()))
ORDER BY Группы.[Номер группы], Студенты.ФИО;
Результат выполнения этого запроса изображен на рисунке 10.
Рисунок 10 Запрос «Все сдающие» (выполнение)
Далее создаем запрос «Должники», который будет отбирать тех студентов, у которых отсутствуют оценки на экзаменах, которые были запланированы для их групп и дата которых уже прошла. Для формирования этого запроса выбираем ранее созданный запрос «Все Сдающие» и таблицу «Оценки»; выбираем поля таблиц, которые должны попасть в отчет (см.рис.11). Устанавливаем связи между запросом и таблицей по полям «Номер экзамена» «Номер зачетки», при этом параметры объединения устанавливаем как показано на рисунке 12. Для отбора только тех записей из таблицы «Все Сдающие», для которых отсутствуют связанные записи в таблице «Оценки», для поля «Балл» устанавливаем условие отбора «Is Null». Сортировку данных выполняем по полям «Номер группы» и «Наименование дисциплины».
Рисунок 11 Запрос «Должники» ( режим Конструктор)
Результат выполнения этого запроса изображен на рисунке 13.
Рисунок 12 Параметры объединения
Рисунок 13 Запрос «Должники» выполнение)
Далее создаем перекрестный запрос «ГруппаДисциплинаСреднийБалл», который будет показывать успеваемость по группам в разрезе дисциплин. Для формирования этого запроса выбираем таблицы «Экзамены», «Оценки» и «Дисциплины»; выбираем поля таблиц, которые должны попасть в отчет (см.рис.14). Кнопкой главного меню устанавливаем тип запроса – Перекрестный. В появившейся строке «Перекрестная таблица» для поля «Номер группы» указываем «Заголовки строк», для поля «Наименование дисциплины» указываем «Заголовки столбцов», для поля «Балл» указываем «Значение». В строке групповых операций для поля «Балл» указываем «Avg» (среднее значение).
Рисунок 14 Перекрестный запрос ( режим Конструктор)
В режиме SQL данный запрос выглядит следующим образом:
TRANSFORM Avg(Оценки.Балл) AS [Avg-Оценка]
SELECT Экзамены.[Номер группы]
FROM (Дисциплины INNER JOIN Экзамены ON Дисциплины.[Код дисциплины] = Экзамены.[Код дисциплины]) INNER JOIN Оценки ON Экзамены.[Номер экзамена] = Оценки.[Номер экзамена]
GROUP BY Экзамены.[Номер группы] PIVOT Дисциплины.[Наименование дисциплины];
Результат выполнения перекрестного запроса отображен на рисунке 15.
Рисунок 15 Перекрестный запрос ( выполнение)
Далее создаем запрос «Средний балл по группе», который будет показывать среднюю успеваемость по группам. Для формирования этого запроса выбираем таблицы «Студенты» и «Оценки»; выбираем поля таблиц, которые должны попасть в отчет (см.рис.16). В контекстном меню выбираем пункт «Групповые операции» и в появившейся строке групповых операций для поля «Номер группы» указываем «Группировка», а для поля «Балл» указываем «Avg» (среднее значение). Для поля «Номер группы» в строке Условие отбора указываем [Введите номер группы], теперь при запуске отчета номер группы будет запрашиваться у пользователя в диалоговом окне.
Рисунок 16 Запрос «Средний балл по группе» ( режим Конструктор)
В режиме SQL данный запрос выглядит следующим образом:
SELECT Студенты.[Номер группы], Avg(Оценки.Балл) AS [Средний балл]
FROM Студенты INNER JOIN Оценки ON Студенты.[Номер зачетки] = Оценки.[Номер зачетки]
GROUP BY Студенты.[Номер группы]
HAVING (((Студенты.[Номер группы])=[Введите номер группы]));
Результат выполнения данного запроса отображен на рисунке 17.
Рисунок 17 Запрос «Средний балл по группе» ( выполнение)
Далее создаем запрос «Средний балл студента», который будет показывать среднюю успеваемость конкретного студента. Для формирования этого запроса выбираем таблицы «Студенты» и «Оценки»; выбираем поля таблиц, которые должны попасть в отчет (см.рис.18). В контекстном меню выбираем пункт «Групповые операции» и в появившейся строке групповых операций для поля «Балл» указываем «Avg» (среднее значение). Для поля «Номер зачетки» в строке Условие отбора указываем [Введите номер зачетки], теперь при запуске отчета номер зачетной книжки студента будет запрашиваться у пользователя в диалоговом окне.
Рисунок 18 Запрос «Средний балл по группе» ( режим Конструктор)
В режиме SQL данный запрос выглядит следующим образом:
SELECT Студенты.[Номер зачетки], Студенты.ФИО, Студенты.[Номер группы], Avg(Оценки.Балл) AS [Средний балл]
FROM Студенты INNER JOIN Оценки ON Студенты.[Номер зачетки] = Оценки.[Номер зачетки]
GROUP BY Студенты.[Номер зачетки], Студенты.ФИО, Студенты.[Номер группы]
HAVING (((Студенты.[Номер зачетки])=[Введите номер зачетки]));
Результат выполнения данного запроса для номера зачетки 1501 отображен на рисунке 19.
Рисунок 19 Запрос «Средний балл по группе» ( выполнение)
Далее создаем запрос «Экзамены подробно», который будет показывать полную информацию об экзаменах (будет использоваться при создании формы). Для формирования этого запроса выбираем таблицы «Экзамены», «Дисциплины» и «Преподаватели»; выбираем поля таблиц, которые должны попасть в отчет (см.рис.20).
Рисунок 20 Запрос «Экзамены подробно» ( режим Конструктор)
В режиме SQL данный запрос выглядит следующим образом:
SELECT Экзамены.[Номер экзамена], Экзамены.Дата, Дисциплины. [Наименование дисциплины], Экзамены.[Номер группы], Преподаватели.ФИО, Преподаватели.Должность, Преподаватели.[Ученая степень]
FROM Преподаватели
INNER JOIN (Дисциплины INNER JOIN Экзамены ON Дисциплины.[Код
дисциплины] = Экзамены.[Код дисциплины])
ON Преподаватели.[Код
Результат выполнения данного запроса отображен на рисунке 21.
Рисунок 21 Запрос «Экзамены подробно» ( выполнение)
После создания запросов разрабатываем отчет, который будет использоваться пользователями базы данных для вывода результатов экзаменов. Отчет разрабатываем в следующем порядке:
Созданный отчет корректируем в режиме конструктора (меняем текст заголовка, перемещаем поля). Результат выполнения отчета приведен в приложении Б.
Теперь разрабатываем формы, которые будут использоваться для ввода данных в базу.
Создаем форму «Расписание экзаменов», при помощи которой представители администрации будут вводить расписание экзаменов. Форму разрабатываем в следующем порядке:
Созданную форму корректируем в режиме конструктора (поля «Наименование дисциплины», «ФИО» и «Должность» делаем недоступными: устанавливаем их свойство «Доступ» в «НЕТ»). Вид формы в режиме конструктора приведен на рисунке 22, в режиме ввода данных – на рисунке 23.
Рисунок 22 Форма «Расписание экзаменов» ( режим Конструктор)
Рисунок 23 Форма «Расписание экзаменов» ( режим ввода данных)
Создаем форму «Принять экзамен», при помощи которой экзаменатор будут вводить результаты сдачи экзаменов в базу. Форму разрабатываем в следующем порядке:
Созданную главную форму изменяем в режиме конструктора (поля на основной форме делаем недоступными: устанавливаем их свойство «Доступ» в «НЕТ»). При помощи панели инструментов добавляем на нее две кнопки. Для первой кнопки назначаем действие «Найти запись» (в категории «Переходы по записям»). Для второй кнопок назначаем действие «Закрыть форму» (в категории «Работа с формой»).
Информация о работе Области применения файлов. Предметная область - экзамены