Citater fra C.J.Date "An Introduction to Database Systems" kapitel 6:

6 Relationel algebra

6.1 Introduktion

Den del af den relationelle model, der handler om relationelle operatorer, har udviklet sig meget siden den relationelle model oprindeligt blev foreslået af Codd; men hovedbestanddelen udgøres nu som før af den relationelle algebra, som hovedsagelig består af en samling operatorer (som f.eks. join), der modtager relationer som input, og afleverer relationer som output. [139]

Overblik over den oprindelige algebra

Den oprindelige algebra, som blev defineret af Codd, bestod af 8 operatorer fordelt i 2 grupper (se fig. 6.1) :

Restrict returnerer alle tupler, der opfylder en specificeret betingelse.

Project returnerer alle tupler; men med nogle attributter udelukket.

Produkt returnerer alle tænkelige kombinationer af to relationer.

Fællesmængde returnerer alle tupler, der forekommer i den ene eller begge af to tupler.

Foreningsmængde returnerer alle tupler, der forekommer i begge af to tupler.

Differensmængde returnerer alle tupler, der forekommer i den første; men ikke i den anden af to tupler.

Join returnerer en relation, som er en kombination af to relationer, hvor de to relationer har samme værdi for en eller flere fælles attributter. Den fælles attribut optræder kun en gang i resultatet.

Divide har som input to relationer (en binær og en med en enkelt værdi). Resultatet er en relation, der består af de værdier fra den binære relation, hvor den anden værdi matcher til alle værdier i den anden attribut. [141]

6.2 Closure (lukkethed)

Den relationelle egenskab closure dækker over det fænomen, at outputtet fra en operation, der har en eller flere relationer som input, også er en relation. [141]

Det får den betydning, at output fra en operation kan være input til den næste. Det bliver således muligt at skrive indlejrede (nested) udtryk - udtryk, hvor operanderne selv er repræsenteret ved udtryk og ikke blot som navne på relationer. [142]

Algebraen skal have indbygget et sæt af regler vedrørende arv af attributter, sådan at man kan forudsige navnet på en attribut i en output relation på basis af kendskab til input relationerne. Hvis en sådan regel findes, vil en output relation altid have et veldefineret resultat, uanset hvor kompleks operationen i øvrigt er. [142]

Det er nødvendigt at introducere en ny operation med navnet rename, som har til formål at omdøbe attributterne i en given relation. [143]

Det ville være særdeles ønskværdigt, om der var indbygget regler for arv af kandidatnøgler. Så ville systemet kunne forudsige kandidatnøglen for resultatet af et vilkårligt udtryk. [143]

6.3 Syntaks for relationel algebra

Den foreslåede BNF grammatik for den relationelle algebra kræver omfattende brug af paranteser i komplekse udtryk for at styre udførelsen af ordren i den rigtige rækkefølge. [144]

6.4 Traditionelle mængdeoperationer

Indlagt 25. april 1997