Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
2
Pohledy Základní relace je pojmenovaná relace, která odpovídá typu entit reálného světa v konceptuálním modelu a jejíž n-tice jsou fyzicky uloženy v databázi. Pohled je dynamický výsledek jedné nebo více relačních operací aplikovaných na základní relace - změny v základních tabulkách se promítnou do pohledů. Pohled je virtuální relace, která fyzicky v databázi neexistuje, ale vytváří se na vyžádání.
3
Význam pohledů Poskytují silný a flexibilní nástroj bezpečnostního mechanismu, protože umožňují skrýt části databáze před některými uživateli. Umožňují uživatelům přistupovat k datům diferencovaně - tatáž data se mohou jevit různě různým uživatelům v témž čase. Umožňují zjednodušit složitější operace nad základními tabulkami.
4
Modifikace pohledů Všechny úpravy základní tabulky by se měly okamžitě promítnout do všech pohledů, které se odkazují do dané základní tabulky. Modifikuje-li se pohled, příslušná základní tabulka by měla reflektovat změnu
5
Modifikace pohledů Typ modifikací, které lze realizovat prostřednictvím pohledů je omezen: – Modifikace je povolena když dotaz obsahuje jednu základní tabulku a obsahuje primární a kandidátní klíč základní relace. – Modifikace není povolena, když dotaz obsahuje více základních relací. – Modifikace není povolena, obsahuje-li dotaz agregační nebo skupinové operace.
6
CREATE VIEW CREATE VIEW jméno_pohledu [(jméno_sloupce [,...]) ] AS subselect [WITH [CASCADED | LOCAL] CHECK OPTION] Může přiřadit jméno každému sloupci pro každý sloupec v pohledu. Je-li seznam sloupců specifikován, musí mít stejný počet položek jako je počet sloupců produkovaný v rámci poddotazu. Chybí-li, každý sloupec má jméno příslušného sloupce z poddotazu. Seznam musí být specifikován, může-li vzniknout nejasnost týkající se jména sloupce. Poddotaz se nazývá definující dotaz. WITH CHECK OPTION zajišťuje, že když řádek nesplňuje WHERE klauzuli definujícího dotazu, tak se nepřidá do příslušné základní tabulky.
7
DROP VIEW DROP VIEW jméno_pohledu [RESTRICT | CASCADE] Odstraní definici pohledu z databáze. Je-li dáno CASCADE, všechny příslušné závislé objekty jsou smazány např. všechny pohledy, definované nad daným pohledem. Je-li dáno RESTRICT (default), jsou-li další objekty závislé na smazaném pohledu, příkaz se nevykoná
8
SQL-92 do určité míry omezuje vytváření a použití pohledů. Je-li sloupec v pohledu založen na agregátní funkci, tak: – Sloupec může být použit pouze v SELECTu a ORDER BY klauzuli dotazu, který přistupuje k pohledu. Sloupec se nemůže použít v rámci WHERE, ani nemůže být argumentem v agregátní funkci dotazu nad daným pohledem. – Skupinový pohled nesmí být propojený se základní tabulkou.
9
Modifikace v rámci pohledů Všechny modifikace základní tabulky se projeví ve všech pohledech definovaných nad danou tabulkou. Podobně očekáváme, že každá modifikace dat v rámci pohledu se promítne do základní tabulky.
10
Pohledy Vytvoř pohled tak, aby manager pobočky P3 mohl vidět detaily pracovníků pouze pobočky ve které sám pracuje: CREATE VIEW zam3 AS SELECT * FROM zamestnanec WHERE c_pob = ‘P3'
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.