Relationele algebra in DBMS: bewerkingen met voorbeelden

Inhoudsopgave:

Anonim

Relationele algebra

RELATIONAL ALGEBRA is een veelgebruikte procedurele zoektaal. Het verzamelt gevallen van relaties als input en geeft gevallen van relaties als output. Het gebruikt verschillende bewerkingen om deze actie uit te voeren. SQL Relationele algebra-querybewerkingen worden recursief uitgevoerd op een relatie. De output van deze bewerkingen is een nieuwe relatie, die kan worden gevormd uit een of meer invoerrelaties.

In deze tutorial leer je:

  • Relationele algebra
  • SELECTEER (σ)
  • Projectie (π)
  • Hernoemen (ρ)
  • Vakbondsoperatie (υ)
  • Verschil instellen (-)
  • Kruispunt
  • Cartesiaans product (X)
  • Doe mee met Operations
  • Innerlijke verbinding:
  • Theta Doe mee:
  • EQUI toetreden:
  • NATUURLIJKE SAMENWERKING (⋈)
  • BUITEN WORDEN
  • Linker buitenste verbinding (A B)
  • Rechter buitenste verbinding: (A B)
  • Volledige Outer Join: (A B)

Elementaire SQL-relationele algebrabewerkingen

De relationele algebra is opgedeeld in verschillende groepen

Unaire relationele operaties

  • SELECT (symbool: σ)
  • PROJECT (symbool: π)
  • RENAME (symbool: ρ)

Relationele algebrabewerkingen uit de verzamelingenleer

  • UNIE (υ)
  • INTERSECTIE (),
  • VERSCHIL (-)
  • CARTESISCH PRODUCT (x)

Binaire relationele operaties

  • WORD LID
  • DIVISIE

Laten we ze in detail bestuderen met oplossingen:

SELECTEER (σ)

De SELECT-bewerking wordt gebruikt voor het selecteren van een subset van de tupels volgens een bepaalde selectieconditie. Sigma (σ) Symbool geeft het aan. Het wordt gebruikt als een uitdrukking om tupels te kiezen die voldoen aan de selectievoorwaarde. Operator selecteren selecteert tupels die aan een bepaald predikaat voldoen.

σp(r) σis het predikaat rstaat voor relatie, wat de naam van de tabel pis, is voorzetsellogica

voorbeeld 1

σ topic = "Database" (Tutorials)

Output - Selecteert tuples uit Tutorials waarbij topic = 'Database'.

Voorbeeld 2

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

Output - Selecteert tuples uit Tutorials waarbij het onderwerp 'Database' is en 'auteur' guru99.

Voorbeeld 3

σ sales > 50000 (Customers)

Output - Selecteert tuples van klanten met een omzet groter dan 50.000

Projectie (π)

De projectie elimineert alle attributen van de invoerrelatie, behalve die vermeld in de projectielijst. De projectiemethode definieert een relatie die een verticale subset van Relation bevat.

Dit helpt om de waarden van gespecificeerde attributen te extraheren om dubbele waarden te elimineren. (pi) -symbool wordt gebruikt om attributen uit een relatie te kiezen. Deze operator helpt u om specifieke kolommen uit een relatie te houden en verwijdert de andere kolommen.

Voorbeeld van projectie:

Beschouw de volgende tabel

Klanten ID Klantnaam Toestand
1 Google Actief
2 Amazon Actief
3 appel Inactief
4 Alibaba Actief

Hier zal de projectie van CustomerName en status geven

Π CustomerName, Status (Customers)
Klantnaam Toestand
Google Actief
Amazon Actief
appel Inactief
Alibaba Actief

Hernoemen (ρ)

Hernoemen is een unaire bewerking die wordt gebruikt voor het hernoemen van attributen van een relatie.

ρ (a / b) R zal het attribuut 'b' van relatie hernoemen door 'a'.

Vakbondsoperatie (υ)

UNION wordt gesymboliseerd door ∪-symbool. Het bevat alle tupels die in tabel A of in B staan. Het elimineert ook dubbele tupels. Dus set A UNION set B zou worden uitgedrukt als:

Het resultaat <- A ∪ B

Om een ​​vakbondsoperatie geldig te laten zijn, moeten de volgende voorwaarden gelden:

  • R en S moeten hetzelfde aantal attributen zijn.
  • Kenmerkdomeinen moeten compatibel zijn.
  • Dubbele tupels moeten automatisch worden verwijderd.

Voorbeeld

Beschouw de volgende tabellen.

Tabel A Tabel B
kolom 1 kolom 2 kolom 1 kolom 2
1 1 1 1
1 2 1 3

A ∪ B geeft

Tabel A ∪ B
kolom 1 kolom 2
1 1
1 2
1 3

Verschil instellen (-)

- Symbool geeft het aan. Het resultaat van A - B is een relatie die alle tupels omvat die in A staan ​​maar niet in B.

  • De attribuutnaam van A moet overeenkomen met de attribuutnaam in B.
  • De twee-operand-relaties A en B moeten ofwel compatibel ofwel Union-compatibel zijn.
  • Het moet een gedefinieerde relatie zijn die bestaat uit de tupels die in relatie A staan, maar niet in B.

Voorbeeld

A-B
Tabel A - B
kolom 1 kolom 2
1 2

Kruispunt

Een kruising wordt gedefinieerd door het symbool ∩

A ∩ B

Definieert een relatie die bestaat uit een verzameling van alle tupels die zowel in A als B staan. A en B moeten echter verenigbaar zijn.

Visuele definitie van kruispunt

Voorbeeld:

A ∩ B
Tabel A ∩ B
kolom 1 kolom 2
1 1

Cartesiaans product (X) in DBMS

Cartesiaans product in DBMS is een bewerking die wordt gebruikt om kolommen uit twee relaties samen te voegen. Over het algemeen is een Cartesiaans product nooit een zinvolle operatie als het alleen wordt uitgevoerd. Het wordt echter zinvol wanneer het wordt gevolgd door andere bewerkingen. Het wordt ook Cross Product of Cross Join genoemd.

Voorbeeld - Cartesiaans product

σ kolom 2 = '1' (AXB)

Uitvoer - Het bovenstaande voorbeeld toont alle rijen van relatie A en B waarvan kolom 2 de waarde 1 heeft

σ kolom 2 = '1' (AXB)
kolom 1 kolom 2
1 1
1 1

Doe mee met Operations

Het samenvoegen is in wezen een cartesiaans product, gevolgd door een selectiecriterium.

Samenvoegbewerking aangegeven met ⋈.

De JOIN-bewerking maakt het ook mogelijk om verschillende gerelateerde tuples uit verschillende relaties samen te voegen.

Soorten JOIN:

Verschillende vormen van samenvoegen zijn:

Innerlijke sluit zich aan:

  • Theta sluit zich aan
  • EQUI doe mee
  • Natuurlijk meedoen

Outer join:

  • Linker Outer Join
  • Rechts buitenste verbinding
  • Volledige Outer Join

Innerlijke verbinding:

In een inner join worden alleen die tuples die voldoen aan de matchingscriteria meegenomen, terwijl de rest wordt uitgesloten. Laten we verschillende soorten innerlijke joins bestuderen:

Theta Doe mee:

Het algemene geval van de JOIN-bewerking wordt een Theta-join genoemd. Het wordt aangeduid met symbool θ

Voorbeeld

A ⋈θ B

Theta join kan alle voorwaarden in de selectiecriteria gebruiken.

Bijvoorbeeld:

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

EQUI toetreden:

Wanneer een theta-join alleen de equivalentievoorwaarde gebruikt, wordt het een equi-join.

Bijvoorbeeld:

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

EQUI-join zijn de moeilijkste bewerkingen om efficiënt te implementeren met behulp van SQL in een RDBMS en een reden waarom RDBMS essentiële prestatieproblemen heeft.

