ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ МАТЕМАТИЧЕСКИХ ФУНКЦИЙ ДЛЯ ЗАПРОСОВ К БАЗАМ ДАННЫХ - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ МАТЕМАТИЧЕСКИХ ФУНКЦИЙ ДЛЯ ЗАПРОСОВ К БАЗАМ ДАННЫХ

Пушкарева Е.К. 1, Гребнева Д.М. 2
1РГППУ (ф) в г. Н.Тагиле
2РГППУ (ф) в г. Нижнем Тагиле
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В нашем, динамично развивающемся информационном мире, как никогда важно иметь способы для систематизации и распределения больших объемов информации. Для хранения и систематизации информации широко применяют реляционные базы данных, которые создаются средствами систем управления базами данных (СУБД).

Неотъемлемой частью СУБД является математическое обеспечение, которое представляет совокупность математических методов, моделей и алгоритмов для реализации целей и задач баз данных. В связи с этим является актуальным изучение применение математических функций к построению запросов к базе данных.

Для практической реализации запросов создадим тестовую четырехтабличную базу данных «Заказы Arduino» (рис. 1).

Рис. 1. Схема данных

Для заполнения таблиц данными создадим четыре формы: «Заказы» (рис. 2.), «Клиентская_база» (рис. 3.), «Устройства_ARDUINO» (рис. 4.) и «Характеристики» (рис. 5).

Рис. 2. Форма таблицы «Заказы»

Рис. 3. Форма таблицы «Клиентская_база»

Рис. 4. Форма таблицы «Устройства_ARDUINO»

Рис. 5. Форма таблицы «Характеристики»

На примере работы с созданной базой данных покажем реализацию различных типов запросы для отбора необходимой информации и место математических функций в создании таких запросов.

Математические запросы (запросы с итогами)

Пример 1.Максимум значений. Вывести максимальное количество заказов из таблицы «Заказы».

SELECT MAX([Кол-во]) AS Макс_количество

FROM Заказы;

Пример 2. Минимум значений. Вывести минимальное количество заказов из таблицы «Заказы».

SELECT MIN([Кол-во]) AS Мин_количество

FROM Заказы;

Пример 3. Сортировка значений по порядку.Вывести три самых ранних по дате заказа.

SELECTTOP 3 *

FROMЗаказы

WHERE [Дата_заказа] IS NOT NULL

ORDERBY [Дата_заказа];

Пример 4. Сортировка значений по порядку. Вывести три самых поздних по дате заказа.

SELECT TOP 3 *

FROM Заказы

WHERE [Дата_выдачи] IS NOT NULL

ORDER BY [Дата_выдачи] DESC;

Пример 5. Сумма значений. Вывести общее количество заказов.

SELECT SUM([Кол-во]) AS Общее_количество

FROM Заказы;

Пример 6. Среднее значение. Вывести среднее количество заказов.

SELECT AVG([Кол-во])

FROM Заказы;

Запрос с параметром

Пример 1. Расчёт стоимости заказа с учётом стоимости доставки

SELECT Заказы.Клиент, Заказы.Товар, Устройства_ARDUINO.Цена, Заказы.[Кол-во], Цена*[Кол-во] AS Первоначальная_стоимость, Стоимость_доставки, Первоначальная_стоимость+Стоимость_доставки AS Окончательная_стоимость

FROM Устройства_ARDUINO INNER JOIN Заказы ON Устройства_ARDUINO.[№ по порядку] = Заказы.Товар;

Пример 2. Расчёт стоимости заказа по вводимой скидке.

SELECT Заказы.Клиент, Заказы.Товар, Устройства_ARDUINO.Цена, Заказы.[Кол-во], Цена*[Кол-во] AS Первоначальная_стоимость, Скидка, (Первоначальная_стоимость*Скидка)/100 AS Окончательная_стоимость

FROM Устройства_ARDUINO INNER JOIN Заказы ON Устройства_ARDUINO.[№ по порядку] = Заказы.Товар;

