Создание БД с заданной схемой данных.
Разработка формы, реализующей процесс отображения семей учеников.
Разработка интерфейса форм для заполнения, корректировки данных всех таблиц БД.
Разработка формы пользовательского поиска.
Задание:
Создать по заданной схеме БД «Школа».
Создать главную форму управления БД.
Создать запросы в режиме SQL.
Задана схема данных базы данных, содержащая информацию об учениках некоторой школы:

По заданной схеме данных требуется создать компьютерную реализацию базы данных, выполнив следующие этапы работы: создать базовые таблицы, установить связи между таблицами, заполнить таблицы данными, создать формы для просмотра и ввода данных в таблицы, создать запросы и отчеты.
Технология выполнения задания
Запустите программу Microsoft Access (Пуск – Программы – Microsoft Access). Выполните в меню Файл – Создать и затем выберите в области задач окна программы пункт Новая база данных.
В открывшемся окне сохранения файла базы данных выберите папку для сохранения, введите имя файла Школа, убедитесь в том, что установлен тип файла Базы данных Microsoft Access (*.mdb). Щелкните кнопку Создать. Откроется окно База данных.
В окне База данных на панели Таблицы дважды щелкните значок Создание таблицы в режиме конструктора – откроется бланк создания структуры таблицы:

Заполните бланк таблицы, введя с клавиатуры имена полей таблицы СЕМЬИ, выбрав для каждого поля тип данных и приняв предлагаемые программой или введя с клавиатуры (для полей текстового типа) размеры полей.
Определите поле Код_семьи как ключевое поле таблицы: выделите это поле, щелчком правой кнопки мыши откройте контекстное меню и выберите пункт Ключевое поле.
Закройте окно создания структуры таблицы в режиме Конструктор. При закрытии окна присвойте таблице имя СЕМЬИ.
Пример таблицы СЕМЬИ в режиме просмотра данных показан на рисунке:

Аналогично пунктам 3 – 6 создайте таблицу УЧЕНИКИ, в которую включите поля, указанные на рисунке.

Определите поле Код_ученика как ключевое поле таблицы.
Пример таблицы УЧЕНИКИ в режиме просмотра данных показан на рисунке:

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

Введите с помощью формы информацию о семьях и учениках.
В окне базы данных Школа откройте панель Запросы.

Создайте запрос в соответствии со следующими требованиями:
| Имя запроса | Включаемые в запрос поля | Какую задачу решает запрос |
| Запрос1 | Фамилия Имя Отчество Дата_рождения | Выбирает из таблицы УЧЕНИКИ информацию об учениках, родившихся в мае 2001 года |
Для создания запроса выполните следующие действия:
дважды щелкните на значке Создание запроса в режиме Конструктора – откроется бланк запроса по образцу, одновременно с ним откроется диалоговое окно Добавление таблицы;
в окне Добавление таблицы выберите таблицу УЧЕНИКИ, щелкните на кнопке Добавить, закройте окно Добавление таблицы;
в списке полей таблицы УЧЕНИКИ выберите поля, включаемые в результирующую таблицу запроса (выбор производится двойным щелчком на имени поля);
задайте условие отбора для поля Дата_рождения, введя в строку Условие отбора условие Between 01.05.2001 And 31.05.2001 (см. рисунок);

