Реляционная алгебра - Примеры использования реляционных операторов
ОГЛАВЛЕНИЕ
Примеры использования реляционных операторов
Пример 12. Получить имена поставщиков, поставляющих деталь номер 2.
Решение:
Пример 13. Получить имена поставщиков, поставляющих по крайней мере одну гайку.
Решение:
Ответ на этот запрос можно получить и иначе:
Пример 14. Получить имена поставщиков, поставляющих все детали.
Решение:
Пример 15. Получить имена поставщиков, не поставляющих деталь номер 2.
Решение:
Ответ на этот запрос можно получить и пошагово:
- получить список номеров всех поставщиков
- соединить данные о поставщиках и поставках
- в данных о поставщиках и поставках оставить только данные о поставках детали номер 2.
- получить список номеров поставщиков, поставляющих деталь номер 2.
- получить список номеров поставщиков, не поставляющих деталь номер 2.
- соединить список номеров поставщиков, не поставляющих деталь номер 2 с данными о поставщиках (получатся полные данные о поставщиках, не поставляющих деталь номер 2).
- искомый ответ (имена поставщиков, не поставляющих деталь номер 2).
Зависимые реляционные операторы
Как было сказано в начале главы, не все операторы реляционной алгебры являются независимыми - некоторые из них выражаются через другие реляционные операторы.
Оператор соединения
Оператор соединения определяется через операторы декартового произведения и выборки. Для оператора естественного соединения добавляется оператор проекции.
Оператор пересечения
Оператор пересечения выражается через вычитание следующим образом:
Оператор деления
Оператор деления выражается через операторы вычитания, декартового произведения и проекции следующим образом:
Таким образом показано, что операторы соединения , пересечения и деления можно выразить через другие реляционные операторы, т.е. эти операторы не являются примитивными.