Nödvändig förutsättning: Relationsmodell i DBMS
Relationsalgebra är ett processuellt frågespråk. Relationell algebra ger främst en teoretisk grund för relationsdatabaser och SQL . Huvudsyftet med att använda Relational Algebra är att definiera operatorer som transformerar en eller flera ingångsrelationer till en outputrelation. Med tanke på att dessa operatorer accepterar relationer som indata och producerar relationer som utdata, kan de kombineras och användas för att uttrycka potentiellt komplexa frågor som omvandlar potentiellt många indatarelationer (vars data lagras i databasen) till en enda utdatarelation (frågeresultaten) . Eftersom det är ren matematik, används ingen engelska nyckelord i relationsalgebra och operatorer representeras med hjälp av symboler.
Grundläggande operatörer
Dessa är de grundläggande/fundamentala operatorerna som används i Relational Algebra.
- Urval (σ)
- Projektion(π)
- Union(U)
- Ställ in skillnad (-)
- Ange skärningspunkt (∩)
- Byt namn (ρ)
- Kartesisk produkt(X)
1. Urval (σ): Den används för att välja önskade tuplar av relationerna.
Exempel:
A | B | C |
---|---|---|
1 | 2 | 4 |
2 | 2 | 3 |
3 | 2 | 3 |
4 | 3 | 4 |
För ovanstående förhållande, σ(c>3)R kommer att välja de tupler som har c mer än 3.
A | B | C |
---|---|---|
1 | 2 | 4 |
4 | 3 | 4 |
Notera: Urvalsoperatören väljer bara de nödvändiga tuplarna men visar dem inte. För visning används dataprojektionsoperatorn.
2. Projektion(π): Den används för att projicera nödvändig kolumndata från en relation.
pekare i c
Exempel: Betrakta tabell 1. Antag att vi vill ha kolumnerna B och C från Relation R.
π(B,C)R will show following columns.>
B | C |
---|---|
2 | 4 |
2 | 3 |
3 | 4 |
Notera: Som standard tar projektion bort dubbletter av data.
3. Union(U): Unionsoperation i relationalgebra är detsamma som unionsoperation i mängdlära.
Exempel:
FRANSKA
Elevs namn | Valsnummer |
---|---|
Bagge | 01 |
Mohan | 02 |
Vivek | 13 |
Geeta | 17 |
TYSK
Elevs namn | Valsnummer |
---|---|
Vivek | 13 |
Geeta | 17 |
Shyam | tjugoett |
Rohan | 25 |
Tänk på följande tabell över studenter som har olika valfria ämnen i sin kurs.
π(Student_Name)FRENCH U π(Student_Name)GERMAN>
Elevs namn |
---|
Bagge |
Mohan |
Vivek |
Geeta |
Shyam |
Rohan |
Notera: Den enda begränsningen i föreningen av två relationer är att båda relationerna måste ha samma uppsättning attribut.
4. Ställ in skillnad (-): Mängdskillnad i relationalgebra är samma mängdskillnadsoperation som i mängdteorin.
Exempel: Från ovanstående tabell över FRENCH och TYSKA används Set Difference enligt följande
π(Student_Name)FRENCH - π(Student_Name)GERMAN>
Elevs namn |
---|
Bagge |
Mohan |
Notera: Den enda begränsningen i uppsättningsskillnaden mellan två relationer är att båda relationerna måste ha samma uppsättning attribut.
5. Ange skärningspunkt (∩): Set Intersection i relationalgebra är samma set intersection operation i mängdteorin.
Exempel: Från ovanstående tabell över FRENCH och GERMAN används Set Intersection enligt följande
π(Student_Name)FRENCH ∩ π(Student_Name)GERMAN>
Elevs namn |
---|
Vivek |
Geeta |
Notera: Den enda begränsningen i uppsättningsskillnaden mellan två relationer är att båda relationerna måste ha samma uppsättning attribut.
6. Byt namn (ρ): Byt namn är en unär operation som används för att byta namn på attribut för en relation.
ρ(a/b)R will rename the attribute 'b' of the relation by 'a'.>
7. Cross Product(X): Korsprodukt mellan två relationer. Låt oss säga A och B, så korsprodukten mellan A X B kommer att resultera i alla attribut för A följt av varje attribut för B. Varje post av A kommer att paras med varje post av B.
Exempel:
lista som array
A
namn | Ålder | Sex |
---|---|---|
Bagge | 14 | M |
till slutet | femton | F |
Kim | tjugo | M |
B
ID | Kurs |
---|---|
1 | DS |
2 | DBMS |
A X B
namn | Ålder | Sex | ID | Kurs |
---|---|---|---|---|
Bagge | 14 | M | 1 | DS |
Bagge | 14 | M | 2 | DBMS |
till slutet | femton | F | 1 | DS |
till slutet | femton | F | 2 | DBMS |
Kim | tjugo | M | 1 | DS |
Kim | tjugo | M | 2 | DBMS |
Notera: Om A har 'n' tupler och B har 'm' tupler kommer A X B att ha 'n*m' tupler.
Härledda operatörer
Det här är några av de härledda operatorerna , som är härledda från de grundläggande operatorerna.
- Natural Join(⋈)
- Villkorlig gå med
1. Naturlig gå med(⋈): Natural join är en binär operator. Naturlig koppling mellan två eller flera relationer kommer att resultera i en uppsättning av alla kombinationer av tupler där de har samma gemensamma attribut.
Exempel:
EMP
namn | ID | Dept_Name |
---|---|---|
A | 120 | DEN |
B | 125 | HR |
C | 110 | Försäljning |
D | 111 | DEN |
DEPT
Dept_Name | Chef |
---|---|
Försäljning | OCH |
Produktion | MED |
DEN | A |
Naturlig koppling mellan EMP och DEPT med villkor:
EMP.Dept_Name = DEPT.Dept_Name
EMP ⋈ DEPT
namn | ID | Dept_Name | Chef |
---|---|---|---|
A | 120 | DEN | A |
C | 110 | Försäljning | OCH |
D | 111 | DEN | A |
2. Villkorlig anslutning: Villkorlig sammanfogning fungerar på samma sätt som naturlig sammanfogning. I naturlig koppling är villkoret som standard lika mellan vanliga attribut medan vi i villkorlig koppling kan specificera vilket villkor som helst som större än, mindre än eller inte lika.
Exempel:
R
ID | Sex | Märken |
---|---|---|
1 | F | Fyra fem |
2 | F | 55 |
3 | F | 60 |
S
ID | Sex | Märken |
---|---|---|
10 | M | tjugo |
elva | M | 22 |
12 | M | 59 |
Gå mellan R och S med villkor R.marks>= S.marks
BEFRIA | R.Sex | R.Marks | S.ID | S.Sex | S.Marks |
---|---|---|---|---|---|
1 | F | Fyra fem | 10 | M | tjugo |
1 | F | Fyra fem | elva | M | 22 |
2 | F | 55 | 10 | M | tjugo |
2 | F | 55 | elva | M | 22 |
3 | F | 60 | 10 | M | tjugo |
3 | F | 60 | elva | M | 22 |
3 | F | 60 | 12 | M | 59 |
Relationskalkyl
Eftersom Relational Algebra är ett procedurmässigt frågespråk, är Relational Calculus ett icke-procedurmässigt frågespråk. Det handlar i princip om slutresultatet. Den säger alltid till mig vad jag ska göra men aldrig hur jag ska göra.
Det finns två typer av relationskalkyl
- Tuple Relational Calculus (TRC)
- Domain Relational Calculus (DRC)
Fördjupade artiklar:
Grundläggande-operatörer-i-relationell-algebra
Extended Relational Algebra Operators
fötter vs fot