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 :

Nazwa Wiek Waga
Złupić 34 180
Wypad 28 164
Jerzy 28 170
Helena 54 154
Piotr 34 180
Wiek Waga
34 180
28 164
28 170
54 154

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.

Zobacz też

Bibliografia