- •Предисловие
- •Основные функции систем управления базами данных (СУБД)
- •Основные понятия
- •Преимущества использования баз данных
- •Функции систем управления базами данных
- •Литература
- •Реляционная модель данных
- •Структуры данных. Фундаментальные свойства отношений
- •Целостность данных. Реляционные ключи
- •Манипулирование данными
- •Реляционная алгебра Кодда
- •Операции
- •Объединение
- •Пересечение
- •Разность
- •Декартово произведение
- •Сокращение (выборка, ограничение, селекция)
- •Проекция
- •Соединения
- •Деление
- •Приоритеты операций
- •Базис алгебры и ства операций
- •Базис
- •Свойства операций
- •Ограничения реляционной алгебры
- •Литература
- •Реляционное исчисление
- •Исчисление кортежей
- •Эквивалентность исчисления кортежей и реляционной алгебры
- •Исчисление доменов
- •Литература
- •Случаи неполной информации и ω-значения
- •Концепция трехзначной логики
- •Логические операторы
- •Кванторы
- •Арифметические операции и операции сравнения
- •ω-значения и домены
- •ω-значения и операторы реляционной алгебры
- •ω-значения и агрегирующие функции
- •Проблема интерпретации
- •ω-значения и ограничения целостности
- •Первичные ключи
- •Внешние ключи
- •Литература
- •Семантическое проектирование реляционных баз данных на основе ER-модели
- •Общий подход семантического моделирования
- •Основные понятия
- •Проектирование базы данных с помощью ER-модели
- •Литература
- •Проектирование реляционных баз данных при помощи нормализации
- •Жизненный цикл системы баз данных
- •Функциональные зависимости
- •Понятие функциональной зависимости
- •Тривиальные и нетривиальные зависимости
- •Замыкание множества зависимостей
- •Неприводимые множества зависимостей
- •Декомпозиция без потерь и функциональные зависимости
- •Диаграммы функциональных зависимостей
- •Сохранение независимости в смысле Риссанена
- •Многозначные зависимости
- •Нормализация
- •Понятие нормализации и её причины
- •Первая, вторая и третья нормальные формы
- •Нормальная форма Бойса–Кодда
- •Четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Литература
- •Основные принципы хранения данных во внешней памяти
- •Страничная организация хранения данных
- •Управление буферами внутренней памяти
- •Простая файловая организация страниц
- •Неупорядоченный файл
- •Упорядоченный файл
- •Индексирование
- •Индексно-прямой метод доступа
- •Индексно-последовательный метод доступа
- •Индекс на основе B+-деревья
- •Хэширование
- •Индексированные кластеры
- •Хэшированные кластеры
- •Литература
- •Управление транзакциями и синхронизация в реляционных СУБД
- •Понятие транзакции
- •Фундаментальные свойства транзакций
- •Изолированность транзакций
- •Синхронизационные блокировки
- •Простые блокировки
- •Гранулированные (намеренные) блокировки
- •Предикатные блокировки
- •Тупиковые ситуации
- •Метод временных меток
- •Механизм выделения версий данных
- •Литература
- •Журнализация и восстановление в реляционных СУБД
- •Журнализация и буферизация
- •Индивидуальный откат транзакции
- •Восстановление после мягкого сбоя
- •Восстановление после жесткого сбоя
- •Литература
- •Выполнение и оптимизация запросов в реляционных СУБД
- •Процесс оптимизации запроса
- •Преобразование запроса во внутреннюю форму
- •Преобразование запроса в каноническую форму
- •Выбор потенциальных низкоуровневых процедур
- •Генерация различных вариантов планов вычисления запроса и выбор плана с минимальными затратами
- •Низкоуровневая оптимизация операции выборки
- •Низкоуровневая оптимизация операции соединения
- •Литература
Словесно эту формулу можно описать так: результатом выполнения операции деления является отношение R1 R2, которое включает в себя атрибуты отношения R1, отличные от атрибутов отношения R2, и только те кортежи, декартовы произведения которых с телом отношения R2 дают (в объединении) тело отношения R1.
Замечание. Эта операция называется делением потому, что она в некотором смысле обратна операции (декартова) произведения в силу выполнения тождества:
pR1 R2q R2 R1
3.2. Приоритеты операций
Поскольку результатом рассмотренных реляционных операций является некое отношение, можно образовывать реляционные выражения, в которых вместо отношения-операнда некоторой реляционной операции находится вложенное реляционное выражение. Вычислительная интерпретация реляционного выражения диктуется установленными приоритетами операций:
Название операции |
Обозначение |
Приоритет |
|
|
|
Выборка |
F |
3 |
Проекция |
A |
3 |
Декартово произведение |
|
2 |
Соединения |
'F ; '; 'F ; 'F ; 'F |
2 |
Пересечение |
X |
2 |
Деление |
|
2 |
Объединение |
Y |
1 |
Разность |
|
1 |
|
|
|
Условно можно это записать одной строкой (символ ě интерпретируется как «выше», а — «тот же» или «одинаковый»):
F A ě ' X ě Y :
3.3. Базис алгебры и ства операций
Базис
Базисными операциями алгебры Кодда, через которые выражаются все остальные реляционные операции, являются:
1 Выборка,
2 Проекция,
3 Декартово произведение,
4 Объединение,
5 Разность.
Все остальные реляционные операции можно выразить через базисные, например, следующим образом:
1. Пересечение:
R1 X R2 R1 pR1 R2q;
2. -соединение:
R1 'F R2 F pR1 R2q ;
3. Естественное соединение (при общих атрибутах A HR1 X HR2 ):
R1 ' R2 HR1 YHR2 ŹaPApR1:a R2:aqpR1 R2q ;
20
4.Левое и правое внешние -соединения отношений R1 и R2: пусть Ω — отношение с заголовком HR2 zHR1 (для правого — HR1 zHR2 ) и одним кортежем, заполненным лишь неопределенными
значениями !, тогда
|
R1 'F R2 pR1 'F R2q Y pR1 HR1 pR1 'F R2qq Ω ; |
|
R1 'F R2 pR1 'F R2q Y Ω pR2 HR2 pR1 'F R2qq ; |
5. |
Полное внешнее -соединение: |
|
R1 'F R2 pR1 'F R2q Y pR1 'F R2q ; |
6. |
Деление: |
|
R1 R2 ApR1q A ApR1q R2 R1 : |
Свойства операций
Дадим несколько определений:
Определение 15. Говорят, что унарный оператор f распределяется по бинарной операции f, если fpA f Bq fpAq f fpBq.
Определение 16. Говорят, что бинарная операция распределяется по бинарной операции f, если
A pB f Cq pA f Bq pA f Cq.
Теперь перечислим другие свойства реляционных операций, используемых при оптимизации запросов:
1. Коммутативность и ассоциативность:
R1 f R2 R2 f R1;
pR1 f R2q f R3 R1 f pR2 f R3q;
где f P tY; X; ; '; 'F ; 'F u и P t ; u:
2. Распределение выборки по операциям:
|
|
FpR1 f R2q FpR1q f FpR2q; |
где f P tY; X; u: |
|
|
|
|
|
||||||||||
Предположим теперь, что в условии F1 используются только атрибуты отношения R1 (или во- |
||||||||||||||||||
обще никакие), а в условии F2 используются атрибуты отношения R2, тогда |
|
|
|
|
|
|||||||||||||
|
F1^F2 pR1 f R2q F1 pR1q f F2 pR2q; где f P t ; 'F ; '; ' ; ' ; ' u: |
|
|
|||||||||||||||
3. Распределение проекции по операциям: |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
ApR1 f R2q ApR1q f ApR2q; |
|
где f P tY; X; u: |
|
|
|
AF |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
. Пусть теперь |
A A1A2 |
, где |
— |
||||
Рассмотрим некоторый вид соединения с условием F |
|
|
1 |
|||||||||||||||
некоторые атрибуты |
отношения R |
, |
A2 |
— некоторые атрибуты отношения R |
. Пусть |
A1 |
— |
|||||||||||
|
и |
F |
|
1 |
|
|
|
|
2 |
|
|
. |
|
|||||
атрибуты |
отношения R |
A2 |
— атрибуты отношения R |
, участвующие в условии F |
|
|
||||||||||||
F |
|
|
1 F |
|
|
|
|
|
2 |
|
|
|
|
|
|
|
||
• Если A1 |
Ď A1 и A2 |
Ď A2, тогда |
|
|
где f P t'F ; 'F ; 'F ; 'F u: |
|
|
|||||||||||
|
A1YA2 pR1 f R2q A1 pR1q f A2 pR2q; |
|
|
|
||||||||||||||
• Иначе — общий случай: |
|
A1YA1F pR1q f A2YA2F pR2q ; где f P t'F ; 'F ; 'F ; 'F u: |
||||||||||||||||
A1YA2 pR1 f R2q A1YA2 |
4. Идемпотентность:
R f R R; где f P tY; X; 'F ; '; 'F ; 'F ; 'F u:
5. Законы поглощения:
R1 Y pR1 X R2q R1;
R1 X pR1 Y R2q R1:
21