/ / operacje matematyczne w relacyjnej alegebrze - relacyjna baza danych, relacyjna algebra

operacje matematyczne w relacyjnej alegebrze - relacyjna baza danych, relacyjna algebra

Bardzo proste pytanie dotyczące algebry relacyjnej, której nie mogę znaleźć w Internecie ani w niektórych książkach.

Załóżmy, że pracownik relacji (klucz, wynagrodzenie, premia) i chcę utworzyć nową relację R (klucz, totalMoney), gdzie totalMoney = wynagrodzenie + premia. Moja próba to:

R1 (klucz, totalMoney) = rzutowanie klucz, wynagrodzenie (pracownik)

R2 (klucz, totalMoney) = rzutowanie klucz, bonus (pracownik)

R = klawisz suma zagregowana całkowita kwota pieniędzy (R1 U R2)

Czy to jest w porządku?

Jeśli wszystko jest w porządku, to nie rozwiązuje wszystkich moich problemów :(

Załóżmy, że chcę teraz uzyskać RT2 (klucz, totalMoney * 2). Do tego moja próba to:

RT2 = aktualizacja całkowita kwota pieniędzy <- totalMoney * 2 (R) // "aktualizacja" jest relacyjnym operatorem algebry

Czy to jest w porządku?

Myślę, że moje odpowiedzi nie są (bardzo) dobre. Jeśli możesz mi pomóc znaleźć miłe i miłe rozwiązanie, docenię to.

Dzięki

Odpowiedzi:

1 dla odpowiedzi № 1

Oryginalna algebra Codda nie zawierała takiej operacji, ponieważ mocno wierzył, że takie obliczenia powinny być wykonywane w aplikacji.

I niestety większość tego, czego naucza się w dzisiejszych czasachwciąż jest bardzo zbliżony do tych oryginalnych pomysłów Codda, które mają już 40 lat, a więc wszystkie ewolucje, które miały miejsce w ciągu tych 40 lat, są, niestety, przeoczone.

Jedną z tych rzeczy jest operator EXTEND, który został wprowadzony przez Chrisa Date i Hugh Darwen. Ten operator dba dokładnie o to, czego potrzebujesz.


0 dla odpowiedzi nr 2

Tradycyjna algebra relacyjna nie wspiera działania arytmetyczne. Podjęto jednak różne próby jego rozszerzenia: na przykład Gabbay i McBrian omówienie arytmetycznych rozszerzeń operatorów wyboru i projekcji, natomiast Boncz i in. zaproponował wiele relacyjnych rozszerzeń algebry (w tym operacje arytmetyczne) dla ich kompilatora Pathfinder XQuery.