Relációs algebra a DBMS-ben példákkal

⚡ Okos összefoglaló

A relációs algebra az adatbázis-kezelő rendszerekben egy procedurális lekérdezőnyelv, amely relációkat vesz bemenetként, és új relációkat hoz létre kimenetként. Az operátorokat unáris, halmaz és bináris kategóriákba csoportosítja, biztosítva az elméleti alapot, amelyet az SQL motorok végrehajtható lekérdezési tervekké alakítanak.

  • 🔍 Kezdjük az unáris operátorokkal: A SELECT, PROJECT és RENAME parancsokkal sorokat szűrhet, oszlopokat választhat ki és attribútumokat nevezhet át egyetlen relációban.
  • ???? Alkalmazzuk a halmazelméletet: Az EGYESÍTÉS, a METSZET, a KÜLÖNBSÉG és a DERÉKSZORZAT az unióval kompatibilis relációkat új eredményekké egyesíti.
  • 🔗 Szándékosan csatlakozz: A Theta, Equi és Natural illesztések a belső egyezéseket kezelik, míg a Left, Right és Full Outer illesztések a nem párosuló, null értékű tuple-ket tartják meg.
  • 📐 Óra kompatibilitás: Mindig győződjön meg arról, hogy az arity, az attribútumnevek és a domainek illeszkednek, mielőtt bármilyen halmaz- vagy unióműveletet végrehajtana.
  • 🤖 Használja a mesterséges intelligenciát a fordításhoz: A mesterséges intelligencia asszisztensei algebrai kifejezéseket SQL-lé alakítanak, elmagyarázzák az operátorok precedenciáját, és egyszerű angol nyelven jelzik a hiányzó illesztési feltételeket.

Relációs algebra a DBMS-ben

Mi a relációs algebra?

Relációs algebra egy procedurális lekérdezőnyelv, amely relációk példányait fogadja el bemenetként, és új relációk példányait adja vissza kimenetként. Rekurzívan alkalmazott egy rögzített operátorhalmazt egy vagy több relációra, és minden operátor eredménye maga is egy reláció, amely betáplálható a következő műveletbe. Az SQL motorok erre az algebrára támaszkodnak a lekérdezések tervezéséhez és végrehajtásához.

Alapvető relációs algebra OperaTIONS

A relációs algebrai operátorok három csoportba sorolhatók.

Unáris relációs OperaTIONS

  • KIVÁLASZTÁS (σ)
  • PROJEKT (π)
  • ÁTNEVEZÉS (ρ)

Operahalmazelméleti tételek

  • UNIÓ (∪)
  • KERESZTÉS (∩)
  • KÜLÖNBSÉG (−)
  • DERÉKSZORZAT (×)

Bináris relációs OperaTIONS

  • JOIN
  • DIVÍZIÓ

Az alábbi szakaszok bemutatják az egyes operátorokat példákkal illusztrálva.

KIVÁLASZTÁS (σ)

Az SELECT A művelet egy adott predikátumnak megfelelő sorok egy részhalmazát választja ki. A szigma szimbólum σ azt jelöli:

σp(r)

ahol σ az üzemeltető, p a propozicionális feltétel, és r a reláció (tábla). A SELECT megőrzi a sémát, és elveti azokat a sorokat, amelyek nem felelnek meg a predikátumnak.

Példa 1

σ topic = "Database" (Tutorials)

Kiválasztja a tuple-öket a következőből: oktatóanyagok ahol a témakör jelentése „Adatbázis”.

Példa 2

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

Kiválasztja a tuple-öket a következőből: oktatóanyagok ahol a téma az „Adatbázis”, a szerző pedig guru99.

Példa 3

σ sales > 50000 (Customers)

Kiválasztja a tuple-öket a következőből: Ügyfelek amelynek eladási értéke meghaladja az 50 000.

Vetítés (π)

Az vetítés A projekciós operátor eltávolítja az összes attribútumot a bemeneti relációból, kivéve a felsoroltakat, így egy függőleges részhalmazt hoz létre. A vetítés a dropból eredő ismétlődő sorokat is eltávolítja.ping attribútumok. A pi szimbólum π azt jelöli.

Példa: vegye figyelembe a következő táblázatot.

Ügyfél-azonosító Ügyfél neve Állapot
1 Google Aktív
2 Amazon Aktív
3 Alma tétlen
4 Alibaba Aktív

Vetítés az ÜgyfélNév és Állapot alapján:

π CustomerName, Status (Customers)
Ügyfél neve Állapot
Google Aktív
Amazon Aktív
Alma tétlen
Alibaba Aktív

Átnevezés (ρ)

Az átnevezése Az operátor egy unáris művelet, amely új nevet ad egy attribútumnak (vagy egy teljes relációnak). Például: ρ(a/b) R átnevezi az attribútumot b a kapcsolatból R nak nek aAz átnevezés különösen hasznos, ha önillesztést kell végrehajtani, vagy két olyan relációt kell összekapcsolni, amelyek megosztják az attribútumneveket.

Unió Operació (∪)

