A relációs algebra egy relációs adatmodell relációira vonatkozó zárt műveletrendszer . A relációs algebrai műveleteket relációs műveleteknek is nevezik .
Az eredeti 8 műveletből álló halmazt E. Codd javasolta az 1970-es években, és mind a még használatban lévő műveleteket ( projekció , csatlakozás , stb.), mind a használatba nem vett műveleteket (például kapcsolatok felosztása ) tartalmazta.
A relációs elmélet és gyakorlat fejlesztése során több új relációs műveletet javasoltak, mint például a semi-join ( SEMI-JOIN ) és a semi-difference, vagy az anti-semi-join ( ANTI-SEMI-JOIN ) [1] [2 ] , KERESZT ALKALMAZÁS és KÜLSŐ ALKALMAZÁS , tranzitív zárás ( ZÁRÁS ) stb.
Mivel a relációs algebra részeként sok művelet egymáson keresztül is kifejezhető, az alapnak (olyan művelethalmaznak, amelyen keresztül az összes többi kifejezhető) több változata is megkülönböztethető. A leghíresebb és legszigorúbb alapot ( A algebra ) Christopher Date és Hugh Darwen javasolta [3] .
A relációs algebra és a relációs kalkulus kifejezőerejükben ekvivalens [4] . Vannak szabályok a kérések konvertálására közöttük.
A relációs algebra fő alkalmazása az, hogy elméleti keretet biztosítson a relációs adatbázisokhoz , különösen az ilyen adatbázisok lekérdezési nyelveihez , amelyek közül a legfontosabb az SQL .
A relációs algebra olyan relációkra vonatkozó műveletek halmaza, amelyek mindegyikének eredménye egyben reláció is. Az algebrának ezt a tulajdonságát zártságnak nevezzük .
Az egy relációra vonatkozó műveleteket unárisnak , két reláción - binárisnak , három - ternárisnak nevezzük (ezek gyakorlatilag ismeretlenek).
Az unáris műveletre példa a projekció, a bináris műveletre az unió.
Egy f N -számú relációs műveletet egy függvény reprezentálhat, amely egy relációt ad vissza, és n relációt vesz fel argumentumként:
Mivel a relációs algebra zárt, a relációs műveletekben operandusként más relációs algebrai kifejezések is helyettesíthetők (a típusnak megfelelő):
A relációs kifejezésekben tetszőlegesen összetett szerkezetű beágyazott kifejezéseket használhat.
Egyes relációs műveletek, nevezetesen az unió , a metszet és a kivonás , megkövetelik, hogy a kapcsolatnak megfelelő (ugyanolyan) fejlécekkel (sémákkal) rendelkezzen. Ez azt jelenti, hogy az attribútumok száma, az attribútumok neve és az azonos nevű attribútumok típusa ( domain ) megegyezik.
Egyes kapcsolatok formálisan nem kompatibilisek az attribútumnevek különbségei miatt, de az attribútum-átnevezési művelet alkalmazása után azzá válnak.
A derékszögű szorzatművelet megköveteli, hogy az operandus relációk ne rendelkezzenek azonos nevű attribútumokkal. A kapcsolatokat kompatibilisnek mondjuk a kiterjesztett Descartes-szorzat felvételével, ha a kapcsolati sémáikból vett attribútumnevek metszéspontja üres.
Az alábbiakban a relációs algebra néhány olyan műveletét mutatjuk be, amelyek mind történelmi, mind gyakorlati szempontból érdekesek. Lehetetlen az összes műveletet felsorolni, mivel minden olyan művelet, amely megfelel a relációs definíciónak, a relációs algebra része.
Az attribútum-átnevezési művelet alkalmazásának eredménye egy reláció a megváltozott attribútumnevekkel.
R ÁTNEVEZÉS Atr 1 , Atr 2 , … AS NewAtr 1 , NewAtr 2 , …ahol
Egy reláció, amelynek címe megegyezik az A és B típuskompatibilis relációkkal, valamint egy A , B , vagy mindkettő soraiból álló törzs .
Szintaxis:
Az A és B relációval azonos címet viselő reláció , valamint az A és B relációhoz egyidejűleg tartozó sorokból álló test .
Szintaxis:
Egy reláció, amelynek címe megegyezik az A és B típuskompatibilis relációkkal, és egy törzs, amely olyan sorokból áll, amelyek az A relációhoz tartoznak, és nem tartoznak a B relációhoz .
Szintaxis:
A hozzárendelési operátor (:=) lehetővé teszi egy relációs kifejezés kiértékelésének eredményét egy meglévő relációban.
Egy reláció, amelynek fejléce ( A 1 , A 2 , …, A n , B 1 , B 2 , …, B m ) az A ( A 1 , A 2 , …, A n ) és B relációk címsorainak összefűzése ( B 1 , B 2 , …, B m ), a törzs pedig olyan sorokból áll, amelyek mind az A és B relációk sorainak kombinációi : ( a 1 , a 2 , …, a n , b 1 , b 2 , … , b m ),
oly módon, hogy
( a 1 , a 2 , …, a n ) ∈ A , ( b 1 , b 2 , …, b m ) ∈ B .Szintaxis:
A TIMES BEgy reláció, amelynek címe megegyezik az A relációval, és egy törzs, amely olyan sorokból áll, amelyek attribútumértékei IGAZ értékűek, ha c feltételbe helyettesítik. c egy logikai kifejezés , amely tartalmazhatja az A reláció attribútumait és /vagy skaláris kifejezéseket.
Szintaxis:
A minta a következőképpen vagy hol van írva :
A kivetítés egy unáris művelet , amely lehetővé teszi egy adott reláció vagy tábla "függőleges" részhalmazának beszerzését, vagyis egy olyan részhalmazt, amelyet a megadott attribútumok kiválasztásával kapunk , majd szükség esetén a redundáns duplikált sorok eltávolításával. . Adjunk meg egy attribútumneveket tartalmazó táblát , vagyis az attribútumnevek halmazának valamely részhalmazát . A kiválasztott attribútumnevekre vonatkozó táblavetítés eredménye egy új tábla , amelyet az eredeti táblából kapunk a kiválasztott halmazban nem szereplő attribútumok törlésével, majd a redundáns ismétlődő sorok esetleges eltávolításával.
A vetítés megvalósítása során meg kell adni a kivetített relációt és annak bizonyos attribútumait, amelyek az eredmény címe lesz.
A vetítés végrehajtásakor az operandus reláció „függőleges” levágását rendeljük hozzá a potenciálisan felmerülő duplikált sorok természetes megsemmisítésével.
Szintaxis:
vagy
Az A és B relációk P predikátummal való összekapcsolásának művelete logikailag ekvivalens A és B derékszögű szorzatának szekvenciális alkalmazásával és P predikátummal történő kiválasztásával . Ha a relációkban azonos nevű attribútumok vannak, akkor az összekapcsolás végrehajtása előtt ezeket az attribútumokat át kell nevezni.
Szintaxis:
( A TIMES B ) AHOL PEgy reláció egy fejléccel (X 1 , X 2 , …, X n ) és egy sorral (x 1 , x 2 , …, x n ) tartalmazó törzstel úgy, hogy minden sorra (y 1 , y 2 , … , y m ) ∈ B A (X 1 , X 2 , …, X n , Y 1 , Y 2 , …, Y m ) vonatkozásában van egy sor (x 1 , x 2 , …, x n , y ) 1 , y 2 , …, y m ) .
Szintaxis:
OSZTÁS B _A relációs operátorok egy része más relációs operátorokkal is kifejezhető.
Csatlakozás operátorhozAz összekapcsolás operátora a derékszögű termékben van meghatározva, és válassza ki az operátorokat az alábbiak szerint:
(A-SZOR B) AHOL X=Y ahol X és Y az A és B reláció attribútumai kezdetben azonos névvel. A kereszteződés kezelőjeA metszéspont operátora kivonással fejeződik ki :
A B METSZÉS = A MÍNUSZ (A MÍNUSZ B) részleg operátoraAz osztási operátort a kivonás, a derékszögű szorzat és a vetületi operátorok segítségével fejezzük ki:
A OSZTÁS B = A[X] MÍNUSZ ((A[X] SZERE B) MÍNUS A)[X]Az első Codd-algebrán alapuló lekérdező nyelv az Alpha volt, amelyet maga Codd fejlesztett ki. Ezt követően létrehozták az ISBL-t, és ezt az úttörő munkát számos szaktekintély dicsérte [5] , mivel módot mutat arra, hogy Codd ötletét hasznos nyelvvé alakítsák. A Business System 12 egy rövid életű relációs DBMS volt , amely az ISBL példáját követte.
1998-ban Christopher Date és Hugh Darwen a Tutorial D nevű nyelvet javasolta a relációs adatbázis-elmélet tanítására, ez a lekérdező nyelv szintén az ISBL ötletein alapult. A Rel a D oktatóanyag megvalósítása.
Még az SQL lekérdezési nyelv is lazán alapul relációs algebrán, bár az SQL operandusai ( táblázatok ) nem pontosan relációk , és számos hasznos relációs algebra-tétel nem érvényesül az SQL-ben (talán az optimalizálók és/vagy a felhasználók rovására). Az SQL tábla modellje egy multihalmaz , nem egy halmaz . Például egy kifejezés a relációs algebra tétele halmazokon, de nem relációs algebra a többhalmazokon; a relációs algebra multihalmazokon való tanulmányozását lásd Garcia-Molina , Ullman és Widom "Complete" című tankönyvének 5. fejezetében [6] .
Adatbázis | |
---|---|
Fogalmak |
|
Objektumok |
|
Kulcsok | |
SQL |
|
Alkatrészek |