🗊Презентация Построение запросов

Категория: Информатика
Нажмите для полного просмотра!
Построение запросов, слайд №1Построение запросов, слайд №2Построение запросов, слайд №3Построение запросов, слайд №4Построение запросов, слайд №5Построение запросов, слайд №6Построение запросов, слайд №7Построение запросов, слайд №8Построение запросов, слайд №9Построение запросов, слайд №10Построение запросов, слайд №11Построение запросов, слайд №12Построение запросов, слайд №13Построение запросов, слайд №14

Вы можете ознакомиться и скачать презентацию на тему Построение запросов. Доклад-сообщение содержит 14 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Построение запросов
Графеева Н.Г.
2017
Описание слайда:
Построение запросов Графеева Н.Г. 2017

Слайд 2





2 подхода к построению запросов 
Императивный подход (процедурный стиль)
Декларативный (SQL)
Какой подход выбрать в каждом конкретном случае?
Описание слайда:
2 подхода к построению запросов Императивный подход (процедурный стиль) Декларативный (SQL) Какой подход выбрать в каждом конкретном случае?

Слайд 3





Причины возникновения проблемы
В связи с тем, что в современных СУБД в процедурных расширениях языка SQL появились возможности для встраивания в SQL-запросы результатов работы функций, возникает большой соблазн использовать эту возможность …. Однако, оказывается, что это не всегда уместно. 
Для начала научимся в принципе писать функции, выдающие множество строк…
Описание слайда:
Причины возникновения проблемы В связи с тем, что в современных СУБД в процедурных расширениях языка SQL появились возможности для встраивания в SQL-запросы результатов работы функций, возникает большой соблазн использовать эту возможность …. Однако, оказывается, что это не всегда уместно. Для начала научимся в принципе писать функции, выдающие множество строк…

Слайд 4





Пример (табличная функция ORACLE)
CREATE TYPE t_tf_row AS OBJECT ( id NUMBER, description VARCHAR2(50) );
 / 
CREATE TYPE t_tf_tab IS TABLE OF t_tf_row; 
/ 
-- Build the table function itself. 
CREATE OR REPLACE FUNCTION get_tab_tf (p_rows IN NUMBER) 
RETURN t_tf_tab 
AS 
l_tab t_tf_tab := t_tf_tab(); 
BEGIN 
FOR i IN 1 .. p_rows LOOP l_tab.extend; 
l_tab(l_tab.last) := t_tf_row(i, 'Description for ' || i); 
END LOOP;
 RETURN l_tab; 
END; 
/ 
-- Test it. 
SELECT * FROM TABLE(get_tab_tf(10)) ORDER BY id DESC;
Описание слайда:
Пример (табличная функция ORACLE) CREATE TYPE t_tf_row AS OBJECT ( id NUMBER, description VARCHAR2(50) ); / CREATE TYPE t_tf_tab IS TABLE OF t_tf_row; / -- Build the table function itself. CREATE OR REPLACE FUNCTION get_tab_tf (p_rows IN NUMBER) RETURN t_tf_tab AS l_tab t_tf_tab := t_tf_tab(); BEGIN FOR i IN 1 .. p_rows LOOP l_tab.extend; l_tab(l_tab.last) := t_tf_row(i, 'Description for ' || i); END LOOP; RETURN l_tab; END; / -- Test it. SELECT * FROM TABLE(get_tab_tf(10)) ORDER BY id DESC;

Слайд 5





Пример (pipe line функция ORACLE)
CREATE TYPE t_tf_row AS OBJECT ( id NUMBER, description VARCHAR2(50) );
 / 
CREATE TYPE t_tf_tab IS TABLE OF t_tf_row; 
/ 
-- Build a pipelined table function. 
CREATE OR REPLACE FUNCTION get_tab_ptf (p_rows IN NUMBER) RETURN t_tf_tab PIPELINED 
AS 
BEGIN 
FOR i IN 1 .. p_rows LOOP 
   PIPE ROW(t_tf_row(i, 'Description for ' || i)); 
