Вы на НеОфициальном сайте факультета ЭиП

На нашем портале ежедневно выкладываются материалы способные помочь студентам. Курсовые, шпаргалки, ответы и еще куча всего что может понадобиться в учебе!
Главная Контакты Карта сайта
 
Где мы?
» » » ТЕМА 8. СОЗДАНИЕ ЗАПРОСОВ ДЛЯ МНОГОТАБЛИЧНОЙ БАЗЫ ДАННЫХ

Реклама


ТЕМА 8. СОЗДАНИЕ ЗАПРОСОВ ДЛЯ МНОГОТАБЛИЧНОЙ БАЗЫ ДАННЫХ

Просмотров: 4251 Автор: admin

ТЕМА 8. СОЗДАНИЕ ЗАПРОСОВ ДЛЯ МНОГОТАБЛИЧНОЙ БАЗЫ ДАННЫХ 

Урок 8.1. Формирование простых запросов 
Краткая справка
Для получения определённых данных из базы данных пользователь может построить запрос. Результатом выполнения запроса является таблица с временным набором данных. Записи временного набора могут включать поля из одной или нескольких таблиц. Запросы используются аналогично таблицам. Соответствующий временный набор можно просмотреть в табличном представлении. На основе запроса можно построить отчёт или форму. При обновлении данных во временном наборе возможно включение этих изменений в таблицы. Использование запросов позволяет осуществить различные формы доступа к одной и той же информации. MS Access обеспечивает корректную связь между таблицами базы данных за счёт соответствующих друг другу значений эквивалентных полей этих таблиц. При включении в запрос связанных таблиц базы данных в окне 
«Запрос-выборка» между ними автоматически возникает соединительная линия. Если между таблицами, включенными в запрос, нет связи, и она не возникает автоматически, можно соединить таблицы в окне «Запрос-выборка». Для этого необходимо наличие в них полей с совпадающими данными. Однако надо учесть, что такое соединение сохраняется лишь для данного запроса и при использовании этих же таблиц в новом запросе их требуется соединять заново. Кроме запросов-выборок существуют и другие виды запросов, а именно: 
• запрос на создание таблицы создает для хранения информации новую таблицу и оказывается особенно полезным для создания резервных копий информации; 
• запрос на добавление присоединяет записи к существующей таблице; 
• запрос на обновление позволяет изменить значение любого поля базы данных для записей, удовлетворяющих указанным критериям; 
• запрос на удаление уничтожает в таблице все записи, отвечающие поставленным критериям; 
• перекрёстный запрос позволяет упорядочить информацию в базе данных по двум и более значениям группировки и на основании общих подмножеств соответствующих групп сделать те или иные выводы  
В запросах можно выполнять вычисления следующих типов:
• встроенные вычисления, называемые «итоговыми», для расчёта следующих значений по группам записей или по всем записям, отобранным в запросе:

