210 4. DZIAŁANIA W MODELU RELACYJNYM
Inny przykład zastosowania rzutowania polega na obliczeniu wyrażenia Otrzymujemy wówczas relację o jednej kolumnie:
czyKolor
prawda
W wynikowej relacji występuje tylko jedna krótkie ponieważ na rys. 4.2 wszystkie trzy krotki mają taką samą wartość składowej dla atrybutu czyKolor.
□
W wyniku zastosowania operatora selekcji do relacji R powstaje nowa relacja, do której należy pewien podzbiór krotek relacji R. Krotki w relacji wynikowej są wybierane według kryterium określonego przez pewien warunek C narzucony na atrybuty relacji R. Tę operację oznaczamy symbolem a\(R). Schemat relacji wynikowej nie różni się niczym od schematu relacji R, a porządek atrybutów zostaje też zachowany.
C stanowi wyrażenie warunkowe tworzone podobnie do wyrażeń warunkowych w językach programowania, na przykład tych, które występują po słowie Tf w konwencjonalnych językach programowania, takich jak Pascal lub C. Jedyna różnica polega na tym, że w wyrażeniu algebraicznym operan-dami mogą być tylko albo stałe, albo atry buty relacji R. Wartość wyrażenia C jest obliczana po kolei dla każdej krotki t z R w ten sposób, że w miejsce atrybutu w C podstawia się wartość składowej krotki / dla tego atrybutu. Jeśli po zastąpieniu wszystkich atrybutów odpowiednimi wartościami z krotki wyrażenie przyjmuje wartość prawda, to wówczas krotka / jest dołączana do wynikowego zbioru operacji ot{R), w przeciwnym przypadku krotka t nie będzie należała do relacji wynikowej.
PRZYKŁAD 4.3
Załóżmy, że relacja Film wygląda tak jak na rys. 4.2. Wówczas wartością wyrażenia <Jdiu&ons iooOlim) jest następująca relacja:
muł |
rok |
długość |
czyKolor |
nazwaStudia |
producentem |
Gwiezdne Wojny |
1977 |
124 |
prawda |
Fox |
12345 |
Potężne Kaczory |
1991 |
104 |
prawda |
Disney |
67890 |
Warunek długość > 100 jest spełniony przez pierwszą krotkę, ponieważ gdy zamiast nazwy długość wstaw imy 124, co jest wartością składow ej atry butu długość z. pierwszej krotki, otrzymamy nierówność 124 > 100, co jest prawdą. Możemy zatem umieścić pierwszą krotkę w zbiorze wynikowym. W ten sam sposób należy tłumaczyć, dlaczego druga krotka z rys. 4.2 także została tam umieszczona.
W trzeciej krotce wartość składowej dla atrybutu długość wynosi 95. Jeśli podstawimy tę wartość zamiast nazwy długość do warunku, to otrzymamy wyrażenie 95 > 100, które jest nieprawdziwe. Dlatego ostatnia krotka z rys. 4.2 nie jest wynikiem.
□
PRZYKŁAD 4.4
Chcemy teraz wyszukać te krotki relacji:
Filmttytuł, rok, długość, czyKolor, nazwaStudia, produ-centC#)
w których producentem jest wytwórnia Fox i które trwają co najmniej 100 minut. Wówczas trzeba utworzyć warunek bardziej złożony, do którego należą dwa warunki połączone spójnikiem logicznym AND. Wyrażenie to przyjmie następującą postać:
&,tluy,u.\ć Ł 100 AMD na^aStudio - rox(Film)
Jedynie krotka:
tytuł |
rok |
długość |
cz\’Kolor |
nazwaStudia |
producentem |
Gwiezdne Wojny |
1977 |
124 |
prawda |
r o x |
12345 |
występuje w relacji wynikowej.
□
Iloczynem kartezjańskim (lub produktem) zbiorów R i S nazywa się zbiór wszystkich par uporządkowanych, z których pierwszy element pary należy do zbioru R, a drugi do zbioru S. Taki iloczyn oznacza się symbolem R x S. Definicja nie zmienia się, gdy zbiorami są relacje. Jednak ponieważ elementami R i S są w takim przypadku krotki, w których może występować wiele składowych, więc w wyniku utworzenia pary krotek z jednej krotki S i jednej R otrzymuje się nową, dłuższą krotkę, która zaw iera wszystkie składowe z krotek, które wchodzą w skład pary. W wynikowej krotce wszystkie składowe z. krotki R występują przed składowymi krotki z S.
Schemat relacji wynikowej jest sumą schematów relacji R i S. Ale jeśli zdarzy się tak, żc pewne atrybuty powtarzają się w obu schematach, to co najmniej dla jednego z powtarzających się atrybutów' trzeba wprowadzić nową nazwę. Aby odróżniać identyczne atrybuty A z relacji R i S. wprowadza się oznaczenie SA dla atrybutu A w relacji S oraz RA dla atrybutu A w relacji R.