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

⚡ Умно обобщение

Релационната алгебра в СУБД е процедурен език за заявки, който приема релации като вход и генерира нови релации като изход. Той групира операторите в категории унарни, множествени и двоични, предоставяйки теоретичната основа, която SQL двигателите превеждат в изпълними планове за заявки.

  • 🔍 Започнете с унарни оператори: SELECT, PROJECT и RENAME филтрират редове, избират колони и преименуват атрибути в една релация.
  • ???? Приложете теорията на множествата: ОБЕДИНЕНИЕ, ПРЕСЕЧИЩЕ, РАЗЛИКА и ДЕКТЕРОВО ПРОИЗВОДСТВО комбинират съвместими с обединението релации в нови резултати.
  • 🔗 Присъединете се умишлено: Тета, Екви и Натуралните съединения обработват вътрешни съвпадения, докато Ляво, Десно и Пълно Външно съединение запазват несъответстващите кортежи с нули.
  • 📐 Съвместимост на часовника: Винаги проверявайте дали арността, имената на атрибутите и домейните са подравнени преди всяка операция за задаване или обединяване.
  • 🤖 Използвайте изкуствен интелект за превод: Асистентите с изкуствен интелект преобразуват алгебрични изрази в SQL, обясняват приоритета на операторите и маркират липсващи условия за съединение на разбираем език.

Релационна алгебра в СУБД

Какво е релационна алгебра?

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

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

Операторите на релационната алгебра се разделят на три групи.

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

  • ИЗБЕРЕТЕ (σ)
  • ПРОЕКТ (π)
  • ПРЕИМЕНУВАНЕ (ρ)

Operaции от Теорията на множествата

  • СЪЮЗ (∪)
  • ПРЕСЕЧИЩЕ (∩)
  • РАЗЛИКА (−)
  • ДЕКАРТОВ ПРОИЗВОД (×)

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

  • ПРИСЪЕДИНЕТЕ СЕ КЪМ
  • РАЗДЕЛ

Разделите по-долу разглеждат всеки оператор с примери за работа.

ИЗБЕРЕТЕ (σ)

- МАРКИРАЙ Операцията избира подмножество от кортежи, които удовлетворяват даден предикат. Символът сигма σ обозначава го:

σp(r)

където σ е операторът, p е пропозиционалното условие и r е релацията (таблицата). SELECT запазва схемата и изхвърля редове, които не отговарят на предиката.

Пример 1

σ topic = "Database" (Tutorials)

Избира кортежи от Помагала където темата е равна на „База данни“.

Пример 2

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

Избира кортежи от Помагала където темата е „База данни“, а авторът е guru99.

Пример 3

σ sales > 50000 (Customers)

Избира кортежи от Клиентите чиято продажна стойност е по-голяма от 50 000.

Проекция (π)

- проекция Операторът премахва всеки атрибут от входната релация, с изключение на изброените, създавайки вертикално подмножество. Проекцията също така елиминира дублиращите се редове, които са резултат от изтриване.ping атрибути. Символът пи π го обозначава.

Пример: разгледайте следната таблица.

CustomerID Потребителско име Статус
1 Google Активен
2 Amazon Активен
3 iPhone неактивен
4 Alibaba Активен

Проектиране върху CustomerName и Status:

π CustomerName, Status (Customers)
Потребителско име Статус
Google Активен
Amazon Активен
iPhone неактивен
Alibaba Активен

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

- преименувам Операторът е унарна операция, която дава ново име на атрибут (или на цяла релация). Например, ρ(a/b) R преименува атрибут b на отношението R да се aПреименуването е особено полезно, когато трябва да извършите самосъединяване или съединяване на две релации, които споделят имена на атрибути.

съюз Operaция (∪)

- СЪЮЗ оператор, обозначен с , връща всеки кортеж, който се появява в релация A или релация B, като автоматично премахва дубликатите.

Result ← A ∪ B

За да бъде един съюз валиден:

  • A и B трябва да имат еднакъв брой атрибути (еднаква арност).
  • Съответните атрибутни домейни трябва да са съвместими.
  • Дублиращите се кортежи се премахват автоматично.

Пример. Разгледайте тези две таблици:

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

A ∪ B дава:

колона 1 колона 2
1 1
1 2
1 3

Разлика в множествата (−)

Символът минус означава разлика в сетоветеРезултатът от A − B е релация, съдържаща всички кортежи, които са в A, но не и в B.

  • A и B трябва да са съвместими с обединение.
  • Имената на атрибутите и домейните трябва да съвпадат.

Пример: А − Б

колона 1 колона 2
1 2

Пресечна точка (∩)

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

Визуално определение на пресечната точка

Визуално определение на пресечната точка.

Пример: A ∩ B

колона 1 колона 2
1 1

Декартово произведение (×) в СУБД

- Декартов продукт комбинира всеки кортеж от една релация с всеки кортеж от друга, обединявайки техните колони. Сам по себе си резултатът рядко е полезен, но в комбинация с предикат SELECT той става основата на JOIN. Нарича се още векторно произведение или кръстосано съединение.

Пример: σ колона 2 = '1' (A × B)

Изразът връща всеки ред от A × B който column 2 стойността е 1.

колона 1 колона 2
1 1
1 1

Регистрация Operaции