END LOOP; 
RETURN; 
END; 
/ 
-- Test it. 
SELECT * FROM TABLE(get_tab_ptf(10)) ORDER BY id DESC;
Описание слайда:
Пример (pipe line функция ORACLE) CREATE TYPE t_tf_row AS OBJECT ( id NUMBER, description VARCHAR2(50) ); / CREATE TYPE t_tf_tab IS TABLE OF t_tf_row; / -- Build a pipelined table function. CREATE OR REPLACE FUNCTION get_tab_ptf (p_rows IN NUMBER) RETURN t_tf_tab PIPELINED AS BEGIN FOR i IN 1 .. p_rows LOOP PIPE ROW(t_tf_row(i, 'Description for ' || i)); END LOOP; RETURN; END; / -- Test it. SELECT * FROM TABLE(get_tab_ptf(10)) ORDER BY id DESC;

Слайд 6





Упражнение 1
Напишите в разных стилях запрос (к демонстрационной базе ORACLE), в котором будет отображено сколько наименований следующих видов продукции: 
             Bag, Blouse, Jacket
было отправлено в каждый штат.
Описание слайда:
Упражнение 1 Напишите в разных стилях запрос (к демонстрационной базе ORACLE), в котором будет отображено сколько наименований следующих видов продукции: Bag, Blouse, Jacket было отправлено в каждый штат.

Слайд 7





Когда полезен процедурный стиль?
Обработка данных существенно упрощается при использовании их упорядоченности.
Оптимизатору запросов не удается построить план, в котором подзапросы исполняются однократно. В этом случае предварительное выполнение подзапросов может существенно ускорить результат.
Описание слайда:
Когда полезен процедурный стиль? Обработка данных существенно упрощается при использовании их упорядоченности. Оптимизатору запросов не удается построить план, в котором подзапросы исполняются однократно. В этом случае предварительное выполнение подзапросов может существенно ускорить результат.

Слайд 8





Типичные запросы, использующие упорядоченность 
Типичные задачи – построение нарастающих итогов и  разного рода индикаторов для финансовых рядов. Например,
Нарастающие итоги:
SUM(1) = X(1)
SUM(t) = SUM(t-1) + X(t), при t>1
Экспоненциальная скользящая средняя:
EMA(1) = X(1)
EMA (t) = EMA(t-1)  + (X(t) – EMA(t-1)) * 2/N, при  t>1
Где N – количество элементов ряда, используемых для сглаживания
Описание слайда:
Типичные запросы, использующие упорядоченность Типичные задачи – построение нарастающих итогов и разного рода индикаторов для финансовых рядов. Например, Нарастающие итоги: SUM(1) = X(1) SUM(t) = SUM(t-1) + X(t), при t>1 Экспоненциальная скользящая средняя: EMA(1) = X(1) EMA (t) = EMA(t-1) + (X(t) – EMA(t-1)) * 2/N, при t>1 Где N – количество элементов ряда, используемых для сглаживания

Слайд 9





Упражнение 2
Напишите запрос, выдающий нарастающие итоги (в двух стилях) для таблицы  c полями (PERIOD, VALUE).
Описание слайда:
Упражнение 2 Напишите запрос, выдающий нарастающие итоги (в двух стилях) для таблицы c полями (PERIOD, VALUE).

Слайд 10





Правила гранулярности запросов
Количество операторов SQL, не должно зависеть от количества обрабатываемых строк (в рамках одного запроса).
Идентичные операторы SELECT не должны исполняться многократно.
Если некоторая строка таблицы передается в приложение, то в этом же запросе следует передать все поля таблицы, которые могут понадобиться приложению.
Все условия на выбираемые строки таблиц следует включать в операторы SQL.
Описание слайда:
Правила гранулярности запросов Количество операторов SQL, не должно зависеть от количества обрабатываемых строк (в рамках одного запроса). Идентичные операторы SELECT не должны исполняться многократно. Если некоторая строка таблицы передается в приложение, то в этом же запросе следует передать все поля таблицы, которые могут понадобиться приложению. Все условия на выбираемые строки таблиц следует включать в операторы SQL.

Слайд 11





