Forutsetning: Relasjonsmodell i DBMS
Relasjonsalgebra er et prosedyrespråk. Relasjonsalgebra gir i hovedsak et teoretisk grunnlag for relasjonsdatabaser og SQL . Hovedformålet med å bruke Relasjonsalgebra er å definere operatorer som transformerer en eller flere inputrelasjoner til en outputrelasjon. Gitt at disse operatørene aksepterer relasjoner som input og produserer relasjoner som output, kan de kombineres og brukes til å uttrykke potensielt komplekse spørringer som transformerer potensielt mange inputrelasjoner (hvis data er lagret i databasen) til en enkelt utdatarelasjon (spørringsresultatene) . Siden det er ren matematikk, er det ingen bruk av engelske nøkkelord i relasjonsalgebra, og operatorer er representert ved hjelp av symboler.
Grunnleggende operatører
Dette er de grunnleggende/grunnleggende operatørene som brukes i Relasjonsalgebra.
- Utvalg (σ)
- Projeksjon(π)
- Union(U)
- Angi forskjell (-)
- Angi kryss(∩)
- Gi nytt navn (ρ)
- Kartesisk produkt (X)
1. Utvalg(σ): Den brukes til å velge nødvendige tupler av relasjonene.
Eksempel:
EN | B | C |
---|---|---|
1 | 2 | 4 |
2 | 2 | 3 |
3 | 2 | 3 |
4 | 3 | 4 |
For forholdet ovenfor, σ(c>3)R vil velge tuplene som har c mer enn 3.
EN | B | C |
---|---|---|
1 | 2 | 4 |
4 | 3 | 4 |
Merk: Valgoperatøren velger bare de nødvendige tuplene, men viser dem ikke. For visning brukes dataprojeksjonsoperatøren.
2. Projeksjon(π): Den brukes til å projisere nødvendige kolonnedata fra en relasjon.
eksempler på operativsystemer
Eksempel: Tenk på tabell 1. Anta at vi ønsker kolonne B og C fra Relasjon R.
π(B,C)R will show following columns.>
B | C |
---|---|
2 | 4 |
2 | 3 |
3 | 4 |
Merk: Som standard fjerner projeksjon dupliserte data.
3. Union(U): Unionsoperasjon i relasjonsalgebra er det samme som unionsoperasjon i settteori .
Eksempel:
FRANSK
Student navn | Rull nummer |
---|---|
RAM | 01 |
Mohan | 02 |
Vivek | 1. 3 |
Geeta | 17 |
TYSK
Student navn | Rull nummer |
---|---|
Vivek | 1. 3 |
Geeta | 17 |
Shyam | tjueen |
Rohan | 25 |
Tenk på følgende tabell over studenter som har forskjellige valgfrie emner i kurset.
π(Student_Name)FRENCH U π(Student_Name)GERMAN>
Student navn |
---|
RAM |
Mohan |
Vivek |
Geeta |
Shyam |
Rohan |
Merk: Den eneste begrensningen i foreningen av to relasjoner er at begge relasjonene må ha samme sett med attributter.
4. Angi forskjell (-): Mengdeforskjell i relasjonsalgebra er samme settdifferanseoperasjon som i settteori.
Eksempel: Fra tabellen ovenfor for FRENCH og TYSK, brukes Set Difference som følger
π(Student_Name)FRENCH - π(Student_Name)GERMAN>
Student navn |
---|
RAM |
Mohan |
Merk: Den eneste begrensningen i settforskjellen mellom to relasjoner er at begge relasjonene må ha samme sett med attributter.
5. Angi skjæringspunktet (∩): Set Intersection i relasjonell algebra er den samme set-skjæringsoperasjonen i settteori.
Eksempel: Fra tabellen ovenfor over FRENCH og TYSK, brukes Set Intersection som følger
π(Student_Name)FRENCH ∩ π(Student_Name)GERMAN>
Student navn |
---|
Vivek |
Geeta |
Merk: Den eneste begrensningen i settforskjellen mellom to relasjoner er at begge relasjonene må ha samme sett med attributter.
6. Gi nytt navn (ρ): Gi nytt navn er en unær operasjon som brukes for å gi nytt navn til attributter til en relasjon.
ρ(a/b)R will rename the attribute 'b' of the relation by 'a'.>
7. Kryssprodukt (X): Kryssprodukt mellom to relasjoner. La oss si A og B, så kryssproduktet mellom A X B vil resultere i alle attributtene til A etterfulgt av hver attributt til B. Hver post av A vil pares med hver post av B.
Eksempel:
cobol programmering
EN
Navn | Alder | Kjønn |
---|---|---|
RAM | 14 | M |
slutt | femten | F |
Kim | tjue | M |
B
ID | Kurs |
---|---|
1 | DS |
2 | DBMS |
A X B
Navn | Alder | Kjønn | ID | Kurs |
---|---|---|---|---|
RAM | 14 | M | 1 | DS |
RAM | 14 | M | 2 | DBMS |
slutt | femten | F | 1 | DS |
slutt | femten | F | 2 | DBMS |
Kim | tjue | M | 1 | DS |
Kim | tjue | M | 2 | DBMS |
Merk: Hvis A har 'n' tupler og B har 'm' tupler, vil A X B ha 'n*m' tupler.
Avledede operatører
Dette er noen av de avledede operatorene , som er avledet fra de grunnleggende operatorene.
- Natural Join(⋈)
- Betinget deltakelse
1. Naturlig tilknytning(⋈): Natural join er en binær operatør. Naturlig sammenføyning mellom to eller flere relasjoner vil resultere i et sett med alle kombinasjoner av tupler der de har samme felles attributt.
Eksempel:
EMP
foreach java
Navn | ID | Dept_Name |
---|---|---|
EN | 120 | DEN |
B | 125 | HR |
C | 110 | Salg |
D | 111 | DEN |
GJELD
Dept_Name | sjef |
---|---|
Salg | OG |
Produksjon | MED |
DEN | EN |
Naturlig sammenføyning mellom EMP og DEPT med betingelse:
EMP.Dept_Name = DEPT.Dept_Name
EMP ⋈ DEPT
Navn | ID | Dept_Name | sjef |
---|---|---|---|
EN | 120 | DEN | EN |
C | 110 | Salg | OG |
D | 111 | DEN | EN |
2. Betinget tilknytning: Betinget sammenføyning fungerer på samme måte som naturlig sammenføyning. I naturlig sammenføyning er tilstanden som standard lik mellom vanlige attributter, mens vi i betinget sammenføyning kan spesifisere hvilken som helst betingelse som større enn, mindre enn eller ikke lik.
Eksempel:
R
ID | Kjønn | Merker |
---|---|---|
1 | F | Fire fem |
2 | F | 55 |
3 | F | 60 |
S
ID | Kjønn | Merker |
---|---|---|
10 | M | tjue |
elleve | M | 22 |
12 | M | 59 |
Sammenføyes mellom R og S med kondisjon R.marks>= S.marks
KVITT | R.Sex | R.Marks | S.ID | S.Sex | S.Marks |
---|---|---|---|---|---|
1 | F | Fire fem | 10 | M | tjue |
1 | F | Fire fem | elleve | M | 22 |
2 | F | 55 | 10 | M | tjue |
2 | F | 55 | elleve | M | 22 |
3 | F | 60 | 10 | M | tjue |
3 | F | 60 | elleve | M | 22 |
3 | F | 60 | 12 | M | 59 |
Relasjonsregning
Siden Relational Algebra er et prosedyrespråk, er Relational Calculus et ikke-prosedyrespråk. Det handler i utgangspunktet om sluttresultatene. Den forteller meg alltid hva jeg skal gjøre, men forteller meg aldri hvordan jeg skal gjøre det.
Det finnes to typer relasjonsregning
- Tuple Relational Calculus (TRC)
- Domain Relational Calculus (DRC)
Utdypende artikler:
Grunnleggende-operatører-i-relasjonal-algebra
Utvidede relasjonsalgebraoperatører