Pohled (databáze)
Vzhled
Pohled (anglicky View) je databázový objekt, který uživateli poskytuje data ve stejné podobě jako tabulka. Na rozdíl od tabulky, kde jsou data přímo uložena, obsahuje pohled pouze předpis, jakým způsobem mají být data získána z tabulek a jiných pohledů. Z toho vyplývají některé základní rozdíly v chování tabulky a pohledu:
- Data tabulky lze přímo modifikovat pomocí příkazů DML SQL (INSERT, UPDATE, DELETE). Data poskytovaná pohledem nelze obecně vzato přímo modifikovat - výsledek, který pohled poskytuje, se změní v .případě, že se změní data v tabulkách, ze kterých pohled čerpá. V některých případech lze pohled modifikovat, pak se mu říká aktualizovatelný pohled. Změny se ovšem v takovém případě promítnou do tabulky (tabulek) na nichž je pohled založen.
- Na rozdíl od tabulky pohled nezabírá v paměti téměř žádné místo, protože neobsahuje data, ale pouze předpis pro získání dat (obvykle příkaz SELECT).
- Získání výsledku především u komplikovanějších pohledů může být časově výrazně náročnější než u přímého přístupu k tabulce, neboť data musí být při každém použití pohledu získána z podkladových pohledů a tabulek (výpočet může být často dost složitý). Tento problém lze řešit vytvořením vhodných indexů na podkladových tabulkách. Druhou možností používanou především u agregačních pohledů v datových skladech je použití „hybridu“ mezi tabulkou a pohledem - tzv. materializovaného pohledu.
Stejně jako ostatní databázové objekty, je i pohled modifikován pomocí příkazů DDL SQL (CREATE VIEW…, ALTER VIEW…, DROP VIEW…). Konkrétně MySQL/MariaDb má od verze 5.2 podporu příkazu REPAIR VIEW
, ale nepodporuje OPTIMIZE VIEW
.