Relationel algebra i DBMS: Operationer med eksempler
Relational algebra
RELATIONSALGEBRA er et meget udbredt proceduresprog. Den indsamler forekomster af relationer som input og giver forekomster af relationer som output. Den bruger forskellige handlinger til at udføre denne handling. SQL Relationel algebra-forespørgselsoperationer udføres rekursivt på en relation. Outputtet af disse operationer er en ny relation, som kan dannes ud fra en eller flere inputrelationer.
Grundlæggende SQL Relationel Algebra Operationer
Relationel algebra opdelt i forskellige grupper
Unær Relationel Operationer
- VÆLG (symbol: σ)
- PROJEKT (symbol: π)
- OMDØB (symbol: ρ)
Relational algebra Operationer fra mængdeteori
- UNION (υ)
- KRYDSKÆRING ( ),
- FORSKEL (-)
- CARTESIAN PRODUKT ( x )
Binær relationel Operationer
- JOIN
- DIVISION
Lad os studere dem i detaljer med løsninger:
VÆLG (σ)
SELECT-operationen bruges til at vælge en delmængde af tuplerne i henhold til en given udvælgelsesbetingelse. Sigma(σ)Symbol angiver det. Det bruges som udtryk for at vælge tupler, der opfylder selektionsbetingelsen. Select operator vælger tupler, der opfylder et givet prædikat.
σp(r)
σ
er prædikatet
r
står for relation som er navnet på tabellen
p
er præpositionslogik
Eksempel 1
σ topic = "Database" (Tutorials)
Produktion – Vælger tuples fra Tutorials, hvor emne = 'Database'.
Eksempel 2
σ topic = "Database" and author = "guru99"( Tutorials)
Produktion – Vælger tuples fra Tutorials, hvor emnet er 'Database' og 'author' er guru99.
Eksempel 3
σ sales > 50000 (Customers)
Produktion – Vælger tupler fra kunder, hvor salget er større end 50000
Projektion(π)
Projektionen eliminerer alle attributter i inputrelationen, bortset fra dem, der er nævnt i projektionslisten. Projektionsmetoden definerer en relation, der indeholder en lodret delmængde af Relation.
Dette hjælper med at udtrække værdierne af specificerede attributter for at eliminere duplikerede værdier. (pi) symbol bruges til at vælge attributter fra en relation. Denne operator hjælper dig med at holde specifikke kolonner fra en relation og kasserer de andre kolonner.
Eksempel på projektion:
Overvej følgende tabel
Kunde ID | Kundenavn | Status |
---|---|---|
1 | Aktiv | |
2 | Amazon | Aktiv |
3 | Apple | Inaktiv |
4 | Alibaba | Aktiv |
Her vil projektionen af Kundenavn og status give
Π CustomerName, Status (Customers)
Kundenavn | Status |
---|---|
Aktiv | |
Amazon | Aktiv |
Apple | Inaktiv |
Alibaba | Aktiv |
Omdøb (ρ)
Omdøb er en unær operation, der bruges til at omdøbe attributter for en relation.
ρ (a/b)R vil omdøbe attributten 'b' i relation til 'a'.
Unionsdrift (υ)
UNION er symboliseret med symbolet ∪. Det inkluderer alle tupler, der er i tabel A eller i B. Det eliminerer også duplikerede tupler. Så sæt A UNION sæt B ville blive udtrykt som:
Resultatet <- A ∪ B
For at en fagforeningsdrift er gyldig, skal følgende betingelser være gældende –
- R og S skal være det samme antal attributter.
- Attributdomæner skal være kompatible.
- Duplikerede tupler skal fjernes automatisk.
Eksempel
Overvej følgende tabeller.
kolonne 1 | kolonne 2 | kolonne 1 | kolonne 2 | |
---|---|---|---|---|
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
A ∪ B giver
kolonne 1 | kolonne 2 |
---|---|
1 | 1 |
1 | 2 |
1 | 3 |
Indstil forskel (-)
– Symbol angiver det. Resultatet af A – B er en relation, der inkluderer alle tupler, der er i A, men ikke i B.
- Attributnavnet på A skal matche med attributnavnet i B.
- To-operand-relationerne A og B bør enten være kompatible eller EU-kompatible.
- Det bør defineres relation bestående af tupler, der er i relation A, men ikke i B.
Eksempel
A-B
kolonne 1 | kolonne 2 |
---|---|
1 | 2 |
Vejkryds
Et skæringspunkt er defineret af symbolet ∩
A ∩ B
Definerer en relation, der består af et sæt af alle tuple, der er i både A og B. A og B skal dog være foreningskompatible.
Eksempel:
A ∩ B
kolonne 1 | kolonne 2 |
---|---|
1 | 1 |
Kartesisk produkt(X) i DBMS
Kartesisk produkt i DBMS er en operation, der bruges til at flette kolonner fra to relationer. Generelt er et kartesisk produkt aldrig en meningsfuld operation, når det udfører alene. Men det bliver meningsfuldt, når det efterfølges af andre operationer. Det kaldes også Cross Product eller Cross Join.
Eksempel – kartesisk produkt
σ kolonne 2 = '1' (AXB)
Output – Ovenstående eksempel viser alle rækker fra relation A og B, hvis kolonne 2 har værdi 1
kolonne 1 | kolonne 2 |
---|---|
1 | 1 |
1 | 1 |
Bliv Medlem Operationer
Tilslutningsdrift er i det væsentlige et kartesisk produkt efterfulgt af et udvælgelseskriterium.
Tilslut operationen angivet med ⋈.
JOIN-operationen gør det også muligt at forbinde forskellige relaterede tuples fra forskellige relationer.
Typer af JOIN:
Forskellige former for join-operation er:
Indre sammenføjninger:
- Theta slutter sig
- EQUI tilslutte sig
- Naturlig sammenføjning
Ydre samling:
- Venstre ydre samling
- Højre ydre samling
- Fuld ydre tilslutning
Indvendig sammenføjning
I en indre sammenføjning medtages kun de tupler, der opfylder matchningskriterierne, mens resten udelukkes. Lad os studere forskellige typer af indre led:
Theta Deltag
Det generelle tilfælde af JOIN-operation kaldes en Theta-join. Det er angivet med symbol θ
Eksempel
A ⋈θ B
Theta join kan bruge alle betingelser i udvælgelseskriterierne.
For eksempel:
A ⋈ A.column 2 > B.column 2 (B)
kolonne 1 | kolonne 2 |
---|---|
1 | 2 |
EQUI tilslutte sig
Når en theta-join kun bruger ækvivalensbetingelse, bliver den en equi-join.
For eksempel:
A ⋈ A.column 2 = B.column 2 (B)
kolonne 1 | kolonne 2 |
---|---|
1 | 1 |
EQUI join er den sværeste operation at implementere effektivt ved hjælp af SQL i et RDBMS og en grund til hvorfor RDBMS har væsentlige præstationsproblemer.
NATURLIG JOIN (⋈)
Naturlig sammenføjning kan kun udføres, hvis der er en fælles attribut (kolonne) mellem relationerne. Navnet og typen af attributten skal være den samme.
Eksempel
Overvej følgende to tabeller
I | Firkant |
---|---|
2 | 4 |
3 | 9 |
I | Cube |
---|---|
2 | 8 |
3 | 27 |
C ⋈ D
I | Firkant | Cube |
---|---|---|
2 | 4 | 8 |
3 | 9 | 27 |
YDRE Deltager
I en ydre sammenføjning, sammen med tupler, der opfylder matchningskriterierne, inkluderer vi også nogle eller alle tupler, der ikke matcher kriterierne.
Venstre ydre samling (A ⟕ B)
I den venstre ydre joinforbindelse tillader operation at holde alle tuple i venstre relation. Men hvis der ikke findes nogen matchende tuple i den rigtige relation, er attributterne for den rigtige relation i sammenføjningsresultatet udfyldt med null-værdier.
Overvej følgende 2 tabeller
I | Firkant |
---|---|
2 | 4 |
3 | 9 |
4 | 16 |
I | Cube |
---|---|
2 | 8 |
3 | 18 |
5 | 75 |
A B
I | Firkant | Cube |
---|---|---|
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Højre ydre samling (A ⟖ B)
I den højre ydre sammenføjning tillader betjening at holde alle tuple i det rigtige forhold. Men hvis der ikke findes en matchende tuple i den venstre relation, så er attributterne for den venstre relation i sammenføjningsresultatet udfyldt med null-værdier.
A B
I | Cube | Firkant |
---|---|---|
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Fuld ydre forbindelse (A ⟗ B)
I en fuld ydre sammenføjning er alle tupler fra begge relationer inkluderet i resultatet, uanset den matchende betingelse.
A B
I | Cube | Firkant |
---|---|---|
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Resumé
Operation (Symboler) | Formål |
---|---|
Vælg(σ) | SELECT-operationen bruges til at vælge en delmængde af tuplerne i henhold til en given udvælgelsesbetingelse |
Projektion(π) | Projektionen eliminerer alle attributter i inputrelationen, bortset fra dem, der er nævnt i projektionslisten. |
Union Operation(∪) | UNION er symboliseret med symbol. Det inkluderer alle tupler, der er i tabel A eller i B. |
Indstil forskel(-) | – Symbol angiver det. Resultatet af A – B er en relation, der inkluderer alle tupler, der er i A, men ikke i B. |
Kryds (∩) | Skæring definerer en relation bestående af et sæt af alle tuple, der er i både A og B. |
Kartesisk produkt (X) | Kartesisk operation er nyttig til at flette kolonner fra to relationer. |
Indvendig sammenføjning | Inner join, inkluderer kun de tuples, der opfylder matchningskriterierne. |
Theta Join(θ) | Det generelle tilfælde af JOIN-operation kaldes en Theta-join. Det er angivet med symbolet θ. |
EQUI Deltag | Når en theta-join kun bruger ækvivalensbetingelse, bliver den en equi-join. |
Natural Join(⋈) | Naturlig sammenføjning kan kun udføres, hvis der er en fælles attribut (kolonne) mellem relationerne. |
Ydre tilslutning | I en ydre sammenføjning, sammen med tupler, der opfylder matchningskriterierne. |
Venstre ydre led() | I den venstre ydre joinforbindelse tillader operation at holde alle tuple i venstre relation. |
Højre ydre sammenføjning () | I den højre ydre sammenføjning tillader betjening at holde alle tuple i det rigtige forhold. |
Fuld ydre forbindelse () | I en fuld ydre sammenføjning er alle tupler fra begge relationer inkluderet i resultatet uanset den matchende betingelse. |