ЛАБОРАТОРНАЯ РАБОТА 3
Работа добавлена на сайт samzan.net:
Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
от 25%
Подписываем
договор
ЛАБОРАТОРНАЯ РАБОТА №3.
ОБРАБОТКА ИНФОРМАЦИИ В ОДНОТАБЛИЧНОЙ БАЗЕ ДАННЫХ
ПОИСК, ФИЛЬТРАЦИЯ, СОРТИРОВКА.
СОЗДАНИЕ ЗАПРОСОВ
- Добавьте в созданную раннее таблицу СТУДЕНТ новое поле в режиме конструктора, описание которого приведено в табл.4. Затем закройте окно конструктора с сохранением структуры таблицы.
Таблица.4. Изменение структуры таблицы СТУДЕНТ
Поле
|
Тип поля
|
Размер поля
|
Тест при поступлении
|
Числовой
|
Одинарное с плавающей точкой (4 байта)
|
- В режиме таблицы заполните вновь созданное поле «Тест при поступлении» данными из табл.5.
- Поиск и редактирование данных в базе данных.
- Закройте таблицу и перейдите в окне базы данных на вкладку Формы. Откройте форму СТУДЕНТ. Найдите запись в базе данных с информацией о студентке с фамилией «Морозова». Для этого:
- Находясь в форме СТУДЕНТ, щёлкните в строке поля Фамилия, чтобы в этом поле появился мигающий курсор. Затем щёлкните по кнопке Найти (с изображением бинокля) на панели инструментов или выполните команду меню Правка - Найти.
- В открывшемся диалоговом окне в поле Образец введите слово Морозова.
- Щёлкните по кнопке Найти. В форму выведется найденная запись.
- Закройте окно формы.
- Сортировка данных.
- Откройте таблицу СТУДЕНТ в табличном режиме.
- Отсортируйте записи таблицы по алфавитному порядку фамилий студентов. Для этого, выделив столбец Фамилия, щёлкните на панели инструментов по кнопке Сортировка по возрастанию («от А до Я») или выполните команду в меню Записи: Сортировка - Сортировка по возрастанию.
Табл.5. Таблица СТУДЕНТ с данными поля «Тест при поступлении»
Но-мер
|
Фамилия
|
Имя
|
Отчество
|
Пол
|
Дата рожд.
|
Груп-па
|
Место проживания
|
Тест при поступ-лении
|
268
|
Кравцов
|
Алексей
|
Иванович
|
м
|
18.08.90
|
112
|
Ростов-на-Дону
|
102
|
324
|
Зайцев
|
Сергей
|
Александрович
|
м
|
30.04.89
|
111
|
Шахты
|
98
|
349
|
Краснова
|
Юлия
|
Олеговна
|
ж
|
02.12.89
|
113
|
Батайск
|
77,7
|
350
|
Зелинский
|
Эдуард
|
Юрьевич
|
м
|
20.11.89
|
112
|
Ростов-на-Дону
|
81,9
|
362
|
Яблочкин
|
Павел
|
Олегович
|
м
|
30.09.89
|
113
|
Шахты
|
92,7
|
366
|
Долгова
|
Марина
|
Александровна
|
ж
|
22.11.89
|
111
|
Ростов-на-Дону
|
96,4
|
370
|
Котов
|
Денис
|
Владимирович
|
м
|
17.12.88
|
113
|
Ростов-на-Дону
|
93,5
|
372
|
Юдинцев
|
Антон
|
Валерьевич
|
м
|
02.04.90
|
113
|
Ростов-на-Дону
|
100,8
|
377
|
Зотова
|
Елена
|
Васильевна
|
ж
|
10.01.90
|
112
|
Таганрог
|
84,1
|
385
|
Сергеев
|
Петр
|
Михайлович
|
м
|
12.01.89
|
111
|
Ростов-на-Дону
|
75,9
|
388
|
Токарева
|
Наталья
|
Юрьевна
|
ж
|
08.04.90
|
112
|
Азов
|
107,8
|
389
|
Морозова
|
Анна
|
Владимировна
|
ж
|
15.07.90
|
112
|
Таганрог
|
80,2
|
391
|
Васильева
|
Татьяна
|
Андреевна
|
ж
|
25.05.89
|
112
|
Батайск
|
91,6
|
397
|
Волкова
|
Светлана
|
Николаевна
|
ж
|
07.02.90
|
111
|
Ростов-на-Дону
|
98,7
|
399
|
Омельченко
|
Алла
|
Григорьевна
|
ж
|
09.10.90
|
112
|
Ростов-на-Дону
|
92,4
|
404
|
Зуева
|
Ольга
|
Борисовна
|
ж
|
06.06.90
|
113
|
Ростов-на-Дону
|
88,6
|
407
|
Новиков
|
Максим
|
Алексеевич
|
м
|
19.03.78
|
111
|
Азов
|
90
|
408
|
Шевцов
|
Николай
|
Сергеевич
|
м
|
16.06.90
|
112
|
Ростов-на-Дону
|
90
|
409
|
Иванисова
|
Ирина
|
Петровна
|
ж
|
29.08.89
|
111
|
Ростов-на-Дону
|
83,3
|
410
|
Карпова
|
Людмила
|
Анатольевна
|
ж
|
12.04.90
|
113
|
Ростов-на-Дону
|
78,8
|
415
|
Борисова
|
Мария
|
Михайловна
|
ж
|
15.10.89
|
111
|
Ростов-на-Дону
|
104,5
|
416
|
Торчинский
|
Александр
|
Семенович
|
м
|
28.04.88
|
111
|
Таганрог
|
112,6
|
418
|
Дмитриев
|
Владимир
|
Семенович
|
м
|
19.09.90
|
113
|
Ростов-на-Дону
|
101,8
|
425
|
Анохин
|
Андрей
|
Борисович
|
м
|
28.03.88
|
111
|
Новочеркасск
|
85,4
|
- Фильтрация данных.
- Используйте фильтрацию для вывода на экран только записей, относящихся к студентам, родившимся после 01.01.90 г. Для этого:
- При открытой таблице СТУДЕНТ щёлкните на панели инструментов по кнопке Изменить фильтр.
- В окне фильтра щёлкните в поле Дата рождения и наберите в нём в качестве условия отбора выражение: >31.12.89
- Щёлкните по кнопке Применить фильтр. На экран выведутся только те записи, которые соответствуют заданному критерию отбора.
- Удалите фильтр, для чего щёлкните по кнопке Удалить фильтр.
Обработка данных с помощью запросов
Запрос это объект базы данных, представляющий собой инструкцию (команду) для вывода из базы данных информации в соответствии с требуемыми критериями отбора. Результатом запроса является временно существующая таблица, которая может содержать поля таблиц базы данных и (или) других запросов, а также вычисляемые на их основе поля.
Запросы чаще всего создаются с помощью конструктора. Работа в режиме конструктора основана на использовании сравнительно простого и наглядного средства QBE Query By Example (Запрос по образцу), которое в то же время имеет достаточно большой набор функциональных возможностей для создания сложных запросов.
- Создайте запрос, в котором необходимо определить список студентов мужского пола, родившихся не раннее 1990 года. Для этого в окне базы перейдите на вкладку Запросы.
- На вкладке Запросы нажмите кнопку Создать.
- В окне Новый запрос выберите Конструктор в качестве средства создания запроса и щёлкните по кнопке OK.
- На фоне появившегося окна Запрос1: запрос на выборку в диалоге Добавление таблицы выберите таблицу СТУДЕНТ и нажмите на кнопку Добавить. Затем щёлкните по кнопке Закрыть.
- В строку Поле первого столбца перетащите из списка полей таблицы СТУДЕНТ поле Фамилия, второго столбца - Имя, третьего столбца - Отчество, четвёртого столбца - Дата рождения, пятого Пол (см. рис.).
- В строке Условие отбора поля Пол поместите выражение: =“м” и уберите признак вывода на экран информации этого поля, т.е. снимите галочку в строке Вывод на экран поля Пол (см. рисунок).
- В строке Условие отбора поля Дата рождения поместите выражение:
>#31.12.89# (см. рисунок).
- Выполните запрос, для чего щёлкните на панели инструментов по кнопке Выполнить (с изображением восклицательного знака красного цвета см. рисунок). В результате выполнения данного запроса должна быть выведена временная таблица с четырьмя записями студентов, удовлетворяющими заданным условиям отбора.
- Закройте запрос, щёлкнув по кнопке закрытия его окна. На вопрос о сохранении запроса ответьте «Да», присвойте запросу имя, например: «Мужчины после 80 года» или сокращённо «М80». (Сохранить запрос, не закрывая, можно также с помощью команды меню Файл - Сохранить запрос.)
- Выполняя аналогичные действия, создайте и выполните самостоятельно с помощью Конструктора запросов следующие запросы.
- Определите список студентов, фамилии которых оканчиваются на “ова”. Подсказка: в данном запросе в строке Условие отбора необходимо использовать оператор Like ”*ова” . Оператор Like в переводе с английского означает предлог «как» и выражает команду найти записи как «образец». Допускается сам оператор Like не печатать, а указывать только параметр, т.е. образец записи в кавычках или без них (в последнем случае программа сама добавит кавычки). Символ * означает любое количество любых символов (Это важно запомнить!). Присвойте данному запросу при сохранении имя «ова».
- Определите список студентов, фамилии которых оканчиваются на “сова”. Присвойте запросу при сохранении имя «сова».
- Определите всех ростовчанок группы 113. Присвойте запросу имя «Ростовчанки 113».
- Определите всех ростовчанок в двух группах: 111 и 112. Другими словами, это означает найти девушек-ростовчанок, каждая из которых обучаются или в группе 111, или в группе 112. Для указания такого условия отбора есть два способа. Первый способ: использовать оператор «OR» («ИЛИ»), т.е. составить выражение “111” or “112”. Второй способ: использовать две строки для условия отбора, при этом в строке Условие отбора следует ввести значение 111, а в строке Или (под первым значением) значение 112. Условия отбора, указанные в одном столбце по вертикали, объединяются логической функцией «ИЛИ». Условия отбора, указанные в одной строке по горизонтали, объединяются логической функцией «И». Поэтому при использовании нескольких строк следует условия отбора других полей (если они имеются) повторить в каждой строке. Сохраните запрос с именем «Ростовчанки 111 и 112».
- Определите список студентов, фамилии которых начинаются на букву «З». Присвойте запросу имя «Фамилии на З».
- Определите список студентов, фамилии которых начинаются на букву «К». Присвойте запросу имя «Фамилии на К».
- Определите всех студентов, у которых день рождения в апреле. Присвойте запросу имя «Апрельские».
- Определите всех студентов, имеющих при поступлении результат теста выше 100. Присвойте запросу имя «>100».
- Определите список иногородних студентов. Для указания в данном запросе условия отбора есть два способа. Первый способ: использовать оператор отрицания «NOT» («НЕ»), т.е. составить выражение Not “…”, где многоточие означает отрицаемое значение данного поля. Второй способ: использовать математический знак «Не равно», состоящий из двух подряд идущих символов «Меньше», «Больше», т.е. <>”…”, где многоточие означает исключаемое значение данного поля. Присвойте запросу имя «Иногородние».
- Определите самую молодую девушку на курсе. Подсказка1: В данном запросе необходимо использовать строку Сортировка. Подсказка2: Для того, чтобы выводить не весь список, а только одну искомую запись, на панели инструментов в поле Набор значений (см. рисунок «Кнопки панели инструментов Конструктора запросов») следует удалить значение «Все» и вручную (с помощью клавиатуры) ввести значение «1», после чего нажать на клавиатуре клавишу Enter.
- Определите самого старшего парня на курсе.
- Определите студентов-ростовчан, родившихся раннее 1980 года и имеющих тест при поступлении не менее 90 баллов.
- Определите средний тест при поступлении для каждой группы. Данный запрос имеет ряд особенностей! Во-первых, в него должны быть включены только поля, характеризующие группу в целом, а не индивидуальные характеристики отдельных студентов. Во-вторых, на панели инструментов в конструкторе запросов следует включить «Групповые операции», щёлкнув мышью по кнопке Групповые операции с изображением символа (см. рисунок «Кнопки панели инструментов Конструктора запросов»). Появится новая строка Групповая операция, и в ней по умолчанию будет установлена операция Группировка, которая группирует все записи по одноимённым значениям данного поля. В третьих, для вычисления среднего значения в каждой группе следует в поле Тест при поступлении в строке Группировка щёлкнуть мышью, при этом появится кнопка поля со списком, по которой следует также щёлкнуть мышью и в открывшемся списке групповых функций выбрать функцию вычисления среднего значения Avg.
- Предъявите преподавателю все сохранённые запросы.
- Закройте Вашу базу данных.
Лабораторная работа №4
СОЗДАНИЕ МНОГОТАБЛИЧНОЙ (РЕЛЯЦИОННОЙ) БАЗЫ ДАННЫХ И ТЕХНОЛОГИЯ РАБОТЫ С НЕЙ
Краткие теоретические сведения
Реляционная структура базы данных базируется на аппарате реляционной алгебры. Основными понятиями реляционной базы данных (БД) являются:
отношение (представляющее собой таблицу БД);
кортеж (представляющий собой запись - строку таблицы БД);
домен (представляющий собой поле - столбец таблицы БД).
Все обрабатываемые данные в БД организованы в таблицы, обладающие свойствами реляционных таблиц, и результатом любого манипулирования является таблица или совокупность таблиц.
Постановка задачи
Рассмотрим задачу, связанную с предоставлением студентам льгот по оплате обучения в коммерческом ВУЗе по результатам экзаменационной сессии. Допустим, что руководство института приняло решение материально поощрить студентов, добившихся высоких результатов в учёбе и успешно сдавших сессию, в форме предоставления им некоторых льгот по оплате за обучение. При этом было решено, что студентам, получившим в сессии все отличные оценки, предоставляется скидка 20% по оплате за обучение; студентам, получившим одну оценку «хорошо», а остальные «отлично», - 10%; студентам, получившим две оценки «хорошо», а остальные «отлично», - 5%. Контроль успеваемости студентов ведётся с помощью базы данных СТУДЕНТ. Используя эту базу данных, необходимо определить по результатам сдачи экзаменационной сессии списки студентов, имеющих право на указанные льготы по каждой категории и подготовить проект соответствующего приказа ректора.
Данные организованы в три таблицы: СТУДЕНТ, СЕССИЯ, СКИДКА ОПЛАТЫ. В ранее созданной таблице СТУДЕНТ содержатся необходимые сведения о каждом студенте. Таблица СЕССИЯ содержит сведения о результатах сдачи студентами пяти экзаменов: номер студенческого билета (и зачётной книжки), оценку по информатике, оценку по математике, оценку по экономике, оценку по философии, оценку по иностранному языку и итоговый результат сдачи сессии. Таблица СКИДКА ОПЛАТЫ определяет условия предоставления студентам льгот по оплате за обучение в ВУЗе.
Построение информационно-логической модели
При проектировании БД целесообразно строить информационно-логическую модель предметной области, которая определяет совокупность информационных объектов, их атрибутов и структурных связей.
Информационный объект - это формализованное отображение объекта реального мира, в качестве которого могут выступать реально существующие объекты, процессы, понятия.
Информационный объект должен обладать следующими свойствами: иметь имя, уникальный идентификатор, состав атрибутов, количество экземпляров. В качестве идентификатора используется один или несколько атрибутов, называемых ключом. Ключи позволяют определить связи между объектами.
Применительно к решаемой задаче можно выделить следующие информационные объекты (в скобках указаны их атрибуты (поля таблиц), подчёркнутый атрибут является ключом):
СТУДЕНТ (Номер, Фамилия, Имя, Отчество, Пол, Дата рождения, Группа, Место проживания, Тест при поступлении);
СЕССИЯ (Номер, Оценка-Информатика, Оценка-Математика, Оценка-Экономика, Оценка-Философия, Оценка-ИнЯз, Результат);
СКИДКА ОПЛАТЫ (Результат, Процент скидки).
В графическом виде информационно-логическая модель для решаемой задачи представлена на рис. 1.
1 1
1
Рис. 1. Информационно-логическая модель решаемой задачи
Связи между информационными объектами отображаются реальными отношениями. Определены следующие типы реальных отношений:
1) 1:1 (Один-к-одному), при котором одному экземпляру первого информационного объекта соответствует один экземпляр второго информационного объекта. Примером такого отношения в данной задаче может служить связь между информационными объектами
СТУДЕНТ СЕССИЯ
2) 1:М (Один-ко-многим), при котором одному экземпляру первого объекта соответствует множество экземпляров второго объекта, а каждому экземпляру второго объекта соответствует один экземпляр первого объекта. Примером такого отношения в данной задаче может служить связь между информационными объектами
СКИДКА ОПЛАТЫ СЕССИЯ
- М:М (Многие-ко-многим), при которых каждому экземпляру первого объекта соответствует множество экземпляров второго объекта, и каждому экземпляру второго объекта соответствует множество экземпляров первого объекта. Например, связь между информационными объектами СТУДЕНТ и ПРЕПОДАВАТЕЛЬ. В СУБД Access тип связи «Многие-ко-многим» не предусмотрен. В необходимых случаях такую связь всегда можно расщепить на две связи типа «Один-ко-многим», добавив дополнительную (перекрёстную) таблицу. В информационно-логической модели данной задачи связь «Многие-ко-многим» отсутствует.
Связи между объектами в реляционной базе данных не хранятся, а образуются в процессе манипулирования.
Связи между атрибутами (полями) реализуются объединением атрибутов в таблицу.
Таким образом, для решения данной задачи надо создать многотабличную (реляционную) базу данных. СУБД Access может обрабатывать данные различных таблиц базы данных, но для этого необходимо в каждой из этих таблиц создать ключ (определить ключевое поле), а затем установить связи между таблицами. Access создаёт индекс для ключевого поля таблицы и использует его для поиска записей и объединения таблиц в запросе. При создании ключевых полей важно помнить, что ключевое поле не может содержать пустых и повторяющихся значений.
Таблицу, в которой не определён ключ, нельзя использовать при установке связей, кроме того, поиск и сортировка в такой таблице выполняются медленнее.
Последовательность выполнения работы
- В рассматриваемой задаче в реляционной базе данных СТУДЕНТ должно содержаться три таблицы: СТУДЕНТ, СЕССИЯ и СКИДКА ОПЛАТЫ. Таблица СТУДЕНТ была Вами создана ранее. Убедитесь, что эта таблица существует и содержит 24 записи. Если это не так, создайте её или добавьте в неё недостающие записи со сведениями о студентах (в соответствии с таблицей 5). Определите ключ таблицы СТУДЕНТ. Для определения ключа необходимо в окне конструктора таблиц выделить поле «Номер» (щелчком мыши на сером фоне в левой части строки «Номер») и нажать кнопку панели инструментов Ключевое поле (с изображением ключа), в результате чего в разделителе строк появляется миниатюрное изображение ключа (см. рис.).
- Создайте с помощью конструктора таблиц структуры таблиц СЕССИЯ и СКИДКА ОПЛАТЫ в соответствии с табл.6 и 7 настоящего задания. Определите в них ключевые поля.
Таблица 6. Структура таблицы СЕССИЯ
Признак ключа
|
Поле
|
Тип поля
|
Размер поля
|
Ключ
|
Номер
|
Текстовое
|
3
|
|
Оценка-Информатика
|
Числовое
|
Целое
|
|
Оценка-Математика
|
Числовое
|
Целое
|
|
Оценка-Экономика
|
Числовое
|
Целое
|
|
Оценка-Философия
|
Числовое
|
Целое
|
|
Оценка-ИнЯз
|
Числовое
|
Целое
|
|
Результат
|
Текстовое
|
5
|
Таблица 7. Структура таблицы СКИДКА ОПЛАТЫ
Признак ключа
|
Поле
|
Тип поля
|
Размер поля
|
Ключ
|
Результат
|
Текстовое
|
5
|
|
Процент скидки
|
Числовое
|
Одинарное с плавающей точкой (4 байта)
|
- Занесите данные в таблицу СКИДКА ОПЛАТЫ в соответствии с табл.8.
Таблица 8. Данные таблицы СКИДКА ОПЛАТЫ
Результат
|
Процент скидки
|
отл
|
20
|
хор1
|
10
|
хор2
|
5
|
- Установите связь между таблицами СТУДЕНТ и СЕССИЯ.
- Откройте окно «Схема данных». Для этого, находясь в окне базы данных, щёлкните по кнопке «Схема данных» на панели инструментов или выберите в меню Сервис команду Схема данных. В появившемся диалоговом окне «Добавление таблицы» добавьте в схему данных две таблицы: СТУДЕНТ и СЕССИЯ, после чего закройте диалоговое окно. Расположите эти две таблицы в окне «Схема данных», приблизительно, как показано на рисунке.
- Протащите указатель мыши с нажатой левой клавишей от поля «Номер» таблицы СТУДЕНТ к полю «Номер» таблицы СЕССИЯ.
- В появившемся диалоговом окне «Изменение связей» установите флажок «Обеспечение целостности данных», убедитесь, что автоматически правильно установлен тип отношения «Один-к-одному» и нажмите кнопку Создать. На экране появится связь «Один-к-одному», как изображено на рисунке.
- Закройте окно «Схема данных» с сохранением сделанных изменений.
- Создайте сложную многотабличную пользовательскую форму ввода данных, состоящую из главной и подчинённой форм, для ввода результатов сдачи сессии по каждому студенту. Для этого в окне базы данных перейдите на вкладку Формы.
- Создайте с помощью мастера простую форму Сессия, которая в дальнейшем будет играть роль подчинённой формы.
- На первом шаге мастера перенесите из левого окна в правое все имеющиеся поля таблицы СЕССИЯ, нажав кнопку «>>», а затем выделите в правом окне только поле «Результат» и возвратите его назад, нажав кнопку «<». Таким образом, в форму будут включены все поля таблицы СЕССИЯ, кроме поля «Результат». Затем нажмите кнопку Далее.
- На втором шаге мастера выберите внешний вид формы В один столбец. Нажмите кнопку Далее.
- На третьем шаге мастера выберите стиль формы Стандартный. Нажмите кнопку Далее.
- На последнем, четвёртом шаге задайте имя формы Сессия и нажмите на кнопку Готово.
- Просмотрев вид созданной формы, перейдите в режим конструктора.
- Откройте свойства формы. Для этого щёлкните правой кнопкой мыши по области выделения формы - квадрату на пересечении линеек в верхнем левом углу окна конструктора формы (см. рисунок) и в открывшемся контекстном меню выберите Свойства. В окне свойств на вкладке Макет установите значение параметра «Кнопки перехода» - Нет. Эта установка запретит отображение кнопок перехода подчинённой формы в режиме формы. Поскольку связь между главной формой Студент и подчинённой Сессия типа «Один-к-одному» (1:1), то каждой записи формы (и таблицы) Студент будет соответствовать только одна запись формы (и таблицы) Сессия, и, следовательно, переход по записям в подчинённой форме не требуется.
- Перейдите на вкладку Данные и установите значение параметра «Разрешить добавление» Нет. Таким образом, в форме Сессия будет запрещено вводить новые записи, представляющие собой оценки по предметам несуществующим студентам (которых нет в таблице СТУДЕНТ). Закройте окно свойств формы.
- Выделите в конструкторе поле Номер (не надпись «Номер», а само поле (белого цвета) с данными «Номер»(!) надпись и поле с одним и тем же именем «Номер» рассматриваются как разные, хотя и связанные объекты формы). Щёлкнув по выделенному полю правой кнопкой мыши, откройте его Свойства. Установите на вкладке Данные значение параметра «Доступ» Нет. Это делает ключевое поле Номер недоступным для изменения, а в режиме формы оно будет иметь блеклое изображение. Закройте окно свойств поля «Номер».
- Если длинные названия полей («Оценка-Информатика», «Оценка-Математика» и т.д.) в режиме формы видны не полностью, то надписи следует удлинить. Для этого в режиме конструктора несколько увеличьте (вправо и вниз) окно формы, после чего немного расширьте область данных формы, передвинув её правую границу на 1,5-2 см вправо. Выделите все надписи в области данных, щёлкнув сначала по первой из них, затем с нажатой клавишей Shift по остальным. Наведя курсор мыши на любую из выделенных надписей, щёлкните правой кнопкой и откройте Свойства сразу для всей группы надписей. В окне свойств на вкладке «Макет» установите значение параметра «Ширина», равным 3,5 см и закройте окно свойств надписей. После этого названия полей будут видны полностью, однако надписи будут частично перекрывать поля, что создаёт неудобства. Поэтому далее следует выделить аналогичным образом теперь уже все поля области данных, открыть их свойства и на вкладке «Макет» установите значение параметра «От левого края», равным 4 см. Те же действия можно сделать без использования свойств указанных объектов, изменяя курсором мыши их размеры и местоположение. Любым способом добейтесь хорошего внешнего вида формы, примерно такого, как показано на рисунке.
- Закройте окно конструктора формы Сессия с сохранением всех изменений.
- Создайте с помощью мастера простую форму Сдача сессии, которая в дальнейшем станет главной.
- На первом шаге мастера форм перенесите из левого окна в правое из таблицы СТУДЕНТ поля: Номер, Фамилия, Имя, Отчество, Группа, нажимая каждый раз кнопку «>».
- На втором шаге мастера выберите внешний вид формы Ленточный.
- На третьем шаге мастера выберите требуемый стиль формы по своему желанию.
- На последнем, четвёртом шаге задайте имя формы Сдача сессии и нажмите на кнопку Готово.
- Просмотрев вид созданной формы, перейдите в режим конструктора.
- Откройте свойства формы. На вкладке Макет установите значение параметра «Режим по умолчанию» - Одиночная форма.
- Перейдите на вкладку Данные и установите значение параметра «Разрешить добавление» Нет. Таким образом, в форме Сдача сессии будет запрещено вводить новые записи о студентах, а в режиме формы кнопка перехода к новой (пустой) записи (кнопка со звёздочкой) будет недоступна - её изображение будет блеклым. Закройте окно свойств формы.
- В области данных формы выделите все поля. Для этого сначала выделите щёлчком мыши поле Номер, а затем, нажав и удерживая клавишу Shift, выделите щёлчком мыши остальные поля: Фамилия, Имя, Отчество, Группа. Щелчком правой кнопки мыши по любому из выделенных объектов откройте через контекстное меню окно свойств, общее для всей группы полей.
- В окне свойств на вкладке Данные установите для выделенных полей значение параметра Блокировка Да. Такое значение для данного параметра устанавливает запрет на любое изменение данных во всех перечисленных полях формы. Таким образом, поля главной формы будут доступны только для просмотра без возможности их изменения. Закройте окно свойств.
- Продолжая работать в конструкторе формы, вставьте в область примечания формы Сдача сессии подчинённую форму Сессия. Для этого выполните следующие действия.
- Расширьте область примечания формы, переместив вниз курсором мыши её нижнюю границу (см. рисунок).
- Найдите на панели элементов кнопку Подчинённая форма/отчёт (если панель элементов не видна, включите её, щелкнув по кнопке Панель элементов, или выполните команду Вид Панель элементов) и щёлкните по ней. Поместите курсор мыши в область примечания, курсор примет вид крестика, затем, нажав на левую кнопку мыши, обрисуйте этим крестиком контур будущей подчинённой формы приблизительно, как показано на рисунке. Автоматически запустится мастер подчинённых форм.
- Отвечая на первый вопрос мастера, какие данные необходимо включить в подчинённую форму, выберите переключателем Имеющиеся формы и укажите в списке на форму Сессия. Нажмите кнопку Далее.
- Для автоматического определения полей связи между главной и подчинённой формами установите переключатель в положение Выбор из списка. В списке по умолчанию должно быть указано поле связи Номер. Нажмите кнопку Далее.
- На последнем шаге мастера задайте имя для подчинённой формы Сессия (или согласитесь с таким же предложением мастера). Для завершения работы мастера нажмите на кнопку Готово. В области примечания главной формы Сдача сессии появится подчинённая форма Сессия.
- В окне конструктора выделите подчинённую форму Сессия, щёлкнув правой кнопкой мыши по её области выделения квадрату в левом верхнем углу, и откройте свойства. В окне свойств подчинённой формы на вкладке Данные установите значение параметра «Разрешить добавление» Да. Закройте окно свойств подчинённой формы.
- Перейдите из режима конструктора в режим формы и просмотрите созданную сложную форму. Добейтесь хорошего расположения главной и подчинённой форм путём изменения размеров и перемещения форм и отдельных полей в режиме конструктора с последующим просмотром полученного вида в режиме формы. Вид формы должен приблизительно соответствовать рисунку. Закройте сложную форму, сохранив все изменения.
- Введите в базу данных из табл.9 настоящего задания новую информацию о результатах сдачи экзаменационной сессии студентами, используя для этого созданную Вами сложную пользовательскую форму Сдача сессии. По завершению ввода данных закройте форму.
Таблица 9. Данные таблицы СЕССИЯ
Номер
|
Оценка-Информатика
|
Оценка-Математика
|
Оценка-Экономика
|
Оценка-Философия
|
Оценка-ИнЯз
|
Результат
|
268
|
5
|
3
|
4
|
4
|
4
|
|
324
|
4
|
4
|
4
|
4
|
5
|
|
349
|
4
|
4
|
5
|
3
|
3
|
|
350
|
5
|
5
|
5
|
4
|
5
|
|
362
|
5
|
4
|
5
|
5
|
5
|
|
366
|
3
|
3
|
4
|
3
|
3
|
|
370
|
5
|
5
|
5
|
5
|
4
|
|
372
|
5
|
4
|
5
|
5
|
5
|
|
377
|
4
|
4
|
5
|
5
|
5
|
|
385
|
5
|
5
|
5
|
4
|
5
|
|
388
|
3
|
5
|
5
|
5
|
4
|
|
389
|
4
|
4
|
4
|
4
|
4
|
|
391
|
4
|
4
|
5
|
4
|
5
|
|
397
|
5
|
4
|
5
|
5
|
5
|
|
399
|
5
|
5
|
5
|
5
|
5
|
|
404
|
5
|
5
|
5
|
4
|
4
|
|
407
|
3
|
3
|
3
|
3
|
3
|
|
408
|
4
|
5
|
5
|
4
|
5
|
|
409
|
5
|
5
|
5
|
4
|
5
|
|
410
|
5
|
5
|
5
|
5
|
5
|
|
415
|
3
|
3
|
4
|
3
|
4
|
|
416
|
5
|
4
|
5
|
4
|
5
|
|
418
|
4
|
4
|
4
|
4
|
4
|
|
425
|
5
|
5
|
5
|
5
|
5
|
|
- Откройте таблицу Сессия и просмотрите её. Она должна содержать 24 записи, и в ней должны быть заполнены все поля, кроме поля «Результат». Убедившись в этом, закройте таблицу Сессия.
- Теперь следует заполнить поле «Результат» таблицы СЕССИЯ значениями «отл» для круглых отличников; значениями «хор1» для студентов с одной оценкой «хорошо» и остальными «отлично»; и значениями «хор2» для студентов с двумя оценками «хорошо» и остальными «отлично» (для остальных студентов данное поле остаётся незаполненным). Сделать эту операцию вручную достаточно трудоёмко, особенно при большом числе записей. Для того, чтобы Access автоматически заполнил в соответствующих записях поле «Результат» необходимо воспользоваться запросами на обновление, которые представляют собой разновидность запросов-действий (по-английски: Action-Query). Запрос-действие создается сначала также, как уже известный Вам запрос-выборка (по-английски: Select-Query), а затем преобразуется в запрос-действие (в данном случае, в запрос на обновление данных).
В любом запросе необходимо правильно выбрать условие (критерий) отбора данных. В качестве условия отбора данных для определения круглых отличников, хорошистов с одной и с двумя четвёрками предлагается использовать произведение оценок (П) по всем предметам для каждого студента. Тогда эти произведения будут принимать значения:
для отличников:
;
для хорошистов с одной четвёркой:
;
для хорошистов с двумя четвёрками:
,
а во всех остальных случаях произведение будет меньше 2000, т.е. данный достаточно простой критерий позволяет однозначно произвести отбор студентов по требуемым категориям.
- В окне базы данных перейдите на вкладку Запросы и выберите Создание запроса в режиме конструктора.
- В диалоговом окне «Добавление таблицы» выберите таблицу СЕССИЯ, нажмите на кнопку Добавить, а затем закройте это окно, щёлкнув по кнопке Закрыть.
- В первый столбец строки «Поле» перетащите из списка полей таблицы СЕССИЯ поле «Результат», а во втором столбце строки «Поле» создайте вычисляемое поле (которого нет ни в одной таблице базы данных), содержащее выражение, представляющее собой произведение всех оценок:
[Сессия]![Оценка-Информатика]*[Сессия]![Оценка-Математика]*[Сессия]![Оценка-Экономика]*[Сессия]![Оценка-Философия]*[Сессия]![Оценка-ИнЯз]
Для облегчения набора этого выражения и исключения ошибок при наборе воспользуйтесь специальным средством - построителем выражений, для чего нажмите на панели инструментов кнопку Построить (с изображением «волшебной палочки» и трёх точек). В нижнем левом окне построителя откройте двойным щелчком Таблицы, затем в списке таблиц двойным щелчком выберите таблицу Сессия. В нижнем среднем окне построителя появятся все поля таблицы Сессия. Выполните двойной щелчок по полю Оценка-Информатика оно появится в верхнем окне, затем щелкните по знаку умножения (звёздочке), расположенному между верхним и нижними окнами. Далее выполните двойной щелчок по полю Оценка-Математика и снова по звёздочке, и так далее, пока не будет построено всё выражение. Наименования полей и таблицы, из которых они взяты, включаются в выражение в квадратных скобках. Для связи поля и таблицы используется восклицательный знак, который здесь означает принадлежность поля определённой таблице. После набора всего выражения нажмите на кнопку OK.
- В столбце, где набрано это выражение, в строке «Условие отбора» наберите число 3125 для выбора всех круглых отличников.
- Теперь преобразуйте запрос-выборку в запрос на обновление. Для этого в меню Запрос выполните команду Обновление. При этом в бланке запроса будут исключены строки «Вывод на экран» и «Сортировка», так как они для этого типа запроса не нужны. Вместо них в запрос включается новая строка «Обновление». В эту строку в поле «Результат» следует ввести новые выражение для заменяемых записей, в нашем случае выражение «отл» (кавычки допускается не ставить в этом случае программа сама их поставит). В строке «Имя таблицы» должно быть указано «СЕССИЯ» (обычно это указывается автоматически).
- Закройте запрос, сохраните его под именем отл. Обратите внимание, что вид значка этого запроса отличается от других на вкладке «Запросы», что говорит о том, что этот запрос другого типа запрос на обновление.
- Обязательно выполните созданный Вами запрос «отл» (по крайней мере один раз), дважды щёлкнув по его значку. Появится предупреждение о том, что выполнение запроса приведёт к изменению данных таблицы. Подтвердите выполнение этого запроса, ответив «Да». Затем появится сообщение: «Будет обновлено следующее число записей: 3» - подтвердите обновление записей, ответив «Да». Запрос выполнит необходимые действия. Однако никакой временной таблицы с результатами данного запроса выведено не будет, как это имело место раннее в случае выполнения запроса-выборки. Для того, чтобы увидеть результат работы запроса на обновление, откройте таблицу СЕССИЯ в режиме таблицы и посмотрите произведённые запросом изменения в поле «Результат». Против круглых отличников в этом поле должно стоять значение «отл», всего таких значений должно быть три.
- Аналогично пунктам 8.1 - 8.7 создайте запрос под именем хор1. Разница будет заключаться лишь в том, что в качестве условия отбора здесь следует указать число 2500, а в строке «Обновление» поля «Результат» таблицы СЕССИЯ надо ввести значение «хор1». Также сохраните и выполните этот запрос. Можете проверить изменения в таблице СЕССИЯ.
- Аналогично пунктам 8.1 - 8.7 создайте запрос под именем хор2. Разница будет заключаться лишь в том, что в качестве условия отбора здесь следует указать число 2000, а в строке «Обновление» поля «Результат» таблицы СЕССИЯ надо ввести значение «хор2». Также сохраните и выполните этот запрос. Проверьте изменения в таблице СЕССИЯ. Поле «Результат» теперь должно быть заполнено в соответствии с требованиями задачи.
- Установите связь между таблицами СКИДКА ОПЛАТЫ и СЕССИЯ.
- Откройте окно «Схема данных». Для этого, находясь в окне базы данных, щёлкните по кнопке «Схема данных» на панели инструментов или выберите в меню Сервис команду Схема данных. На экране появится окно «Схема данных» с двумя таблицами.
- Добавьте третью таблицу СКИДКА ОПЛАТЫ в окно «Схема данных». Для этого щёлкните правой кнопкой мыши на сером фоне в окне схемы данных и выберите в контекстном меню команду Добавить таблицу или выполните в меню Связи команду Добавить таблицу. В окне «Добавление таблицы» из списка таблиц выберите таблицу СКИДКА ОПЛАТЫ (установите курсор на имя таблицы и нажмите на кнопку Добавить, а затем Закрыть. В окне «Схема данных» расположатся три таблицы.
- Протащите указатель мыши от ключевого поля «Результат» таблицы СКИДКА ОПЛАТЫ к неключевому полю «Результат» таблицы СЕССИЯ.
- В появившемся диалоговом окне «Изменение связей» установите флажок «Обеспечение целостности данных» и убедитесь, что автоматически установлен тип отношения «Один-ко-многим», после чего нажмите кнопку Создать. На схеме данных появится соответствующая связь, как показано на рисунке. Теперь все таблицы базы данных связаны между собой.
- Закройте схему данных, сохранив сделанные изменения.
- Создайте с помощью конструктора следующие запросы в многотабличной базе данных, используя данные связанных таблиц СТУДЕНТ и.
- Определите с помощью запроса фамилии студентов, получивших на экзамене по информатике отличную (5) оценку. В запрос должны быть добавлены две указанные таблицы. Из таблицы СТУДЕНТ включите в запрос поля: Номер, Фамилия, Имя, Отчество, Группа, а из таблицы СЕССИЯ поле Оценка-Информатика. Условие отбора выберите самостоятельно. Выполните запрос, а затем сохраните его с именем «Сдали информатику на 5» (кавычки в имени не ставить!).
- Определите с помощью аналогичного запроса фамилии студентов, которые сдали сессию только на «4» и «5». Из таблицы СТУДЕНТ включите в запрос те же поля, что и в предыдущем запросе. Сохраните запрос с именем «Учатся на 4 и 5».
- Создайте запрос в многотабличной базе данных, позволяющий выводить фамилию, имя, отчество и номер группы студентов, которым может быть предоставлена скидка оплаты за обучение, а также процент этой скидки. Для получения таких данных в запросе потребуется использовать информацию, которая содержится во всех трёх связанных таблицах базы данных.
- Находясь в окне базы данных, перейдите на вкладку Запросы и выберите Создание запроса в режиме конструктора.
- В окне «Добавление таблицы» включите в запрос все три таблицы: сначала таблицу «СТУДЕНТ», затем таблицу «СЕССИЯ» и таблицу «СКИДКА ОПЛАТЫ», каждый раз нажимая кнопку Добавить, а после добавления всех таблиц нажмите на кнопку Закрыть. (Можно также выделить все таблицы и один раз нажать на кнопки Добавить и Закрыть.) Все таблицы, связанные между собой, появятся в верхней части окна «Запрос на выборку».
- Включите необходимые поля из таблиц в запрос: из таблицы СТУДЕНТ поля «Фамилия», «Имя», «Отчество», «Группа»; из таблицы СКИДКА ОПЛАТЫ поле «Процент скидки».
- Введите условие отбора. Для этого в строке «Условие отбора» под полем «Процент скидки» введите выражение «>0» (без кавычек!).
- Упорядочите выводимые в запросе данные по полю «Фамилия» в алфавитном порядке. Для этого щёлкните в строке «Сортировка», в поле «Фамилия» и в появившемся списке выберите «По возрастанию».
- Выполните запрос и проверьте правильность полученной информации (должно быть 3 отличника со скидкой 20%; 7 хорошистов с одной четвёркой со скидкой 10%; 4 хорошиста с двумя четвёрками со скидкой 5%).
- Закройте запрос, сохранив его под именем «Скидки студентам».
- Создайте отчёт с именем «Проект приказа», основанный на сформированном раннее запросе «Скидки студентам», выбирающем из таблиц базы данных информацию о студентах, которым по результатам экзаменационной сессии предоставляются скидки в оплате за обучение, и о размере этих скидок. На основе этого отчёта ректор института впоследствии может издать приказ.
- В окне базы данных нажмите на кнопку Отчёты и выберите двойным щелчком Создание отчёта с помощью мастера.
- На первом шаге мастера выберите в качестве источника данных в поле «Таблицы и запросы» последний созданный запрос «Скидки студентам». Из этого запроса выберите все доступные поля (из левого окна) для включения в отчёт, для чего нажмите на кнопку «>>», при этом все поля из левого окна будут перенесены в правое окно. Нажмите на кнопку Далее.
- На втором шаге Мастер предлагает выбрать вид представления данных, который устанавливает по умолчанию по таблице СТУДЕНТ (в левом окне). С этим следует согласиться и нажать кнопку Далее.
- На третьем шаге мастер спрашивает, следует ли добавить уровни группировки. Для того, чтобы в отчёте фамилии студентов располагались не общим списком, а с разбивкой по учебным группам, необходимо добавить один уровень группировки по полю «Группа». Для этого в левом окне выделите поле Группа и, нажав на кнопку «>», перенесите его в правое окно. Нажмите на кнопку Далее.
- На четвёртом шаге следует установить порядок сортировки записей в отчёте. Общепринято, что фамилии должны располагаться в пределах каждой группы в алфавитном порядке. Поэтому щёлкните в первом поле по кнопке раскрывающегося списка (с чёрным треугольником с вершиной вниз) и выберите в качестве поля сортировки поле Фамилия, на кнопке, расположенной справа от первого поля должно быть значение «По возрастанию», т.е. в алфавитном порядке (если это не так, щёлкните по ней). Аналогично в качестве второго поля сортировки выберите поле Имя, по которому записи также должны следовать также в порядке возрастания. Остальные поля сортировки можно не заполнять. Нажмите на кнопку Далее.
- На пятом шаге мастера согласитесь с предложенным видом макета для отчёта: макет ступенчатый; ориентация книжная. Нажмите на кнопку Далее.
- На шестом шаге выберите требуемый стиль отчёта строгий, который обычно устанавливается по умолчанию, и нажмите на кнопку Далее.
- На последнем, седьмом шаге задайте имя отчёта Проект приказа, и нажмите на кнопку Готово. На экране появится вид отчёта в режиме просмотра.
- Улучшите вид созданного отчёта. Для этого перейдите в режим конструктора отчётов, нажав на кнопку с изображением чертёжного треугольника голубого цвета. В области Заголовка отчёта выделите заголовок и переместите его в центр по горизонтали. Для перемещения следует поместить курсор мыши на заголовок и найти место, где он принимает вид руки. Причём, необходимо иметь в виду, что курсор с изображением руки только с одним указательным пальцем перемещает один отдельно взятый объект, а курсор с изображением руки с пятью пальцами перемещает группу связанных объектов. В области Верхнего колонтитула, а затем и в области Заголовка группы уменьшите размер поля Группа, смести его правую границу влево (курсор при этом должен имеет вид горизонтальной двунаправленной стрелки). В области Верхнего колонтитула сместите влево поля Фамилия, Имя, Отчество, Процент скидки, для чего выделите сначала одно поле простым щелчком, а затем остальные с нажатой клавишей Shift, затем переместите всю группу объектов влево курсором с изображением руки с пятью пальцами. Переместите соответственно влево эти же поля и в Области данных. В области Верхнего колонтитула и в Области данных несколько уменьшите размер поля Процент скидки, сместив его правую границу влево. Можете по своему усмотрению сделать собственные изменения в макете отчёта. Чтобы посмотреть окончательный вид отчёта, перейдите в режим просмотра. Вид отчёта должен приблизительно соответствовать рисунку.
- Закройте отчёт, сохранив все изменения.
- Предъявите преподавателю результаты работы. После оценки вашей работы преподавателем закройте базу данных с сохранением всех данных.
PAGE 1
Применить фильтр
Изменить фильтр
Выполнить
Групповые операции
Построитель
Набор значений
Кнопки панели инструментов Конструктора запросов
СТУДЕНТ
СКИДКА ОПЛАТЫ
СЕССИЯ
Выполнить
Групповые операции
Построитель
Набор значений
Кнопки панели инструментов Конструктора запросов