Релационна алгебра в СУБД: Операции с примери

Съдържание:

Anonim

Релационна алгебра

RELATIONAL ALGEBRA е широко използван процедурен език за заявки. Той събира екземпляри от релации като вход и дава случаи на релации като изход. Той използва различни операции за извършване на това действие. Операциите за заявка на SQL релационна алгебра се извършват рекурсивно върху релация. Резултатът от тези операции е нова връзка, която може да се формира от една или повече входни връзки.

В този урок ще научите:

  • Релационна алгебра
  • ИЗБЕРЕТЕ (σ)
  • Проекция (π)
  • Преименуване (ρ)
  • Операция на Съюза (υ)
  • Задайте разлика (-)
  • Пресичане
  • Декартов продукт (X)
  • Присъединете се към операции
  • Вътрешно присъединяване:
  • Theta присъединяване:
  • EQUI присъединяване:
  • ЕСТЕСТВЕН ПРИСЪЕДИНЕНИЕ (⋈)
  • ВЪНШНО ПРИСЪЕДИНЯВАНЕ
  • Ляво външно присъединяване (A B)
  • Дясно външно присъединяване: (A B)
  • Пълно външно присъединяване: (A B)

Основни SQL релационни операции с алгебра

Релационната алгебра, разделена на различни групи

Унарни релационни операции

  • SELECT (символ: σ)
  • ПРОЕКТ (символ: π)
  • ПРЕИМЕНЯВАНЕ (символ: ρ)

Релационни операции с алгебра от теория на множествата

  • СЪЮЗ (υ)
  • ПРЕКЪСВАНЕ (),
  • РАЗЛИКА (-)
  • КАРТЕЗОВ ПРОДУКТ (x)

Двоични релационни операции

  • ПРИСЪЕДИНЯВАНЕ
  • РАЗДЕЛ

Нека ги изучим подробно с решения:

ИЗБЕРЕТЕ (σ)

Операцията SELECT се използва за избор на подмножество от кортежи според дадено условие за избор. Символът Sigma (σ) го обозначава. Използва се като израз за избор на кортежи, които отговарят на условието за избор. Операторът Select избира кортежи, които отговарят на даден предикат.

σp(r) σе предикатът rозначава отношение, което е името на таблицата pе предложна логика

Пример 1

σ topic = "Database" (Tutorials)

Изход - Избира кортежи от уроци, където topic = 'База данни'.

Пример 2

σ topic = "Database" and author = "guru99"( Tutorials)

Резултат - Избира кортежи от уроци, където темата е „База данни“, а „автор“ е guru99.

Пример 3

σ sales > 50000 (Customers)

Резултат - Избира кортежи от клиенти, при които продажбите са по-големи от 50000

Проекция (π)

Проекцията елиминира всички атрибути на входната връзка, освен тези, споменати в списъка за проекция. Методът на проекция дефинира връзка, която съдържа вертикално подмножество на Relation.

Това помага да се извлекат стойностите на определени атрибути, за да се елиминират дублиращи се стойности. (pi) символът се използва за избор на атрибути от връзка. Този оператор ви помага да запазите конкретни колони от връзка и отхвърля останалите колони.

Пример за проекция:

Обмислете следната таблица

Клиентски номер Потребителско име Състояние
1 Google Активен
2 Amazon Активен
3 Apple Неактивен
4 Али Баба Активен

Тук ще даде прогнозата на CustomerName и статуса

Π CustomerName, Status (Customers)
Потребителско име Състояние
Google Активен
Amazon Активен
Apple Неактивен
Али Баба Активен

Преименуване (ρ)

Преименуване е унарна операция, използвана за преименуване на атрибути на връзка.

ρ (a / b) R ще преименува атрибута „b“ на отношението с „a“.

Операция на Съюза (υ)

UNION се символизира със символа by. Той включва всички кортежи, които са в таблици A или в B. Той също така елиминира дублиращи се кортежи. И така, набор A UNION набор B ще бъде изразен като:

Резултатът <- A ∪ B

За да бъде валидна операцията на обединението, трябва да са налице следните условия -

  • R и S трябва да са еднакъв брой атрибути.
  • Домените на атрибутите трябва да са съвместими.
  • Дублиращите се кортежи трябва да бъдат премахнати автоматично.

Пример

Обмислете следните таблици.

Таблица А Таблица Б
колона 1 колона 2 колона 1 колона 2
1 1 1 1
1 2 1 3

A ∪ B дава

Таблица A ∪ B
колона 1 колона 2
1 1
1 2
1 3

Задайте разлика (-)

- Символът го означава. Резултатът от A - B е връзка, която включва всички кортежи, които са в A, но не и в B.

  • Името на атрибута на A трябва да съвпада с името на атрибута в B.
  • Двуоперандните отношения A и B трябва да са съвместими или съвместими с Съюза.
  • Трябва да се дефинира релация, състояща се от кортежите, които са във връзка А, но не и в Б.

Пример

A-B
Таблица А - Б
колона 1 колона 2
1 2

Пресичане

Пресичането се определя от символа ∩

A ∩ B

Определя връзка, състояща се от набор от всички кортежи, които са както в A, така и в B. Въпреки това, A и B трябва да са съвместими с обединението.

Визуална дефиниция на пресичане

Пример:

A ∩ B
Таблица A ∩ B
колона 1 колона 2
1 1

Декартов продукт (X) в СУБД

Декартов продукт в СУБД е операция, използвана за обединяване на колони от две отношения. Като цяло, декартовият продукт никога не е значима операция, когато се извършва сам. Той обаче придобива смисъл, когато е последван от други операции. Нарича се още Cross Product или Cross Join.