Az UNION operátor, jelölése: , visszaadja az A vagy a B relációban előforduló összes tuple-t, automatikusan eltávolítva a duplikátumokat.

Result ← A ∪ B

Ahhoz, hogy egy szakszervezet érvényes legyen:

  • Az A-nak és a B-nek ugyanannyi attribútummal kell rendelkeznie (ugyanolyan aritással).
  • A megfelelő attribútumtartományoknak kompatibilisnek kell lenniük.
  • A duplikált tuple-ök automatikusan eltávolításra kerülnek.

Példa. Vegyük figyelembe ezt a két táblázatot:

Táblázat B. táblázat
1. oszlop 2. oszlop 1. oszlop 2. oszlop
1 1 1 1
1 2 1 3

A ∪ B ad:

1. oszlop 2. oszlop
1 1
1 2
1 3

Különbség beállítása (−)

A mínuszjel jelöli szett különbségAz eredmény A − B egy olyan reláció, amely tartalmazza az A-ban, de B-ben nem szereplő összes tuple-t.

  • A-nak és B-nek uniókompatibilisnek kell lennie.
  • Az attribútumneveknek és a domainneveknek egy vonalban kell lenniük.

Példa: A − B

1. oszlop 2. oszlop
1 2

Metszéspont (∩)

Az útkereszteződés operátor, jelölése: , egy olyan relációt definiál, amely tartalmazza az A-ban és B-ben is előforduló összes tuple-t. A-nak és B-nek uniókompatibilisnek kell lennie.

A metszéspont vizuális meghatározása

A metszéspont vizuális meghatározása.

Példa: A ∩ B

1. oszlop 2. oszlop
1 1

Descartes-szorzat (×) adatbázis-kezelő rendszerben

Az Descartes termék Egy reláció minden egyes tuple-jét kombinálja egy másik reláció minden tuple-jával, egyesítve azok oszlopait. Önmagában az eredmény ritkán hasznos, de egy SELECT predikátummal kombinálva a JOIN alapját képezi. Keresztszorzatnak vagy keresztillesztésnek is nevezik.

Példa: σ 2. oszlop = '1' (A × B)

A kifejezés minden sort visszaad A × B akinek column 2 az érték 1.

1. oszlop 2. oszlop
1 1
1 1

Csatlakozik OperaTIONS

A csatlakozik egy Descartes-szorzat, amelyet egy szelekciós predikátum követ. Az illesztéseket a következő jelöli: szimbólum, és lehetővé teszi a különböző relációkból származó kapcsolódó tuple-k értelmes kombinálását.

Csatlakozás típusai:

  • Belső illesztések: Theta illesztés, Equivalent illesztés, Natural illesztés.
  • Külső illesztések: Bal, jobb és teljes külső illesztések.

Belső összekapcsolás

Egy belső összekapcsoláscsak azok a sorok kerülnek bele, amelyek megfelelnek az egyezési kritériumoknak; a többit elveti.

Theta Join

A JOIN általános formája a Theta csatlakozzon, jelölése θ. A théta illesztés bármilyen összehasonlítási feltételt használhat a kiválasztási kritériumaiban.

A ⋈θ B

Például:

A ⋈ A.column 2 > B.column 2 (B)
1. oszlop 2. oszlop
1 2

Equi Join

Amikor egy Theta illesztés csak egyenlőségi feltételeket használ, akkor egy Equi join.

A ⋈ A.column 2 = B.column 2 (B)
1. oszlop 2. oszlop
1 1

Az Equi join az egyik leggyakrabban használt illesztési stílus, és a RDBMS A lekérdezésoptimalizáló jellemzően jelentős erőfeszítéseket tesz a hatékonyság növelése érdekében.

Természetes csatlakozás (⋈)

A Természetes csatlakozás közös attribútumot (oszlopot) igényel a relációk között. A megosztott attribútumnak azonos névvel és tartománnyal kell rendelkeznie. Az eredmény a megfelelő oszlop egy példányát tartalmazza.

Vegyük figyelembe ezt a két táblázatot.

C. táblázat
-Ban Négyzet
2 4
3 9
D. táblázat
-Ban Kocka
2 8
3 27

C ⋈ D termel:

-Ban Négyzet Kocka
2 4 8
3 9 27

Külső csatlakozás

An külső csatlakozás megtartja azokat a tuple-ket, amelyek megfelelnek az egyezési kritériumoknak és a az olyan sorokat, amelyek nem, a hiányzó oszlopokat NULL értékkel tölti ki.

Bal külső csatlakozás (A–B)

A bal oldali külső illesztés minden tuple-t a bal oldali relációban tart. Ha az A egy sorának nincs megfelelő sora a B-ben, akkor a B által biztosított attribútumok NULL-lal lesznek kitöltve.

Bal külső csatlakozás

Tekintsük a következő táblázatokat:

Táblázat
-Ban Négyzet
2 4
3 9
4 16
B. táblázat
-Ban Kocka
2 8
3 18
5 75

A ⟕ B ad:

-Ban Négyzet Kocka
2 4 8
3 9 18
4 16 NULL

Jobb oldali külső illesztés (A ⟖ B)

A jobb oldali külső illesztés minden tuple-t a megfelelő relációban tart. Ha a B egy sorának nincs megfelelő sora az A-ban, akkor az A által hozzáadott oszlopok NULL-lal lesznek kitöltve.

Jobb külső csatlakozás

A ⟖ B ad:

-Ban Kocka Négyzet
2 8 4
3 18 9
5 75 NULL

Teljes külső illesztés (A ⟗ B)

A teljes külső illesztés minden tuple-t megtart mindkét relációból, függetlenül attól, hogy az illesztési feltétel teljesült-e. Bármelyik oldalon hiányzó értékek NULL értékűek lesznek.

A ⟗ B ad:

-Ban Négyzet Kocka
2 4 8
3 9 18
4 16 NULL
5 NULL 75

Operator referenciaösszefoglaló

Ezzel a referenciatáblázattal egy pillantással áttekintheti, hogy mit csinálnak az egyes operátorok.

Operació (szimbólum) Cél
KIVÁLASZTÁS (σ) Kiválaszt egy adott predikátumnak megfelelő tuple-k egy részhalmazát.
PROJEKT (π) Csak a felsorolt ​​attribútumokat tartja meg, és eltávolítja az ismétlődő sorokat.
UNIÓ (∪) Minden olyan tuple-t ad vissza, amely az A-ban vagy a B-ben előfordul, ismétlődések nélkül.
BEÁLLÍTOTT KÜLÖNBSÉG (−) Az A-ban található olyan tuple-öket adja vissza, amelyek nem szerepelnek a B-ben.
KERESZTÉS (∩) Az A-ban és B-ben is előforduló tuple-ket adja vissza.
DERÉKSZORZAT (×) Az A összes tuple-jét kombinálja a B összes tuple-jével.
INNER JOIN Csak azokat a tuple-ket tartja meg, amelyek megfelelnek az illesztési feltételnek.
THÉTA CSATLAKOZÁS (θ) Általános alakú illesztés tetszőleges összehasonlító predikátum használatával.
EQUI CSATLAKOZÁS Theta illesztés, amely csak egyenlőségi összehasonlításokat használ.
TERMÉSZETES CSATLAKOZÁS (⋈) Az azonos nevű és domainnel rendelkező attribútumok szerinti relációkat egyesít.
BAL KÜLSŐ CSATLAKOZÁS (⟕) Megtartja a bal oldali reláció összes tuple-jét, a jobb oldalit NULL-lal tölti ki.
JOBB KÜLSŐ CSATLAKOZÁS (⟖) Minden tuple-t megtart a jobb relációból, a bal oldalt NULL-lal tölti ki.
TELJES KÜLSŐ CSATLAKOZÁS (⟗) Mindkét relációból megőrzi az összes tuple-t, a hiányzó értékeket NULL-lal tölti ki.

GYIK

A relációs algebra egy procedurális matematikai nyelv, amelyet relációkon végzett műveletek definiálására használnak. Az SQL egy deklaratív lekérdezőnyelv, amelyet az adatbázismotorok belsőleg algebrai stílusú végrehajtási tervekké alakítanak le.

Két reláció uniókompatibilis, ha azonos számú attribútummal rendelkeznek, és minden megfelelő attribútum ugyanazon a tartományon belül van. Az UNION, a INTERSECTION és a DIFFERENCE mind uniókompatibilitást igényel.

Egy derékszögű szorzat az A minden sorát megszorozza a B minden sorával, ami hatalmas, kevés értelmű köztes relációkat hoz létre. Ezt általában egy SELECT predikátum követi, hogy hasznos illesztéssé váljon.

Nem. A tiszta relációs algebra a relációkat halmazokként kezeli, így a duplikátumok minden művelet után automatikusan eltávolításra kerülnek. Az SQL másképp viselkedik – multihalmazokon működik, és csak a DISTINCT használatakor távolítja el a duplikátumokat.

A DIVISION operátor az „összes” lekérdezésre ad választ – például olyan ügyfeleket keres, akik egy katalógus összes termékét megrendelték. Visszaadja az egyik reláció összes olyan rekordját, amely egy másik reláció összes rekordjával megegyezik.

Használjon külső illesztést, ha a nem egyező soroknak is van jelentésük – például minden ügyfél listázása opcionális rendelési adatokkal együtt. A belső illesztések elvetik ezeket a nem egyező sorokat; a külső illesztések NULL kitöltőkkel megtartják őket.

A mesterséges intelligencia asszisztensei algebrai kifejezéseket fordítanak SQL-be ​​és vissza, lépésről lépésre elmagyarázzák az operátorok precedenciáját, és megjelölik a hiányzó illesztési predikátumokat, amelyek egyébként lassú derékszögű szorzattá alakítanák a lekérdezést.

Igen. A mesterséges intelligencia eszközei az olyan egyszerű angol kérdéseket, mint például az „indiai vásárlók, akik minden terméket megvásároltak”, algebrai fákká alakítják SELECT, PROJECT és DIVISION operátorokkal, majd futtatható SQL-lé alakítják őket.

Foglald össze ezt a bejegyzést a következőképpen: