1 / 56

Принципы построения и работы баз данных Тема 6: Обработка запросов

Принципы построения и работы баз данных Тема 6: Обработка запросов. Обработка запросов. Запрос Q  план запроса Мы будем рассматривать реляционные системы (БД). Как это будет происходить в других БД. Пример 1. Select B,D From R,S Where R.A = “c”  S.E = 2  R.C=S.C.

rhett
Télécharger la présentation

Принципы построения и работы баз данных Тема 6: Обработка запросов

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Принципы построения и работы баз данныхТема 6: Обработка запросов Тема 6

  2. Обработка запросов Запрос Q  план запроса Мы будем рассматривать реляционные системы (БД). Как это будет происходить в других БД. Пример 1. Select B,D From R,S Where R.A = “c”  S.E = 2  R.C=S.C Тема 6

  3. Ответ B D 2 x R A B C S C D E a 1 10 10 x 2 b 1 20 20 y 2 c 2 10 30 z 2 d 2 35 40 x 1 e 3 45 50 y 3 Тема 6

  4. Как мы выполняем запрос? - Выполнить декартово произведение - Произвести выборку - Произвести проекцию Один подход Тема 6

  5. Есть! RXS R.A R.B R.C S.C S.D S.E a 1 10 10 x 2 a 1 10 20 y 2 . . C 2 10 10 x 2 . . Тема 6

  6. Реляционная алгебра – может быть использована для описания планов... Например: План 1 B,D sR.A=“c”& S.E=2 & R.C=S.C X R S или: B,D [sR.A=“c”& S.E=2 & R.C = S.C (RXS)] Тема 6

  7. Другая идея: План II B,D sR.A = “c” sS.E = 2 R S естественное соед. Тема 6

  8. R S A B C s (R) s(S) C D E a 1 10 A B C C D E 10 x 2 b 1 20 c 2 10 10 x 2 20 y 2 c 2 10 20 y 2 30 z 2 d 2 35 30 z 2 40 x 1 e 3 45 50 y 3 Тема 6

  9. План III Использование индексов по атрибутам R.A и S.C (1) Использовать индекс R.A для выборки кортежей из R таких, что R.A = “c” (2) Для каждого найденного значения R.C использовать индекс S.C для нахождения соответствующих кортежей из S (3) Удалить кортежи, для которых S.E  2 (4) Соединить соответствующие кортежи R,S, произвести проекцию атрибутов B,D и вывести результат. Тема 6

  10. =“c” <c,2,10> <10,x,2> След.кортеж: <c,7,15> R S A B C C D E a 1 10 10 x 2 b 1 20 20 y 2 c 2 10 30 z 2 d 2 35 40 x 1 e 3 45 50 y 3 A C I1 I2 проверка=2? вывод: <2,x> Тема 6

  11. SQL запрос Обзор задач оптимизации запросов Синтакс.пров. Проверенное дерево запроса преобразование ответ Лог.план запроса выполнить Примен.правил статистика Pi “улучшенный” л.п.з. Выбрать лучший Оценка размеров результата {(P1,C1),(P2,C2)...} Л.п.з. +размеры Оценить стоимость Рассмотреть физические планы {P1,P2,…..} Тема 6

  12. Пример: SQL запрос SELECT title FROM StarsIn WHERE starName IN ( SELECT name FROM MovieStar WHERE birthdate LIKE ‘%1960’ ); (Найти фильмы с артистами, рожденными в 1960 г.) Тема 6

  13. Пример:Дерево синтакс.разбора <Query> <SFW> SELECT <SelList> FROM <FromList> WHERE <Condition> <Attribute> <RelName> <Tuple> IN <Query> title StarsIn <Attribute> ( <Query> ) starName <SFW> SELECT <SelList> FROM <FromList> WHERE <Condition> <Attribute> <RelName> <Attribute> LIKE <Pattern> name MovieStar birthDate ‘%1960’ Тема 6

  14. Пример:Генерация выражения реляционной алгебры title  StarsIn <condition> <tuple> IN name <attribute> birthdate LIKE ‘%1960’ starName MovieStar Тема 6

  15. Пример:Логический план запроса title starName=name  StarsIn name birthdate LIKE ‘%1960’ MovieStar Тема 6

  16. Пример:Улучшенный логический план запроса title Можно ли выполнить проекцию раньше, в StarsIn? starName=name StarsIn name birthdate LIKE ‘%1960’ MovieStar Тема 6

  17. Пример: Оценка размеров результата нужен ожид.размер StarsIn MovieStar P s Тема 6

  18. Пример: Один физический план Параметры: порядок соедин., размер памяти, атрибуты проекции, ... Hash join Параметры: условия выборки... Просмотр индекса Последов. просмотр StarsIn MovieStar Тема 6

  19. Пример:Оценка стоимости L.Q.P P1 P2 …. Pn C1 C2 …. Cn Выбрать лучший! Тема 6

  20. Обзор изложения в книге Глава 15 15.1,15.2 Физические операторы и их реализация - Выборка, сортировка, …. - Простейшая стоимостная модель. - однопроходные алгоритмы - Множества и наборы 15.3-15.6Реализация операторов соединения и оценка их стоимости - Многопроходные алгоритмы Тема 6

  21. Глава 16 16.1 Синтаксический анализ 16.2 Алгебраические правила преобразования 16.3 От дерева синтаксического разбора -> к логическому плану запроса 16.4 Оценка стоимости операторов 16.5-16.7 Оптимизация, основанная на стоимости операторов Факультативное чтение: 15.7, 15.8, 15.9, 16.6, 16.7 Факультативное чтение : Оператор удаления дубликатов, группирования, агрегирования Тема 6

  22. Оптимизация запросов – Порядок рассмотрения на лекциях • Уровень реляционной алгебры • Уровень детального плана • Оценка стоимости • Без индексов • С индексами • Генерация и сравнение планов Тема 6

  23. Оптимизация средствами реляционной алгебры • Правила преобразования/трансформации (эквивалентность результата ) • Какие преобразования являются «полезными»? Тема 6

  24. Пример правила:Естественные соединения, декартовы произведения и объединения – коммутативны и ассоциативны R S = S R (R S) T = R (S T) Замечание: • Порядок атрибутов в отношении не важен • Правило может быть выражено в форме дерева T R R S S T Тема 6

  25. Правила: Естественные соединения, декартовы произведения и объединения R S = S R (R S) T = R (S T) R x S = S x R (R x S) x T = R x (S x T) R U S = S U R R U (S U T) = (R U S) U T Тема 6

  26. Правила:Выборки sp1 [ sp2 (R)] [ sp1 (R)] US [ sp2 (R)], R-множество sp1 & p2(R) = sp1 | p2(R) = Наборы и множества R = {a,a,b,b,b,c}, S = {b,b,c,c,d}, RUS = ? • Альтернатива 1 SUM RUS = {a,a,b,b,b,b,b,c,c,c,d} • Альтернатива 2 MAX RUS = {a,a,b,b,b,c,c,d} Тема 6

  27. При альтернативе 2(MAX) работает следующее правило:sp1 |p2 (R) = sp1(R) U sp2(R) Пример: R={a,a,b,b,b,c} P1 выполняется для кортежей a,b; P2 - для b,c sp1 | p2 (R) = {a,a,b,b,b,c} sp1(R) = {a,a,b,b,b} sp2(R) = {b,b,b,c} sp1(R) U sp2(R) = {a,a,b,b,b,c} Если же объединяются выборки из разных таблиц, то альтернатива 1 имеет больше смысла Тема 6

  28. Принимаемое решение -> Использовать “SUM” альтернативу, когда объединяются наборы -> Некоторые правила не работают для наборов Например, если A=B=C={x}, (A ÇB(B ÈBC))¹ (A ÇBB) ÈB(A ÇBC) Тема 6

  29. Правила:Комбинированиеs + Пусть p = предикат с атрибутами только из R q = предикат с атрибутами только из S m = предикат с атрибутами только из R,S sp (R S) = [sp (R)] S sq (R S) =R [sq (S)] Некоторые правила могут быть выведены sp&q (R S) = [sp (R)] [sq (S)] sp&q&m (R S) = sm [(sp (R)) (sq (S))] sp|q (R S) = [(sp (R)) S] U [R (sq (S))] Тема 6

  30. --> Пример вывода (остальное – дома): sp&q (R S) = sp[sq (R S) ] = sp[ R sq (S) ] = [sp (R)] [sq (S)] Тема 6

  31. pxz {sp [ px (R) ]} px Правила:Комбинирование p,s Пусть x = подмножество атрибутов R z = атрибуты предиката P (подмножество атрибутов R ) px[sp (R) ] = Тема 6

  32. pxy{[pxz (R) ] [pyz (S) ]} Правила: Комбинированиеp, Пусть x = подмножество атрибутов R y = подмножество атрибутов R z = пересечение атрибутов R,S pxy (R S) = pxy {sp [pxz’(R) pyz’ (S)]} где z’ = z U {атрибуты, используемые в P } pxy {sp (R S)} = Тема 6

  33. Правила: Комбинированиеs, U sp(R U S)= sp(R) U sp(S) sp(R - S)= sp(R) - S = sp(R) - sp(S) Тема 6

  34. Какие преобразования «полезны»? sp1&p2 (R) sp1 [sp2 (R)] sp (R S)  [sp (R)] S R S  S R px [sp(R)] px {sp [pxz(R)]} Тема 6

  35. Здравый смысл: проекция как можно раньше Пример: R(A,B,C,D,E) x={E} P: (A=3)  (B=“cat”) px {sp(R)} в сравнениисpE {sp{pABE(R)}} однако, если имеются индексы поA,B B = “cat” A=3 Пересечение указателей дает быстрый доступ к соответствующим кортежам Тема 6

  36. Резюме: • Не существует всегда полезных преобразований • Как правило, полезны ранние выборки В книге приводятся примеры других преобразований • Удаление общих подвыражений • Удаление дубликатов Тема 6

  37. Оценка стоимости плана запроса (1) Оценка размера результата (2) Оценка количества операций IO Для (1): • Хранить статистику для отношения R • T(R) : количество кортежей в R • S(R) : количество байт в каждом кортеже R • B(R): количество блоков для всех кортежей R • V(R, A) : количество различных значений атрибута А в отношении R Тема 6

  38. A B C D cat 1 10 a Example R A: 20 байт, симв. B: 4 байта, целое C: 8 байт, дата D: 5 байт, симв. cat 1 20 b dog 1 30 a dog 1 40 c bat 1 50 d T(R) = 5 S(R) = 37 V(R,A) = 3 V(R,C) = 5 V(R,B) = 1 V(R,D) = 4 Тема 6

  39. T(R) V(R,Z) Оценка размера для W = R1 x R2T(W) =T(R1)  T(R2)S(W) =S(R1) + S(R2)Оценка размера для W = sA=a (R)S(W) = S(R)T(W) = ?Пример. Пусть отношение R:V(R,A) = 3 V(R,B) = 1 V(R,C) = 5V(R,D) = 4 A B C D cat 1 10 a cat 1 20 b W = sz=val(R) T(W) = dog 1 30 a dog 1 40 c bat 1 50 d Тема 6

  40. Предположение:Значения атрибута Z из предиката выборки равномерно распределены среди возможных V(R,Z) значенийАльтернативное предположение:Значения атрибута Z из предиката выборки равномерно распределены среди возможных из области допустимыхзначений DOM(R,Z) Тема 6

  41. Пример R Альтерн.предположение V(R,A)=3 DOM(R,A)=10 V(R,B)=1 DOM(R,B)=10 V(R,C)=5 DOM(R,C)=10 V(R,D)=4 DOM(R,D)=10 A B C D cat 1 10 a cat 1 20 b dog 1 30 a dog 1 40 c bat 1 50 d T(R) DOM(R,Z) W = sz=val(R) T(W) = Тема 6

  42. Число элементов(cardinality) выборки SC(R,A) = среднее число записей, удовлетворяющих условию равенства для R.A T(R) V(R,A) SC(R,A) = T(R) DOM(R,A) Тема 6

  43. Как быть в случае W = sz  val(R)?T(W) = ? • Решение 1:T(W) = T(R)/2 • Решение 2:T(W) = T(R)/3 • Решение3: Оценка значений в интервале f = ( 20-15+1)/(20-1+1) = 6/20 (частота попадания T(W) = f  T(R) в интервал ) Z Min=1 W= sz  15 (R) Max=20 Тема 6

  44. X  Y =  Случай 1 Так же как и для R1 x R2 Оценка размерадля W = R1 R2 Пусть x = атрибуты R1 y = атрибуты R2 Тема 6

  45. Предположения: V(R1,A)  V(R2,A) Каждое значение A из R1 имеется и в R2 V(R2,A)  V(R1,A) Каждое значение A из R2имеется и в R1 “включение множеств значений” Sec. 16.4.4 Случай 2 W = R1 R2 X  Y = A R1 A B C R2 A D Тема 6

  46. Вычисление T(W)когда V(R1,A)  V(R2,A) R1 A B C R2 A D взять 1 кортеж соответствие 1 кортеж соответствует T(R2) кортежам... V(R2,A) следовательно T(W) = T(R2)  T(R1) V(R2, A) Тема 6

  47. V(R1,A)  V(R2,A) T(W) = T(R2) T(R1) V(R2,A) V(R2,A)  V(R1,A) T(W) = T(R2) T(R1) V(R1,A) [Где A атрибут соединения] В общем случае для W = R1 R2 T(W) = T(R2) T(R1) max{ V(R1,A), V(R2,A) } Тема 6

  48. Случай 2 С альтернативным предположением Значения равномерно распределены по домену R1 A B C R2 A D Этот кортеж соответствует T(R2)/DOM(R2,A) Поэтому T(W) = T(R2) T(R1) = T(R2) T(R1) DOM(R2, A) DOM(R1, A) Предполаг.одинаковым Тема 6

  49. Во всех случаях:S(W) = S(R1) + S(R2) - S(A)размер атрибута A Тема 6

  50. Используя подобные идеи, можно оценить размер: pAB (R) ….. Раздел. 16.4.2 sA=a&B=b (R) …. Раздел16.4.3 R S с общими атрибутами A,B,C -16.4.5 Объединение, пересечение, разность16.4.7 Тема 6

More Related