закройте бланк запроса по образцу, при закрытии сохраните запрос с именем Запрос1;
в окне Школа: база данных двойным щелчком мыши по имени запроса откройте только что созданный запрос, проанализируйте результирующую таблицу. Ее содержание зависит от того, что было введено в таблицу УЧЕНИКИ при ее заполнении данными.
Создайте запрос по данным из таблиц СЕМЬИ и УЧЕНИКИ в соответствии со следующими требованиями:
Имя запроса
Включаемые в запрос поля
Какую задачу решает запрос
Запрос2
Фамилия
Имя
Отчество
Доход_семьи_среднемесячный
Выбирает из таблицы УЧЕНИКИ информацию об учениках из семей со среднемесячным доходом от 20000 до 30000 рублей
Выполните запрос и проанализируйте полученную результирующую таблицу.
Создайте запрос по данным из двух взаимосвязанных таблиц СЕМЬИ и УЧЕНИКИ в соответствии со следующими требованиями:
Имя запроса
Включаемые в запрос поля
Какую задачу решает запрос
Запрос3
Фамилия
Имя
Отчество
ФИО_контактного_лица
Статус_контактного_лица
Место_работы
Должность
Телефон
Выбирает из таблиц СЕМЬИ и УЧЕНИКИ информацию о учениках и контактных лицах тех семей, для которых в качестве контактного лица указан отец.
Выполните запрос и проанализируйте полученную результирующую таблицу.
Создайте и выполните запрос по таблице СЕМЬИ в соответствии со следующими требованиями:
Имя запроса
Включаемые в запрос поля
Какую задачу решает запрос
Запрос4
ФИО_контактного_лица
Статус_контактного_лица
Место_работы
Должность
Телефон
Выбирает из таблицы СЕМЬИ информацию о контактных лицах, работающих в ОАО АВТОВАЗ.
Сохраните и выполните запрос. Проанализируйте полученную результирующую таблицу.
Создайте и выполните запрос с параметром в соответствии со следующими требованиями:
| Имя запроса | Включаемые в запрос поля | Какую задачу решает запрос |
| Запрос5 | Код_ученика Фамилия Имя Отчество Состав_семьи | Выбирает из таблиц СЕМЬИ и УЧЕНИКИ информацию об учениках из семей с заданным составом. При этом конкретное число членов семьи (состав семьи) вводится при выполнении запроса. |
Для поля Состав_семьи в строке Условие отбора введите условие на ввод параметра в квадратных скобках: [Введите число членов семьи].

Рис. 2.42. Запрос с параметром в режиме Конструктор
Выполните запрос. При выполнении откроется диалоговое окно для ввода значения параметра. Введите одно из значений в поле Состав_семьи, которые есть в Вашей таблице СЕМЬИ (например, 3). Введенное значение будет использовано в качестве критерия отбора записей из таблицы.

Создайте и выполните запрос с параметром-диапазоном в соответствии со следующими требованиями:
| Имя запроса | Включаемые в запрос поля | Какую задачу решает запрос |
| Запрос6 | Адрес Состав_семьи Доход_семьи_среднемесячный Фамилия Имя Отчество | Выбирает из таблиц СЕМЬИ и УЧЕНИКИ информацию об учениках, среднемесячный доход в семьях которых находится в некотором заданном диапазоне. Нижняя и верхняя границы диапазона вводятся в процессе выполнения запроса. |
При конструировании запроса в строке Условие отбора для поля Доход_семьи_среднемесячный введите выражение
Between [Введите нижнюю границу дохода] And [Введите верхнюю границу дохода]
Выполните запрос. При выполнении запроса сначала появится диалоговое окно для ввода нижней границы диапазона значений поля Доход_семьи_среднемесячный, затем – для ввода верхней границы. Эти значения будут использованы для определения кодов учеников в таблице УЧЕНИКИ, среднемесячный доход в семьях которых попадает в заданный диапазон. По этим кодам будут отбираться данные из таблицы УЧЕНИКИ.
Создайте и выполните запрос с вычисляемыми полями в соответствии со следующими требованиями:
| Имя запроса | Включаемые в запрос поля | Какую задачу решает запрос |
| Запрос7 | Фамилия Имя Отчество Состав_семьи Доход_семьи_среднемесячный | Вычисляет для каждого ученика доход на 1 человека в семье по формуле: Доход_на_1_человека: [Доход_семьи_среднемесячный]/ [Состав_семьи] |
Для создания запроса выполните следующие действия:
в окне Добавление таблицы выберите таблицы СЕМЬИ и УЧЕНИКИ. Выберите поля, включаемые в запрос;
в новом поле бланка запроса в строке Поле введите формулу Доход_на_1_человека: [Доход_семьи_среднемесячный]/[Состав_семьи].

