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.

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 | 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 |
|---|---|
| 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.
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.
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.
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. |