Классификация запросов
2 типа запросов
<Короткие запросы> ( OLTP –on-line transation processing). Для выполнения таких запросов, как правило, обрабатывается лишь часть содержимого таблиц. Результат также невелик. Допустимая скорость исполнения – порядка 2-5 сек. 
<Длинные запросы> (OLAP – on-line analitical processing). Для получения результата необходимо обработать все или значительную часть строк таблиц. Допустимая скорость выполнения таких запросов на порядки выше.
Описание слайда:
Классификация запросов 2 типа запросов <Короткие запросы> ( OLTP –on-line transation processing). Для выполнения таких запросов, как правило, обрабатывается лишь часть содержимого таблиц. Результат также невелик. Допустимая скорость исполнения – порядка 2-5 сек. <Длинные запросы> (OLAP – on-line analitical processing). Для получения результата необходимо обработать все или значительную часть строк таблиц. Допустимая скорость выполнения таких запросов на порядки выше.

Слайд 12





Рекомендации для написания эффективных запросов
Использовать индексы для коротких запросов.
Активнее использовать теоретико-множественные операции (произведение, объединение - UNION, минус - MINUS, пересечение - INTERSECTION) *
Использовать операции группировки как можно раньше *.
При необходимости выполнять операции соединения – выполнять их в правильной последовательности (минимизируя количество соединяемых записей) *.
Использовать избыточные критерии селекции для сокращения количества выбираемых записей *.
Избегать многократных просмотров данных.
Примечание. * - особенно актуально для длинных запросов.
Описание слайда:
Рекомендации для написания эффективных запросов Использовать индексы для коротких запросов. Активнее использовать теоретико-множественные операции (произведение, объединение - UNION, минус - MINUS, пересечение - INTERSECTION) * Использовать операции группировки как можно раньше *. При необходимости выполнять операции соединения – выполнять их в правильной последовательности (минимизируя количество соединяемых записей) *. Использовать избыточные критерии селекции для сокращения количества выбираемых записей *. Избегать многократных просмотров данных. Примечание. * - особенно актуально для длинных запросов.

Слайд 13





Домашнее задание 8(10 баллов)
Экспортируйте 5-мин котировки индекса RTS по следующей ссылке:
http://www.finam.ru/profile/mosbirzha-fyuchersy/rts-12-16-riz6/export/?market=14&em=407238&code=RIZ6&apply=0&df=7&mf=9&yf=2016&from=07.10.2016&dt=7&mt=9&yt=2016&to=07.10.2016&p=3&f=RIZ6_161007_161007&e=.txt&cn=RIZ6&dtf=1&tmf=1&MSOR=1&mstime=on&mstimever=1&sep=1&sep2=1&datf=1&at=1
за 7 октября 2016 года и постройте приложение, в котором будут отображаться  цена индекса RTS и экспоненциальное скользящее среднее  цены в виде графика
(в качестве цены можно использовать  (OPEN + HIGH + LOW + CLOSE)/4)
Ссылку на приложение, логин и пароль для входа отправьте по адресу: N.Grafeeva@spbu.ru
Тема -  DB_Application_2017_job8
Описание слайда:
Домашнее задание 8(10 баллов) Экспортируйте 5-мин котировки индекса RTS по следующей ссылке: http://www.finam.ru/profile/mosbirzha-fyuchersy/rts-12-16-riz6/export/?market=14&em=407238&code=RIZ6&apply=0&df=7&mf=9&yf=2016&from=07.10.2016&dt=7&mt=9&yt=2016&to=07.10.2016&p=3&f=RIZ6_161007_161007&e=.txt&cn=RIZ6&dtf=1&tmf=1&MSOR=1&mstime=on&mstimever=1&sep=1&sep2=1&datf=1&at=1 за 7 октября 2016 года и постройте приложение, в котором будут отображаться цена индекса RTS и экспоненциальное скользящее среднее цены в виде графика (в качестве цены можно использовать (OPEN + HIGH + LOW + CLOSE)/4) Ссылку на приложение, логин и пароль для входа отправьте по адресу: N.Grafeeva@spbu.ru Тема - DB_Application_2017_job8

Слайд 14


Построение запросов, слайд №14
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию