
- •1. Введение
- •http://sok.susu.ru
- •Курс "Современные технологии разработки СУБД" http://sok.susu.ru/courses/index.html
- •Подписка на новости курса
- •Курс "Современные технологии разработки СУБД" http://sok.susu.ru/courses/index.html
- •Часть 1. Обработка запросов в системах баз данных http://sok.susu.ru/courses/QueryProc/index.html
- •Презентации лекций http://sok.susu.ru/courses/QueryProc/lectures/index.html
- •Часть 1. Обработка запросов в системах баз данных http://sok.susu.ru/courses/QueryProc/index.html
- •Справочно-библиографический портал «Информационные технологии» http://bit.sp.susu.ac.ru/elib/view/index.php?id=767
- •Поиск
- •Доступ к полному тексту
- •Схема базы данных «Поставки»
- •Отношение П (Поставщики)
- •Отношение Д (Детали)
- •Отношение А (Ангары)
- •Отношение ПД (Поставки деталей)
- •Пример запроса
- •Как СУБД получает ответ?
- •Схема обработки запроса
- •На пути к физическому плану
- •Основные операции реляционной алгебры
- •Проекция
- •Выборка
- •Прямое произведение
- •Тета-соединение
- •Естественное соединение
- •Возникновение дубликатов
- •Удаление дубликатов
- •Группировка
- •Операции реляционной алгебры в SQL
- •Построение реляционного выражения
- •Представление реляционного выражения в виде логического плана
- •Преобразование логического плана в физический
- •Схема компиляции запроса
- •Оптимизация запроса

© Соколинский Л.Б. |
1. Введение |
03.09.2011 |
Удаление дубликатов
R
|
B |
C |
|
|
20 |
100 |
|
|
40 |
300 |
|
|
20 |
100 |
|
|
10 |
300 |
|
|
|
|
|
δ(R)
B* |
C |
20 |
100 |
40 |
300 |
10 |
300 |
|
|
Обработка запросов в системах баз данных |
31 |

© Соколинский Л.Б. |
1. Введение |
03.09.2011 |
Группировка
R |
|
|
|
|
|
|
|
|
|
|
|
A* |
B |
C |
|
A* |
B |
C |
|
A* |
B |
C |
X=AVG(C) |
1 |
20 |
400 |
|
1 |
20 |
400 |
|
1 |
20 |
400 |
200 |
2 |
40 |
300 |
|
3 |
20 |
150 |
|
3 |
20 |
150 |
|
3 |
20 |
150 |
|
5 |
20 |
50 |
|
5 |
20 |
50 |
|
4 |
40 |
500 |
|
2 |
40 |
300 |
|
2 |
40 |
300 |
400 |
5 |
20 |
50 |
|
4 |
40 |
500 |
|
4 |
40 |
500 |
|
|
|
|
|
|
|
|
|
|
|
|
|
γB, AVG(C)→ X(R)
B* |
X |
20 |
200 |
40 |
400 |
|
|
Обработка запросов в системах баз данных |
32 |

© Соколинский Л.Б. |
1. Введение |
03.09.2011 |
Операции реляционной алгебры в SQL
Операция |
SQL |
πA,С(R) |
SELECT A,C FROM R |
σθ (R) |
SELECT * FROM R WHERE θ |
R×S |
R CROSS JOIN S |
R S |
R NATURAL JOIN S |
R S |
R JOIN S ON θ |
θ |
|
δ(R) |
SELECT DISTINCT * FROM R |
γB,AVG(C)->X(R) |
SELECT B, AVG(C) AS X FROM R GROUP BY B |
Обработка запросов в системах баз данных |
33 |

© Соколинский Л.Б. |
1. Введение |
03.09.2011 |
Построение реляционного выражения
πИмя_П(σП.Код_П=ПД.Код_П(σПД.Код_Д=Д.Код_Д(σЦвет='Крас'( П×(ПД×Д)))))
πИмя_П(σЦвет='Крас'(П (ПД Д)))
/* Имена поставщиков, поставляющих хотя бы одну красную деталь */
SELECT Имя_П
FROM П,ПД,Д
WHERE П.Код_П = ПД.Код_П
AND ПД.Код_Д = Д.Код_Д
AND Цвет = 'Крас'
Какой лучший?
πИмя_П(σЦвет='Крас'((П ПД) Д))
πИмя_П((П ПД) σЦвет='Крас'(Д))
|
πИмя_П(πИмя_П,Код_П(П) (πКод_П,Код_Д(ПД) πКод_Д(σЦвет='Крас'(Д)))) |
|
||
Почему? |
Как построить? |
Как выбрать? |
… |
|
|
|
|
||
Обработка запросов в системах баз данных |
|
|
34 |