сумма, среднее, число значений, минимальное или максимальное значение, 
стандартное отклонение или дисперсия;
• пользовательские вычисления для осуществления расчётов с числовыми и строковыми значениями или значениями дат для каждой записи с использованием данных из одного или нескольких полей. 
Результаты вычислений, выводящиеся в поле, не запоминаются в базовой таблице. Вычисления снова производятся всякий раз, когда выполняется запрос, поэтому результаты всегда представляют текущее содержимое базы данных. 
Обновить вычисленные результаты вручную невозможно.
Учебное задание 8.1
Постройте запрос, позволяющий выводить фамилию, имя, отчество и город проживания агентов, которые заключили договора, а также размеры страховых сумм и страховых взносов. 
Страховые взносы должны быть вычислены с учётом и без учёта скидок (условия предоставления скидок см. техническое задание). 
Технология выполнения учебного задания 8.1 
1. Откройте ранее созданную базу данных STRAXOV. В диалоговом окне «STRAXOV: база данных» появляется список таблиц: Агенты, Договора, Клиенты. 
2. На основании таблиц Агенты и Договора создайте запрос, содержащий вычисляемые поля «Страховой взнос» и «Страховой взнос со скидкой». 
3. Создайте новый запрос на основе связанных таблиц. Для этого:
• выберите вкладку «3апрос» и нажмите кнопку «Создать»;
• в диалоговом окне «Создание запроса» нажмите кнопку «Простой запрос», после чего появляется окно «Создание простых запросов»; 
• включите поля из двух таблиц в запрос. Из таблицы Агенты в окно «Выбранные поля» запроса перетащите поля «Фамилия», «Имя», «Отчество». Из таблицы Договора перетащите поля «Дата договора», «Страховая сумма» (рис.8.1). Затем нажмите кнопку «Далее». 
4. В следующем окне выберите вид отчёта – подробный.
5. Присвойте запросу имя «Страховой взнос». И выберите кнопку «Изменение структуры запроса». Нажмите кнопку «Готово». 
6. В следующем окне установите условие отбора. Для отбора агентов, подлежащих премированию, необходимо в строке «Условие отбора» под полем «Страховая сумма» ввести выражение >0, а под полем «Дата договора» ввести условие >31.12.98 AND <01.04.99. Это дает возможность отбирать договоры, заключенные в I-ом квартале 1999 года (рис. 8.2). Подробнее см. Приложение 7.  
7. Упорядочите выводимые в запросе данные по полю «Фамилия» в алфавитном порядке. Активизируйте ячейку в строке «Сортировка» под полем «Фамилия» и в появившемся списке выберите параметр «по возрастанию». 
8. Создайте вычисляемое поле «Страховой взнос». Для этого в первом пустом столбце бланка запроса в строке «Поле» с помощью построителя выражений создайте выражение для вычисления страхового взноса, выполнив следующие действия: 
• установите курсор в эту строку;
• нажмите кнопку «Построитель» на панели инструментов;
• в нижней части окна «Построитель выражений» в левом столбце выберите выражение «Таблицы», установите на него курсор и дважды щелкните мышью; 
• в раскрывшемся окне выберите таблицу Договора, а также кнопки операторов, находящиеся в средней части окна «Построитель выражений» (рис.8.3), и кнопку «Вставить» создайте следующее выражение: 
IIf([Договора]![Пожар]=Истина;[Договора]![Страховая сумма]*0.1;0) +
IIf([Договора]![Кража]=Истина;[Договора]![Страховая сумма]*0.07;0) +
IIf([Договора]![Протечка]=Истина;[Договора]![Страховая сумма]*0.08;0) 
• по окончании составления выражения нажмите кнопку «ОК».
Построитель выражений закроется;
• измените название поля на «Страховой взнос».
9. Создайте вычисляемое поле «Страховой взнос со скидкой». Для этого в первом пустом столбце бланка запроса в строке «Поле» с помощью построителя выражений создайте выражение для вычисления страхового взноса: 
IIf([Договора]![Пожар] = Истина; [Договора]![Страховая сумма] *0.1;0) +
IIf([Договора]![Кража]=Истина;[Договора]![Страховая сумма] *0.07;0) +
IIf([Договора]![Протечка]=Истина;[Договора]![Страховая сумма] *0.08;0) –
IIf(([Договора]![Протечка]=Истина) And ([Договора]![Кража] = Истина) And
([Договора]![Протечка]=Истина); [Договора] ! [Страховая сумма]*0.01;0) –
IIf(([Договора]![Вахтер]=Истина) And ([Договора] ! [Кража] = Истина);
[Договора]![Страховая сумма]*0.02;0) –
IIf(([Договора]![Стальная дверь]=Истина) And ([Договора] ! [Кража] = Истина);
[Договора]![Страховая сумма]*0.01;0)

10. C помощью команды ФАЙЛ/ Сохранить сохраните запрос под именем
«Страховой взнос».
11. Закройте режим запроса, выполнив команду меню ФАЙЛ/ Закрыть.
12. Посмотрите результаты запроса, щелкнув дважды по запросу «Страховой взнос»
13. Закройте базу данных, выполнив команду меню ФАЙЛ/ Закрыть. 

Контрольные вопросы
1. Можно ли использовать запросы для модификации информации в БД?
2. Какие виды запросов используются для редактирования информации?
3. Может ли любой пользователь БД произвольно и необратимо изменять информацию в БД? 
4. Может ли запрос вернуть информацию, не хранящуюся в базовых таблицах БД?


Урок 8.2. Вычисление итоговых значений с помощью перекрёстных запросов

Краткая справка 
Перекрёстные запросы используют для расчётов и представления данных в структуре, облегчающей их анализ. Перекрёстный запрос подсчитывает сумму, среднее, число значений или выполняет другие статистические расчёты, после чего результаты группируются в виде таблицы по двум наборам данных, один из которых определяет заголовки столбцов, а другой заголовки строк. Функции, определяющие тип статистической обработки, выбираются пользователем в строке «Групповая операция» панели запроса. 
Например, перекрёстный запрос можно легко создать в режиме Конструктора:
• создайте перекрёстный запрос в режиме Конструктора и добавьте таблицы, записи которых нужны для вычисления; 
• добавьте поля, по которым выполняются вычисления, и задайте условия отбора; 
• нажмите кнопку «Групповые операции» на панели инструментов – появится строка «Групповая операция»; 
• в ячейках строки «Групповая операция» для каждого поля бланка запроса выберите одну из следующих статистических функций: Sum, Avg, Min, Max, Count, StDev или Var, либо другие функции – First и Last. 
Создайте перекрёстный запрос, в котором будут представлены страховые суммы по дате заключения договора и общая страховая сумма за месяц. 
Технология выполнения учебного задания 8.2 
1. Откройте ранее созданную базу данных «STRAXOV.MDB». В диалоговом окне «База данных :STRAXOV» появляется список таблиц: Агенты, Договора, Клиенты. 
2. Создайте перекрёстный запрос на основании запроса «Страховой взнос». Для этого выполните следующие действия: 
• на вкладке окна «База данных: Запросы» нажмите клавишу «Создать»;
• в окне «Новый запрос» выберите режим «Перекрёстный запрос» и нажмите клавишу «ОК»; 58 
• в окне «Создание перекрёстных таблиц» в строке «Показать» выберите пункт Запросы, в списке запросов выберите запрос «Страховой взнос» (рис. 8.5) и нажмите кнопку «Далее»;  
• в качесте заголовков строк выберите поле «Фамилия», установив на него курсор и нажав кнопку , а также поля «Имя», «Отчество», а затем нажмите кнопку «Далее»; 
• в качестве заголовков столбцов выберите поле «Дата договора», установив на него курсор и нажав клавишу «Далее». Выберите интервал, с которым нужно сгруппировать столбец – «месяц» 
• укажите для поля «Страховые взносы со скидкой» использование функции Sum и нажмите кнопку «Далее» (рис. 8.7);
• введите имя перекрёстного запроса, например «Итоги», и нажмите кнопку «Готово»; 
• в режиме изменения структуры запроса, измените название поля «Итоговое значение. Страховые взносы со скидкой» на «Итого». Нажмите кнопку «Запуск». На экране появится результат выполнения перекрёстного запроса. 
3. Закройте режим запроса, выполнив команду меню ФАЙЛ/ Закрыть.
4. Закройте базу данных, выполнив команду меню ФАЙЛ/ Закрыть.
Учебное задание 8.3
Постройте простой запрос «Квартальная премия», по результатам которого можно издать приказ о премировании агентов по результатам работы за квартал. Премия назначается в размере 10% от общей суммы страховых взносов, полученных по договорам, заключенным каждым агентом за квартал.

Технология выполнения учебного задания 8.3 
1. Откройте ранее созданную базу данных STRAXOV.MDB. В диалоговом  окне «STRAXOV: база данных» появляется список таблиц: Агенты, Договора, Клиенты. 
2. Создайте запрос «Квартальная премия». Для этого:
• выберите вкладку «3апрос» и нажмите кнопку «Создать»;
• в диалоговом окне «Создание запроса» нажмите кнопку «Простой запрос», после чего появляется окно «Создание простых запросов»; 60 
• включите поля из запроса «Итоги». В окно «Выбранные поля» из запроса «Итоги» перетащите следующие поля: «Фамилия», «Имя», «Отчество», «Итого». Затем нажмите кнопку «Далее»; 
• в следующем окне выберите вид отчёта – подробный;
• присвойте запросу имя «Квартальная премия» и выберите кнопку «Изменение структуры запроса». Нажмите кнопку «Готово». 
3. Упорядочите выводимые в запросе данные по полю «Фамилия» в алфавитном порядке. Щелкните ячейку в строке «Сортировка» под полем «Фамилия» и в появившемся списке выберите «по возрастанию». 
4. Создайте вычисляемое поле «Премия». Для этого в первом пустом столбце бланка запроса в строке «Поле» с помощью построителя выражений создайте выражение для вычисления премии, которая определяется как 10% от суммы всех страховых взносов, полученных по договорам, заключенным агентом: 
• установите курсор в ячейку и нажмите кнопку «Построитель» на панели инструментов (рис.8.9); 
• в нижней части окна «Построитель выражений» в левом столбце выберите папку «Запросы / Итоги», дважды щелкнув мышью; 
• в раскрывшемся окне выберите поле «Итого» и нажмите кнопку «Вставить» и далее создайте следующее выражение [Итого] * 0.1; 
• по окончании составления выражения нажмите клавишу «ОК»;
• измените название поля на «Премия».
5. C помощью команды ФАЙЛ/ Сохранить сохраните запрос под именем «Квартальная премия». 
6. Нажмите кнопку «Запуск». На экране появится результат выполнения перекрёстного запроса (рис.8.10). 
7. Закройте режим запроса, выполнив команду меню ФАЙЛ/ Закрыть.

 

Контрольные вопросы 
1. Можно ли изменить структуру уже существующего запроса? Как?
2. Чем отличается простой запрос от перекрёстного?
3. Если возникает необходимость в статистической обработке информации в БД, какой вид запроса Вы будете использовать? 

Самостоятельное задание 8.1
Создайте перекрёстный запрос о количестве договоров, заключенных по виду страхования «Кража» за месяц. 
  
Самостоятельное задание 8.2
Создайте запрос о квартальной премии агентов по прогрессивной шкале:
• если сумма страховых взносов меньше 10 000 руб., то премия назначается в  размере 10% от страховых взносов; 
• если сумма страховых взносов больше 10 000 руб., но меньше 20 000 руб., то премия назначается в размере 12% от страховых взносов; 
• если сумма страховых взносов превышает 20 000 руб., то премия назначается в размере 15% от страховых взносов.


Информация

Комментировать статьи на нашем сайте возможно только в течении 60 дней со дня публикации.

Популярные новости

Статистика сайта



Rambler's Top100



 
Copyright © НеОфициальный сайт факультета ЭиП