
- •Глава 2. Реляционные системы управления базами данных в среде ms Access
- •2.1. Однотабличные базы данных.
- •Спортсмены
- •Индивидуальные задания.
- •2.2. Многотабличные базы данных.
- •Индивидуальные задания.
- •2.3. Обработка результатов анкетирования с помощью ms Access
- •Результаты социологического опроса населения.
- •Индивидуальные задания.
Глава 2. Реляционные системы управления базами данных в среде ms Access
Сбором и накоплением данных, их корректировкой и сортировкой, отбором необходимых данных и прочими операциями занимается в той или иной мере любой специалист независимо от сферы деятельности. Особенно это актуально для тех, кто работает в информационной сфере производства, где основным сырьем и продуктом является информация. Среди программных продуктов, обеспечивающих переработку данных, весьма популярна система управления базой данных фирмы Microsoft Access.
В связи с этим любому инженеру, психологу, управленцу, экономисту, менеджеру, необходимо уметь создавать запросы к базам данных и оформлять на их основе необходимые документы заданной формы. Для этого необходимы знания организации реляционных баз данных и основные принципы их построения.
Практические занятия, приведенные в данном пособии, позволяют получить основные навыки работы с однотабличными и много табличными базами данных:
Уметь создавать однотабличные и многотабличные базы данных в рамках возможностей среды Microsoft Access.
Уметь создавать простые и вложенные формы для облегчения ввода исходных данных.
Создавать всевозможные запросы к базам данных для оценки состояния объекта или явления.
Оформлять результаты запросов в виде отчетов заданной формы.
Создавать различную документацию заданной формы.
При выполнении лабораторных работ предполагается, что студент должен быть знаком с основами работы с реляционными базами данных.
2.1. Однотабличные базы данных.
Упражнение 2.1. В спортивной школе необходимо вести учет личных дел спортсменов. Требуется хранить в базе данных информацию о фамилии, имени, отчестве спортсмена, дате рождения, поле, названии посещаемой секции, фамилии тренера, спортивные достижения (1-й разряд, 2-й разряд, кандидат в мастера спорта, мастер спорта, олимпийский чемпион и т.д.), домашний телефон, адрес места жительства. Каждое личное дело имеет свой уникальный номер.
Создание любой базы данных (БД) начинается с создания файла БД и присвоении ему имени. Для этого:
Откройте программу Access. Выполните команду Файл/Создать. В появившемся справа окне Создание выберите пункт Новая база данных.
В раскрывшемся окне Файл новой базы данных присвойте имя файлу База данных спортивной школы и выберите папку, в которой он будет храниться. Нажмите кнопку Сохранить.
Создание таблицы БД состоит из двух этапов:
1 этап. Создание структуры таблицы, то есть описания типа всех полей таблицы (текстовый, числовой, денежный, дата и т.д.). Этот этап выполняется в режиме Конструктора. После создания структуры при закрытии таблицы пользователю будет предложено сохранить ее и присвоить ей имя. Далее появится окно, где будет предложено создать ключевое поле. Если в БД имеется поле, которое уникально определяет каждую запись в таблице (то есть не будет одинаковых записей), в нашем случае это поле №личного дела, то нужно ответить нет, в противном случае – да. В последнем случае в таблице появится новое поле – Код (тип – счетчик), которое уникально пронумерует все записи и исключит возможность повторяющихся записей.
2 этап. Ввод данных в таблицу, который осуществляется в режиме Открыть.
Для создания таблицы выполните следующие действия:
Выберите слева вкладку Таблицы и дважды щелкните по кнопке Создание таблицы в режиме конструктора.
В окне Таблица1: таблица введите имя поля и тип данных в соответствии с таблицей 1. В окне Свойства поля во вкладке Общие укажите размер поля, то есть допустимое количество символов. По умолчанию оно равно 50. В столбце Описание могут быть помещены любые комментарии и заполнение его необязательно. Для даты рождения необходимо задать Формат поля, выбрав Краткий формат даты в предложенном списке.
Таблица 1.
Имя поля |
Тип данных |
Размер поля |
№личного дела |
Текстовое |
6 символов |
Фамилия |
Текстовое |
20 символов |
Имя |
Текстовое |
15 символов |
Отчество |
Текстовое |
15 символов |
Дата рождения |
Дата/Время |
Краткий формат |
Пол |
Текстовое |
1 символ |
Секция |
Текстовое |
30 символов |
Тренер |
Текстовое |
20 символов |
Достижения |
Текстовое |
30 символов |
Телефон |
Текстовое |
7 символов |
Адрес |
Текстовое |
50 символов |
Таким образом, вы создали структуру своей таблицы
Закройте таблицу и в окне Сохранение присвойте ей имя Спортсмены. На предложение Создать ключевое поле в данном случае следует ответить Нет, так как поле №личного дела уникально определяет каждую запись и не допускает повторения одинаковых записей.
Далее необходимо заполнить таблицу данными. Для этого выделите таблицу Спортсмены и выберите режим Открыть. При вводе данных перемещение от одного поля к соседнему, а так же в начало следующей записи выполняется клавишей Tab. Редактировать данные в ячейке можно как с полной, так и с частичной их заменой. Для удаления записи надо выделить ее и выполнить команду меню Правка/Удалить. Если запись не помещается в поле, увеличьте его ширину с помощью мыши. Из таблицы видно, что данные в полях Секция, Тренер и Достижения повторяются. В таких случаях для облегчения ввода целесообразно привести эти поля к виду Поля со списком. Покажем это на примере поля Секция. Закройте таблицу Спортсмены и создайте новую таблицу, содержащую только одно поле Секция. Присвойте таблице имя Виды секций. Ключевое поле задавать в данном случае не следует. Откройте таблицу Виды секций и заполните данными:
плавание
фигурное катание
гимнастика
Затем откройте таблицу Спортсмены в режиме конструктора. Выделите поле Секция и во вкладке Подстановка укажите тип поля Поле со списком. В открывшемся окне свойств поля со списком укажите:
Тип источника строк – Таблица или запрос
Источник строк – Виды секций.
В этом случае не будет необходимости вводить с клавиатуры названия секций, нужно будет их выбирать из раскрывающегося списка, щелкнув по треугольнику в правом углу поля Секция. Закройте таблицу Спортсмены, на вопрос о сохранении изменений ответьте Да. Затем откройте таблицу Спортсмены в режиме таблицы. При щелчке по полю Секция раскрывается список, из которого можно выбирать необходимые данные. По такой же методике приведите поля Тренер и Достижения к виду поля со списком.
Введите данные, как показано в таблице 2.
Таблица 2.
№личного дела |
Фамилия |
Имя |
Отчество |
Дата рождения |
Пол |
Секция |
Тренер |
Достижения |
Телефон |
Адрес |
1001 |
Иванов |
Сергей |
Викторович |
02.08.1980 |
м |
плавание |
Попов |
1-й разряд |
3456712 |
г.Москва, Кутузова, 4 кв.23 |
1002 |
Вершинина |
Анна |
Сергеевна |
12.06.1988 |
ж |
фигурное катание |
Соколов |
2-й разряд |
4443512 |
г.Москва, Грина, 8 кв.44 |
1003 |
Соловьев |
Алексей |
Петрович |
04.05.1991 |
м |
плавание |
Попов |
1-й разряд |
5544678 |
г.Москва, Шарапова, 1 кв.11 |
1004 |
Петрушенко |
Валентин |
Дмитриевич |
11.05.1988 |
м |
плавание |
Попов |
мастер спорта |
2345127 |
г.Москва, Летчиков, 7 кв.89 |
1005 |
Коваль |
Ирина |
Николаевна |
30.06.1990 |
ж |
гимнастика |
Белова |
кандидат в мастера спорта |
5647865 |
г.Москва, Профсоюзная,8 |
1006 |
Зубова |
Валентина |
Ивановна |
01.02.1993 |
ж |
фигурное катание |
Соколов |
2-й разряд |
6754321 |
г.Москва, Победы, 34 кв.6 |
1007 |
Широкова |
Антонина |
Сергеевна |
23.03.1994 |
ж |
гимнастика |
Белова |
3-й разряд |
2342341 |
г.Москва, Суворова, 10 кв.123 |
Для того чтобы значение в поле располагалось на нескольких строках, нужно увеличить ширину записи на необходимую величину.
Создание пользовательских форм.
Для удобства ввода данных в СУБД Access предусмотрена возможность создания пользовательских форм. Формы можно создавать с помощью мастера или конструктора. Второй способ предназначен для более квалифицированных пользователей. Новичкам для создания формы лучше воспользоваться мастером для создания форм.
Упражнение 2.2. Создадим форму Спортсмены. Для этого:
Откройте вкладку Формы. Дважды нажмите кнопку Создание формы с помощью мастера. В появившемся окне Создание форм в строке Таблицы и запросы выберите таблицу Спортсмены, переместите из окна Доступные поля необходимые для формы поля (в данном случае должны быть доступны все поля) в окно Выбранные поля. Нажмите кнопку Далее.
Выберите один из четырех возможных видов формы (в один столбец, ленточный, табличный, выровненный), например в один столбец. Нажмите кнопку Далее.
Выберите на свое усмотрение стиль, нажмите кнопку Далее, присвойте форме имя Спортсмены и нажмите кнопу Готово.
На экране появится форма, представленная на рисунке 1.
Рисунок 1.
В окне Запись стоит цифра 1, что соответствует первой записи. Всего записей в данном случае – 7. Чтобы просмотреть следующую запись, щелкните по кнопке, расположенной справа от окна Запись. Рядом с ней находится кнопка для перехода к последней записи. Последняя кнопка справа служит для создания новой записи. Две кнопки слева служат для просмотра записей в обратном порядке. Перемещение между полями формы осуществляется с помощью клавиши Tab. Размеры формы можно изменять с помощью мыши.
В том случае, если в окне поля видны не все символы, необходимо увеличить его ширину. Для того нужно перейти в режим конструктора путем нажатия кнопки Вид на панели инструментов и выбора пункта Конструктор. Форма откроется в режиме конструктора. Выделите необходимо поле и с помощью мыши увеличьте его ширину. Затем путем нажатия кнопки Вид вернитесь в режим формы.
Добавьте новую запись в БД. Для этого нажмите кнопку Перейти к новой записи и введите:
№личного дела |
Фамилия |
Имя |
Отчество |
Дата рождения |
Пол |
Секция |
Тренер |
Достижения |
Телефон |
Адрес |
1008 |
Пирогов |
Антон |
Николаевич |
03.10.1990 |
м |
плавание |
Попов |
Мастер спорта |
674532 |
г.Москва, Щелковское шоссе, 35 кв.124 |
Для того чтобы найти нужную запись, щелкните по кнопке на панели форматирования в виде бинокля. Предварительно курсор должен быть установлен в том поле, по которому выполняется поиск. Одновременно с поиском может выполняться замена данных.
Измените фамилию Соловьев на фамилию Шестаков. Для этого:
Установите курсор в окно поля Фамилия.
Щелкните по кнопке Найти.
В окне Поиск и замена введите образец Соловьев и нажмите кнопку Найти далее.
Обратите внимание на то, что в окне формы появились реквизиты Соловьева.
Во вкладке Замена в окно Заменить на введите: Шестаков. Нажмите кнопку Заменить.
Данные можно сортировать по возрастанию и по убыванию. Это действие выполняется с помощью соответствующих кнопок на панели Форматирование. Сортировку можно выполнять по любому полю, предварительно указав его курсором. Самостоятельно упорядочите данные по алфавиту.
Создание запросов.
Простые запросы на выборку.
Запросы служат для отбора данных по какому-либо признаку или комбинации признаков. Выборка данных выполняется для просмотра записей или их изменения. Запросы можно создавать либо с помощью мастера, либо в режиме конструктора.
Упражнение 2.3. Сформируйте запрос для отбора из таблицы Спортсмены данных о спортсменах мужского пола, родившихся после 1995 года. Запрос создайте в режиме конструктора. Для этого:
Выберите вкладку Запросы. Дважды щелкните по кнопке Создание запроса в режиме конструктора.
В окне Добавление таблицы выделите таблицу Спортсмены и нажмите кнопку Добавить. Закройте окно Добавление таблицы.
Окно Запрос1: запрос на выборку состоит из двух частей. В верхней части находится таблица, из которой делается выборка. Нижняя часть предназначена для задания условий отбора. Переместите в первую строку Поле из таблицы Спортсмены поля: Фамилия, Имя, Отчество, Дата рождения, Пол, Телефон, Адрес. Перемещение выполняется перетаскиванием поля с помощью мыши или двойным щелчком по перетаскиваемому полю.
В третьей строке Сортировка выберите из списка сортировку по возрастанию по фамилии, имени, отчеству.
В пятой строке Условие отбора задайте:
В столбце Пол – букву м;
В столбце Дата рождения – >31.12.1985.
В четвертой строке Вывод на экран уберите галочку в столбце Пол.
Выполните запрос с помощью кнопки в виде восклицательного знака на панели Форматирование.
Закройте запрос, сохраните его и присвойте ему имя Запрос на выборку.
Запросы с параметром.
Недостатком только что созданного запроса является то, что изменение условия отбора может выполняться только в режиме конструктора. Например, он не может оперативно в рабочем режиме изменить дату рождения в условии отбора по своему усмотрению. В этом случае на помощь приходит Запрос с параметром.
Упражнение 2.4. Создадим запрос, позволяющий отбирать спортсменов, предельную дату рождения которых пользователь может задавать сам при запуске запроса.
Откройте вкладку Запросы и дважды нажмите кнопку Создать запрос в режиме конструктора.
В открывшемся окне, создайте запрос на выборку на основе таблицы Спортсмены, в который войдут следующие поля:
Фамилия
Имя
Отчество
Дата рождения
Пол
В строке Условие отбора поля Пол введите: м.
В строке Условие отбора поля Дата рождения введите: <[Введите максимальную дату]. Текст в квадратных скобках – это текст, обращенный к пользователю.
Закройте запрос и присвойте ему имя Запрос с параметром.
Выполните запрос, дважды щелкнув по нему мышью. На экране появится окно Введите максимальную дату.
Введите значение максимальной даты рождения 31.12.88 и щелкните по кнопке ОК.
Ознакомьтесь с результатами запроса. Закройте запрос.
Выполните еще раз запрос при значении максимальной даты рождения 31.12.80.
Ознакомьтесь с результатами запроса. Закройте запрос.
Итоговые запросы.
Итоговые запросы предназначены для вычисления суммы значений или среднего значения по всем ячейкам поля, также может выбираться максимальное или минимальное значение данных или выполняться какая-либо другая функция.
Упражнение 2.5. Пусть необходимо, подсчитать, сколько спортсменов тренирует каждый тренер.
Создайте запрос. Выберите два поля: Фамилия и Тренер.
Выберите пункт меню Вид/Групповые операции. Эта команда необходима для создания в нижней части бланка строки Групповые операции. На основе этой команды создаются итоговые вычисления. Все поля, отобранные в этом запросе, получают в строке значение Группировка.
Для поля, по которому производится группировка записей (в данном случае Тренер) оставьте в строке Групповые операции значение Группировка. Для поля Фамилия щелкните кнопкой в этой строке – появится раскрывающийся список, из которого выберите функцию Count, определяющую общее количество записей, вошедших в группу. В данном случае это количество спортсменов, занимающихся у каждого тренера.
Закройте окно запроса и присвойте ему имя – Спортсмены и тренеры.
Выполните запрос и убедитесь, что он правильно работает путем просмотра таблицы.
Предположим, что необходимо узнать информацию не обо всех тренерах, а только об одном заданном. При этом запрос должен позволять в любой момент посмотреть количество спортсменов у любого тренера. В этом случае необходимо совместить возможности итогового запроса с запросом с параметром. Для создания такого запроса:
Создайте запрос, по образцу, рассмотренному в первом и втором пунктах итоговых запросов.
В условие отбора поля Тренер введите: [введите фамилию тренера].
Выполните запрос с помощью кнопки Запуск на панели инструментов (значок в виде восклицательного знака) и убедитесь в правильности его работы.
Закройте запрос и присвойте ему имя – Тренер.
Создание отчетов.
Чтобы представить результаты запросов в наглядном виде, создаются документы – отчеты. Отчеты можно создавать в режиме конструктора или с помощью специальной программы, входящей в состав СУБД – мастера отчетов. Режим конструктора предназначен для подготовленных пользователей. Начинающим пользователям рекомендуется использовать мастер отчетов.
Упражнение 2.6. С помощью мастера создайте отчет для вывода списка спортсменов. В отчете должна быть представлена информация о фамилии, имени, отчестве, дате рождения, секции, тренере.
Для этого:
Выберите вкладку Отчеты и нажмите кнопку Создать.
Выберите Мастер отчетов, в качестве источника укажите таблицу Спортсмены и нажмите кнопку ОК.
В окне Создание отчетов выберите доступные: Фамилия, Имя, Отчество, Дата, Секция, Тренер и нажмите кнопку Далее.
Не добавляя уровни группировки, задайте сортировку по возрастанию по полям: Фамилия, Имя, Отчество и нажмите кнопку Далее.
Выберите макет Табличный, ориентацию – Книжная, стиль – Деловой.
Присвойте отчету имя Список спортсменов. Отчет будет иметь вид, показанный на рисунке 2.
Спортсмены
Фамилия Имя Отчество Дата Секция Тренер
Вершинина Анна Сергеевна 12.06.1988 фигурное катание Соколов
Зубова Валентина Ивановна 01.02.1993 фигурное катание Соколов
Иванов Сергей Викторович 02.08.1980 плавание Попов
Коваль Ирина Николаевна 30.06.1990 гимнастика Белова
Петрушенко Валентин Дмитриевич 11.05.1988 плавание Попов
Пирогов Антон Николаевич 03.10.1990 плавание Попов
Шестаков Алексей Петрович 04.05.1991 плавание Попов
Широкова Антонина Сергеевна 23.03.1994 гимнастика Белова
Рисунок 2.
Улучшите вид отчета. Для этого откройте его в режиме конструктора и выполните следующие действия:
Выделите заголовок и поместите его в центре.
Выберите пункт меню Правка/Выделить все. С помощью кнопки Цвет шрифта выберите черный цвет для оформления всего отчета.
Сместите вправо поле и надпись Тренер. Раздвиньте поля и надписи Дата рождения и Секция.
Просмотрите отчет с помощью кнопки предварительного просмотра. Отчет будет иметь вид, показанный на рисунке 3.
Закройте отчет.