slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Принципы построения и работы баз данных Тема 6: Обработка запросРPowerPoint Presentation
Download Presentation
Принципы построения и работы баз данных Тема 6: Обработка запросÐ

Loading in 2 Seconds...

play fullscreen
1 / 56

Принципы построения и работы баз данных Тема 6: Обработка запросР- PowerPoint PPT Presentation


  • 229 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Принципы построения и работы баз данных Тема 6: Обработка запросÐ' - rhett


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

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

Тема 6

slide2
Обработка запросов

Запрос Q  план запроса

Мы будем рассматривать реляционные системы (БД). Как это будет происходить в других БД.

Пример 1.

Select B,D

From R,S

Where R.A = “c”  S.E = 2  R.C=S.C

Тема 6

slide3

Ответ 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

slide4
Как мы выполняем запрос?

- Выполнить декартово произведение

- Произвести выборку

- Произвести проекцию

Один подход

Тема 6

slide5

Есть!

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

slide6
Реляционная алгебра – может быть использована для описания планов...

Например: План 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

slide7
Другая идея:

План II

B,D

sR.A = “c” sS.E = 2

R S

естественное соед.

Тема 6

slide8

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

slide9
План 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

slide10

=“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

slide11

SQL запрос

Обзор задач оптимизации запросов

Синтакс.пров.

Проверенное дерево запроса

преобразование

ответ

Лог.план запроса

выполнить

Примен.правил

статистика

Pi

“улучшенный” л.п.з.

Выбрать лучший

Оценка размеров результата

{(P1,C1),(P2,C2)...}

Л.п.з. +размеры

Оценить стоимость

Рассмотреть физические планы

{P1,P2,…..}

Тема 6

slide12
Пример: SQL запрос

SELECT title

FROM StarsIn

WHERE starName IN (

SELECT name

FROM MovieStar

WHERE birthdate LIKE ‘%1960’

);

(Найти фильмы с артистами, рожденными в 1960 г.)

Тема 6

slide13

Пример:Дерево синтакс.разбора

<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

slide14

Пример:Генерация выражения реляционной алгебры

title

StarsIn <condition>

<tuple> IN name

<attribute> birthdate LIKE ‘%1960’

starName MovieStar

Тема 6

slide15

Пример:Логический план запроса

title

starName=name

StarsIn name

birthdate LIKE ‘%1960’

MovieStar

Тема 6

slide16

Пример:Улучшенный логический план запроса

title

Можно ли выполнить

проекцию раньше, в

StarsIn?

starName=name

StarsIn name

birthdate LIKE ‘%1960’

MovieStar

Тема 6

slide17
Пример: Оценка размеров результата

нужен ожид.размер

StarsIn

MovieStar

P

s

Тема 6

slide18
Пример: Один физический план

Параметры: порядок соедин.,

размер памяти, атрибуты

проекции, ...

Hash join

Параметры: условия выборки...

Просмотр

индекса

Последов.

просмотр

StarsIn MovieStar

Тема 6

slide19
Пример:Оценка стоимости

L.Q.P

P1 P2 …. Pn

C1 C2 …. Cn

Выбрать лучший!

Тема 6

slide20
Обзор изложения в книге

Глава 15

15.1,15.2 Физические операторы и их реализация

- Выборка, сортировка, ….

- Простейшая стоимостная модель.

- однопроходные алгоритмы

- Множества и наборы

15.3-15.6Реализация операторов соединения и оценка их стоимости

- Многопроходные алгоритмы

Тема 6

slide21
Глава 16

16.1 Синтаксический анализ

16.2 Алгебраические правила преобразования

16.3 От дерева синтаксического разбора -> к логическому плану запроса

16.4 Оценка стоимости операторов

16.5-16.7 Оптимизация, основанная на стоимости операторов

Факультативное чтение: 15.7, 15.8, 15.9, 16.6, 16.7

Факультативное чтение : Оператор удаления дубликатов, группирования, агрегирования

Тема 6

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

Тема 6

slide23
Оптимизация средствами реляционной алгебры
  • Правила преобразования/трансформации

(эквивалентность результата )

  • Какие преобразования являются «полезными»?

Тема 6

slide24
Пример правила:Естественные соединения, декартовы произведения и объединения – коммутативны и ассоциативны

R S = S R

(R S) T = R (S T)

Замечание:

  • Порядок атрибутов в отношении не важен
  • Правило может быть выражено в форме дерева

T R

R S S T

Тема 6

slide25
Правила: Естественные соединения, декартовы произведения и объединения

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

slide26
Правила:Выборки

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

slide27
При альтернативе 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

slide28
Принимаемое решение

-> Использовать “SUM” альтернативу, когда объединяются наборы

-> Некоторые правила не работают для наборов

Например, если A=B=C={x},

(A ÇB(B ÈBC))¹ (A ÇBB) ÈB(A ÇBC)

Тема 6

slide29
Правила:Комбинирование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

slide30
--> Пример вывода (остальное – дома):

sp&q (R S) = sp[sq (R S) ] =

sp[ R sq (S) ] = [sp (R)] [sq (S)]

Тема 6

slide31

pxz

{sp [ px (R) ]}

px

Правила:Комбинирование p,s

Пусть x = подмножество атрибутов R

z = атрибуты предиката P

(подмножество атрибутов R )

px[sp (R) ] =

Тема 6

slide32

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

slide33
Правила: Комбинированиеs, U

sp(R U S)= sp(R) U sp(S)

sp(R - S)= sp(R) - S = sp(R) - sp(S)

Тема 6

slide34
Какие преобразования «полезны»?

sp1&p2 (R) sp1 [sp2 (R)]

sp (R S)  [sp (R)] S

R S  S R

px [sp(R)] px {sp [pxz(R)]}

Тема 6

slide35
Здравый смысл: проекция как можно раньше

Пример: 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

slide36
Резюме:
  • Не существует всегда полезных преобразований
  • Как правило, полезны ранние выборки

В книге приводятся примеры других преобразований

  • Удаление общих подвыражений
  • Удаление дубликатов

Тема 6

slide37
Оценка стоимости плана запроса

(1) Оценка размера результата

(2) Оценка количества операций IO

Для (1):

  • Хранить статистику для отношения R
    • T(R) : количество кортежей в R
    • S(R) : количество байт в каждом кортеже R
    • B(R): количество блоков для всех кортежей R
    • V(R, A) : количество различных значений атрибута А в отношении R

Тема 6

slide38

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

slide39

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

slide40

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

Тема 6

slide41

Пример

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

cardinality
Число элементов(cardinality) выборки

SC(R,A) = среднее число записей, удовлетворяющих условию равенства для R.A

T(R)

V(R,A)

SC(R,A) =

T(R)

DOM(R,A)

Тема 6

w s z val r t w
Как быть в случае 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

w r1 r2

X  Y = 

Случай 1

Так же как и для R1 x R2

Оценка размерадля W = R1 R2

Пусть x = атрибуты R1

y = атрибуты R2

Тема 6

w r1 r2 x y a

Предположения:

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

slide46

Вычисление 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

slide47
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

slide48

Случай 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

s w s r1 s r2 s a a
Во всех случаях:S(W) = S(R1) + S(R2) - S(A)размер атрибута A

Тема 6

slide50
Используя подобные идеи, можно оценить размер:

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

t s v
Замечание:Для сложных выражений может потребоваться оценка T,S,V для промежуточных результатов.

Например,W = [sA=a(R1) ] R2

рассмотрим как отношениеU

T(U) = T(R1)/V(R1,A) S(U) = S(R1)

кроме того, нам будут необходимы значения V (U, *)

Тема 6

slide52
Для оценки значений V(,)

Например, U = sA=a(R1),где R1 имеет атрибуты A,B,C,D

V(U, A) = V(U, B) =

V(U, C) =V(U, D) =

Тема 6

slide53

A

B

C

D

cat

1

10

10

cat

1

20

20

dog

1

30

10

dog

1

40

30

bat

1

50

10

V(D,U) ...где-то в промежутке

Пример

R 1 V(R1,A)=3

V(R1,B)=1

V(R1,C)=5

V(R1,D)=3

U =sA=a(R1)

V(U,A) =1 V(U,B) =1 V(U,C) = T(R1)

V(R1,A)

Тема 6

u r1 a b r2 a c
Для соединений U = R1(A,B) R2(A,C)

V(U,A) = min { V(R1, A), V(R2, A) }

V(U,B) = V(R1, B)

V(U,C) = V(R2, C)

[это предположение называется “сохранением множества значений” в разделе 16.4.4]

Z = R1(A,B) R2(B,C) R3(C,D)

R1: T(R1) = 1000 V(R1,A)=50 V(R1,B)=100

R2: T(R2) = 2000 V(R2,B)=200 V(R2,C)=300

R3: T(R3) = 3000 V(R3,C)=90 V(R3,D)=500

Тема 6

u r 1 r 2
Промежуточный результат: U = R1 R2

T(U) = 10002000 V(U,A) = 50

200 V(U,B) = 100

V(U,C) = 300

Z = U R3

T(Z) = 100020003000 V(Z,A) = 50

200300 V(Z,B) = 100

V(Z,C) = 90

V(Z,D) = 500

Тема 6

slide56
Итоги
  • Оценка размеров результата является “искусством”
  • Не забывайте:

Статистика должна обновляться, чтобы давать хорошие оценки (какова стоимость обновления?)

  • Оценка стоимости плана запроса
    • Оценка размера результата-сделано!
    • Оценка количества IO - следующая тема…
  • Генерация и сравнение планов

Тема 6