Перекрёстный запрос

Пример 1. Вывод номера самого раннего заказа

TRANSFORM Min(Заказы.Код) AS [Min-Код]

SELECT Заказы.Клиент, Min(Заказы.Код) AS [Итоговое значение Код]

FROM Заказы

GROUP BY Заказы.Клиент

PIVOT Заказы.Товар;

Пример 2. Расчёт количества дней между датой заказа и датой выдачи

TRANSFORM Дата_выдачи-Дата_заказа AS [Кол-во дней]

SELECT Заказы.Клиент, Заказы.Дата_заказа, Заказы.Дата_выдачи

FROM Заказы

GROUP BY Заказы.Клиент, Заказы.Дата_заказа, Заказы.Дата_выдачи

PIVOT Заказы.Код;

Рекурсивный (иерархический) запрос.

Пример 1. Совмещение даты заказа с датой выдачи. Вывести заказы, у которых даты заказа и даты выдачи совпадают.

SELECT Заказы.Код, Заказы.Клиент, Заказы.Дата_заказа, Заказы_1.Дата_выдачи AS Дата_выдачи_1, Заказы_1.Клиент AS Клиент_1, Заказы_1.Код AS Код_1

FROM Заказы INNER JOIN Заказы AS Заказы_1 ON Заказы.Дата_заказа = Заказы_1.Дата_выдачи;

Пример 2. Совмещение дат заказа и дат выдачи двух разных заказов

SELECT Заказы.Клиент, Заказы.Дата_заказа, Заказы.Дата_выдачи, Заказы_1.Клиент AS Клиент_1, Заказы_1.Дата_заказа AS Дата_заказа_1, Заказы_1.Дата_выдачи AS Дата_выдачи_1

FROM Заказы INNER JOIN Заказы AS Заказы_1 ON (Заказы.Дата_выдачи = Заказы_1.Дата_выдачи) AND (Заказы.Дата_заказа = Заказы_1.Дата_заказа)

WHERE ((Заказы.Клиент) NotIn (Заказы_1.Клиент));

На основе приведённых примеров можно выделить следующие особенности применения математических функций к запросам к базам данных:

  • запросы можно реализовывать в режиме SQL и конструктор;

  • в запросах с итогами есть как часто используемые функции (SUM, AVG), так и редкие, используемые в исключительных случаях (COS, ABS);

  • запросы с параметрами используются при наличии изменяемых значений;

  • перекрёстные запросы выводят все используемые в сравнении значения, поэтому являются самыми наглядными;

  • рекурсивные запросы используются для сравнения значений таблиц баз данных между собой.

Список литературы
  1. Бобцов А. А, Шнегин В.В. Банки и базы данных. Основы работы с MSAccess. – СПб.: Питер, 2005. 23 с.

  2. БоровиковВ. В. MicrosoftAccess 2010. Программирование и разработка баз данных и приложений. – М.: Солорон-Р, 2010. 68 с.

  3. Введение в реляционные базы данных данных. Учебный курс. [Электронный ресурс] – URL: htpp://www.intuit.ru (дата обращения: 01.04.2014).

  4. Виды запросов к базе данных [Электронный ресурс]. URL: https://studfiles.net/preview/2824415/

  5. ДейтК.Дж. Введение в системы баз данных, 7-е издание. М.: Вильямс, 2002. 82 с.

  6. Запросы в MSAccess [Электронный ресурс]. URL: https://accesshelp.ru/zaprosy-v-access/

  7. Коннолли Т. Б. Базы Данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание. – М.:Вильямс, 2003. 53 с.

  8. Малыхина М. П. Базы данных: основы, проектирование, использование. – СПб.: БХВ-Петербург, 2004. 23 с.

  9. Рекурсивная функция [Электронный ресурс]. URL: http://www.studfiles.ru/preview/2428909/

  10. Рекурсия. Основные определения. [Электронный ресурс]. URL: http://www.studfiles.ru/preview/1877393/

Просмотров работы: 130