ullman176 (2)

ullman176 (2)



5. jęZYK. BAZ DANYCH SQL

Złączenie naturalne w języku $QL2 ma dokładnie takie same właściwości. Słowa kluczowe NATURAL JOIN występują między nazwami łączonych relacji i określają operator złączenia tx.

PRZYKŁAD 5.49

Nasze zadanie polega na policzeniu złączenia naturalnego następujących relacji:

GwiazdaFilmowa(nazwisko, adres, płeć, dataUrodzenia) FilmDyr{nazwisko, adres, cert#, cenaSieoi)

W wyniku złączenia powstanie relacja, do schematu której należą atrybuty nazwisko i adres oraz. wszystkie te atrybuty, które należą tylko do jednej z. relacji wejściowych. Krotka wynikowa opisuje osobę, która jest zarówno gwiazdą jak i dyrektorem produkcji, a opis zawiera nazwisko, adres, płeć, datę urodzenia, numer certyfikatu i cenę sieci. Poniżej przedstawiono wyrażenie opisujące tę nową relację:

Gwiazd&Fiimowa NATURAL JOIN FilmDyr;

5.9.5. Złączenia zewnętrzne

W celu uniknięcia pewnych niedogodności związanych ze stosowaniem złączeń w języku SQL2 wprowadzono wariant złączenia nazywany złączeniem zewnętrznym. Przypuśćmy, że zadanie polega na obliczeniu złączenia R tx S. Jeśli pewna krotka l relacji R nie pasuje do żadnej krotki relacji S, to w złączeniu R txi S nie będzie po niej żadnego śladu. Może to się okazać niewygodne w wielu sytuacjach. Jeśli na przykład wynik złączenia definiuje perspektywę, a zapytanie dotyczy tych atrybutów perspektywy, które należą tylko do schematu relacji R, to intuicyjnie można by się spodziewać, że krotka t wystąpi w wyniku zapytania. Jednakże ta krotka nie jest w^cale widoczna w perspektyw ie R tx S, a więc takie samo zapylanie przetworzone dla relacji R da inny wynik, niż gdy przetwarza się krotki złączenia R tx S.

Złączenie zewnętrzne różni się od zwykłego złączenia (tj. wewnętrznego) tym, że do wyniku są dołączane również te krotki, które nie „pasują” do żadnej krotki z drugiej relacji. Takie krotki, których nic można dopasować, występowały już w przykładzie 4.6 i nazywaliśmy je krotkami wiszącymi. Ponieważ jednak w relacji wynikowej muszą wy stępować w artości atrybutów z obu relacji, zatem w dołączanej krotce trzeba brakujące elementy uzupełnić i w konsekwencji składowe brakujących atrybutów otrzymują w takich przypadkach wartość NULL.

PRZYKŁAD 5.50

Trzeba utworzyć złączenie dwóch relacji:

GwiazdaFilmowa(nazwisko, adres, płeć, dataUrodzenia) FilmDyr(nazwisko, adres, cert=, cenaSieci)

ale należy tym razem dołączyć do wyniku również tych aktorów, którzy nie s dyrektorami produkcji, oraz tych dyrektorów, którzy nie są gwiazdami filmc wymi. W SQL2 korzysta się w tym celu z operatora pełnego naturalnego z\i czenia zewnętrznego (natura! fuli outerjoin), które ma następującą postać:

GwiazdaFilmowa NATURAL FULL OUTER JOIN FilmDyr;

Do relacji wynikowej dołączą się te same sześć atrybutów, które występował w schemacie z przykładu 5.49. W wynikowej relacji występują krotki trzeć rodzajów'. Krotki dotyczące tych osób, które są zarówmo dyrektorami, ja i aktorami mają wartości wszystkich sześciu atry butów różne od NULL. Są t tc same krotki, które występują w wyniku złączenia w przykładzie 5.49.

Drugi rodzaj obejmuje te krotki, które opisują gwiazdy, które nie są dy rektorami. Zawierają one wartości atrybutów: nazwisko, adres, płe i dataUrodzenia, które pochodzą z relacji GwiazdaFilmowa, natomia-wartością atrybutów z relacji FilmDyr, tj. cert# i cenaSieci jest NULL.

Trzeci rodzaj stanow ią krotki opisujące dyrektorów, którzy nie są aktc rami. Atrybuty pochodzące z relacji FilmDyr mają w tych krotkach taki same wartości jak w oryginalnej relacji, natomiast wartości atrybutów ple i dataUrodzenia, które należą do schematu relacji GwiazdaFilmowa, 5 rów-ne NULL. Na rysunku 5.20 przedstawiono wszystkie trzy rodzaje krotek.

nazwisko

adres

płeć

dataUrodzenia

certn-

cenaSieci

Mary Tyler Moore

Mapie St.

\

9/9/99

12345

$ 100..

Tom Hanks

Cherry Ln.

VM'

8/8/83

NULL

George

Lucas

Oak Rd.

NULL

NULL

23456

$200...

RYSUNEK 5.20

Trzy krotki złączenia zewnętrznego relacji GwiazdaFilmowa i FilmDyr

W języku SQL2 istnieje wiele wariantów' złączeń zewnętrznych. Obc pełnego złączenia zewnętrznego występuje na przykład zewnętrzne złączeń lewostronne, które polega na tym, że do wyniku dołącza się tylko krotki „w szące’’ z pierwszej relacji, uzupełnione wartościami null- w składowych dn giej relacji. Na przy kład złączenie

GwiazdaFilmowa NATURAL LEFT OUTER JOIN FilmDyr;

mogłoby zawierać pierwsze dwie krotki z rys. 5.20, ale trzeciej już nie.


Wyszukiwarka

Podobne podstrony:
70987 ullman154 (2) .5 l*ł 5. JĘZYK BAZ DANYCH SQL MĆwiczenie 5.3.6. Można już było uprzednio dostrz
ullman138 (2) 5_Język baz danych SQL Język SQL stanowi najbardziej popularny mechanizm definiowania
ullman154 (2) .5 l*ł 5. JĘZYK BAZ DANYCH SQL MĆwiczenie 5.3.6. Można już było uprzednio dostrzec, że
ullman138 (2) 5_Język baz danych SQL Język SQL stanowi najbardziej popularny mechanizm definiowania
ullman146 (2) 5. JĘZYK BAZ DANYCH SQL zmienną krotkową i kropką. A więc zmienna krotkowa jest inną n
53669 ullman151 (2) 308 5. JEŻYK BAZ DANYCH SQL T5.3.2. Warunki obejmujące relacje W języku SQL
ullman142 (2) 290 5. JEŻYK BAZ DANYCH SQL drugiego tekstu. Podobnie jak to występowało w przypadku t
ullman158 (2) 322 5. JĘZYK BAZ DANYCH SQL To nowe zapytanie zostało przedstawione na rys. 5.11. Powo
ullman161 (2) dZ5 5. JĘZYK BAZ DANYCH SQL jednocześnie zostanie usunięte kilka krotek, które spełnia
73749 ullman167 (2) 5. JĘZYK MA7. DANYCH SQL d) Schemat relacji Rezultat. c) Stosowną definicję dzie

więcej podobnych podstron