| Termin | Definicja |
|---|---|
| Widok tylko do odczytu | Widok tylko do odczytu nie pozwala modyfikować danych leżącej pod nim tabeli przez samo zapytanie SELECT. Widok jako logiczna warstwa nad tabeląWidok tylko do odczytu jest zapisaną definicją zapytania, która udostępnia wynik pod własną nazwą, bez tworzenia odrębnej kopii wszystkich danych. Gdy aplikacja wykonuje zapytanie Określenie „tylko do odczytu” oznacza, że przez ten widok nie można wykonać operacji modyfikującej dane źródłowe. Próba użycia instrukcji Dlaczego zapytanie SELECT nie zmienia tabeliInstrukcja Nie należy jednak utożsamiać każdego widoku z widokiem wyłącznie do odczytu. W wielu systemach prosty widok oparty na jednej tabeli może być modyfikowalny, jeżeli jego definicja pozwala jednoznacznie wskazać rekordy i kolumny tabeli bazowej. Właściwości takie jak Filtrowanie, połączenia i ograniczenie możliwości zapisuWidok tylko do odczytu może pełnić funkcję bezpiecznej projekcji danych. Przykładowo definicja może zwracać wyłącznie identyfikator urządzenia, model oraz status naprawy, pomijając kolumny techniczne, które nie są potrzebne konkretnej aplikacji. Warunek Wynik widoku może również powstawać z kilku tabel połączonych klauzulą Kontrola dostępu i diagnostyka działania widokuWidok tylko do odczytu może ograniczać nie tylko sposób prezentacji danych, lecz także zakres operacji dostępnych dla użytkownika bazy. Uprawnienie do odczytu widoku nie musi oznaczać uprawnienia do bezpośredniego odczytu wszystkich tabel użytych w jego definicji. Dokładne zasady sprawdzania uprawnień zależą od silnika bazy danych i konfiguracji schematów, dlatego przy problemie z dostępem trzeba sprawdzić właściciela obiektu, uprawnienia do wykonania zapytania oraz stan tabel i zależności, na których widok się opiera. Podczas diagnostyki należy najpierw odczytać definicję widoku, a następnie uruchomić jego zapytanie z ograniczeniem liczby wyników, jeśli silnik taką możliwość zapewnia. Warto sprawdzić, czy tabela źródłowa istnieje, czy nazwy kolumn nie zostały zmienione oraz czy filtr nie eliminuje wszystkich rekordów. Błąd przy próbie zapisu nie oznacza uszkodzenia tabeli: może być prawidłową konsekwencją oznaczenia widoku jako tylko do odczytu. Zmiana danych powinna być wykonana inną, wyraźnie do tego przeznaczoną ścieżką, z zachowaniem reguł integralności zdefiniowanych w bazie. |