A присъединят към е декартово произведение, последвано от предикат за селекция. Съединенията се обозначават с символ и ви позволява да комбинирате свързани кортежи от различни релации по смислен начин.

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

  • Вътрешни съединения: Тета присъединяване, Екви присъединяване, Естествено присъединяване.
  • Външни съединения: Ляво, дясно и пълно външно съединение.

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

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

Theta Присъединете се

Общата форма на JOIN е Тета присъединяване, обозначено с θ. Тета-съединението може да използва всяко условие за сравнение в критериите си за избор.

A ⋈θ B

Например:

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

Присъединяване към Equi

Когато Тета съединението използва само условия за равенство, то става Равноправно присъединяване.

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

Равномерното съединение е един от най-използваните стилове на съединение и... RDBMS Оптимизаторът на заявки обикновено влага значителни усилия, за да го направи ефективен.

Естествено свързване (⋈)

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

Разгледайте тези две таблици.

Таблица В
В Квадрат
2 4
3 9
Таблица D.
В куб
2 8
3 27

C ⋈ D произвежда:

В Квадрат куб
2 4 8
3 9 27

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

An външно съединение запазва кортежи, които отговарят на критериите за съвпадение намлява кортежи, които не го правят, запълвайки липсващите колони с NULL.

Ляво външно съединение (A ⟕ B)

Лявото външно съединение запазва всеки кортеж в лявата релация. Ако ред в A няма съответстващ ред в B, атрибутите, предоставени от B, се запълват с NULL.

Ляво външно съединение

Разгледайте следните таблици:

Таблица А
В Квадрат
2 4
3 9
4 16
Таблица B
В куб
2 8
3 18
5 75

A ⟕ B дава:

В Квадрат куб
2 4 8
3 9 18
4 16 NULL

Дясно външно съединение (A ⟖ B)

Дясното външно съединение поддържа всеки кортеж в дясната релация. Ако ред в B няма съответстващ ред в A, колоните, предоставени от A, се запълват с NULL.

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

A ⟖ B дава:

В куб Квадрат
2 8 4
3 18 9
5 75 NULL

Пълно външно съединение (A ⟗ B)

Пълното външно съединение запазва всеки кортеж от двете релации, независимо дали условието за съединение е съвпаднало. Липсващите стойности от двете страни стават NULL.

A ⟗ B дава:

В Квадрат куб
2 4 8
3 9 18
4 16 NULL
5 NULL 75

OperaРезюме на справочната информация на Tor

Използвайте тази справочна таблица, за да си припомните с един поглед какво прави всеки оператор.

Operaция (Символ) Цел
ИЗБЕРЕТЕ (σ) Избира подмножество от кортежи, които удовлетворяват даден предикат.
ПРОЕКТ (π) Запазва само изброените атрибути и премахва дублиращите се редове.
СЪЮЗ (∪) Връща всеки кортеж, появяващ се в A или B, без дубликати.
ЗАДАВАНЕ НА РАЗЛИКА (−) Връща кортежи в A, които не са в B.
ПРЕСЕЧИЩЕ (∩) Връща кортежи, появяващи се както в A, така и в B.
ДЕКАРТОВ ПРОИЗВОД (×) Комбинира всеки кортеж от A с всеки кортеж от B.
ВЪВЕЖДАНЕ Запазва само кортежи, които отговарят на условието за съединение.
ТЕТА ПРИСЪЕДИНЯВАНЕ (θ) Съединение в обща форма, използващо произволен предикат за сравнение.
EQUI ПРИСЪЕДИНЕНИЕ Тета съединение, което използва само сравнения за равенство.
ЕСТЕСТВЕНО СЪЕДИНЯВАНЕ (⋈) Свързва релации по атрибути, които споделят едно и също име и домейн.
ЛЯВО ВЪНШНО СЪЕДИНЯВАНЕ (⟕) Запазва всеки кортеж от лявата релация, запълва дясната с NULL.
ДЯСНО ВЪНШНО СЪЕДИНЯВАНЕ (⟖) Запазва всеки кортеж от дясната релация, запълвайки лявата с NULL.
ПЪЛНО ВЪНШНО СЪЕДИНЯВАНЕ (⟗) Запазва всеки кортеж от двете релации, като запълва липсващите стойности с NULL.

Въпроси и Отговори

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

Две релации са съвместими чрез обединение, когато имат еднакъв брой атрибути и всеки съответстващ атрибут споделя един и същ домейн. UNION, INTERSECTION и DIFFERENCE изискват съвместимост чрез обединение.

Декартовото произведение умножава всеки ред от A с всеки ред от B, което води до огромни междинни отношения с малко значение. Обикновено е последвано от предикат SELECT, за да се превърне в полезно съединение.

Не. Чистата релационна алгебра третира релациите като множества, така че дубликатите се елиминират автоматично след всяка операция. SQL се държи различно — той работи с мултимножества и премахва дубликатите само когато се използва DISTINCT.

Операторът DIVISION отговаря на заявки „за всички“ – например, намиране на клиенти, които са поръчали всеки продукт в каталог. Той връща кортежите на една релация, които съответстват на всеки кортеж на друга.

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

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

Да. Инструментите с изкуствен интелект превръщат въпроси на обикновен английски език, като например „клиенти от Индия, които са купили всеки продукт“, в алгебрични дървета с оператори SELECT, PROJECT и DIVISION, след което ги конвертират в изпълним SQL код.

Обобщете тази публикация с: