Projekcja (algebra relacyjna) - Projection (relational algebra)
W relacyjnej algebry , o projekcja jest jednoskładnikowa operacja napisany jako , gdzie jest relacja i są nazwy atrybutów. Jego wynik jest definiowany jako zbiór uzyskany, gdy składniki krotek w są ograniczone do zbioru - odrzuca (lub wyklucza ) inne atrybuty.
W praktyce, jeśli traktuje się relację jako tabelę, to rzutowanie można traktować jako wybieranie podzbioru jej kolumn. Na przykład, jeśli atrybuty to (imię, wiek), to rzutowanie relacji {(Alicja, 5), (Bob, 8)} na listę atrybutów (wiek) daje {5,8} - odrzuciliśmy imiona, i wiedzieć tylko, jakie są obecne wieku.
Projekcje mogą również modyfikować wartości atrybutów. Na przykład, jeśli posiada atrybuty , , , gdzie wartości są liczbami, to jest jak , ale ze wszystkimi -values połowę.
Pojęcia pokrewne
Ściśle powiązane pojęcie w teorii mnogości (patrz: rzutowanie (teoria mnogości) ) różni się od algebry relacyjnej tym, że w teorii mnogości rzutuje się na uporządkowane składowe, a nie na atrybuty. Na przykład rzutowanie na drugi komponent daje 7.
Projekcja jest odpowiednikiem algebry relacyjnej kwantyfikacji egzystencjalnej w logice predykatów . Atrybuty nieuwzględnione odpowiadają egzystencjalnie skwantyfikowanym zmiennym w predykacie, którego rozszerzenie reprezentuje relacja operandu. Poniższy przykład ilustruje ten punkt.
Ze względu na zgodność z kwantyfikacją egzystencjalną, niektóre autorytety wolą definiować projekcję w kategoriach wykluczonych atrybutów. W języku komputerowym możliwe jest oczywiście zapewnienie notacji dla obu, i zostało to zrobione w ISBL i kilku językach, które wzorowały się na ISBL.
Niemal identyczne pojęcie występuje w kategorii monoidów , zwanej projekcją na ciąg , polegającą na usunięciu wszystkich liter w ciągu , które nie należą do danego alfabetu .
Po zaimplementowaniu w standardzie SQL „domyślna projekcja” zwraca multiset zamiast zestawu, a projekcja π jest uzyskiwana przez dodanie DISTINCT
słowa kluczowego w celu wyeliminowania zduplikowanych danych.
Przykład
Jako przykład rozważ relacje przedstawione w poniższych dwóch tabelach, które są relacją Osoba i jej rzutem na (niektórzy mówią „ponad”) atrybutów Wiek i Waga :
|
|
Załóżmy, że orzeczeniem osoby jest „ Imię ma wiek lat i waży wagę ”. Wtedy dana projekcja reprezentuje orzeczenie: „Istnieje Imię takie, że Imię ma wiek lat i waży wagę ”.
Zauważ, że Harry i Peter mają ten sam wiek i wagę, ale ponieważ wynik jest relacją, a zatem zbiorem, ta kombinacja pojawia się tylko raz w wyniku.
Bardziej formalnie semantyka projekcji jest zdefiniowana następująco:
gdzie jest ograniczenie krotki do zbioru tak, że
gdzie jest wartością atrybutu, jest nazwą atrybutu i jest elementem domeny tego atrybutu - patrz Relacja (baza danych) .
W wyniku projekcji jest zdefiniowany tylko jeśli jest podzbiorem z nagłówka o .
Projekcja na żadne atrybuty jest możliwa, dając relację stopnia zero. W tym przypadku liczność wyniku wynosi zero, jeśli operand jest pusty, w przeciwnym razie jeden. Dwie relacje stopnia zero są jedynymi, których nie można przedstawić w postaci tabel.