
- •Федеральное агентство по образованию рф
- •Глава 1 базы данных 7
- •Глава 2 субд access 18
- •Глава 3 Решение тренировочных заданий по практическому созданию баз данных 40
- •Глава 1 базы данных Классификация баз данных
- •Реляционная модель данных
- •Проектирование реляционных баз данных
- •Нормализация данных
- •Связывание таблиц
- •Типы связей между таблицами
- •Формирование запросов к базе данных
- •Оператор выбора select
- •Тестовые задания к главе 1
- •Глава 2 субд access Запуск программы
- •Элементы окна Microsoft Access
- •Рис 2.5. Окно свойств базы данных
- •Создание базы данных с помощью мастера
- •Технология создания таблиц базы данных
- •Технология создания схемы данных
- •Технология ввода данных
- •Глава 3
- •Решение тренировочных заданий
- •По практическому созданию баз данных
- •Задание № 1. Технология создания многотабличных баз данных на тему "Изучение Microsoft Access - системы управления базами данных"
- •Запрос на добавление: Ввод записей в таблицу Ответы
- •Задание № 2. Технология создания многотабличных баз данных на тему «Вычисления в Access 2000»
- •Глава 1:
- •Гаврилюк Ярослав Дмитриевич
- •Информационное обеспечение
- •Товароведения и экспертизы товаров
- •Базы данных
Запрос на добавление: Ввод записей в таблицу Ответы
Запрос на добавление используется для добавления записей в таблицу Ответы. Для его создания требуется сформировать запрос на выборку и затем в окне конструктора запросов преобразовать этот запрос в запрос на добавление.
С этой целью выполните следующие действия.
В окне базы данных выделите вкладку Запросы.
В этом же окне нажмите кнопку Создать.
В открывшемся окне Новый запрос выбрать Конструктор
В окне Добавление таблицы выбрать таблицы Студенты и Контрольные вопросы и нажать кнопку Добавить.
Нажмите кнопку Закрыть. В результате появится окно Запрос1: запрос на выборку, в верхнем окне которого отображены таблицы запроса, а в нижнем расположен бланк запроса по образцу (см. рис.4).
Включите в запрос поле Шифр из таблицы Студенты, а также поле № вопроса из таблицы Контрольные вопросы.
Выполните команду Запрос, Добавление.
В окне диалога Добавление установите переключатель в текущей базе данных и введите имя таблицы Ответы, в которую будут добавляться записи. После выполнения этой команды в бланке запроса появляется строка Добавление.
Укажите в строке Добавление поля Шифр студента и № вопроса таблицы Ответы, как показано на рис. 3.4.
Введите условие отбора. В строке Условие отбора под полем Шифр, как показано на рис. 3.5, наберите параметр [Введите шифр студента].
Выполните команду Файл, Закрыть и затем в окне диалога Сохранение введите имя запроса.
Чтобы просмотреть результат выполненной вами работы, откройте запрос на добавление Ввод записей в таблицу Ответы. При этом в окне диалога Введите значение параметра введите учебный шифр студента. В результате действия запроса в таблицу Ответы будет добавлено от 0 до 17 записей.
Рис. 3.5. Запрос на добавление. Ввод записей в таблицу Ответы.
Задание № 2. Технология создания многотабличных баз данных на тему «Вычисления в Access 2000»
Постановка задачи. Требуется создать тренировочную учебную базу данных Учет сеансов связи, включающую в себя четыре таблицы: Регистрация сеансов, Справочник абонентов, Справочник кодов и тарифов, Архив, 9 запросов, 2 формы и 2 отчета.
При разработке структуры объектов базы данных необходимо предусмотреть возможность выписывания счетов абонентам за услуги связи в зависимости от кода города, действующего тарифа, длительности разговора и категории абонентов по состоянию на первое число следующего месяца. Для абонентов необходимо выписывать счета на оплату услуг связи. После выписки счетов учтенные данные должны хранится в таблице Архив.
В процессе выполнения задания следует уделить особое внимание на следующие особенности разработки многотабличных баз данных:
Конструирование запросов с вычисляемыми полями и использованием функции IIf(condition;true;false) - немедленное ЕСЛИ
Создание вычисляемых полей.
Конструирование запросов с параметрами.
Конструирование запросов на выборку данных по интервалу значений.
Конструирование запросов действия: на добавление, обновление и удаление записей.
Конструирование запросов для создания отчетов.
Технология разработки многотабличных форм и отчетов.
Шаг 1. Создайте файл новой базы данных, выполнив следующие действия.
Запустите на выполнение программу Access 2000.
Затем в окне Microsoft Access установите переключатель в положение Новая база данных. Нажмите ОК.
В окне Файл новой базы данных введите имя файла Учет сеансов связи.mdb. Затем активизируйте диск D: и создайте на нем папку Базы данных и нажмите ОК.
Затем в этой папке аналогичным образом создайте папку 22.02, а в ней папку ФИО студента, указав свои реквизиты. Сохраните файл базы данных в своей папке. Нажмите кнопку Создать, чтобы завершить диалог.
Шаг 2. Создайте в режиме конструктора структуры трех таблиц: Регистрация сеансов, Справочник абонентов, Справочник кодов и тарифов
Структура таблицы Справочник абонентов должна содержать 4 поля, а именно:
№ телефона (тип данных - текстовый, размер поля-10, маска ввода 000-00-00, обязательное поле – Да, индексированное поле – Да (Совпадения не допускаются)).
ФИО (тип данных - текстовый, размер поля - 50, обязательное поле – Да, индексированное поле – Нет.
Адрес (тип – текстовый, размер поля –255).
Льготный (тип – Логический, формат поля – Да/Нет, описание Льготный – Да, обычный – Нет).
Внесите в таблицу Справочник абонентов несколько записей
Структура таблицы Справочник кодов и тарифов состоит из двух полей:
1-ое – Код (тип данных - Числовой, размер – длинное целое, ключевое, индексированное поле – Да (Совпадения не допускаются)).
2‑ое – Стоимость_1_мин (тип данных – Числовой , размер – двойное с плавающей точкой, число десятичных знаков - авто).
В таблице Регистрация сеансов должно быть 5 полей:
№_заказа (тип – Счетчик, размер поля – длинное целое, ключевое, индексированное - Да (Совпадения не допускаются).
№_телефона (тип – Текстовый, размер - 10, маска ввода 000-00-00).
Код (тип – числовой, размер – длинное целое);
Дата (тип – Дата/время, формат – Краткий формат даты);
Длительность (тип – числовой, размер поля – длинное целое).
Шаг 3. Создайте таблицу Архив
С этой целью достаточно скопировать структуру таблицы Регистрация сеансов, так как таблица Архив должна иметь такую же структуру. В окне базы данных выберите таблицу Регистрация сеансов и нажмите кнопку Копировать на панели инструментов, а затем - Вставить. В окне диалога Вставка таблицы выберите переключатель только структура и в том же диалоге введите имя таблицы - Архив.
Шаг 4. Создайте схему данных, как показано на рис. 3.6.
Технология создания схемы данных подробно изложена во второй главе.
Рис.
3.6. Схема данных
Шаг 5. Создайте форму для ввода данных в таблицу Регистрация сеансов. Откройте таблицу Регистрация сеансов. На панели инструментов нажмите кнопку Новый объект: автоформа. 2.Сохраните форму под именем Регистрация сеансов и закройте форму.
Шаг 6. Введите данные в таблицу Регистрация сеансов.
Откройте форму Регистрация сеансов в окне База данных
Введите с помощью формы разнообразные данные в таблицу (поле №_заказа недоступно для ввода). Вводимые значения должны удовлетворять требованиям сохранения целостности данных БД. Заполните 10-15 заказов для пяти клиентов. Закройте форму и таблицу.
Шаг 7. Создайте запрос на выборку звонков с одного номера телефона.
В окне База данных нажмите Запросы и затем кнопку Создать на панели инструментов в окне Новый запрос выберите Конструктор. Добавьте в запрос таблицу Peгистрация сеансов: выделите имя таблицы и нажмите кнопки Добавить, Закрыть. В окне запроса в режиме конструктора перенесите поля таблицы в строку Поле бланка запроса поочередно или выберите поля в раскрывающихся списках. В поле №_телефона в строке Условие введите выражение для отбора - (цифры номера) и нажмите [Enter].
Запустите запрос нажатием кнопки Запуск на панели инструментов или Режим таблицы из меню Вид. Сохраните запрос как Сеансы абонента.
Шаг 8. Модернизируя созданный запрос, создайте другие запросы для выбора сеансов связи абонента за период с 03 по 31 января 2003 г. (условие отбора – Between #03.01.03# And #31.01.03#), сеансов связи в один из городов за тот же период, но с длительностью разговора больше 5 минут, а также всех звонков в тот же город за последний месяц. Сохраните созданные запросы под именами Звонки за период, Звонки в город и Звонки за последний месяц соответственно.
Шаг 9. Создайте запрос с параметрами для просмотра сеансов связи с любого номера. С этой целью доработайте запрос Сеансы абонента. В поле №_телефона в строке Условие отбора введите выражение для ввода параметра [Введите № телефона].
Нажмите кнопку Запуск на панели инструментов Конструктор запросов и в появившемся окне Введите значение параметра введите требуемый номер телефона и нажмите ОК или [Enter]. Сохраните запрос под именем Сеансы абонентов.
Шаг 10. Определите стоимость каждого разговора за февраль 2003 г.
Создайте новый запрос для определения стоимости услуг связи в режиме конструктора, используя таблицы Регистрация междугородних сеансов и Справочник кодов и тарифов.
Добавьте в бланк запроса поля: Номер телефона, Код, Длительность разговора, Дата и Стоимость_1_мин.
В строке Поле бланка запроса с помощью кнопки Построить наберите выражение Стоимость: [Регистрация сеансов]![Длительность]*[Справочник кодов и тарифов]![Стоимость_1_мин]. Выделите поле Стоимость: и активизируйте команду Свойства. В свойствах поля (рис. 3.7) определите формат - денежный. В строке бланка запроса по образцу Условие отбора в поле Дата введите Between #01.02.03# And #28.02.03#. Выполните запрос и затем сохраните его с именем Условная стоимость услуг связи.
Рис. 3.7. Диалоговое окно Свойства поля
Шаг 11. С целью определения стоимости сеансов связи, учитывающей различные тарифы для разных групп абонентов (льготный тариф - 50% от номинального), выполните модернизацию запроса Условная стоимость услуг связи. С этой целью Дополнительно добавьте в бланк запроса таблицу Справочник абонентов и в строке Поле бланка запроса, нажав кнопку Построить и используя открывшееся окно Построитель выражений (рис. 3.8) наберите формулу
Стоимость:
IIf([Льготный]=Да;[Регистрация
сеансов]![Длительность]*[Справочник
кодов и тарифов]![Стоимость_1_мин]*0,5;[Регистрация
сеансов]![Длительность]*[Справочник
кодов и тарифов]![Стоимость_1_мин]).
Рис. 3.8. Окно диалога для создания вычисляемого поля
Активизируйте команду Свойства и в окне диалога Свойства поля определите формат - денежный. Выполните запрос и сохраните его под именем Стоимость услуг связи.
Шаг 12. Создайте извещения об оплате услуг связи за февраль 2003 г.
В окне База данных выберите Отчеты и нажмите кнопку Создать. В окне Новый отчет выберите Мастер отчетов, а в нижней части окна щелкните раскрывающийся список и выберите таблицу Справочник абонентов и нажмите ОК. В окне Создание отчетов переместите поля № телефона, ФИО, Адрес, Личный из списка Доступные поля в Выбранные.
Затем в поле Таблицы/Запросы выберите Стоимость услуг связи и переместите поля Код, Длительность, Дата, Стоимость из списка Доступные поля в список Выбранные поля и нажмите Далее (см. рис. 3.9).
Рис. 3.9. Окно диалога для создания многотабличного отчета
В следующем окне диалога мастера выберите вид представления данных Справочник абонентов и нажмите Далее. В зависимости от выбранного представления мастер группирует записи в отчете, анализируя связи между таблицами.
В следующем окне диалога выберите уровень группировки по умолчанию и нажмите Далее.
Выбрав предложенную мастером сортировку, нажмите кнопку Итоги . В окне Итоги (рис. 3.10) установите флажок в строке стоимость столбца Sum, а в поле Показать установите переключатель на данные и итоги.
Рис. 3.10 Окно диалога для определения итоговых вычислений
Затем нажмите ОК или [Enter]. В следующем окне диалога Создание отчетов нажмите Далее. Выберите параметр Структура 1 и нажмите кнопку Далее.
Выберите требуемый стиль заголовка, например, Строгий и завершите диалог нажав кнопку Далее. Задайте имя отчета Счет на оплату услуг, в поле Дальнейшие действия установите переключатель на Просмотреть отчет и нажмите кнопку Готово.
Нажав на кнопку Вид, переведите отчет в режим конструктора. Увеличьте высоту раздела Заголовок группы № телефона. Выделите все элементы при нажатой клавише Shift и перемещайте их указателем на границе в виде кисти руки. Выделите текст Счет на оплату услуг и перетащите его в раздел Заголовок группы № телефона. Используя команды меню Вид, удалите разделы отчета Заголовок группы, Примечания, Колонтитулы. Выделите элемент (надпись) Sum замените Sum на Итого. Нажмите кнопку Предварительный просмотр.
Шаг 13. Доработайте отчет, чтобы печатать счета на оплату услуг связи на отдельных страницах.
Откройте отчет Счет на оплату услуг в режиме Конструктор. В разделе Заголовок группы № телефона щелкните правой кнопкой мыши и в контекстном меню выберите Свойства. На вкладке Макет в строке Конец страницы выберите из раскрывающегося списка значение До раздела и закройте окно.
В режиме конструктора на панели инструментов Конструктор отчетов нажмите кнопку Сортировка и группировка. В открывшемся окне Сортировка и группировка выберите порядок сортировки, а в разделе Свойства группы в строке Не разрывать выберите из раскрывающегося списка значение Вся группа. Закроите окно Сортировка и группировка и затем, нажав кнопку Предварительный просмотр, проверьте результаты выполненной вами доработки отчета.
Шаг 14. После выписывания счетов на оплату услуг связи добавить в таблицу Архив записи за февраль месяц и удалить эти записи из таблицы Регистрация сеансов.
С этой целью в окне База данных в режиме Конструктор создайте запрос на добавление. Добавьте в запрос таблицу Регистрация сеансов. В режиме Конструктор выберите команду Добавление из меню Запрос. В диалоговом окне Добавление в поле имя таблицы выберите из раскрывающегося списка имя и нажмите ОК. Переместите мышью все поля в Бланк запроса. Затем в строке Условие отбора в поле Дата введите Between #01.01.03# And #31.01.03# и нажмите кнопку Запуск на панели инструментов Конструктор запросов. В открывшемся окне предупреждения (рис. 3.11) о возможных последствиях работы запроса нажмите кнопку ДА.
Рис. 3.11. Окно предупреждения
Сохраните запрос под именем Запрос на добавление. Закройте окно запроса. С целью проверки откройте таблицу Архив.
Шаг 15. Удалите заархивированные записи из таблицы Регистрация сеансов.
С этой целью в окне база данных активизируйте вкладку Запросы и нажмите кнопку Создать. Затем выберите Конструктор и нажмите ОК. Добавьте в запрос таблицу Регистрация сеансов.
В меню Запрос выберите Удаление. Переместите мышью все поля в Бланк запроса. Затем в строке Условие отбора в поле Дата введите Between #01.12.03# And #31.12.03# и нажмите кнопку Запуск на панели инструментов Конструктор запросов для удаления записей. Сохраните запрос как Запрос на удаление.
Закройте запрос и проверьте таблицу Регистрация сеансов.
Шаг 16. Используя дополнительную литературу, модернизируйте базу данных с целью разработки кнопочной формы для запуска объектов базы данных.
Тестовые задания к главе 3
3.1. Как создать в запросе Access вычисления по условию?
В строке бланка запроса условие отбора ввести условие вычисления.
Создать вычисляемое поле и применить функцию IIf(condition;true;false).
Ввести в запрос условия и использовать групповые операции.
3.2. Что является результатом выполнения следующего SQL запроса Access
SELECT [Регистрация сеансов].[№_заказа], [Регистрация сеансов].[№_телефона], [Регистрация сеансов].Код, [Регистрация сеансов].Дата, [Регистрация сеансов].Длительность
FROM [Регистрация сеансов]
WHERE ((([Регистрация сеансов].[№_телефона])=[Введите № телефона]));?
Таблица с пятью столбцами выбранными из исходной таблицы Регистрация сеансов.
Таблица с пятью столбцами, выбранными из исходной таблицы Регистрация сеансов и 1 строкой, в которой поле №_телефона имеет значение № телефона.
Таблица с пятью столбцами, выбранными из исходной таблицы Регистрация сеансов и всеми строками, в которых поле №_телефона имеет значение введенного параметра?
3.3. Что означает термин “первичный ключ”?
Это тип индекса, который однозначно идентифицирует каждую запись.
Это первый индекс, созданный в таблице.
Это поле, по которому устанавливаются связи между двумя таблицами.
3.4. Как удалить поле, входящее в состав первичного ключа, если оно используется для установления связей между таблицами?
В режиме конструктора таблицы нужно выделить и удалить название поля.
Так как поле является частью одной или нескольких связей, поэтому сначала нужно удалить его связи в окне схемы данных.
Сначала нужно снять атрибут Ключевое поле, а затем удалить поле.
3.5. Что означает связь 1:1?
Это связь между двумя однотипными полями в разных таблицах.
Такая связь означает, что каждой строке первой таблицы соответствует только одна строка во второй таблице.
Такая связь означает, что каждой строке первой таблицы соответствует только одна строка во второй таблице и, наоборот, каждой строке второй таблицы соответствует только одна строка в первой таблице..
Дополнительные тестовые задания
1. Какой тип поля следует выбрать для внедрения в таблицу Microsoft Access таких объектов как рисунок, фотография или таблица Microsoft Excel?
Поле МЕМО.
Текстовый
Поле объекта OLE
2.
Что означает связь 1 : ?
Связь 1 : означает одно-многозначные отношения между таблицами, когда одна из них является главной, а другая подчиненной.
С
вязь 1 : означает такие отношения между таблицами, когда одна из них является зависимой от другой.
Такая связь означает одно-многозначные отношения между двумя таблицами, когда одна из них является главной, а другая подчиненной. При этом каждой строке главной таблицы может соответствовать несколько строк в подчиненной таблице, а каждой строке в подчиненной таблице соответствует только одна в главной таблице
3. Какой тип связи может быть установлен, если поле связи в одной таблице является первичным ключом, а в другой входит в составной ключ?
Один - к - одному (1:1).
О
дин - ко - многим (1: ).
М
ногие - ко - многим ( : ).
4. Каковы требования к очередности загрузки таблиц, между которыми установлены одно-многозначные связи?
Подчиненые таблицы нужно загружать после ввода данных в главные таблицы.
Обе таблицы можно загружать одновременно.
Ввод данных в такие таблицы можно производить независимо друг от друга.
5. Какой способ загрузки многотабличной базы данных обеспечивает корректный ввод данных?
Непосредственный ввод данных в таблицы базы данных.
Ввод данных в таблицы с помощью экранных однотабличных форм.
Ввод данных в таблицы с помощью составных многотабличных форм.
6. Что определяет схема данных в Microsoft Access?
Схема данных определяет связи между однотипными полями в разных таблицах.
Схема данных определяет структуру базы данных и связи между таблицами базы данных.
Схема данных определяет нормализацию таблиц.
7. От чего зависит набор свойств поля таблицы Access?
Набор свойств поля зависит от структуры таблицы.
Набор свойств поля зависит от того, к какому типу данных это поле относится.
Набор свойств полей зависит от администратора базы данных.
8. Как добавить в запрос вычисляемое поле?
Вычисляемое поле создается путем ввода специального выражения в пустую ячейку строки Поле бланка запроса по образцу.
Вычисляемое поле вводят в запрос путем копирования формулы.
Вычисляемое поле создается путем копирования одной из функций в пустую ячейку строки Поле бланка запроса по образцу.
9. Какой максимальный объем информации может хранить база данных Microsoft Access?
256 мегабайт.
512 мегабайт.
1 гигабайт.
10. Что является результатом выполнения запроса Microsoft Access
INSERT INTO Архив ( №_заказа, №_телефона, Код, Дата, Длительность )
SELECT [Регистрация сеансов].[№_заказа], [Регистрация сеансов].[№_телефона], [Регистрация сеансов].Код, [Регистрация сеансов].Дата, [Регистрация сеансов].Длительность
FROM [Регистрация сеансов]
WHERE ((([Регистрация сеансов].Дата) Between #1/1/03# And #1/31/03#));
Передачу в архив записей таблицы Регистрация сеансов, в которой выбраны поля, перечисленные в операторе SELECT.
Передачу в архив тех записей таблицы Регистрация сеансов, поле Дата которых имеет значения в диапазоне от 01 до 31 марта 2003 г.
Создание таблицы Архив с полями, перечисленными в операторе SELECT.
Ответы на тестовые задания к главам 1-3