- •Содержание
- •1. Основные понятия баз данных
- •1.1. Проектирование баз данных
- •1.2. Индексы и ключи в базах данных
- •2. Функциональные зависимости
- •2.1. Понятие функциональной зависимости
- •2.2. Метод синтеза
- •2.3. Аксиомы вывода
- •2.4. Применение аксиом вывода
- •2.5. Замыкание множества атрибутов относительно множества функциональных зависимостей
- •2.6. Эквивалентность двух систем функциональных зависимостей
- •2.7 Метод синтеза
- •2.8. Классы эквивалентности функциональных зависимостей с эквивалентными левыми частями
- •2.9. Составные функциональные зависимости и кольцевые покрытия
- •3. Нормализация баз данных
- •3.1. Декомпозиция таблицы на две таблицы без потери информации и с потерей информации
- •4. Иерархия в базах данных
- •4.1. Использование иерархии в базах данных
- •4.2. Инклюзивная и эксклюзивная иерархии
- •5. Сортировка и поиск записей в базах данных
- •5.1.Многофазная сортировка
- •7. Оптимизация запросов
- •7.1. Основные операции реляционной алгебры и их обозначения
- •8. Статистические данные, используемые для минимизации запросов
- •8.1. Анализ стоимости операций
- •8.2. Оценка размеров промежуточных отношений
- •8.2.1. Оценка размера результата операции объединения
- •8.2.2. Оценка размера результата операции пересечения
- •8.2.3. Оценка размера результата оператора проекции
- •8.2.4. Оценка размера результата оператора выбора
- •8.3. Выборка с условием равенства двух атрибутов
- •8.4. Выборка при условии неравенства двух атрибутов
- •8.5. Естественное соединение отношений с несколькими общими атрибутами
- •8.6. Соединение нескольких отношений
- •8.7. Оценка размеров результатов выполнения других операторов
- •8.7.1. Объединение
- •8.7.2. Пересечение
- •8.7.3. Разность
- •8.7.4. Удаление кортежей-дубликатов
- •8.7.5. Группирование и агрегирование
- •8.8. Свод формул для сравнительного расчета количества записей результата выполнения операций реляционной алгебры
- •8.9. Тождественные преобразования для операций реляционной алгебры
- •8.10. Алгебраические законы и планы запросов
- •8.10.1. Коммутативный и ассоциативный законы
- •8.11. Законы для "множественных" и "мультимножественных" версий операторов
- •8.11.1. Законы выбора
- •8.11.2. Некоторые тривиальные законы
- •8.11.3. Законы проекции
- •8.11.4. Законы соединения и декартова произведения
- •8.11.5. Законы, касающиеся удаления кортежей-дубликатов
- •8.11.6. Законы группирования и агрегирования
- •8.11.7. Закон деления
8.11.7. Закон деления
πBC(r(ABCDE)),
q(BC),
q=r : s.
Для реализации запроса на деление необходимо вначале найти те записи, которые не удовлетворяют условию запроса. Потом найти разность и получим результат.
Задача: получить список пилотов, летающих на самолетах из данного списка
Таблица 8.4 – Список самолетов
A |
AH-24 |
АН-26 |
АН-72 |
ΠR\s – все пилоты, πR\s(r)×s – предположение что все пилоты могут летать на самолетах из списка (Таблица 8.4).
1)
p |
A |
Иванов |
АН-2 |
Иванов |
АН-24 |
Иванов |
АН-26 |
Иванов |
АН-72 |
Петров |
АН-24 |
Петров |
АН-26 |
Яковлев |
АН-24 |
Яковлев |
АН-26 |
Яковлев |
АН-72 |
p |
A |
Иванов |
АН-24 |
Иванов |
АН-26 |
Иванов |
АН-72 |
Петров |
АН-24 |
Петров |
АН-26 |
Яковлев |
АН-24 |
Яковлев |
АН-26 |
Яковлев |
АН-72 |
Таблица 8.5 – Список пилотов, летающих на самолетах
Если из (2) вычесть (1), то получим те записи, которые не удовлетворяют условию.
πR\s(r) \ πR\r(r)(( πR\s×s) \ r) = r:s,
δF (r : s) = δF (R) : S,
δF (r s) = δF (R) δF (S),
δ (r×s)= δ(r)× δ(s),
δ (r s)= δ(r) δ(s) .