Voorwaarde: Relationeel model in DBMS
Relationele Algebra is een procedurele zoektaal. Relationele algebra biedt voornamelijk een theoretische basis voor relationele databases en SQL . Het belangrijkste doel van het gebruik van relationele algebra is het definiëren van operatoren die een of meer invoerrelaties omzetten in een uitvoerrelatie. Gegeven dat deze operators relaties als invoer accepteren en relaties produceren als uitvoer, kunnen ze worden gecombineerd en gebruikt om potentieel complexe zoekopdrachten uit te drukken die potentieel veel invoerrelaties (waarvan de gegevens in de database zijn opgeslagen) transformeren in een enkele uitvoerrelatie (de zoekopdrachtresultaten). . Omdat het pure wiskunde is, wordt er in relationele algebra geen gebruik gemaakt van Engelse trefwoorden en worden operatoren weergegeven met symbolen.
Fundamentele operatoren
Dit zijn de fundamentele/fundamentele operatoren die worden gebruikt in relationele algebra.
- Selectie(σ)
- Projectie(π)
- Unie(U)
- Verschil instellen(-)
- Kruispunt instellen (∩)
- Hernoemen(ρ)
- Cartesisch product(X)
1. Selectie(σ): Het wordt gebruikt om de vereiste tupels van de relaties te selecteren.
Voorbeeld:
A | B | C |
---|---|---|
1 | 2 | 4 |
2 | 2 | 3 |
3 | 2 | 3 |
4 | 3 | 4 |
Voor de bovenstaande relatie geldt σ(c>3)R zal de tupels selecteren die c meer dan 3 hebben.
A | B | C |
---|---|---|
1 | 2 | 4 |
4 | 3 | 4 |
Opmerking: De selectieoperator selecteert alleen de benodigde tupels, maar geeft deze niet weer. Voor weergave wordt de dataprojectie-operator gebruikt.
2. Projectie(π): Het wordt gebruikt om vereiste kolomgegevens uit een relatie te projecteren.
Java-paar
Voorbeeld: Beschouw tabel 1. Stel dat we de kolommen B en C uit Relatie R willen.
π(B,C)R will show following columns.>
B | C |
---|---|
2 | 4 |
2 | 3 |
3 | 4 |
Opmerking: Standaard verwijdert projectie dubbele gegevens.
3. Unie(U): De werking van de vereniging in relationele algebra is hetzelfde als de werking van de vereniging in de verzamelingenleer.
Voorbeeld:
FRANS
Studenten naam | Rolnummer |
---|---|
Ram | 01 |
Mohan | 02 |
Vivek | 13 |
Geeta | 17 |
DUITS
Studenten naam | Rolnummer |
---|---|
Vivek | 13 |
Geeta | 17 |
Shyam | eenentwintig |
Rohan | 25 |
Bekijk de volgende tabel met studenten die verschillende keuzevakken in hun cursus hebben.
π(Student_Name)FRENCH U π(Student_Name)GERMAN>
Studenten naam |
---|
Ram |
Mohan |
Vivek |
Geeta |
Shyam |
Rohan |
Opmerking: De enige beperking bij de vereniging van twee relaties is dat beide relaties dezelfde set attributen moeten hebben.
4. Verschil instellen (-): Set Difference in relationele algebra is dezelfde set-verschilbewerking als in de verzamelingenleer.
Voorbeeld: Uit de bovenstaande tabel van FRANS en DUITS wordt Set Difference als volgt gebruikt
π(Student_Name)FRENCH - π(Student_Name)GERMAN>
Studenten naam |
---|
Ram |
Mohan |
Opmerking: De enige beperking in het Set Difference tussen twee relaties is dat beide relaties dezelfde set attributen moeten hebben.
5. Stel snijpunt in (∩): Set Intersection in relationele algebra is dezelfde set snijpuntbewerking in de verzamelingenleer.
Voorbeeld: Uit de bovenstaande tabel van FRANS en DUITS wordt het vaste kruispunt als volgt gebruikt
π(Student_Name)FRENCH ∩ π(Student_Name)GERMAN>
Studenten naam |
---|
Vivek |
Geeta |
Opmerking: De enige beperking in het Set Difference tussen twee relaties is dat beide relaties dezelfde set attributen moeten hebben.
6. Hernoemen(ρ): Hernoemen is een unaire bewerking die wordt gebruikt voor het hernoemen van attributen van een relatie.
ρ(a/b)R will rename the attribute 'b' of the relation by 'a'.>
7. Kruisproduct(X): Kruisproduct tussen twee relaties. Laten we zeggen A en B, dus het kruisproduct tussen AX B zal resulteren in alle attributen van A, gevolgd door elk attribuut van B. Elk record van A zal paren met elk record van B.
Voorbeeld:
wat is luidspreker
A
Naam | Leeftijd | Seks |
---|---|---|
Ram | 14 | M |
naar het einde | vijftien | F |
Kim | twintig | M |
B
ID kaart | Cursus |
---|---|
1 | DS |
2 | DBMS |
A X B
Naam | Leeftijd | Seks | ID kaart | Cursus |
---|---|---|---|---|
Ram | 14 | M | 1 | DS |
Ram | 14 | M | 2 | DBMS |
naar het einde | vijftien | F | 1 | DS |
naar het einde | vijftien | F | 2 | DBMS |
Kim | twintig | M | 1 | DS |
Kim | twintig | M | 2 | DBMS |
Opmerking: Als A ‘n’ tupels heeft en B ‘m’ tupels heeft, dan zal A X B ‘n*m’ tupels hebben.
Afgeleide operators
Dit zijn enkele van de afgeleide operatoren, die zijn afgeleid van de fundamentele operatoren.
- Natuurlijke verbinding(⋈)
- Voorwaardelijke deelname
1. Natuurlijke verbinding(⋈): Natuurlijke join is een binaire operator. Een natuurlijke verbinding tussen twee of meer relaties zal resulteren in een verzameling van alle combinaties van tupels waarbij ze een gelijk gemeenschappelijk attribuut hebben.
Voorbeeld:
EMP
Naam | ID kaart | Afdelingsnaam |
---|---|---|
A | 120 | HET |
B | 125 | HR |
C | 110 | verkoop |
D | 111 | HET |
DEPT
Afdelingsnaam | Manager |
---|---|
verkoop | EN |
Productie | MET |
HET | A |
Natuurlijke verbinding tussen EMP en DEPT met voorwaarde:
EMP.Afdelingsnaam = DEPT.Afdelingsnaam
EMP ⋈ DEPT
Naam | ID kaart | Afdelingsnaam | Manager |
---|---|---|---|
A | 120 | HET | A |
C | 110 | verkoop | EN |
D | 111 | HET | A |
2. Voorwaardelijke join: Voorwaardelijke join werkt op dezelfde manier als natuurlijke join. Bij natuurlijke join is de voorwaarde standaard gelijk tussen gemeenschappelijke attributen, terwijl we bij voorwaardelijke join elke voorwaarde kunnen specificeren, zoals groter dan, kleiner dan of niet gelijk.
Voorbeeld:
R
kmp-algoritme
ID kaart | Seks | Merken |
---|---|---|
1 | F | Vier vijf |
2 | F | 55 |
3 | F | 60 |
S
ID kaart | Seks | Merken |
---|---|---|
10 | M | twintig |
elf | M | 22 |
12 | M | 59 |
Verbinding tussen R en S met voorwaarde R.markeringen>= S.markeringen
R.ID | R. Geslacht | R. Merken | S.ID | S. Geslacht | S.Marken |
---|---|---|---|---|---|
1 | F | Vier vijf | 10 | M | twintig |
1 | F | Vier vijf | elf | M | 22 |
2 | F | 55 | 10 | M | twintig |
2 | F | 55 | elf | M | 22 |
3 | F | 60 | 10 | M | twintig |
3 | F | 60 | elf | M | 22 |
3 | F | 60 | 12 | M | 59 |
Relationele berekening
Omdat Relationele Algebra een procedurele zoektaal is, is Relationele Calculus een niet-procedurele zoektaal. Het gaat in principe over de eindresultaten. Het vertelt me altijd wat ik moet doen, maar vertelt me nooit hoe ik het moet doen.
Er zijn twee soorten relationele analyse
- Tupel relationele calculus (TRC)
- Domein relationele analyse (DRC)
Diepgaande artikelen:
Basisoperatoren in relationele algebra
Uitgebreide relationele algebra-operatoren