jiy. i rs. ija/. t v.M
W jej wyniku musi powstać nowa krotka relacji Film, która będzie stanowić podstawę do otrzymania krotki o wartościach z instrukcji wstawiania przy przeglądaniu perspektywy Filmy Pa ramount. W rozpatrywanym przykładzie w krotce składowa atrybutu nazwaStudia przyjmie wartość ' Para-mount', składowa tytuł - wartość 'Star Trek', a składowa rok będzie określona jako 1979.
Należy także określić wartości pozostałych trzech atrybutów relacji Film, które nie występują w perspektywie: długość, czyKolor i producentem. Jednak ich wartości nie da się zgadnąć. A zatem we wstawianej krotce do relacji Film jako wartości składowych muszą być wstawione od-powiednie wartości domniemane: albo nljll, albo inna wartość domniemana, którą zdefiniowano dla atrybutu lub jego dziedziny. Na przykład, jeśli dla atrybutu długość określono wartość 0, a dla pozostałych dwóch wartość NULL, to krotka wstawiana do relacji Film wygląda następująco:
tytuł |
rok |
długość |
czyKolor |
nazwaStudia |
producentem |
'Star Trek' |
1079 |
0 |
NtJLL |
'Paramount' |
NULL |
□
Z perspektyw modyfikowalnych można także usuwać krotki. Usuwanie, podobnie jak wstawianie, jest przetwarzane w relacji bazowej R, a w jego wyniku zostają z relacji R usunięte te krotki, które nie powinny już generować żadnych danych do perspektywy.
PRZYKŁAD 5.42
Tym razem zadanie polega na usunięciu z perspektywy modyfikowalnej r 11-myParamount wszystkich filmów', w których tytułach występuje „Trek'\ Instrukcja usuwania ma postać następującą:
DELETE FROM FilmyParamount WHERE tytuł LIKS '%Trek$';
Powyższe usuwanie zostanie przekształcone do postaci równoważnego usuwania, określonego dla bazowej relacji Film. Drobna zmiana polega na dołączeniu do klauzuli WHERE warunku określającego perspektywę FilmyPara-mount.
Poniższy zapis
DELETE FROM Film
WHERE tytuł ŁIKE '‘ś7rek%' AND nazwaStudia = 'Paramo-unt';
określa instrukcję faktycznie wykonywaną.
□
Również instrukcja modyfikowania jest przetwarzana w relacji bazowe Modyfikowanie perspektywy powoduje zmodyfikowanie tych w-szystkic krotek w relacji bazowej, których dane są widoczne poprzez perspektywę.
PRZYKŁAD 5.43
Modyfikowanie perspektywy polegające na wykonaniu następującej instrukcji:
UPDATĘ FiimyParamount SET rok 1979
WHERE tytuł - 'Film Star Trek';
zostaje przekształcone w następujący sposób:
UPDATE Film SET rok =1979
WHERE tytuł = 'Film Star Trek' AND nazwaStudia 'Fa ramount';
(
Dlaczego niektórych perspektyw nic można modyfikować?
Rozważmy perspektywę FilmProd, którą określono w przykładzie 5.40, a która łączy tytuł filmu z nazwiskiem producenta. Według zasad SQL2 ta perspektywa nie jest modyfikowalna, ponieważ w klauzuli FROM znajdują się dwie relacje: Film oraz FilmDyr. Załóżmy, źc należy wstawić następującą krotkę:
('Największy spektakl na świecie', 'Cecil B. DeMille')
Należy wstawić wówczas krotki do obu relacji i Film i Fi ImDyr. Dla atrybutów, takich jak długość czy adres, można wstawić wartości domniemane, ale jakie wartości przyjąć dla atrybutów cert# lub produ-centC#, które mają określać numer certyfikatu pana DcMille? Możemy w obu przy padkach utyć wartości NULL. Jednakże przy wyliczaniu złączer wartości NULI. nie traktuje się jako równych (zob. p. 5.9.1). A więc nić można filmu 'Największy spektakl na świecie' połączyć z producentem Cecil B. DeMiile, w perspektywie Fi .Tr.Prcd, tak by została spełniona intencja zamierzonej mody fikacji.
Ostatnia z modyfikacji perspektyw polega na ich usuwaniu. Można wykonywać bez względu na to, czy perspektywa jest, czy też nie jest mody kowalna. Stosuje się wówczas standardową instrukcję DROP:
DROP VIEW FilmyParamount;