Algebra relațională

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică, algebra relațională și calculul relațional aferent fac parte din setul de limbaje care vă permit să examinați interogările care trebuie efectuate în contextul gestionării / utilizării unei baze de date .

Este un limbaj procedural , adică o descriere a procedurii care trebuie implementată pentru a obține rezultatul. În timp ce calculul relațional este un limbaj declarativ , care vă permite să descrieți proprietățile rezultatului mai degrabă decât modul de obținere a acestuia. Rezultatul poate fi calculat atât pe tupluri ( înregistrările unice care alcătuiesc tabelul ), cât și pe domenii (câmpul de aplicare al tabelului). În matematică este o structură algebrică, relevantă pentru logică și teoria mulțimilor , adică este o ramură a logicii de prim ordin (și a mulțimilor) și se ocupă de relații închise și operatori: operatorii operează pe una sau mai multe relații și dau întotdeauna ca un rezultat o altă relație.

Descriere

Operatori de algebră relațională

Algebra relațională are 6 operatori de bază, dintre care niciunul nu poate fi omis fără a pierde expresivitatea și mai mulți operatori derivați, care pot fi definiți ca o combinație de operatori primitivi.

Operatori fundamentali (de bază):

  1. Uniune (operator binar)
  2. Diferență (operator binar)
  3. Produs cartezian (operator binar)
  4. Selecție (operator unar)
  5. Proiecție (operator unar)
  6. Redenumire (operator unar)

Operatori derivați (din cei de bază):

  1. intersecție (operator binar)
  2. Join (operator binar) sub diferite forme (theta-join, natural-join etc.)
  3. Divizie (operator binar)

Notăm cu r (R), relația r definită pe schema R. R este un set de atribute.

Unire, intersecție, diferență

Deoarece relațiile sunt seturi, este logic să se definească operatorii de seturi tradiționali pe aceștia ca uniune, diferență și intersecție. Singura constrângere este de a avea tupluri omogene care sunt definite pe aceleași atribute.

  • uniunea a două relații r1 și r2 definite pe același set de atribute X este indicată cu și este o relație încă pe X care conține tuplele aparținând lui r1 sau r2, fără repetări ale unor tupluri repetate.
  • diferența dintre r1 (x) și r2 (x) se notează ca și este o relație pe X care conține tuplele aparținând lui r1 și care nu aparțin lui r2.
  • intersecția lui r1 (X) și r2 (X) se notează cu și este o relație pe X care conține tuplurile aparținând atât r1, cât și r2.

Redenumire

Operatorul de redenumire, , modifică schema unei relații schimbând numele unuia sau mai multor atribute. Această operație este foarte utilă pentru obținerea tuplurilor omogene atunci când acestea nu sunt chiar dacă câmpul semantic de aplicare al interogării este. Este o relație definită pe setul de atribute și fie un (alt) set de atribute sortate după atribute în și un fel pentru cei din . Apoi redenumirea conține un tuplu pentru fiecare tuplu în , definit după cum urmează: este un suplu Și , pentru . Definiția confirmă faptul că modificările sunt numele atributelor, în timp ce valorile rămân neschimbate și sunt asociate cu noile atribute.

produs cartezian

Este definit doar în cazul în care relațiile nu au atribute în comun și, spre deosebire de operatorul de set omonim, rezultatul nu este un set de tupluri, ci un singur tuplu format din cele două tupluri ale relațiilor originale.

Logica propozițională

Selecţie

Este un operator unar și, în consecință, returnează o relație .

Numim o „formulă relațională” o expresie care leagă atribute prin intermediul operatorilor = ,! = ( diferit de ), <,>, , . Fie r (X) o relație pe setul de atribute X, iar F o formulă relațională. Selecția lui r față de F, notată cu "S" F (r), este o relație definită pe X, conținând tuplele lui r care fac F adevărat, adică selecția dintr-un tabel nu este altceva decât setul de rânduri care aparțin tabelului și care îndeplinesc o serie de condiții indicate în selecția însăși.

Proiecție

Operatorul de proiecție modifică gradul relației la care se aplică. Simbolul este indicele din care este indicată lista de atribute care constituie noua relație, aceste atribute sunt un subset al atributelor relației inițiale. Proiecția produce o relație a cărui schemă este ansamblul de atribute și a cărui instanță este restricționarea tuplurilor de pe atribute .

În mod formal, proiecția elimină tuplurile care ar trebui duplicate în relația finală, de fapt instanțele cu prezența de tupluri duplicate nu sunt permise de modelul relațional.

A te alatura

Unirea este o operație binară care se aplică la două relații și . Funcția de îmbinare este de a uni tupluri legate logic din cele două relații într-un singur tuplu. Relația rezultată are ca schemă setul de atribute ale lui R și S, în timp ce extensia este exprimată ca produs cartezian al lui R și S urmată de selecția tuplurilor care îndeplinesc condiția de îmbinare . Operatorul de îmbinare nu este un operator elementar al algebrei relaționale și este definit după cum urmează: . Pentru sensul și sintaxa condiției de selecție vezi operatorul de selecție .

Dacă criteriul de selecție a tuplului este determinat de un operator de comparație (<,>, =, etc.) putem vorbi de o combinație teta . Un caz special al teta-join este echi-join , în care se aplică operatorul de egalitate.

Dacă doriți să efectuați o echi-join pe atribute cu același nume, puteți recurge la o operație specială numită natural-join . În prezența a două atribute egale, atributul comun într-una din cele două relații este redenumit, se realizează unirea echi față de cele două atribute și una dintre coloanele egale este ștearsă. Prin urmare, în îmbinarea naturală, condiția de îmbinare este implicită, iar schema de relație rezultată este setul de atribute ale lui R și S minus unul dintre atributele egale.

Divizia

Împărțirea este o operație binară care se aplică la două relații și , respectiv cu scheme relaționale și , unde este este un subset corespunzător de (prin urmare mereu).

Relația rezultată, , se numește coeficientul diviziunii lui pentru și are ca schemă , adică setul de atribute ale neincluse în . Va conține toate (și numai) tuplurile astfel încât pentru orice tuplu din , tuplul rezultat apartine .

Mai precis

Elemente conexe

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT