BD-1st-2.4-lab4.tresc-1.1-Slajd17

Z Studia Informatyczne
Wersja z dnia 09:01, 9 sie 2006 autorstwa PKrzyzagorski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Połączenia zewnętrzne

Połączenia zewnętrzne


We wszystkich opisanych dotychczas rodzajach połączeń, w relacji powstającej w wyniku połączenia, znajdują się jedynie krotki, które spełniają warunki połączenia. Taki typ połączeń nazywany jest „połączeniem wewnętrznym” (inner join ). Istnieją również „połączenia zewnętrzne (outer join ), w których można zażądać, aby wszystkie krotki z jednej, albo z obydwu łączonych relacji znalazły się w wyniku połączenia, nawet takie, które nie spełniają warunków połączenia (nie znalazły pary). Aby móc zachować wszystkie krotki z jednej relacji, do drugiej relacji wprowadzana jest „wirtualna” krotka, która wypełniona jest wartościami pustymi. Wszystkie krotki z relacji, które nie mogą znaleźć swojej pary, łączone są z "wirtualną" krotką w drugiej relacji. Koncepcję połączeń zewnętrznych ilustrują przykłady pokazane na slajdzie.

Zacznijmy od przykładu (1). W relacji PRACOWNICY znajduje się pracownik o nazwisku „Dolny”, który nie jest przydzielony do żadnego zespołu (atrybut ID_ZESP ma wartość NULL). Dane o tym pracowniku nie znalazłyby się w wyniku normalnego połączenia równościowego, gdyż nie zostałaby znaleziona żadna odpowiadająca mu krotka w relacji ZESPOLY. W wyniku połączenia zewnętrznego, w którym zażądalibyśmy, aby wszystkie krotki z relacji PRACOWNICY znalazły się w wyniku połączenia, krotka dotycząca pracownika „Dolnego” zostałaby połączona z wirtualną krotką umieszczoną w relacji ZESPOLY i znalazłaby się w wyniku.

Na przykładzie (2) pokazana jest podobna sytuacja. W relacji ZESPOLY zdefiniowano zespół BADANIA OPERACYJNE (o ID_ZESP równym 50), w którym nikt nie jest zatrudniony. Żaden pracownik nie ma atrybutu ID_ZESP równego ID_ZESP zespołu BADANIA OPERACYJNE. Dane o tym zespole nie znalazłyby się w wyniku normalnego połączenia równościowego, gdyż nie zostałaby znaleziona żadna odpowiadająca mu krotka w relacji PRACOWNICY. W wyniku połączenia zewnętrznego, w którym zażądalibyśmy, aby wszystkie krotki z relacji ZESPOLY znalazły się w wyniku połączenia, krotka dotycząca zespołu „BADANIA OPERACYJNE” zostałaby połączona z wirtualną krotką i znalazłaby się w wyniku.


<< Poprzedni slajd | Spis treści | Następny slajd >>