Forelesning 24. januar - Relasjonsalgebra
Relasjonsalgebra
- Operatorer for manipulere tabeller:
- Vi ser kun på spørrefunksjonalitet, ikke innsetting, endring eller sletting
- Viktig grunnlag for å forstå hva man kan gjøre med tabeller, for normaliseringsteorien og for spørreoptimalisering og spørreutføring
- Husk: Tabellforekomster er mengder av tuppler
- Operatorene er lukket over tabeller:
- Operanden(e) er tabell(er), resultatet er en tabell
- Mengdeoperatorer:
- Union, Snitt, mengdedifferanse (minus), kartesisk produkt…
- Spesielle operatorer:
- Seleksjon, projeksjon, join-operatorer, …
Seleksjon
- Velger ut rader (tuppler) som oppfyller en logisk betingelse
- Sammenligningsoperatorer + logiske konnektiver + parenteser
- Merk: Resultat-tabellen har samme skjema som operand-tabellen
Projeksjon
- Tar med kolonnene (attributtene) i attributtlisten
- Resultat-tabellen får nytt skjema
- Fjerner duplikater i resultat-tabellen
Kombinerer operatorer
- Q: Finn navn på alle pudler
Union, Snitt og Differanse
- Kun mellom union-kompatible tabeller
- Samme grad - det vil si like mange kolonner (attributter)
- Korresponderende kolonner er definert over samme dataype (domene)
Katresisk produkt (X)
- Kombinerer alle tuppler i den ene tabellen med alle tuppler i den andre tabellen
- Resultat-tabellen får alle kolonner fra den første tabellen og alle kolonner fra den andre
- Har operand-tabellene henholdsvis $r$ og $s$ tuppler, vil resultat-tabellen ha $r*s$ tuppler
JOIN - kritisk sammenstilling
- Kartesisk produkt er ukritisk sammenstilling
- Alle rader kombineres med alle rader
- Store resultat-tabeller
- JOIN-operatorer kombinerer relaterte rader
- Radene i resultat-tabellen oppfyller en join-betingelse
- EQUIJOIN - basert på likhet, kan ha generaliserte join-betingelser.