Реляционная алгебра
Ожидается, что реляционные системы баз данных будут оснащены языком запросов, который может помочь пользователям запрашивать экземпляры базы данных. Существует два вида языков запросов - реляционная алгебра и реляционное исчисление.
Реляционная алгебра
Реляционная алгебра - это процедурный язык запросов, который принимает экземпляры отношений в качестве входных данных и выдает экземпляры отношений в качестве выходных. Он использует операторы для выполнения запросов. Оператор может быть как унарным, так и двоичным . Они принимают отношения как свой вклад и дают отношения как свой выход. Реляционная алгебра выполняется рекурсивно в отношении, и промежуточные результаты также рассматриваются как отношения.
Основные операции реляционной алгебры следующие:
- Выбрать
- проект
- союз
- Установить разные
- Декартово произведение
- Rename
Мы обсудим все эти операции в следующих разделах.
Выберите операцию (σ)
Он выбирает кортежи, которые удовлетворяют данному предикату из отношения.
Обозначение - σ p (r)
Где σ обозначает предикат выбора, а r обозначает отношение. p - логическая формула предложения, в которой могут использоваться соединители типа и, или, или нет . В этих терминах могут использоваться реляционные операторы, такие как - =, ≠, ≥, <,>, ≤.
Например -
σ subject = "database" (Books)
Вывод - выбирает кортежи из книг, предметом которых является «база данных».
σ subject = "database" and price = "450" (Books)
Вывод - выбирает кортежи из книг, где предметом является «база данных», а «цена» - 450.
σ subject = "database" and price = "450" or year > "2010" (Books)
Выходные данные - выбирает кортежи из книг, где предметом является «база данных», а «цена» составляет 450, или тех книг, которые опубликованы после 2010 года
Операция проекта (∏)
Он проецирует столбцы, которые удовлетворяют данному предикату.
Обозначения - ∏ A 1 , A 2 , A n (r)
Где A 1 , A 2 , A n являются именами атрибутов отношения r .
Дублирующиеся строки автоматически удаляются, так как отношение является набором.
Например -
∏ subject, author (Books)
Выбирает и проецирует столбцы, названные как субъект и автор из книги отношений.
Союз Операция (∪)
Он выполняет двоичное соединение между двумя данными отношениями и определяется как -
r ∪ s = { t | t ∈ r or t ∈ s}
Обозначения - r U s
Где r и s - это либо отношения базы данных, либо набор результатов отношений (временное отношение).
Чтобы операция объединения была действительной, должны выполняться следующие условия:
- r и s должны иметь одинаковое количество атрибутов.
- Домены атрибутов должны быть совместимы.
- Дублирующиеся кортежи автоматически удаляются.
∏ author (Books) ∪ ∏ author (Articles)
Вывод - проецирует имена авторов, которые написали книгу, статью или и то, и другое.
Установить разницу (-)
Результатом операции установки разности являются кортежи, которые присутствуют в одном отношении, но не во втором.
Обозначения - r - s
Находит все кортежи, которые присутствуют в r, но не в s .
∏ author (Books) − ∏ author (Articles)
Вывод - содержит имена авторов, которые написали книги, но не статьи.
Декартово произведение (Χ)
Объединяет информацию двух разных отношений в одно.
Обозначение - r Χ s
Где r и s - отношения, и их выходные данные будут определены как -
r Χ s = {qt | q ∈ r и t ∈ s}
σ author = 'tutorialspoint' (Books Χ Articles)
Выходные данные - возвращает отношение, которое показывает все книги и статьи, написанные tutorialspoint.
Переименовать операцию (ρ)
Результаты реляционной алгебры также являются отношениями, но без какого-либо имени. Операция переименования позволяет нам переименовать выходное отношение. Операция переименования обозначается маленькой греческой буквой rho .
Обозначение - ρ x (E)
Где результат выражения E сохраняется с именем x .
Дополнительные операции -
- Установить пересечение
- присваивание
- Естественное соединение
Реляционное исчисление
В отличие от реляционной алгебры, реляционное исчисление - это непроцедурный язык запросов, то есть он говорит, что делать, но никогда не объясняет, как это сделать.
Реляционное исчисление существует в двух формах -
Реляционное исчисление кортежей (TRC)
Фильтрация диапазонов переменных по кортежам
Запись - {T | Условие}
Возвращает все кортежи T, которые удовлетворяют условию.
Например -
{ T.name | Author(T) AND T.article = 'database' }
Выходные данные - возвращает кортежи с именем name от автора, который написал статью о «базе данных».
TRC может быть определена количественно. Мы можем использовать Existential (∃) и Universal Quantifiers (∀).
Например -
{ R| ∃T ∈ Authors(T.article='database' AND R.name=T.name)}
Вывод. Приведенный выше запрос даст тот же результат, что и предыдущий.
Доменное реляционное исчисление (DRC)
В DRC фильтрующая переменная использует область атрибутов вместо целых значений кортежа (как сделано в TRC, упомянутом выше).
Запись -
{a 1 , a 2 , a 3 , ..., a n | P (a 1 , a 2 , a 3 , ..., a n )}
Где a1, a2 - атрибуты, а P - формулы, построенные из внутренних атрибутов.
Например -
{< article, page, subject > | ∈ TutorialsPoint ∧ subject = 'database'}
Выходные данные - возвращает статью, страницу и тему из отношения TutorialsPoint, где тема - это база данных.
Как и TRC, DRC также может быть записан с использованием экзистенциальных и универсальных квантификаторов. В DRC также участвуют реляционные операторы.
Степень выраженности исчисления корреляции кортежей и исчисления отношений доменов эквивалентна реляционной алгебре.