Реляционная алгебра – замкнутая система операций над отношениями в РБД. Делится на теоретико-множественные и специальные.
Теоретико-множественные: 1) объединение отношений – отношение, включающее все кортежи, входящие в оба отношения операнда;
2) пересечение – пересечение, состоящее из кортежей, входящих в оба отношения операнда;
3) взятие разности – отношение, включающее в себя кортежи, входящие в отношения первого операнда так, что не один из них не входит в отношения, являющиеся вторым операндом;
4) прямое произведение- отношение, кортежи которого являются сцеплением кортежей 1 и 2 операнда.
Специальные: 1) ограничение или выбора – участвуют 2 операнда: отношение и условие. Результат – отношение, состоящее из кортежей, удовлетворяющих этому условию;
2) проекция – отношение, кортежи которого получаются путем выборки соответствующих значений от отношения объединения первого плана;
3) присоединение – формирует условие. Результатом является отношение, кортежи которого являются сцеплением кортежей первого и второго отношений, удовлетворяющих этому условию;
4) реляционное деление – результирующее отношение состоит из одно атрибутных (унарных) кортежей, включающих такие значения первого атрибута первого операнда, что множество значений второго атрибута совпадает с множеством значений второго операнда.
В состав алгебры включают еще 2 операции: сохранение (присваивание) и операция переименования. Правило: при выполнении операции реляционной алгебры операндами являются отношения и результатом должны являться тоже отношения.
Реляционное исчисление эквивалентно реляционной алгебре. Реляционное исчисление, в отличие от реляционной алгебры, - непроцедурный язык, и в основном используется для оценки избирательной мощности реляционных языков. Язык называется реляционно-полным, если он позволяет получить любое отношение, которое можно получить с помощью реляционного исчисления.
Здесь мы указываем лишь характеристики результирующего отношения, но не говорим о способе его формирования. СУБД сама должна решить какие операции и в каком порядке надо выполнить над отношениями СОТРУДНИКИ и ОТДЕЛЫ. Задача оптимизации выполнения запроса в этом случае также ложится на СУБД.
Обычно говорят, что алгебраическая формулировка является процедурной, т.е. задающей правила выполнения запроса, а логическая - описательной (или декларативной), поскольку она всего лишь описывает свойства желаемого результата. Как мы указывали в начале лекции, на самом деле эти два механизма эквивалентны и существуют не очень сложные правила преобразования одного формализма в другой
Реляционная алгебра и реляционное исчисление эквивалентны по своей выразительной силе[4]. Существуют правила преобразования запросов между ними.
потому что алгебра (частично) задаёт порядок операций, тогда как исчисление оставляет компилятору или интерпретатору определять наиболее эффективный порядок вычисления.