TI:WTBD/Widoki

Transkrypt

TI:WTBD/Widoki
TI:WTBD/Widoki
Widoki (view, w polskiej literaturze czasami: perspektywy) można uważać za zapamiętane w
schemacie bazy zapytania (SELECT), umożliwiające alternatywne prezentacje tych samych danych
(np. w postaci nieznormalizowanej), bez wprowadzania duplikacji.
CREATE VIEW [ IF NOT EXISTS ] nazwa AS polecenie_select;
W zapytaniach widoku można używać równoważnie jak tabeli. Są natomiast duże różnice pomiędzy
implementacjami co do zakresu modyfikowalności widoku. Tzn. tego, czy można pisać instrukcje
INSERT, DELETE czy UPDATE odwołując się w nich do widoku, a nie do tabeli (tabel) tzw.
źródłowych. W niektórych systemach przyjęto podejście, że modyfikacja danych poprzez widok
powinna być możliwa w każdym przypadku, gdy operacja jest dobrze określona w terminach danych
w tabelach źródłowych. Niestety to na oko całkiem rozsądne podejście prowadzi do dość zawiłych
reguł, gdy chce się konkretnie określić jakie operacje są legalne, a jakie nie.
SQLite dla odmiany zabrania całkiem modyfikacji danych poprzez widoki. To znaczy, nie można
wprost odwołać się do widoku w instrukcjach zmieniających dane. Można natomiast pracowicie
stworzyć tzw. wyzwalacze (trigger) INSTEAD OF, które będą wywoływane w miejsce instrukcji
zmieniających dane, odwołujących się do widoku (tym samym instrukcje takie staną się legalne).