Пример - декартов продукт

σ колона 2 = '1' (AXB)

Изход - горният пример показва всички редове от релация A и B, чиято колона 2 има стойност 1

σ колона 2 = '1' (AXB)
колона 1 колона 2
1 1
1 1

Присъединете се към операции

Операцията на присъединяване е по същество декартов продукт, последван от критерий за избор.

Операция за присъединяване, обозначена с ⋈.

Операцията JOIN също позволява да се присъединят различно свързани кортежи от различни отношения.

Видове ПРИСЪЕДИНЯВАНЕ:

Различни форми на операция за присъединяване са:

Вътрешни присъединявания:

  • Theta се присъедини
  • EQUI присъединяване
  • Естествено присъединяване

Външно присъединяване:

  • Ляво външно присъединяване
  • Правилно външно присъединяване
  • Пълно външно присъединяване

Вътрешно присъединяване:

Във вътрешно съединение се включват само онези кортежи, които отговарят на критериите за съвпадение, докато останалите са изключени. Нека изучаваме различни видове Вътрешни присъединения:

Theta присъединяване:

Общият случай на JOIN операция се нарича Theta join. Обозначава се със символ θ

Пример

A ⋈θ B

Theta присъединяването може да използва всякакви условия в критериите за подбор.

Например:

A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A. колона 2> B. колона 2 (B)
колона 1 колона 2
1 2

EQUI присъединяване:

Когато theta съединението използва само условие за еквивалентност, то се превръща в equi join.

Например:

A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A. колона 2 = B. колона 2 (B)
колона 1 колона 2
1 1

Присъединяването към EQUI е най-трудната операция за ефективно изпълнение с помощта на SQL в RDBMS и една от причините RDBMS да имат съществени проблеми с производителността.

ЕСТЕСТВЕН ПРИСЪЕДИНЕНИЕ (⋈)

Естественото присъединяване може да се извърши само ако между релациите има общ атрибут (колона). Името и видът на атрибута трябва да са еднакви.

Пример

Обмислете следните две таблици

° С
Брой Квадрат
2 4
3 9
д
Брой Кубче
2 8
3 27
C ⋈ D
C ⋈ D
Брой Квадрат Кубче
2 4 4
3 9 27

ВЪНШНО ПРИСЪЕДИНЯВАНЕ

Във външно съединение, заедно с кортежи, които отговарят на критериите за съвпадение, ние също включваме някои или всички кортежи, които не отговарят на критериите.

Ляво външно присъединяване (A B)

В лявата външна връзка операцията позволява да се запазят всички кортежи в лявата връзка. Ако обаче в подходяща връзка не е намерен съвпадащ кортеж, тогава атрибутите на дясната връзка в резултата от присъединяването се запълват с нулеви стойности.

Обмислете следните 2 таблици

A
Брой Квадрат
2 4
3 9
4 16.
Б.
Брой Кубче
2 8
3 18.
5 75
A  B
A ⋈ B
Брой Квадрат Кубче
2 4 4
3 9 9
4 16. -

Дясно външно присъединяване: (A B)

В дясната външна връзка операцията позволява да се поддържат всички кортежи в правилната връзка. Ако обаче в лявата връзка не е намерен съвпадащ кортеж, тогава атрибутите на лявата връзка в резултата от присъединяването се запълват с нулеви стойности.

A  B
A ⋈ B
Брой Кубче Квадрат
2 8 4
3 18. 9
5 75 -

Пълно външно присъединяване: (A B)

При пълно външно съединение, всички кортежи от двете отношения са включени в резултата, независимо от условието за съвпадение.

A  B
A ⋈ B
Брой Кубче Квадрат
2 4 8
3 9 18.
4 16. -
5 - 75

Обобщение

Операция (символи)

Предназначение

Изберете (σ)

Операцията SELECT се използва за избор на подмножество от кортежи според дадено условие за избор

Проекция (π)

Проекцията елиминира всички атрибути на входната връзка, освен тези, споменати в списъка за проекция.

Операция на Съюза (∪)

СЪЮЗЪТ се символизира със символ. Включва всички кортежи, които са в таблици А или В.

Задайте разлика (-)

- Символът го означава. Резултатът от A - B е връзка, която включва всички кортежи, които са в A, но не и в B.

Пресичане (∩)

Пресичането определя връзка, състояща се от набор от всички кортежи, които са както в A, така и в B.

Декартов продукт (X)

Декартовата операция е полезна за обединяване на колони от две отношения.

Вътрешно присъединяване

Вътрешното присъединяване включва само онези кортежи, които отговарят на критериите за съвпадение.

Theta присъединяване (θ)

Общият случай на JOIN операция се нарича Theta join. Обозначава се със символ θ.

EQUI присъединяване

Когато theta съединението използва само условие за еквивалентност, то се превръща в equi join.

Естествено присъединяване (⋈)

Естественото присъединяване може да се извърши само ако между релациите има общ атрибут (колона).

Външно присъединяване

Във външно съединение, заедно с кортежи, които отговарят на критериите за съвпадение.

Ляво външно присъединяване ( )

В лявата външна връзка операцията позволява да се запазят всички кортежи в лявата връзка.

Дясно външно присъединяване ( )

В дясната външна връзка операцията позволява да се поддържат всички кортежи в правилната връзка.

Пълно външно присъединяване ( )

При пълно външно съединение, всички кортежи от двете отношения са включени в резултата, независимо от условието за съвпадение.