Objektumnézetek

Mint ahogy a relációs nézet egy virtuális tábla, ugyanúgy az objektumnézet egy virtuális objektumtábla. Az objektumnézet minden sora egy objektum, amelyre a típusának megfelelő attribútumok és módszerek alkalmazhatók.

Az objektumnézetek jelentősége abban van, hogy a létező relációs táblák adatai objektumorientált alkalmazásokban úgy használhatók fel, hogy azokat nem kell egy másik fizikai struktúrába konvertálni. Egy objektumnézet létrehozásának a lépései a következők:

  1. Létre kell hozni egy olyan objektumtípust, ahol minden attribútum megfelel egy létező relációs tábla egy oszlopának.

  2. Egy lekérdezés segítségével le kell válogatni a relációs táblából a kezelni kívánt adatokat. Az oszlopokat az objektumtípus attribútumainak sorrendjében kell megadni.

  3. Az attribútumok segítségével meg kell adni egy egyedi értéket, amely objektumazonosítóként szolgál, ez teszi lehetővé az objektumnézet objektumainak hivatkozását a REF segítségével. Gyakran a létező elsődleges kulcsot alkalmazzuk.

  4. A CREATE VIEW OF utasítás segítségével létre kell hozni az objektumnézetet (az utasítás részletes ismertetését lásd [21]).

Példa

/*

Kezeljük a könyvtár ügyfeleit T_Szemely típusú objektumként!

*/

CREATE VIEW konyvtar_ugyfelek OF T_Szemely
  WITH OBJECT IDENTIFIER(nev) AS
  SELECT SUBSTR(id || ' ' || nev, 1, 35) AS nev,
  SUBSTR(tel_szam, 1, 12)
  FROM ugyfel;

SELECT VALUE(u) FROM konyvtar_ugyfelek u;

/* Azonban a REF típusnál megadott hitelek táblában kezesként

nem használhatjuk az új T_Szemely-eket. */

INSERT INTO hitelek
  SELECT 'hitelazon1212' AS azonosito, 50000 AS osszeg,
  SYSDATE + 60 AS lejarat,
  REF(u) AS ugyfel_ref, REF(k) AS kezes_ref
  FROM hitel_ugyfelek u, konyvtar_ugyfelek k
  WHERE u.nev = 'Kocsis Sándor'
    AND k.nev like '%József István%';
/*

INSERT INTO hitelek
*
Hiba a(z) 1. sorban:
ORA-22979: objektumnézet REF vagy felhasználói REF nem szúrható be (INSERT)
*/