Skip navigation

Elméleti áttekintés

Nézettáblák létrehozása

A nézettáblák előállításának általános szintaxisa:

CREATE VIEW táblanév [(oszloplista)] AS (lekérdezés);

Megjegyezzük, hogy az oszloplista, ha meg van adva, akkor kompatibilis kell legyen a lekérdezés oszlopaival!

A nézettáblák használata

A nézettáblák valójában nem tartalmaznak adatot, csupán transzformációs formulák a definíciójukban megadott lekérdezésekhez.

A nézettáblák használata lekérdezésekben ugyanúgy működik, mintha valódi táblák lennének. A felhasználónak nem kell tudnia, hogy azok nem fizikai táblák, és nem kell másképpen kezelnie azokat.

Az adatbeszúrás, módosítás és törlés műveleteket illetően a lehetőség korlátozottabb. Feltételeznünk kell, hogy a nézettábla akármilyen bonyolultságú lekérdezést tartalmazhat. A nézettáblába nem lehet beszúrni, módosítani, törölni adatot, ha az alábbi esetek valamelyike teljesül:

  • A nézettábla definíciójában szereplő lekérdezés tartalmaz összekapcsolást.
  • A nézettábla definíciójában szereplő lekérdezés tartalmaz csoportosítást.
  • A nézettábla definíciójában szereplő lekérdezés származtatott értéket tartalmaz.
  • A nézettábla definíciójába szerepelő lekérdezésben szerepel a DISTINCT kulcsszó.
  • A nézettáblában nem lehet egyértelműen meghatározni egy fizikai rekordot (például nem tartalmazza egyik tábla kulcsát sem).

Mikor érdemes nézettáblát használni?

  • Olyan lekérdezésknél, amelyeket gyakran kell használni, esetleg a lekérdezés eredménytábláját felhasználjuk más táblákkal történő összekapcsolás során. Ez főleg kényelmi szempont, de funkcionális hatása lehet akkor is, ha a nézettábla eredményhalmaza szűrt adatot tartalmaz (például kevesebb rekordot ad vissza, mintha a definíciójában lévő lekérdezést behelyettesítenénk).
  • Szeretnénk megkülönböztetni bizonyos jogosultsági köröket. A nézettáblák alkalmasak arra, hogy az adatbázisban tárolt adatokat tükrözzék. A nézettáblákra viszont eltérő jogosultságokat adhatunk bizonyos adatbázis felhasználóknak. Például a fizikai táblákhoz hozzáférnek az adatbázis adminisztrátorai, de a "látogatók" a fizikai táblákat nem, csak a nézettáblákat érik el (azt tudják lekérdezni).
  • Szeretnénk bizonyos adatokat elrejteni. Klasszikus példa erre egy olyan dolgozói adatbázis, ahol a dolgozó minden adatát (személyes, munkahelyi, fizetés, egészségügyi) egy fizikai táblába tároljuk, de a HR-esnek, az orvosnak és a gazdasági ügyintézőnek csak a szükséges adatokat mutatjuk.