NATUURLIJKE SAMENWERKING (⋈)

Natuurlijke join kan alleen worden uitgevoerd als er een gemeenschappelijk attribuut (kolom) tussen de relaties is. De naam en het type van het kenmerk moeten hetzelfde zijn.

Voorbeeld

Beschouw de volgende twee tabellen

C
Num Vierkant
2 4
3 9
D
Num Kubus
2 8
3 27
C ⋈ D
C ⋈ D
Num Vierkant Kubus
2 4 4
3 9 27

BUITEN WORDEN

In een outer join nemen we, naast tuples die voldoen aan de matchingscriteria, ook enkele of alle tuples op die niet voldoen aan de criteria.

Linker buitenste verbinding (A B)

In de linker buitenste join maakt bediening het mogelijk om alle tupels in de linker relatie te houden. Als er echter geen overeenkomende tuple in de juiste relatie wordt gevonden, worden de attributen van de juiste relatie in het samenvoegresultaat gevuld met null-waarden.

Beschouw de volgende 2 tabellen

EEN
Num Vierkant
2 4
3 9
4 16
B.
Num Kubus
2 8
3 18
5 75
A  B
A ⋈ B
Num Vierkant Kubus
2 4 4
3 9 9
4 16

Rechter buitenste verbinding: (A B)

In de rechter buitenste verbinding maakt bediening het mogelijk om alle tupels in de juiste relatie te houden. Als er echter geen overeenkomend tupel wordt gevonden in de linkerrelatie, worden de attributen van de linkerrelatie in het samenvoegresultaat gevuld met null-waarden.

A  B
A ⋈ B
Num Kubus Vierkant
2 8 4
3 18 9
5 75

Volledige Outer Join: (A B)

In een volledige outer join worden alle tupels van beide relaties in het resultaat opgenomen, ongeacht de matchconditie.

A  B
A ⋈ B
Num Kubus Vierkant
2 4 8
3 9 18
4 16
5 75

Overzicht

Bediening (symbolen)

Doel

Selecteer (σ)

De SELECT-bewerking wordt gebruikt voor het selecteren van een subset van de tupels volgens een bepaalde selectieconditie

Projectie (π)

De projectie elimineert alle attributen van de invoerrelatie, behalve die vermeld in de projectielijst.

Union Operation (∪)

UNION wordt gesymboliseerd door symbool. Het omvat alle tupels die in tabel A of in B staan.

Verschil instellen (-)

- Symbool geeft het aan. Het resultaat van A - B is een relatie die alle tupels omvat die in A staan ​​maar niet in B.

Kruising (∩)

Intersectie definieert een relatie die bestaat uit een verzameling van alle tupels die zowel in A als B voorkomen.

Cartesiaans product (X)

Een cartesiaanse bewerking is handig om kolommen uit twee relaties samen te voegen.

Innerlijke verbinding

Inner join, omvat alleen die tuples die voldoen aan de matchingscriteria.

Theta Join (θ)

Het algemene geval van de JOIN-bewerking wordt een Theta-join genoemd. Het wordt aangeduid met symbool θ.

EQUI Join

Wanneer een theta-join alleen de equivalentievoorwaarde gebruikt, wordt het een equi-join.

Natuurlijke verbinding (⋈)

Natuurlijke join kan alleen worden uitgevoerd als er een gemeenschappelijk attribuut (kolom) tussen de relaties is.

Outer Join

In een outer join, samen met tuples die voldoen aan de matchingscriteria.

Linker buitenste verbinding ( )

In de linker buitenste join maakt bediening het mogelijk om alle tupels in de linker relatie te houden.

Right Outer join ( )

In de rechter buitenste verbinding maakt bediening het mogelijk om alle tupels in de juiste relatie te houden.

Volledig buitenste deel ( )

In een volledige outer join worden alle tupels van beide relaties in het resultaat opgenomen, ongeacht de overeenkomende conditie.