Сохраните и выполните запрос.
Создайте итоговый запрос в соответствии со следующими требованиями:
| Имя запроса | Включаемые в запрос поля | Какую задачу решает запрос |
| Запрос8 | Состав_семьи Доход_семьи_среднемесячный (трижды) | Вычисляет среднее, наибольшее и наименьшее значение по полю Доход_семьи_среднемесячный для семей с различным составом (численностью). |
Для создания запроса выполните следующие действия:
дважды щелкните на значке Создание запроса в режиме Конструктора – откроется бланк запроса по образцу, в окне Добавление таблицы выберите таблицу СЕМЬИ;
включите в запрос поле Состав_семьи и трижды включите поле Доход_семьи_среднемесячный;
на панели инструментов в окне программы Microsoft Access щелкните на кнопке Групповые операции
или воспользуйтесь командами меню (Вид – Групповые операции), в нижней части бланка появится строка Групповые операции;

Рис. 2.46. Формирование итогового запроса
для поля, по которому производится группировка записей (в нашем случае – поле Состав_семьи), оставьте в строке Групповые операции значение Группировка, для остальных полей щелкните в этой строке – появится кнопка раскрывающегося списка, из которого можно выбрать итоговую функцию для расчета значений в данном поле;
для первого поля Доход_семьи_среднемесячный выберите итоговую функцию Avg для определения среднего значения оклада по каждой должности, для второго поля Доход_семьи_среднемесячный – итоговую функцию Max, для третьего поля Доход_семьи_среднемесячный – итоговую функцию Min;
закройте бланк запроса по образцу, присвоив запросу имя Запрос8.
Выполните запрос и проанализируйте результирующую таблицу.
Создайте запрос на создание базовой таблицы. В результате выполнения этого запроса в базе данных будет создана новая базовая таблица АДРЕСА_УЧЕНИКОВ.
| Имя запроса | Включаемые в запрос поля | Какую задачу решает запрос |
| Запрос9 | Код_ученика Фамилия Имя Отчество Адрес | Создает новую базовую таблицу |
Для создания запроса выполните следующие действия:
дважды щелкните на значке Создание запроса в режиме Конструктора – откроется бланк запроса по образцу, в окне Добавление таблицы выберите таблицы СЕМЬИ и УЧЕНИКИ;
включите в запрос поля Код_ученика, Фамилия, Имя, Отчество из таблицы УЧЕНИКИ и поле Адрес СЕМЬИ;
откройте список инструмента Тип запроса (рис. 2.47) и выберите Создание таблицы;
в открывшемся диалоговом окне Создание таблицы введите имя новой таблицы АДРЕСА_УЧЕНИКОВ, установите переключатель в текущей базе данных и нажмите кнопку OK;
закройте бланк запроса по образцу, сохранив запрос с именем Запрос9.

Выполните запрос. Ответьте «Да» на все выводимые программой вопросы. Переключитесь в окне базы данных на панель Таблицы. В списке таблиц должна появиться новая таблица АДРЕСА_УЧЕНИКОВ. Откройте таблицу, просмотрите ее содержимое.
Создайте Автоотчет «в столбец» на базе таблицы УЧЕНИКИ в соответствии со следующими требованиями:
| Имя отчета | Включаемые в отчет поля | Представленные в отчете данные и тип отчета |
| Отчет1 | Все поля таблицы УЧЕНИКИ | Автоотчёт «в столбец» отображает данные из таблицы УЧЕНИКИ. |
Для создания отчета выполните следующие действия:
в окне Школа: база данных откройте панель Отчеты;
для создания автоотчета Отчет1 щелкните кнопку Создать и выберите в открывшемся окне Новый отчет опцию Автоотчет: в столбец;
выберите таблицу УЧЕНИКИ и щелкните кнопку OK. Закройте отчет, при закрытии сохраните его, присвоив имя Отчет1.
Завершите работу с базой данных.
10

Инструкционная карта (1.45 MB)

