
3 Работа с субд
3.1 Процесс разработки таблиц входных данных
Основной единицей хранения данных в Access является таблица. Ее колонки называются полями (field), а строки, применительно к базам данных, называются записями (record). При конструировании базы данных должно соблюдаться правило: данные не должны повторяться. Это диктует необходимость размещения данных в разных таблицах.
Создать таблицу можно с помощью конструктора таблиц (Создание - Конструктор таблиц).
В открывшемся окне конструктора таблиц можно вводить имена полей новой таблицы или добавлять поля в уже созданную таблицу.
Существуют
различные типы данных: текстовый, поле
МЕМО, числовой, счетчик, денежный формат,
дата/время, поле ОLE,
логический формат.
Рисунок 3.1.1 – Заполнение полей таблицы «Абитуриенты»
Рисунок 3.1.2 – Заполнение полей таблицы «Результаты экзаменов»
Рисунок 3.1.3 – Заполнение полей таблицы «Потоки»
Рисунок 3.1.4 - Заполнение полей таблицы «Специальности»
Переходим в режим таблицы: Вид - Режим таблицы.
Заполняем таблицы
Рисунок 3.1.5 – Таблица данных «Специальности»
Рисунок 3.1.6 – Таблица данных «Абитуриенты»
Рисунок 3.1.7 – Таблица данных «Потоки»
Рисунок 3.1.8 – Таблица данных «Результаты экзаменов»
Связь между таблицами позволяет установить правила взаимодействия между таблицами. Различают три типа связей: один ко многим, многие ко многим и один к одному. В данной базе присутствуют связи один к одному и один ко многим
Переходим на закладку «Работа с базами данных» и нажимам на кнопку «Схема данных».
В открывшемся окне последовательно добавляем все четыре таблицы.
Создаем связь – Помещаем указатель на пункт «Код абитуриента» из таблицы «Абитуриенты», нажимаем левой кнопкой мыши и не отпуская ее, перетаскиваем в пункт «Код абитуриента» из таблицы «Результаты экзаменов».
В появившемся окне ставим флажок Обеспечение целостности данных. Этот режим не позволит Access оставлять в таблице «Абитуриенты» записи, для которых нельзя подобрать запись таблицы «Результаты экзаменов» с подходящим значением поля «Код абитуриента».
Установка флажка Каскадное удаление связанных записей приведет к тому, что при удалении записи таблицы «Абитуриенты» будут удалены все соответствующие записи таблицы «Результаты экзаменов». Если указанный флажок сброшен, удаление тех записей таблицы «Абитуриенты», на которые ссылается хотя бы одна запись таблицы «Результаты экзаменов», запрещено.
Установка флажка Каскадное обновление связанных полей приведет к тому, что при обновлении поля «Код абитуриента» таблицы «Абитуриенты» будут автоматически обновляться одноименные поля в соответствующих записях таблицы «Результаты экзаменов».
Нажимаем кнопку «Создать»
Аналогично связываем таблицы «Специальности» и «Потоки» с таблицей «Абитуриенты
».
Рисунок 3.1.9 - Схема данных
3.2 Процесс разработки запросов
Для отбора данных из таблиц в Access предусмотрено такое средство, как запросы. Их тоже можно представлять себе в виде таблиц, но таблицы эти виртуальные. В них используются или данные из обычных таблиц, или создаются вычисляемые поля. Запросы позволяют фильтровать записи и выполнять сортировку данных. В основе запроса лежит инструкция на языке SQL, но визуально Access представляет запрос именно в виде таблицы, что достаточно удобно.
Построение любого запроса начинается с составления простого запроса (запрос на выборку).
Я создала запросы с помощью конструктора запросов.
Переходим на закладку «Создание» и нажимаем кнопку «Конструктор запросов»
Добавляем три таблицы: «Абитуриенты», «Специальности», «Результаты экзаменов» и закрываем окно.
Из раскрывающегося списка выбираем таблицы и поля для отображения в запросе: из таблицы «Абитуриенты»: Фамилия, Код потока; из таблицы «Специальности»: Специальность; из таблицы «Результаты экзаменов»: Русский язык, Алгебра, Геометрия, Средний балл аттестата.
В колонке Код потока в поле Сортировка поставила по возрастанию.
В колонках Русский язык, Алгебра, Геометрия в поле Условие отбора задала условие >=3 т.к. абитуриенты, получившие на любом из экзаменов меньше 3 баллов не зачисляются. С помощью условия отбора данные будут проверяться на заданное условие и в этом запросе будут фамилии только тех студентов, которые не имеют ни одной оценки ниже 3.
Рисунок 3.2.1– Запрос «Поступившие» в режиме конструктор
Я создала запрос с вычислением, который будет вычислять средний балл поступивших.
Для этого я выбрала поле Фамилия из запроса: «Поступившие».
В одном из пустых столбцов вместо имени записывается формула:
Общий балл: [Русский язык]+[Алгебра]+[Геометрия]+[Средний балл аттестата]
Это удобнее сделать с помощью построителя выражений: сочетание клавиш Ctrl + F2, или с помощью диалогового окна Область ввода: Shift + F2.
Запрос сохраняем под названием «Общий балл поступивших».
Рисунок 3.2.2.– Запрос с вычислением.
Создадим итоговый запрос.
Итоговый запрос вычисляет обобщающие показатели на основе извлеченных данных. Чтобы вынудить Access выполнить какое-либо обобщающее вычисление нужно сгруппировать данные с помощью функции группировка.
Группировка данных происходит в режиме Конструктор нажатием на кнопку ∑. В нижней части окна построение запроса появится новая строка Групповые операции, а в зоне каждого поля автоматически будет установлено значение Группировка.
Итоговым запросом в моей базе является запрос «Количество сдающих в потоке». Для его создания я отобрала из таблицы «Потоки» поля: Код потока, Дата экзамена по русскому, Дата экзамена по алгебре, Дата экзамена по геометрии; из таблицы «Абитуриенты»: Фамилия. Групповую операцию для колонки Фамилия я выбрала Count (определяет количество записей поля). В поле условие отбора введем [Введите: Код потока]. Тогда при открытии запроса надо будет ввести Код потока.
Рисунок 3.2.3– Итоговый запрос
Создадим перекрестный запрос.
Перекрестный запрос – это операция построения таблицы для вычисления итоговых значений на основе существующей таблицы или запроса. Перекрестный запрос создается в предположении, что исходная таблица содержит необходимые данные для формирования заголовков строк и столбцов новой таблицы.
-
Из выбранных таблиц отберем поля, которые в новой таблице примут значения заголовков столбцов и строк. В этот же запрос отбирается поле значения, которое можно использовать в вычислениях.
-
Нажимаем кнопку «Перекрестный запрос»
-
В разделе Групповая операция выберем функцию напротив поля, значение которых будет вычисляться. В остальных полях оставим значение Группировка.
-
Чтобы значение поля появились в заголовке строк, в разделе Перекрестная таблица необходимо щелкнуть по строке и из раскрывшегося списка выбрать пункт Заголовки строк.
-
Если значение поля выбирается в качестве заголовка, то в разделе Перекрестная таблица следует выбрать пункт Заголовки столбцов.
-
Для поля, в котором выбрана функция вычисления, в разделе Перекрестная таблица выберем параметр Значение.
Добавила 3 таблицы: «Абитуриенты», «Поступившие», «Специальности». Из таблицы «Абитуриенты» выбираем поле Код потока, из таблицы «Специальности» – Специальность, из таблицы «Поступившие» – Фамилия.
В поле Групповая операция колонки Фамилия выбрала функцию count, а в поле Перекрестная таблица Значение.
В колонке Код потока в поле Групповая операция оставляем запись Группировка, а в поле Перекрестная таблица выбираем Заголовки строк.
В колонке Специальность в поле Групповая операция оставляем запись Группировка, а в поле Перекрестная таблица выбираем Заголовки столбцов.
Рисунок 3.2.4– Перекрестный запрос в режиме конструктор