Страницы

вторник, 1 октября 2013 г.

Простая бд Access - Сессия

Задание База данных «Сессия» MS Access (8 вариант).

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

Запросы на выборку:
  1. Успеваемость студентов по математике.
  2. Студенты, получившие по физике оценку «4» или «5».
  3. Успеваемость студента А. П. Иванова по математике и физике.
Запрос с вычисляемым полем
Индивидуальный код студента, представляющий собой сумму шифра студента и шифра дисциплины (таблица «Сессия»). (???? По заданию такой таблицы нет, возможно имеется в виду таблица "Оценки").

Групповой запрос:
Количество оценок «5» по каждой дисциплине (таблица «Дисциплина») (???? По заданию такой таблицы нет, возможно имеется в виду таблица "Оценки" или "Кафедры и дисциплины").

Запрос с параметром:
Успеваемость по всем дисциплинам студента N

Отчет по успеваемости, сгруппированный по наименованиям дисциплин, сортировка по ФИО студента.

Подробное описание, как можно выполнить такое задание, приведено в нулевом и первом вариантах.
Составляем таблицы и логическую схему, описываем типы данных и другие параметры полей данных (все, как сказано в методичке).
Запускаем СУБД MS Access и начинаем составлять таблицы. Потом устанавливаем связи.
Схема базы данных в MS Access.


Итак, имеется несколько кафедр. На каждой кафедре работают несколько преподавателей. Также кафедра ведет несколько дисциплин. Если это база данных масштаба целого ВУЗа, то одинаковые дисциплины могут преподаваться на разных кафедрах (например, информатика). Если масштаб одной учебной группы, то каждая дисциплина относится к одной кафедре. И в этом случае «Шифр дисциплины» можно сделать ключевым полем таблицы «Кафедры и дисциплины». Но, поскольку мы не знаем точно, что имеется в виду, то будем делать общий случай – в таблице «Кафедры и дисциплины» могут несколько раз встречаться  одна и та же кафедра и одна и та же дисциплина. И эта таблица у нас остается без ключевого поля, отдельный код мы не будем придумывать, тем более, что выполнению задания это никак не помешает. 
Таким образом получается два справочника – «Преподаватели» и «Студенты», таблица соответствия кафедр и дисциплин, таблица, которая содержит информацию об оценках. Таблица «Оценки» является подчиненной по отношению к таблицам «Преподаватели» и «Студенты» (видно на схеме, по каким полям), связь – один-ко-многим.
Переходим к запросам.
Первый запрос на выборку:


Второй запрос на выборку


Третий запрос на выборку


Запрос с вычисляемым полем


Здесь в вычисляемом поле  нужно написать результат сложения шифра студента и шифра дисциплины. Можно сложить значения числового типа (если тип поля выбран числовой), но тогда это поле может быть неуникальным. Лучше преобразовать данные в текст с помощью функции языка VBA CStr.

Групповой запрос


Запрос с параметром


Делаем отчет. Многотабличный запрос


Отчет в режиме конструктора:


Итоги в отчете не рассчитываются.