Области применения файлов. Предметная область - экзамены

Автор: Пользователь скрыл имя, 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

Файлы: 1 файл

Документ1.doc

— 1.68 Мб (Скачать)
  • Поле «Код дисциплины» таблицы «Дисциплины» (первичный ключ) связываем с полем «Код дисциплины» таблицы «Экзамены» (внешний ключ). Образуется связь типа «Один-ко-многим». В свойствах этой связи (см.рис.4) включаем параметр «Обеспечение целостности данных»;

Рисунок 4  Параметры связи

  • Поле «Код преподавателя» таблицы «Преподаватели» (первичный ключ) связываем с полем «Код преподавателя» таблицы «Экзамены» (внешний ключ). Образуется связь типа «Один-ко-многим». В свойствах этой связи включаем параметр «Обеспечение целостности данных»;
  • Поле «Код группы» таблицы «Группы» (первичный ключ) связываем с полем «Код группы» таблицы «Экзамены» (внешний ключ). Образуется связь типа «Один-ко-многим». В свойствах этой связи включаем параметр «Обеспечение целостности данных»;
  • Поле «Код группы» таблицы «Группы» (первичный ключ) связываем с полем «Код группы» таблицы «Студенты» (внешний ключ). Образуется связь типа «Один-ко-многим». В свойствах этой связи включаем параметр «Обеспечение целостности данных»;
  • Поле «Номер зачетки» таблицы «Студенты» (первичный ключ) связываем с полем «Номер зачетки» таблицы «Оценки» (внешний ключ). Образуется связь типа «Один-ко-многим». В свойствах этой связи включаем параметр «Обеспечение целостности данных»;
  • Поле «Номер экзамена» таблицы «Экзамены» (первичный ключ) связываем с полем «Номер экзамена» таблицы «Оценки» (внешний ключ). Образуется связь типа «Один-ко-многим». В свойствах этой связи включаем параметр «Обеспечение целостности данных».

Разработанная схема данных приведена  в приложении А.

Теперь заполняем таблицы «Дисциплины», «Группы» и «Преподаватели» данными, открыв их в режиме ввода данных. После заполнения таблицы «Группы» можно заполнять таблицу «Студенты», для которой поле «Номер группы» является обязательным. Там, где использовался «Мастер подстановок», выбираем значения из списка. Заполненные таблицы изображены на рисунке 5. Таблицы «Экзамены» и «Оценки» заполнены через специально разработанные экранные формы (см.раздел 4.3) и приведены на рисунке 6.

Рисунок 5 Заполненные таблицы «Дисциплины», «Группы», «Преподаватели» и «Студенты»

Рисунок 6 Заполненные таблицы «Экзамены» и «Оценки»

4.2 Реализация запросов  к базе данных

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

Создаем запрос «Все результаты», который будет отбирать все оценки, полученные студентами на экзаменах (используется для формирования отчета «Результаты экзаменов»). Запрос разрабатываем в следующем порядке:

  • выбираем команду «Создание запроса в режиме конструктора»;
  • выбираем таблицы «Экзамены», «Группы», «Дисциплины», «Студенты» и «Оценки» для формирования запроса;
  • в конструкторе выбираем поля таблиц, которые должны попасть в отчет (см.рис.7).

Переключаемся в режим 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  Запрос «Экзамены подробно» ( выполнение)

4.3 Создание отчетов

После создания запросов разрабатываем  отчет, который будет использоваться пользователями базы данных для вывода результатов экзаменов. Отчет разрабатываем в следующем порядке:

  • выбираем команду «Создание отчета с помощью мастера»;
  • на первом шаге мастера выбираем все поля из запроса «Экзамены подробно», поля «Номер зачетки» и «Балл» из таблицы «Оценки», а также поля «ФИО» и «Группа» из таблицы «Студенты»;
  • на следующих шагах мастера подтверждаем вид представления данных и уровень группировки;
  • далее добавляем сортировку по фамилии студента;
  • далее выбираем вид макета «По левому краю 1»;
  • далее выбираем вид макета «По левому краю 1»;
  • далее подтверждаем стиль макета «Сжатый»;
  • вводим имя отчета «Результаты экзаменов» и сохраняем его.

 

Созданный отчет корректируем в режиме конструктора (меняем текст заголовка, перемещаем поля). Результат выполнения отчета приведен в приложении Б.

4.4 Создание форм

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

Создаем форму «Расписание экзаменов», при помощи которой представители администрации будут вводить расписание экзаменов. Форму разрабатываем в следующем порядке:

  • выбираем команду «Создание формы при помощи мастера»;
  • на первом шаге мастера выбираем таблицы «Экзамены» (все поля), «Дисциплины» (поле «Наименование дисциплины»), «Преподаватели» (поля «ФИО» и «Должность»);
  • на следующем шаге мастера подтверждаем внешний вид формы «В один столбец»;
  • далее подтверждаем стиль формы «Стандартный»;
  • далее вводим имя формы «Расписание экзаменов» и сохраняем ее.

Созданную форму корректируем в режиме конструктора (поля «Наименование дисциплины», «ФИО» и «Должность» делаем недоступными: устанавливаем их свойство «Доступ» в «НЕТ»). Вид формы в режиме конструктора приведен на рисунке 22, в режиме ввода данных – на рисунке 23.

Рисунок 22 Форма «Расписание экзаменов» ( режим Конструктор)

Рисунок 23 Форма «Расписание экзаменов» ( режим ввода данных)

 

Создаем форму «Принять экзамен», при помощи которой экзаменатор будут вводить результаты сдачи экзаменов в базу. Форму разрабатываем в следующем порядке:

  • выбираем команду «Создание формы при помощи мастера»;
  • на первом шаге мастера выбираем запрос «Экзамены подробно» (все поля), таблицу «Оценки» (поля «Номер зачетки» и «Балл»), таблицу «Студенты» (поля «ФИО» и «Группа»);
  • на следующем шаге мастера подтверждаем вид представления данных «Подчиненная форма»;
  • далее выбираем внешний вид подчиненной формы «Ленточный»;
  • далее подтверждаем стиль формы «Стандартный»;
  • далее вводим имя формы «Принять экзамен» и сохраняем ее.

Созданную главную форму изменяем в режиме конструктора (поля на основной форме делаем недоступными: устанавливаем их свойство «Доступ» в «НЕТ»). При помощи панели инструментов добавляем на нее две кнопки. Для первой кнопки назначаем действие «Найти запись» (в категории «Переходы по записям»). Для второй кнопок назначаем действие «Закрыть форму» (в категории «Работа с формой»).

Информация о работе Области применения файлов. Предметная область - экзамены