Definicja
Widok (View) to wirtualna tabela w bazie danych zdefiniowana jako zapisane zapytanie SQL. Nie przechowuje danych fizycznie — przy każdym odwołaniu wykonuje zapytanie.
Widok vs tabela
| Aspekt | Tabela | Widok |
|---|---|---|
| Przechowuje dane | Tak (fizycznie) | Nie (zapytanie) |
| Modyfikacja danych | INSERT/UPDATE/DELETE | Ograniczona |
| Wydajność | Szybki odczyt | Zależy od zapytania |
| Bezpieczeństwo | Pełny dostęp | Można ukryć kolumny |
| Utrzymanie | Schema change = migracja | Schema change = update view |
Przykład
-- Tworzenie widoku
CREATE VIEW v_raport_sprzedazy AS
SELECT
k.segment, k.region,
COUNT(z.id) AS zamowienia,
SUM(z.kwota) AS przychod
FROM klienci k
JOIN zamowienia z ON k.id = z.klient_id
WHERE z.status = 'zrealizowane'
GROUP BY k.segment, k.region;
-- Użycie (proste jak tabela!)
SELECT * FROM v_raport_sprzedazy
WHERE region = 'Mazowieckie';
Zastosowania widoków
| Zastosowanie | Przykład |
|---|---|
| Uproszczenie | Złożony JOIN → prosty SELECT |
| Bezpieczeństwo | Ukryj wrażliwe kolumny (PESEL, pensja) |
| Standaryzacja | Jednolite definicje metryk (np. aktywny klient) |
| Warstwa abstrakcji | Zmiana schematu bez zmiany raportów |
Dlaczego to ważne?
Widoki pozwalają BA samodzielnie korzystać z danych bez znajomości skomplikowanych relacji między tabelami — ktoś przygotuje widok, BA pisze prosty SELECT.