Uploaded by Евгений Чуриков

Информ

advertisement
Липецкий государственный технический университет
Факультет автоматизация и информатики
Кафедра информатики
Курсовая работа
По дисциплине «Системы управления базами данных»
на тему «Факультет ФАИ»
Студент
___________
Чуриков Е.В.
подпись, дата
фамилия, инициалы
Группа З-УТ-20-1
Руководитель
к.т.н. доцент
___________
Батищев.Р.В.
ученая степень, ученое звание
подпись, дата
фамилия, инициалы
Липецк 2023г
Аннотация
Целью данной работы является приобретение навыков проектирования баз
данных. Перед началом детального обсуждения способов проектирования необходимо отметить, что любая база данных является составной частью некой информационной системы, которая подразумевает не только хранение данных, но и
их обработку. Поэтому, проектированию данных всегда сопутствует проектирование алгоритмов их использования. Здесь мы рассмотрим все этапы проектирования информационной системы от функционального моделирования предметной области, до построения структуры реляционной базы данных и удобного интерфейса для работы с ней.
При работе с небольшими базами данных удобно использовать приложение
Microsoft Access - систему управления реляционными базами данных корпорации Microsoft. В данной работе будет рассмотрен пример создания базы данных
описания работы отдела кадров магазина с помощью этого СУБД. Несмотря на
встроенный язык программирования VBA, в Access не очень удобно создавать
пользовательский интерфейс, поэтому воспользуемся еще одним продуктом корпорации Microsoft – Visual Studio, знакомым вам по предыдущим дисциплинам.
Visual Studio – это линейка продуктов компании Microsoft, включающая в себя
интегрированную среду разработки программного обеспечения.
В работе рассматривается пример проектирования предметной области отдела кадров магазина сантехники ОАО “Атлант”. При описании предметной области магазина компьютерного оборудования в Access будет создана база данных,
содержащая таблицы, приведенные к третьей нормальной форме, несколько запросов, отчетов и диаграмму. Далее в Microsoft Visual Studio создадим исполняемый файл, содержащий удобный интерфейс пользователя для работы с созданной базой данных.
2
Оглавление
Аннотация .................................................................................................................... 2
1. Создание таблицы базы данных в режиме таблицы ............................................ 4
2. Создание таблицы базы данных в режиме конструктора таблиц ..................... 10
3. Ввод данных с помощью формы краткая справка ............................................. 17
4. Разработка детального отчета .............................................................................. 20
5. Поиск, фильтрация и сортировка данных ........................................................... 22
6. Формирование запросов ....................................................................................... 25
8. Разработка информационно-логической модели и создание многотабличной
базы данных ............................................................................................................... 40
9. Формирование запросов к многотабличной базе данных ................................. 45
10.Разработка многотабличной формы отчета ....................................................... 48
Список источников .................................................................................................... 50
3
1. Создание таблицы базы данных в режиме таблицы
Сразу после запуска Access откроется диалоговое окно «Microsoft Access».
В нем предлагается создать новую базу данных, использовать шаблоны из
Интернета или открыть существующую базу данных. Если щелкнуть указателем
мыши по заголовку Новая база данных, то справа откроется окно базы данных, в
котором необходимо ввести ее название и указать расположение, после чего
нажать кнопку Создать.
4
В рабочем окне вкладок Все таблицы находятся названия созданных таблиц базы данных. После нажатия на кнопку Создать откроется вкладка Таблица
1 , открытая в Режиме таблицы.
Последующие действия связаны с изменением имен полей таблицы и заполнением ее данными. Например, в качестве возможного примера рассмотрим
построение таблицы базы данных по результатам экзаменационной сессии. В
графе Оценка помещены данные, характеризующие баллы, полученные студентом на сессии: УДО — хотя бы один балл ниже 80; ХОР — баллы в пределах от
80 до 92; ХОТ — баллы в пределах от 80 до 100; ОТЛ — баллы в пределах от 93
до 100
5
Запустите СУБД Access. Создайте таблицу СЕССИЯ в режиме таблицы для
хранения результатов экзаменов . Сохраните полученную таблицу.
Технология работы
1. Запустите программу Microsoft Access, для этого:
- выполните команду Пуск, Все программы, Microsoft Office, Microsoft
Office Access;
- в открывшемся окне «M icrosoft Access» нажмите кнопку Office ^ в левом
верхнем углу экрана, в открывшемся вертикальном меню командой Создать вызовите диалоговое окно « Новая база данных », в котором в поле Имя файла введите SESS.mdb и нажмите кнопку Создать;
- в результате откроется диалоговое окно «SESS.mdb: база данных (Access
2007)».
2. Создайте заготовку таблицы и введите данные, выполняя следующие
действия:
- двойным щелчком выделите ячейку с надписью Добавить поле и введите
новое имя столбца Номер;
- после этого щелкните мышью по пустому полю ниже, чтобы выйти из
6
режима редактирования имени столбца, справа появится новый столбец с надписью Добавить поле; • аналогичным образом введите новые заголовки следующих
столбцов: ФИО, Информ, Матем, Эконом, Иностр, Оценка;
- заполните данными и заготовку таблицы.
3. Щелчком мыши выделите созданную первую таблицу и активизируйте
режим Конструктор таблиц, для этого на вкладке Главная в группе Представления нажмите кнопку Вид и в списке выберите пункт Конструктор. Откроется диалоговое окно «Сохранение», в котором введите имя таблицы СЕССИЯ и нажмите
ОК.
4. В появившемся окне структуры таблицы режима Конструктор таблиц
сделайте поле Номер ключевым. Для этого выделите поле с именем Номер и
нажмите на кнопку Ключевое поле.
5. Сохраните полученную таблицу по команде Сохранить на панели быстрого доступа Завершите работу с таблицей СЕССИЯ, нажав кнопку Закрыть 2.
Таблица «Сессия».
7
6. Самостоятельно создайте таблицу УСПЕВАЕМОСТЬ с ключевым полем
Дата по данным, приведенным на рис. 8.1.7.
8
Таблица «Успеваемость»
С ключевым словом «дата»
9
2. Создание таблицы базы данных в режиме конструктора таблиц
Если в окне , щелкнув правой кнопкой мыши по вкладке Таблица1, выбрать Конструктор, то появится окно конструктора таблицы , в котором потребуется сформировать структуру создаваемой таблицы. В верхней части окна конструктора располагается таблица, содержащая имена всех полей и типы данных.
Одно из полей таблицы должно быть определено как ключевое. Чтобы создать
его, следует установить курсор на нужную строку бланка и нажать кнопку Ключевое поле на панели инструментов или выбрать команду Ключевое поле из контекстного меню, связанного с данной строкой. После ввода имени поля и типа
данных в секции Свойства поля на вкладке Общие следует задать свойства каждого поля. Рассмотрим размеры и форматы полей для различных типов данных.
Текстовый тип применяется для текстовой информации и чисел, не участвующих
в математических расчетах (до 255 символов)
Числовой тип применяется при выполнении над данными математических
операций. Размер числового поля может принимать значения из следующего
списка: 1) байт — целые числа в пределах от 0 до 255; 2) целое — целые числа
от -3 2 768 до 32 767; 3) длинное целое — от -2 147 483 648 до 2 147 483 647; 4)
с плавающей точкой (4 байта) — числа в пределах о т -3.402 823 Е38 до 3.402 823
Е38; 5) с плавающей точкой (8 байт) — числа в пределах от -1.797 693 134 862 32
Е308 до 1.797 693 134 862 32 Е308. Формат числового поля определяется кодовыми символами: . — десятичный разделитель; , — разделитель групп разрядов;
0 — вывод цифры или нуля, если разряд незначащий; # — вывод цифры; $ —
вывод знака доллара; % — вывод числа в процентном формате. Например, число
123 456,789 в формате # # # 0 ,0 0 выглядело бы так: 123 456.79. Денежный тип
применяется в специальных числовых полях, используемых для операций с деньгами. Денежный формат по умолчанию представляет собой числа, записанные с
двумя знаками после запятой, с разделением групп разрядов и обозначением
рубля буквой «р» в конце. Счетчик — специальное числовое поле, в котором
Access автоматически присваивает уникальный разрядовый номер каждой за10
писи. Обычно для изменения счетчика устанавливают формат последовательный. Дата/время — этот тип предназначен для хранения информации о дате и
времени. Чаще всего используется краткий формат даты (ДД.ММ.ГГ, где Д —
день, М — месяц, Г — год) и времени (СС.ММ.ЧЧ, где С — секунда, М — минута, Ч — час). Вместо точки иногда используется наклонная черта « /» . Поле
MEMO применяется для хранения произвольного текста, комментариев (до 64
000 символов). Логический тип может иметь только одно из двух значений «Да»
или «Нет».
Поле типа Объект OLE предназначено для хранения объекта, созданного
другим приложением (например, электронная таблица Excel или текст Word).
Максимальный размер — примерно 1 гигабайт. Используется для ввода рисунков, графиков, таблиц и др. Опишем наиболее употребительные свойства полей
на вкладке Общие. Свойство Значение по умолчанию позволяет автоматически
подставлять заданные значения во все вновь созданные поля, тем самым экономится время при вводе. Логическое свойство Обязательное поле при значении
«Да» требует обязательного ввода данных в каждую ячейку поля. Логическое
свойство Пустые строки при значении «Да» допускает наличие пустых строк в
таблице. Свойство Индексированное поле имеет одно из трех значений:1 )поле
не индексировано; 2 )поле индексировано, но допускаются повторяющиеся значения; 3) поле индексировано и повторения значений поля запрещены.
1. Сформируйте структуру таблицы СТУДЕНТ (рис. 8.1 .9 ) для хранения в
ней справочных сведений о студентах и заполните ее данными. Имена, типы и
размеры полей приведены на рис. 8.1.10.
11
12
Таблица «Студент»
2. На основании данных рис. 8.1.11 создайте таблицу в режиме конструктора и сохраните ее под именем АНКЕТА.
Таблица «Анкета»
13
Технология работы
1. Перейдите в режим конструктора новой таблицы СТУДЕНТ, для этого в
окне «SESS: база данных (Access 2007)» перейдите на вкладку Создание, в
группе Таблицы нажмите кнопку Конструктор таблиц и нажмите кнопку Создать
— появится окно «Таблица 1».
2. Для создания первого числового столбца таблицы с названием Номер
проделайте следующее:
- в первой строке столбца Имя поля напечатайте Номер; затем нажмите клавишу Tab, чтобы перейти к столбцу Тип данных;
- в столбце Тип данных с помощью кнопки 1Ы1 найдите в списке тип данных Числовой’,
- в секции Свойства поля с вкладкой Общие щелкните на строке Размер
поля и с помощью кнопки llll установите Длинное целое’,
- аналогичным образом сделайте установки для других свойств поля: Формат поля: Основной; Число десятичных знаков: 5; Обязательное поле: Да; Индек-
14
сированное поле: Да (совпадения не допускаются). Перейдите к описанию следующего поля ФИО, щелкнув мышью на второй строке столбца Имя поля:
- напечатайте ФИО и нажмите клавишу Tab;
- с помощью кнопки И выберите в списке Тип данных тип Текстовый;
- в секции Свойства поля введите следующие данные: Размер поля: 15; Обязательное поле: Да; Пустые строки: Нет; Индексированное поле: Нет. Перейдите
к описанию следующего поля Пол, щелкнув мышью третью строку в столбце
Имя поля: • напечатайте Пол и нажмите клавишу Tab;
- установите тип данных Текстовый;
- в секции Свойства поля введите следующие данные: Размер поля: 1; Обязательное поле: Да; Пустые строки: Нет; Индексированное поле: Нет.
Перейдите к описанию следующего поля Дата рождения, щелкнув мышью
четвертую строку в столбце Имя поля:
- напечатайте Дата рождения и нажмите клавишу Tab; • установите тип данных Дата/время;
- в секции Свойства поля установите следующие данные: Формат поля:
Краткий формат даты; Обязательное поле: Да; Индексированное поле: Нет. Перейдите к описанию последнего поля Группа, щелкнув мышью пятую строку в
столбце Имя поля: • напечатайте Группа и нажмите клавишу Tab; • выберите тип
данных Текстовый;
- в секции Свойства поля установите следующие данные: Размер поля: 4;
Обязательное поле: Да; Пустые строки: Нет; Индексированное поле: Нет
3. Сделайте поле Номер ключевым. Для этого:
- выделите строку Номер;
- щелкните на кнопке Ключевое поле. 4. Сохраните полученную информацию в файле SESS:
- выполните команду Сохранить на панели быстрого доступа;
- в окне «Сохранение» введите имя таблицы СТУДЕНТ;
- щелкните кнопку О К и завершите работу с таблицей, нажав кнопку Закрыть 1Ш. 5. Чтобы ввести данные в таблицу СТУДЕНТ, проделайте следующее:
15
- в окне «SESS: база данных» двойным щелчком мыши откройте таблицу
СТУДЕНТ;
- переходя от одного столбца таблицы к другому при нажатии клавиши Тab,
заполните ее данными из рис. 8.1.9. 6. Сохраните таблицу СТУДЕНТ и закройте
ее. 7. Распечатайте таблицу СТУДЕНТ, для этого:
- двойным щелчком мыши откройте таблицу СТУДЕНТ;
- перед печатью просмотрите таблицу, для этого в меню кнопки Office выполните команду Печать, Предварительный просмотр;
- если внешний вид таблицы устраивает вас, то переходите к печати таблицы, нажав кнопку Печать ^
16
3. Ввод данных с помощью формы краткая справка
Данные в таблицу БД гораздо удобнее вводить, если пользоваться специальной формой. Такой способ ввода позволяет видеть на экране все данные одной
записи и вводить текст, поясняющий значения каждого поля. Можно создать
форму, напоминающую печатную форму, расположить в ней окна списков, фотографии, графики и др.
Существуют несколько стандартных видов форм, которые программа может построить автоматически. Например, для таблицы с именем СТИПЕНДИЯ
при нажатии кнопки Форма на экране появится форма с заголовком СТИПЕНДИЯ и полями ввода Оценка и Процент, расположенными в одну строку. Кроме
того, Access 2007 располагает следующими средствами построения форм. Конструктор — позволяет составить произвольную форму с различными элементами
управления, взятыми из Списка полей (вызывается нажатием кнопки Добавить
существующие поля). Разделенная форма — новая возможность в Microsoft
Office Access 2007, позволяющая одновременно отображать данные в двух представлениях — в режиме формы и в режиме таблицы. Несколько элементов —
создание формы, в которой записи отображаются в виде таблицы, при этом каждая запись занимает отдельную строку. Другие формы: 1. Мастер форм дает возможность в многошаговом режиме задавать такие компоненты формы, как поля,
вид, стиль и оформление формы. 2. Сводная таблица объединяет в себе данные
более одной таблицы БД. 3. Модальное диалоговое окно определяет открытие
формы как модального окна. Если форма открывается как модальное окно, то,
прежде чем переместить фокус (способность объекта принимать действия мыши
или клавиатуры) на другой объект, необходимо закрыть это окно. 4. Сводная диаграмма представляет числовые значения, содержащиеся в какой-нибудь таблице,
в графическом виде.
1. Создайте структуру таблицы СТИПЕНДИЯ в режиме конструкторасогласно данным рис. 8.1.13.
17
Технология работы 1.
Создайте структуру таблицы СТИПЕНДИЯ в режиме конструктора:
- в окне «SESS: база данных» выберите вкладку Создание и щелкните
кнопку Конструктор таблиц;
- в окне «Таблица 1» введите свойства первого поля: Имя поля: Оценка
(сделайте ключевым); Тип данных: Текстовый; Размер поля: 3; Обязательное
поле: Да; Пустые строки: Нет; Индексированное поле: Да;
- введите свойства второго поля: Имя поля: Процент; Тип данных: Денежный; Формат поля: Процентный; Число десятичных знаков: 0; Обязательное
поле: Да; Индексированное поле: Нет;
- выполните команду Сохранить, в поле Имя таблицы введите СТИПЕНДИЯ и нажмите кнопку ОК.
2. Заполните таблицу СТИПЕНДИЯ данными согласно рис. 8.1.13.
3.Создайте форму для ввода данных в таблицу СТИПЕНДИЯ. Для этого:
в окне «SESS: база данных» установите вкладку Создание и нажмите
кнопку Форма;
- в открывшемся окне СТИПЕНДИЯ щелкните правой кнопкой мыши по
вкладке и выберите Режим формы; • заполните поля ввода данными
- выполните команду Office, Сохранить;
- в появившемся окне «Имя формы» введите ФОРМА1 и нажмите кнопку
ОК; • закройте форму СТИПЕНДИЯ нажатием кнопки Закрыть ш
Таблица «Стипендия»
18
19
4.Разработка детального отчета
Для получения улучшенного внешнего вида выводимых данных необходимо подготовить детальный отчет. Он должен иметь наглядную форму и содержать больше информации, чем простая распечатка таблицы. Для создания обычного детального отчета целесообразно использовать мастер отчетов. При создании простого отчета выводятся все поля и записи из таблицы или запроса, причем
каждое поле — на отдельной строке. Процесс построения отчета с помощью мастера является многошаговым. На первом шаге выбираются поля, отображающиеся в отчете. На втором шаге осуществляется группировка данных по типам или
уровням иерархии. Третий шаг — это проведение сортировки выбранных полей.
Четвертый и пятый шаги связаны с оформлением общего вида и стиля отчета.
Если созданный мастером отчет не полностью вас удовлетворяет, то его можно
изменить в режиме конструктора.
С помощью мастера создайте детальный отчет для вывода данных таблицы
СТУДЕНТ. Вид отчета представлен на рис. 8.1.14.
Технология работы
1. Внешний вид таблицы при подготовке к печати удобно задать с помощью
Мастера отчетов. Для этого:
- в окне «SESS: база данных» установите вкладку Создание, в группе Отчеты нажмите кнопку Мастер отчетов;
20
- в поле Таблицы и запросы в качестве источника данных выберите таблицу
СТУДЕНТ;
- в поле Доступные поля выделите и кнопкой [>] переместите в окно «Выбранные поля» следующие поля: ФИО, Дата рождения и Группа;
- нажмите кнопку Далее, появится окно с предложением установить уровни
группировки отчета, в нашем случае группировка не требуется, поэтому нажмите
кнопку Далее, появится окно с предложением сортировки. В первом списке выберите поле ФИО и нажмите кнопку Далее;
- в появившемся окне выберите макет отчета Табличный и его ориентацию
Книжная и нажмите кнопку Далее;
- в следующем диалоговом окне выберите требуемый стиль Официальная
и нажмите кнопку Далее; • задайте имя отчета СТУДЕНТ и нажмите кнопку Готово. 2. Сохраните созданный отчет, выполнив команду Сохранить.
21
5. Поиск, фильтрация и сортировка данных
Access предоставляет довольно широкие возможности для поиска и отбора
информации в базе данных. К таким средствам можно отнести использование команд и кнопок панелей инструментов, обеспечивающих фильтрацию, сортировку, создание и использование запросов. Фильтрация — это отбор записей, удовлетворяющих принятому критерию. Существуют три фильтра, с помощью которых производится фильтрация: 1) фильтр по выделенному; 2) обычный фильтр;
3) расширенный фильтр. Фильтр по выделенному обеспечивает запуск самого
простого фильтра, в котором критерием фильтрации служит одна ячейка в таблице. Например, если в числовом поле выделить ячейку с числом 33, то, применяя указанный фильтр, получим лишь записи, содержащие в данном поле число
33. Команда Дополнительно, Изменить фильтр позволяет перейти к формированию условий отбора в окне обычного фильтра. По этой команде открывается
окно, в котором критерий фильтрации по каждому полю представлен в виде
списка. Вкладка ИЛИ позволяет создать дополнительные критерии. Объединение по ИЛИ означает, что после фильтрации будут показаны все записи, которые
были отобраны по критериям на каждой из вкладок. В тех случаях, когдав критерии отбора требуется значение параметра, не входящее в список значений поля,
используется расширенный фильтр. Расширенный фильтр запускается командой
Дополнительно, Расширенный фильтр. На рис. 8.1.16 показано окно расширенного фильтра, в котором задаются условия отбора данных в таблице СТУДЕНТ.
Условия отбора и другие необходимые параметры вводятся в четыре строки
бланка, имеющие следующее назначение. Поле. В этой строке содержатся имена
полей. Ячейки, расположенные ниже имени поля, относятся к данному полю.
Сортировка. Определяет способ сортировки (по возрастанию или убыванию) записей по соответствующему полю. Условия отбора. Содержат критерии, по которым выбираются записи. Или. С помощью этой строки вводится дополнительное
условие отбора. Фильтр (запрос) будет находить записи, где является истинным
хотя бы одно из условий отбора. Исходные данные восстанавливаются командой
Дополнительно, Очистить все фильтры.
22
С данными таблиц СТУДЕНТ проведите следующие виды поиска, сортировки и отбора данных:
- выполните отбор данных, используя фильтр по выделенному и обычный
фильтр;
- отсортируйте фамилии студентов;
- выполните отбор данных, используя расширенный фильтр. Технология
работы
1. Выведите записи таблицы СТУДЕНТ, содержащие информацию о студентах группы ЭУ1, используя Фильтр по выделенному:
- выделите таблицу СТУДЕНТ и двойным щелчком откройте ее;
- в столбце Группа выделите мышью текст «ЭУ1» в любой строке;
- на вкладке Главная в группе Сортировка и фильтр нажмите кнопку Выделение, Равно «ЭУ1». В результате в таблице останутся записи лишь со студентами группы ЭУ1. Удалите фильтр (восстановите все записи формы), для чего
отожмите кнопку Применить фильтр.
2. Применяя обычный фильтр к таблице СТУДЕНТ, выведите информацию
о студентках, которые учатся в группе ЭУ2, для этого:
- щелкните по треугольной кнопке фильтра в заголовке поля Пол I пол - и
выберите Ж;
23
- щелкните в строке поля Группа и с помощью кнопки выберите ЭУ2. В
результате отобразятся только те записи, которые удовлетворяют введенному
критерию. Восстановите на экране таблицу СТУДЕНТ, отжав кнопку Применить
фильтр. 3. Отсортируйте записи таблицы СТУДЕНТ в соответствии с алфавитным порядком фамилий студентов, что потребует следующих действий:
- щелкните на столбце ФИО;
- щелкните на кнопке Сортировка по возрастанию
Записи таблицы будут выведены в соответствии с алфавитным порядком.
4. Применяя расширенный фильтр, который необходим при составлении
более сложного условия выборки, выведите записи, относящиеся к студенткам,
родившимся после 1975 г. Для этой цели выполните следующий порядок действий: - на вкладке Главная, в группе Сортировка и фильтр нажмите кнопку Дополнительно и в меню этой кнопки выберите пункт Расширенный фильтр, появится окно расширенного фильтра;
- в строке Поле первого столбца с помощью кнопки выберите имя столбца
Пол; - в строке Сортировка первого столбца с помощью кнопки введите Отсутствует',
- в строке Условие отбора первого столбца напечатайте букву Ж;
- в строке Поле второго столбца выберите имя столбца Дата рождения;
- в строке Условие отбора второго столбца напечатайте условие >31.12.75,
в результате получим окно «СтудентФильтр!» на рис. 8.1.17.
- нажмите кнопку Применить фильтр. Восстановите исходную таблицу, отжав кнопку Применить фильтр. Закройте таблицу СТУДЕНТ и окно базы данных, щелкнув на соответствующих кнопках Закрыть.
24
6.Формирование запросов
В Access поиск и отбор нужной информации можно производить с использованием запросов, имеющих большие возможности, чем средства фильтрации.
Запрос представляет собой специальным образом сформулированное требование, определяющее состав производимых операций по выборке или изменению
данных, хранящихся в таблицах. Для подготовки запросов, как правило, используются два основных языка описания запросов:
- язык запросов по образцу QBE (Query By Example);
- структурированный язык запросов SQL (Structural Query Language). Указанные языки обладают практически одинаковыми возможностями. Главное отличие между ними заключается в способе формулирования запросов: язык QBE
предлагает ручное заполнение таблицы QBE, часто называемой бланком QBE
или бланком запросов, в то время как использование SQL означает программирование запроса. В Access могут быть созданы следующие типы запросов. Запрос
на выборку. Извлекает данные из одной или нескольких таблиц и отображает их
в таблице. Помимо этого, пользователю предоставляется возможность создавать
дополнительное вычисляемое поле с данными, полученными в результате проведения математических или логических операций с другими полями, и вводить
параметры (числа, тексты) запроса.
Запрос на изменение. Изменяет или перемещает данные. К этому типу относятся запросы на добавление или удаление записей, на создание или обновление таблицы. Итоговый запрос. Служит для вычисления итоговых значений
(сумма, среднее значение, количество по группам данных). Разновидностью итоговых запросов является перекрестный запрос, позволяющий представить итоговые данные в виде таблицы, напоминающей электронную. Обычно перекрестный запрос применяется к повторяющимся данным и связанным с ними датам,
чтобы получить более наглядную, сгруппированную по интервалам времени (месяц, квартал) информацию. Далее описываются основные принципы создания запросов по образцу и с помощью SQL-запросов. Все перечисленные выше виды
запросов можно реализовать, используя язык запросов QBE для заполнения
25
бланка запроса. Таблица QBE во многом напоминает расширенный фильтр, добавлена лишь строка Вывод на экран. Последняя определяет, будет V] или не будет [Ц поле выведено на экран монитора. Для указания условий отбора данных и
создания вычисляемых полей в запросах используются выражения. Выражения
представляют собой арифметические или логические формулы, по которым вычисляются необходимые значения. Выражения могут состоять из литералов, операторов, констант, идентификаторов, функций.
Литерал — это точное значение, которое Access использует именно в том
виде, как оно вводится. При записи литерала используются специальные символы-ограничители, указывающие на тип данных литерала. Если литерал —
число, то он вводится без ограничителей, например 465,5. Текстовый литерал
должен иметь в качестве ограничителя кавычки (" "), например "Петров". В литералах типа «Дата» используется ограничитель # . Например, # 1 2 /1 1 /9 6 # .
Оператор указывает действие, которое должно быть выполнено с элементами выражения. Имеются следующие группы операторов:
- арифметические: * умножение, 4- сложение, - вычитание, / деление, Л
возведение в степень;
- соединения частей текста: &, например = "Иван" & " " & "Петров";
- сравнения: < меньше, <= меньше или равно, > больше, >= больше или
равно, = равно, <> не равно;
- логические: AND (И), Not (Нет), OR (Или), XOR (исключающее Или);
- идентификации: разделители «!» и «.», определяющие поле в таблице
(например, поле ФИО в таблице СЕССИЯ: СЕССИЯ![ФИО]) или форму (например, форму «Личные дела»: Еогтз![Личные дела]). Идентификатор — это имя,
введенное в выражение для резервирования места под значение, которое хранится в поле или элементе управления. Идентификаторы заключаются в квадратные скобки [, ]. Например, [СЕССИЯ]![Оценка] относится к полю Оценка таблицы СЕССИЯ. Функция — это специальное имя, используемое для выполнения
какой-либо операции. Примерами функций могут служить: Avg() — среднее
арифметическое, Count() — количество записей, Sum() — сумма всех записей и
26
т. д. В круглых скобках (, ) заключены аргументы функций. В Access часто используется функция общего назначения Ilf (Условие,Значение 1,3начение2), которая возвращает Значение 1, если справедливо Условие, и Знамение2, если Условие не выполняется, и функция Format (Данные,Инструкция), возвращающая выражение, полученное форматированием Данных согласно Инструкции. Процедуру построения запроса можно упростить, если использовать построитель выражений (рис. 8.1.20), который запускается командой Построить контекстного
меню, связанного со строкой Условие отбора на бланке запроса. Окно построителя имеет четыре области. В верхней области располагается создаваемое выражение. Три нижние служат для выбора элементов. Они заполняются по иерархическому принципу. Левая область содержит список всех источников данных для
запроса. Ими могут быть таблицы, запросы, формы и т. д. Для облегчения поиска
нужной информации список представлен в виде дерева каталогов как в программе Проводник. Кроме того, в левый список включены папки, содержащие
функции, константы и операторы, которые могут быть использованы в выражении. Средний список служит для показа элементов, входящих в выбранный объект из левого списка. Например, если в левом списке указано имя таблицы ВЫЧИСЛЕНИЕ, то средний список будет содержать имена ее полей: Оценка, Процент, Размер и др. Если выбрана папка с функциями, то средний список будет
содержать перечень групп и функций. И наконец, правый список служит для выбора самых примитивных объектов. Для того чтобы перенести имя объекта в выражение, находящееся в верхнем окне, нужно два раза щелкнуть имя объекта в
одном из нижних списков. Кнопка Назад позволяет отменить ввод данных, а
кнопки со знаками математических операций служат для их быстрого ввода в выражение. Кроме традиционных знаков математических действий, построитель
содержит несколько специальных операторов, используемых также в SQL-запросах. Between And задает интервалы изменения, например условие Between 19 And
36 соответствует ограничению >= 19 And <= 36. Оператор In позволяет использовать списки значений. Например, выражение 1п("Иванов") позволяет отобрать
запись с указанной фамилией. Оператор Like используется для создания масок
27
при определении строк с неизвестными символами и требует дополнительных
специальных символов и правил синтаксиса: ? — знак вопроса обозначает любой
одиночный символ. Например, если неизвестно, как написать: Carl или Karl, то
условие можно задать в виде Like "?arl". * — звездочка обозначает любую последовательность символов. # — знак диеза обозначает любую неизвестную цифру.
| ] — квадратные скобки подразумевают, что перед выполнением запроса должно
быть активизировано окно диалога с приглашением ввести параметр, являющийся критерием отбора. Выражение в скобках выводится в этом окне в качестве
подсказки. Например, при создании запроса к таблице СЕССИЯ можно было бы
записать также условия для поля Матем: [Введите балл по математике от 93 до
100].
Используя таблицы АНКЕТА, СТУДЕНТ, СЕССИЯ, СТИПЕНДИЯ и
УСПЕВАЕМОСТЬ, создайте и выполните запросы на выборку (простой, с формированием вычисляемого поля и с параметром), запросы на изменение таблицы
(добавление, обновление и удаление записи), а также итоговые и перекрестные
запросы и запросы на создание таблиц.
Технология работы
Запросы на выборку
1. Откройте базу данных SESS.mdb.
2. Создайте запрос на выборку, позволяющий получить из таблицы СТУДЕНТ данные (таблицу с полями ФИО, Дата рождения, Группа) о студентах мужского пола, родившихся до 1976 г., выполняя следующие действия:
- в окне «SESS: база данных» перейдите на вкладку Создание и в группе
Другие нажмите кнопку Конструктор запросов, появятся два окна: «Запрос1» и
«Добавление таблицы »;
- выберите в окне «Добавление таблицы » таблицу СТУДЕНТ и нажмите
кнопку Добавить. Закройте окно «Добавление таблицы» нажатием кнопки Закрыть, станет активным окно запроса на выборку «Запрос!». Введите информацию в четыре столбца бланка запроса QBE.
28
- в первый столбец (рис. 8.1.21): Поле: ФИО; Имя таблицы: СТУДЕНТ; Вывод на экран: Условие отбора: отсутствует;
- во второй столбец: Поле: Пол; Имя таблицы: СТУДЕНТ; Сортировка: отсутствует; Вывод на экран: СИ; Условие отбора: "М";
- в третий столбец: Поле: Дата рождения; Имя таблицы: СТУДЕНТ; Сортировка: отсутствует; Вы.вод на экран: Ь/ Условие отбора: < #01.01.76#;
- в четвертый столбец: Поле: Группа; Имя таблицы: СТУДЕНТ; Сортировка: отсутствует; Вывод на экран: Is/ Условие отбора: отсутствует.
Сохраните запрос по команде Сохранить, в появившемся окне «Сохранение» введите имя Выборка1 и нажмите ОК. Нажмите кнопку Выполнить ! на
вкладке Конструктор.
3. В таблице СТИПЕНДИЯ создайте вычисляемое поле Размер, в котором
поместите значения стипендии, полученные умножением значений столбца Процент на число 80. Для этого:
- в окне «SESS: база данных» перейдите на вкладку Создание и в группе
Другие нажмите кнопку Конструктор запросов, появятся два окна: «Запрос2» и
«Добавление таблицы»;
- в окне «Добавление таблицы» выберите из списка таблицу СТИПЕНДИЯ
и нажмите кнопку Добавить. Закройте окно «Добавление таблицы» нажатием
кнопки Закрыть. Заполните данными три столбца бланка запроса QBE:
- первый столбец: Поле: Оценка; Имя таблицы: СТИПЕНДИЯ; Вывод на
экран: И ;
- второй столбец: Поле: Процент; Имя таблицы: СТИПЕНДИЯ; Сортировка: отсутствует; Вывод на экран: [vj;
- третий столбец: Вывод на экран: [\71: Имя таблицы: отсутствует; Сортировка: отсутствует.
4. В третьем столбце с помощью Построителя выражений создайте вычисляемое поле Размер, выполняя следующие действия:
- в строке Поле наберите текст Размер: и нажмите кнопку Построитель £ч
построитель в группе Настройка запроса;
29
- в открывшемся окне «Построитель выражений» в левом нижнем окне
щелкните два раза на значке Таблицы и двойным щелчком выделите таблицу
СТИПЕНДИЯ;
- в среднем нижнем окне выделите поле Процент и нажмите кнопку Вставить; удалите слово <>; завершите выражение вводом символов *80, в результате
параметры окна «Построитель выражений» примут вид, показанный на рис.
8.1.22;
- нажмите кнопку ОК, и введенное выражение окажется в строке Поле окна
«Запрос2»;
- переключите запрос в режим таблицы нажатием кнопки Вид в группе Результаты и просмотрите полученную таблицу;
- нажмите кнопку Сохранить, в появившемся окне введите имя запроса Вычисление и нажмите ОК. 5. Самостоятельно составьте и выполните запрос с именем Выборка2 к таблице СТУДЕНТ, позволяющий выделить записи с информацией о студентах группы ЭУ1. 6. Создайте запрос к таблице СЕССИЯ, позволяющий выделить имена студентов, имеющих оценки УДО, ХОР, ХОТ или ОТЛ,
используя оценку в качестве параметра. Для этого проделайте следующее:
- с помощью Конструктора запросов откройте окно нового запроса;
- заполните информацией первый столбец: Поле: ФИО; Имя таблицы: СЕССИЯ;
- заполните информацией второй столбец: Поле: Оценка; Имя таблицы:
СЕССИЯ; Условия отбора: [Введите оценку];
- щелкните на кнопке Выполнить, на экране появится диалоговое окно
«Введите оценку», введите оценку УДО и нажмите кнопку ОК;
- повторите действия с остальными оценками ХОР, ХОТ, ОТЛ. 7. Самостоятельно создайте запрос к таблице СТУДЕНТ, используя в качестве параметра
номер группы ЭУ2. 8. Создайте запрос к таблице СТУДЕНТ, позволяющий подсчитать количество студентов мужского пола в группе ЭУ1.
Для этого:
30
- с помощью Конструктора запросов откройте окно нового запроса и добавьте в него таблицу СТУДЕНТ;
- нажмите кнопку И тоги Y И т о ги на панели инструментов, в бланке запроса появится строка Групповая операция
- введите информацию в первый столбец: Поле: Пол; Имя таблицы: СТУДЕНТ; Групповая операция: Условие (выбирается из списка); Условие отбора:
"М";
- введите информацию во второй столбец: Поле: Группа; Имя таблицы:
СТУДЕНТ; Групповая операция: Условие; Условие отбора: "ЭУ1";
- введите информацию в третий столбец: Поле: Номер; Имя таблицы: СТУДЕНТ; Групповая операция: Count;
- нажмите кнопку Выполнить на панели инструментов, появится таблица с
новым автоматически заданным заголовком столбца Count - Номер и подсчитанным количеством записей, удовлетворяющих заданному условию. Задайте подходящий заголовок столбцу Count - Номер запроса (например, Количество), для
этого выполните следующую последовательность действий:
- нажатием кнопки Вид В и д переидите в режим конструктора, затем щелкните правой кнопкой мыши в столбце Номер;
- из контекстного меню выберите опцию Свойства’,
- на открывшейся вкладке Общие в строке Подпись введите заголовок Количество и нажмите кнопку Закрыть;
- нажмите кнопку Выполнить, в результате чего появится таблица — результат выполнения запроса с новым заголовком КОЛИЧЕСТВО. Сохраните полученный запрос под именем ИТ0ГИ1. 9. Создайте итоговый запрос, позволяющий рассчитать средний балл по информатике в таблице СЕССИЯ, для этого:
- с помощью Конструктора запросов откройте окно нового запроса и введите в него таблицу СЕССИЯ;
- нажмите кнопку Итоги;
- введите информацию в первый столбец: Поле: Информ; Имя таблицы:
СЕССИЯ; Групповая операция: Avg;
31
- нажмите кнопку Выполнить.
Самостоятельно измените заголовок столбца Avg_Информ на Среднее. Сохраните полученный запрос под именем ИТОГИ2.
32
7.Создание sql-запросов
Язык SQL (Structured Query Language) используется при создании запросов, а также для обновления и управления реляционными базами данных, такими
как базы данных M icrosoft Access. Когда пользователь создает запрос в режиме
Конструктора запроса, Microsoft Access автоматически создает эквивалентную
инструкцию SQL. Пользователь имеет возможность просматривать и изменять
инструкции SQL в режиме SQL. Изменения, внесенные в запрос в режиме SQL,
приведут к соответствующим изменениям в режиме Конструктора и наоборот.
Существуют запросы, которые либо исключительно сложны, либо вообще не могут быть определены. Это запросы к серверу, управляющие запросы и запросы
на объединение. Для создания таких запросов требуется ввести инструкцию SQL
непосредственно в окно запросов в режиме SQL. Инструкции SQL могут быть
использованы в Microsoft Access в тех ситуациях, когда требуется указать имя
таблицы, запроса или поля. Далее приведены основные обобщенные выражения
и примеры SQL-запросов.
Запросы на выборку:
Рассмотрим пример запроса на выборку: SELECT [ALL | DISTINCT] список полей FROM имена таблиц WRERE (критерий отбора) ORDER BY столбцы
сортировки [ASC | DESC] В этом примере: SELECT — команда, определяющая
запрос на выборку и содержащая список полей, в котором указываются поля, подлежащие выводу; ALL, DISTINCT — предикаты, включающие все строки, удовлетворяющие принятым условиям, исключающие строки с повторяющимися
данными; FROM имена таблиц — указание имен таблиц, из которых запрос должен отобрать данные; WHERE (критерий отбора) — определение условий для
отбора записей указанных таблиц; ORDER BY столбцы сортировки — определение порядка сортировки записей по возрастанию (ASC) или убыванию (DESC);
по умолчанию производится сортировка по возрастанию. Запрос на выборку, позволяющий получить из таблицы СТУДЕНТ данные (таблицу с полями ФИО, Дата
рождения, Группа) о студентах мужского пола, родившихся до 1976 г., имеет следующий вид:
33
SELECT СТУДЕНТ.ФИО, СТУДЕНТ. [Дата рождения],
СТУДЕНТ. Группа
FROM СТУДЕНТ
WHERE ((СТУДЕНТ.[Дата рож дения])<# 1 /1 /7 6 # )
AND ((СТУДЕНТ.Пол)="М")
В квадратных скобках указывается поле, название которого состоит из нескольких слов. Запрос на выборку с формированием в таблице СТИПЕНДИЯ вычисляемого поля Размер, в котором данные получаются умножением значений
столбца Процент на 80, имеет следующий вид:
SELECT СТИПЕНДИЯ.Оценка, СТИПЕНДИЯ.Процент,
[СТИПЕНДИЯ]![Процент]*80 AS Размер
FROM СТИПЕНДИЯ
И тоговые запросы
Рассмотрим пример итогового запроса:
SELECT [ALL | DISTINCT] список полей,
функция (имя поля)
AS [заголовок поля]
FROM имена таблиц
WHERE условие отбора
GROUP BY условие группировки
HAVING условие для результата
В этом примере:
AS [заголовок поля] — определение заголовка столбца результирующего
набора записей;
GROUP BY условие группировки — выбор поля, по значениям которого
записи объединяются в группы, к каждой из которых применяется функция;
HAVING условие для результата — одно или несколько условий, налагаемых на значения поля (заголовок поля), полученные после выполнения группировки и применения функции;
34
WHERE условие отбора — условие для отбора исходных записей перед выполнением группировки и применением функции.
Итоговый запрос для вычисления в таблице СТУДЕНТ количества студентов мужского пола в группе ЭУ1 имеет вид
SELECT СТУДЕНТ.Группа, СТУДЕНТ.Пол,
Count (СТУДЕНТ.Номер) AS [количество]
FROM СТУДЕНТ
GROUP BY СТУДЕНТ.Группа, СТУДЕНТ.Пол
WHERE ((СТУДЕНТ.Группа)="ЭУ 1")
AND ((СТУДЕНТ.Пол)"М")
Итоговый запрос, позволяющий рассчитать средний балл по информатике
в таблице СЕССИЯ, имеет вид
SELECT Avg (СЕССИЯ.Информ) AS Среднее
FROM СЕССИЯ
Создайте и выполните SQL-запросы на выборку и итоговые SQL-запросы.
Технология работы
1. Создайте новый запрос, выполняя следующие действия:
- на вкладке Создание нажмите кнопку Конструктор запросов',
- нажатием кнопки Закрыть удалите окно «Добавить таблицу»;
- в меню кнопки Вид выберите опцию режим SQL S Q L 2. В появившемся
окне создайте и выполните SQL-запрос к таблице СТУДЕНТ, позволяющий выделить записи с информацией о студентках группы Э У 1. Для этого в окне запроса введите следующий текст запроса:
SELECT Номер, ФИО, [Дата рождения], Группа
FROM СТУДЕНТ WHERE Группа= "Э У 1"
AND П о л = "М " Здесь в первой строке задаются четыре поля для вывода,
во второй строке указывается таблица, из которой выбираются поля, в третьей
строке запроса задается условие отбора. Нажмите кнопку Выполнить. Результат
выполнения SQL-запроса также является таблицей.
Сохраните запрос под именем SQL1 и закройте его.
35
3. В таблице СТИПЕНДИЯ создайте вычисляемое поле Профвзнос, а потом поместите в него значения профсоюзного взноса, полученные умножением
значений столбца Размер на 0,08. Для этого повторно проделайте действия п. 1.
После этого в окне запроса введите текст SQL-запроса:
SELECT Оценка, Процент, Процент*80 AS Размер
FROM СТИПЕНДИЯ Нажмите кнопку Выполнить.
Сохраните запрос под именем SQL2 и закройте его.
36
4. Создайте и выполните SQL-запрос к таблице СТУДЕНТ, позволяющий
выводить записи с полями Номер, ФИО, Дата рождения и Группа, используя номер группы в качестве параметра. Для этого повторите действия п. 1, а затем введите текст запроса:
SELECT Номер, ФИО, [Дата рождения], Группа
FROM СТУДЕНТ
WHERE Группа=[Введите группу]
Сохраните запрос под именем SQL3.
37
5. Самостоятельно создайте запрос к таблице СЕССИЯ, выводящий фамилии студентов, получивших оценку по экономике выше 80 баллов. Сохраните запрос под именем SQL4.
6. Самостоятельно создайте запрос к таблице СЕССИЯ, выводящий фамилии студентов, используя номер группы в качестве параметра. Сохраните запрос
под именем SQL5.
38
7. Создайте и выполните итоговый SQL-запрос к таблице СЕССИЯ, позволяющий подсчитать количество отличников и их средний бал по информатике:
SELECT Count (Информ) AS Количество,
Avg (Информ) AS Среднее
FROM СЕССИЯ
WHERE Информ>=93
Сохраните запрос под именем SQL6.
8. Самостоятельно создайте итоговый запрос к таблице УСПЕВАЕМОСТЬ,
позволяющий подсчитать средний балл по экономике.
Сохраните запрос под именем SQL7.
39
8. Разработка информационно-логической модели и создание многотабличной базы данных
База данных состоит из элементов данных и связей между ними. В базе
данных много различных типов элементов данных, поэтому необходима специальная схема, позволяющая изобразить связи между типами элементов данных.
Такую схему называют моделью данных. Схема представляет собой таблицу типов используемых данных, она содержит имена объектов и их атрибуты и определяет существующую между ними связь. Access является реляционной СУБД.
Основными понятиями реляционной БД являются: отношение (таблица, файл
БД), кортеж (строка таблицы, запись файла БД), домен (столбец таблицы, поле
файла БД). Все обрабатываемые данные в БД организованы в таблицы, обладающие свойствами реляционных таблиц, и результатом любой операции с данными
является таблица или совокупность таблиц. Реляционная структура базируется
на аппарате реляционной алгебры.
Постановка задачи Рассмотрим работу, связанную с назначением стипендии студентам по результатам экзаменационной сессии. С целью упрощения задачи рассмотрим данные по некоторым студентам двух учебных групп, сдающих
в сессию четыре экзамена. Стипендия назначается студентам, получившим хорошие и отличные оценки. Если получены только хорошие оценки ХОР (балл в пределах от 80 до 92), то назначается стипендия в размере 100% . За хорошие и отличные оценки ХОТ (балл в пределах от 80 до 100) устанавливается стипендия в
размере 150% , а за все отличные OTJ1 (балл в пределах от 93 до 100) — 200% .
Данные организованы в трех таблицах: СТУДЕНТ, СЕССИЯ, СТИПЕНДИЯ. В таблице СТУДЕНТ содержатся необходимые сведения о каждом студенте: номер личного дела, фамилия с инициалами, пол, дата рождения, номер
учебной группы. В таблице СЕССИЯ содержатся сведения о результатах сдачи
студентами четырех экзаменов: номер личного дела (совпадает с номером зачетной книжки), фамилия с инициалами, баллы по информатике, математике, экономике, оценка результатов сессии со значениями УДО, ХОР, ХОТ, ОТЛ. В таблице
40
СТИПЕНДИЯ содержится информация об условиях назначения стипендии студентам: оценка сдачи сессии и процент стипендии.
По результатам обработки информации в этих таблицах готовится проект
приказа о назначении стипендии. Информационно-логическая модель (ИЛМ),
представленная в графическом виде, приводится на рис. 8.1.23.
При проектировании БД целесообразно строить ИЛМ предметной области,
которая определяет совокупность информационных объектов, их атрибутов и
структурных связей. Информационный объект должен обладать следующими
свойствами: иметь имя, уникальный идентификатор, состав атрибутов, количество экземпляров. В качестве идентификатора используется один или несколько
атрибутов. Для решения поставленной задачи выделяются следующие информационные объекты и их ключи (ключ — это подчеркнутый атрибут):
СТУДЕНТ (Номер. ФИО, Пол, Дата рождения, Группа)
СЕССИЯ (Номер. ФИО, Информ, Матем, Эконом, Оценка)
СТИПЕНДИЯ (Оценка Процент)
Связи между информационными объектами отображаются реальными отношениями. Определены следующие три типа реальных отношений.
1:1 (один-к-одному) — одному экземпляру первого информационного объекта соответствует один экземпляр второго информационного объекта. Примером такого отношения может служить связь между информационными объектами поставленной здесь задачи
СТУДЕНТ < - - > СЕССИЯ
1:оо (один-ко-многим) — одному экземпляру первого объекта соответствует множество экземпляров второго объекта, а каждому экземпляру второго
41
объекта соответствует один экземпляр первого объекта. Примером данного отношения служит связь между информационными объектами поставленной здесь задачи
СТИПЕНДИЯ < - - >> СЕССИЯ
со:оо (многие-ко-многим) — каждому экземпляру первого объекта соответствует множество экземпляров второго объекта, и каждому экземпляру второго
объекта соответствует множество экземпляров первого объекта. Примером является связь между информационными объектами СТУДЕНТ и ПРЕПОДАВАТЕЛЬ. Реляционный подход к проектированию ИЛМ базируется на понятии нормализации. Теория нормализации основана на том, что определенный набор таблиц (отношений) в наилучшей степени отражает свойства предметной области и
в то же время обнаруживает лучшие качества по отношению к другим наборам
таблиц в процессе манипулирования. Спроектированные в данной задаче таблицы содержат только простые, далее неделимые данные (находятся в первой
нормальной форме), выполняется условие функционально-полной зависимости
неключевых атрибутов от ключа (находятся во второй нормальной форме), отсутствует транзитивная зависимость неключевых атрибутов от ключевых или отсутствуют зависимости между неключевыми атрибутами (находятся в третьей нормальной форме). Связи между атрибутами реализуются объединением атрибутов
в таблицу. Связи между объектами в реляционной базе не хранятся, а образуются
в процессе манипулирования.
Используя возможности Access, установите связи между таблицами СТУДЕНТ, СЕССИЯ и СТИПЕНДИЯ с применением схемы данных.
Технология работы
1. Расположите три таблицы СТУДЕНТ, СЕССИЯ и СТИПЕНДИЯ базы
данных SESS в схеме данных. Для этого:
- перейдите на вкладку Создание;
- нажмите кнопку Конструктор запросов, в появившемся окне «Добавление
42
таблицы» нажмите кнопку Закрыть ;
- щелчком правой кнопки мыши в верхней области окна запроса вызовите
контекстное меню, в котором выберите пункт Схема данных;
- в появившемся окне «Добавление таблицы» выберите таблицу СТУДЕНТ
и нажмите кнопку Добавить; • выделяя поочередно таблицы СЕССИЯ, СТИПЕНДИЯ и нажимая кнопку Добавить, вставьте их в окно схемы данных;
- закройте окно «Добавление таблицы», нажав кнопку Закрыть.
2. Установите связи между таблицами СТУДЕНТ и СЕССИЯ. Для этого:
- протащите указатель мыши от поля Номер таблицы СТУДЕНТ к полю
Номер таблицы СЕССИЯ;
- в появившемся диалоговом окне «Изменение связей» установите флажок
Обеспечение целостности данных, выберите тип отношения Один-к-одному и
нажмите кнопку Создать.
3. Установите связь между таблицами СТИПЕНДИЯ и СЕССИЯ следующим образом:
- протащите указатель мыши от поля Оценка таблицы СТИПЕНДИЯ до
поля Оценка таблицы СЕССИЯ;
- в появившемся диалоговом окне «Изменение связей» установите флажок
Обеспечение целостности данных, выберите тип отношений Один-ко-многим и нажмите кнопку Создать.
В результате перечисленных действий окно «Схема данных» приобретает
вид, изображенный на рис. 8.1.24.
43
4. Сохраните установленные между таблицами связи и выйдите из режима
схемы данных, для этого выполните команду С охранить, а затем нажмите на
кнопку Закрыть
44
9.Формирование запросов к многотабличной базе данных
Для получения определенных данных из базы данных пользователь может
построить запрос. Результатом выполнения запроса является таблица с временным набором данных (динамический набор). Записи динамического набора могут включать поля из одной или нескольких таблиц. Запросы используются аналогично таблицам. Соответствующий динамический набор можно просмотреть
в табличном представлении. На основе запроса можно построить отчет или
форму. Access обеспечивает корректную связь между таблицами базы данных за
счет ключевых полей. При включении в запрос связанных таблиц базы данных в
окне «Запрос на выборку» между ними автоматически возникает соединительная
линия. Если между таблицами, включенными в запрос, отсутствует связь, то
можно соединить таблицы в окне «Запрос на выборку». Для этого необходимо
наличие в них полей с совпадающими данными. Однако надо учесть, что такая
связь сохраняется лишь для данного запроса и при использовании этих же таблиц
в новом запросе требуется соединить их заново.
Постройте запрос, позволяющий выводить фамилию с инициалами, номер
студенческой группы и размер назначаемой стипендии. Указанные данные содержатся в двух связанных таблицах СТУДЕНТ и СЕССИЯ, а также в запросе ВЫЧИСЛЕНИЕ. Сформируйте запрос на создание таблицы.
Технология работы
1. Создайте новый запрос на основе связанных таблиц. Для этого:
- с помощью конструктора запросов создайте новый запрос;
- в окне «Добавление таблицы» выделите в списке таблицу СТУДЕНТ и
щелкните на кнопке Добавить;
- в этом же списке выделите и добавьте таблицу СЕССИЯ;
- в окне «Добавление таблицы» установите вкладку Запросы, выделите запрос ВЫЧИСЛЕНИЕ и нажмите кнопку Добавить; • закройте окно «Добавление
таблицы» нажатием кнопки Закрыть. Списки полей всех выбранных таблиц появляются в верхней части окна запроса. Между списками СТУДЕНТ и СЕССИЯ
45
автоматически возникает установленная ранее в схеме данных связь между таблицами.
2. Установите связь между таблицами СЕССИЯ и ВЫ ЧИСЛЕНИЕ, для
чего в списке полей таблицы СЕССИЯ выделите поле Оценка и протащите указатель мыши до поля Оценка списка ВЫЧИСЛЕНИЕ. В результате возникнет
связь между этими полями.
3. Присвойте запросу имя. Для этого выполните команду Сохранить и в
окне «Сохранение» введите имя ПРОЕКТ ПРИКАЗА.
4. Включите в запрос следующие поля из двух таблиц и запроса:
- из таблицы СТУДЕНТ в строке Поле установите поля ФИО и Группа;
- из запроса ВЫЧИСЛЕНИЕ — поле Размер.
5. Задайте условия отбора. Для отбора студентов на получение стипендии
в строке Условие отбора в поле Размер введите выражение > 0.
6. Расположите выводимые в запросе данные поля ФИО в алфавитном порядке. Для этого в поле ФИО щелкните по строке Сортировка и с помощью
кнопки найдите и выделите опцию По возрастанию. Окно сформированного запроса примет вид, показанный на рис.
7. Просмотрите сформированную запросом информацию нажатием на
кнопку Выполнить.
8. Закройте режим запроса, выполнив команду Закрыть. На вопрос о сохранении изменения макета или структуры запроса ответьте нажатием кнопки Да.
При появлении окна введите имя запроса ЗАПРОСЗ и нажмите кнопку ОК.
46
9. Самостоятельно создайте запрос из двух связанных таблиц СТУДЕНТ и
СЕССИЯ, позволяющий вывести Номер и ФИО студента из таблицы СТУДЕНТ,
а также рассчитать средний балл каждого студента, используя оценки таблицы
СЕССИЯ. Таблицы свяжите по полю Номер, а средний балл рассчитайте с помощью Построителя выражений. Сохраните запрос под именем СРЕДНЕЕ.
47
10.Разработка многотабличной формы отчета
В разделе 2. описываются виды отчетов, которые могут быть построены в
Access. В настоящем разделе рассматриваются возможности создания детального
отчета, в котором используется информация из различных таблиц баз данных.
Для создания отчета, включающего информацию из разных таблиц, используют
предварительно сформированный запрос для многотабличной базы данных.
Сформируйте отчет ПРОЕКТ ПРИКАЗА, основанный на созданном ранее
запросе ПРОЕКТ ПРИКАЗА, выбирающем из таблиц базы данных СТУДЕНТ,
СЕССИЯ и запроса ВЫ ЧИСЛЕНИЕ информацию о студентах, которым по результатам экзаменационной сессии назначается стипендия, и о размере стипендии.
Технология работы
1. Создайте новый отчет на основе сформированного ранее запроса ПРОЕКТ ПРИКАЗА, выбирающего из таблицы базы данных СТУДЕНТ и запроса
ВЫЧИСЛЕНИЕ информацию о студентах, которым по результатам экзаменационной сессии назначается стипендия. Для этого:
- установите вкладку Создание и нажмите кнопку Мастер отчетов;
- в диалоговом окне «Создание отчетов» выберите в качестве источника
данных запрос ПРОЕКТ ПРИКАЗА и нажмите кнопку Далее;
- на следующем шаге в окне «Создание отчетов» нажатием кнопки » переместите все Доступные поля (ФИО, Группа, Размер) в Выбранные поля и
нажмите кнопку Далее;
- на третьем шаге группировка не требуется, поэтому нажмите кнопку Далее;
- на четвертом шаге пропустите сортировку;
- на пятом шаге выберите вид макета табличный в секции Макет, книжную
ориентацию листа и щелкните кнопку Далее;
- на шестом шаге по собственному усмотрению выберите стиль отчета и
нажмите кнопку Далее;
- на седьмом шаге в поле ввода задайте имя отчета ПРОЕКТ ПРИКАЗА от
48
12.03.99 и нажмите кнопку Готово.
2. В меню кнопки Вид выберите пункт Конструктор и просмотрите отчет в
режиме конструктора отчетов. В поле Заголовок отчета измените цвет и размер
заголовка. Вернитесь в режим Представление отчета и убедитесь, что заголовок
в отчете отображается корректно, в противном случае вернитесь в режим конструктора отчетов и увеличьте ширину поля заголовка.
3. Сохраните отчет под именем ПРОЕКТ ПРИКАЗА и закройте его.
49
Список источников
1. https://www.stu.lipetsk.ru/assets/struct/resources/smk/docs/DocSMQ/sto/sto13-2016.pdf
2. https://accesshelp.ru/
3. https://www.google.ru/
50
Download