2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése
2006. október 2.Markó Tamás, PTE TTK2 A rádiótelefonokat kérem KIKAPCSOLNI!
2006. október 2.Markó Tamás, PTE TTK3 A nézettábla fogalma Tárolt, „állandósult” lekérdezés A lekérdezés által szállított adatokat táblaként kezeli Virtuális tábla: a legtöbb olyan helyen, ahol adattáblára hivatkozhatunk, nézettáblát is lehet használni –lekérdezésekre hivatkozó lekérdezést is lehet készíteni
2006. október 2.Markó Tamás, PTE TTK4 A nézettábla nem tárol adatokat Az adatok az adattáblákban vannak Nézettábla lekérdezésekor a tárolt lekérdezés hajtódik végre A nézettáblák adataihoz való hozzáférés lassabb –nézettáblákra alapuló nézettáblák lekérdezése különösen lassú lehet! Nézettáblákon keresztül - bizonyos megszorításokkal - módosítani és törölni is lehet az eredeti adatokat
2006. október 2.Markó Tamás, PTE TTK5 Materialized view - a „megtestesült” nézettábla Csak az újabb Oracle-verziókban Ténylegesen tárol adatokat –az elérés gyorsabb –függetlenedni lehet a szervertől (pl. mobil alkalmazások) Az adatok időszakosan mindkét irányban frissülnek –az alaptáblák módosulásai átkerülnek a nézettáblába –a nézettáblán végzett módosítások átkerülnek az alaptáblákba
2006. október 2.Markó Tamás, PTE TTK6 Nézettábla létrehozása Formája: CREATE [OR REPLACE] VIEW nézet-név AS select-utasítás [WITH READ ONLY]; „OR REPLACE” megadása esetén a már meglévő nézettáblát lecserélhetjük az újra WITH READ ONLY: a nézettábla csak olvasható lesz Példa: CREATE VIEW budapesti_vevok_vw AS SELECT * FROM vevok WHERE varos = ‘Budapest’; nem árt, ha már a névből is látszik, hogy nézettábla
2006. október 2.Markó Tamás, PTE TTK7 Módosítható nézettáblák A nézettáblák módosításával a mögöttük lévő adattáblák tartalma módosul Alaphelyzetben nem minden nézettábla módosítható A módosíthatóság kétféleképpen érhető el: –a nézettábla eleve egyszerűbb szerkezetű –INSTEAD OF típusú triggert készítünk hozzá
8 A módosíthatóság szerkezeti feltételei A nézettábla definíciója nem tartalmazhat: halmazműveletet a DISTINCT, GROUP BY, ORDER BY kulcsszavakat összesítő függvényt al-lekérdezést Nem módosíthatók azok az oszlopok, amiknek értéke egy kifejezésből származik Több táblára hivatkozó nézetnél ezen kívül a módosítás csak egy táblát érinthet INSERT és UPDATE esetén a módosított tábla kulcsainak és egyedi értékeinek egyedinek kell lenni a nézetben is
2006. október 2.Markó Tamás, PTE TTK9 Nézettábla szerkezetének módosítása Az ALTER VIEW parancs csak az újrafordításra és megszorítások módosítására alkalmas A szerkezet megváltoztatására a CREATE OR REPLACE VIEW parancsot használjuk
2006. október 2.Markó Tamás, PTE TTK10 Nézettábla törlése Alakja: DROP VIEW nézet-név; Példa: DROP VIEW budapesti_vevok_vw; Az adatok nem törlődnek! Azok az adattáblákban vannak!
2006. október 2.Markó Tamás, PTE TTK11 Mire jók a nézettáblák - 1. Biztonság: csak kiválasztott adatokhoz engednek hozzáférést –pl. minden főnök csak a saját beosztottainak az adatait láthatja –az adatszótárból is csak nézettáblákat látunk (pl. USER_TABLES, ALL_USERS, stb.) Egyszerűsítik a felhasználók által kiadandó utasításokat –pl. nem kell a felhasználónak táblákat összekapcsolni
2006. október 2.Markó Tamás, PTE TTK12 Mire jók a nézettáblák - 2. Függetlenítik az alkalmazásokat a táblák szerkezetétől –pl. az alaptáblákhoz új oszlopok adhatók vagy az oszlopok neve megváltoztatható Növelik a biztonságot –pl. bonyolult, többször használt lekérdezések nézettáblaként elmenthetők Az adatok különböző felhasználói igények szerint „tálalhatók” –pl. a felhasználók csak a nekik szükséges adatokat látják
2006. október 2.Markó Tamás, PTE TTK13 Házi feladat Script készítése nézettábla létrehozására, amelyben az alábbi adatok láthatók: –a vevők teljes neve (egy mezőként) –a vevők által leadott megrendelés azonosítója –a fizetési mód –a fizetési határidő –a megrendelésen szereplő tételek száma –a tételek összértéke