1. fejezet - Bevezetés

Az Oracle objektumrelációs adatbázis-kezelő rendszer, amely alapvetően relációs eszközöket tartalmaz és ezeket egészíti ki objektumorientált eszközökkel. Mint a relációs adatbázis-kezelő rendszerek általában, az Oracle is a szabványos SQL nyelvet használja az adatok kezelésére. Az Oracle az SQL:1999 szabványt [9] támogatja. Az SQL tipikus negyedik generációs nyelv, amely deklaratív jellemzőkkel rendelkezik. Ez azt jelenti, hogy a nyelv parancsai segítségével leírjuk, hogy mit kell csinálni, de azt nem adjuk meg, hogy hogyan. A parancs végrehajtásának részletei rejtettek maradnak.

A deklaratív SQL mellett befogadó nyelvként alkalmazhatók az olyan eljárásorientált (procedurális) nyelvek, mint a C vagy a Pascal, illetve az olyan objektumorientált nyelvek, mint a C++ vagy a Java. Ezek algoritmikus nyelvek, amelyeken a probléma megoldásának menetét a programozó adja meg.

A PL/SQL a kétféle paradigma egyesítését valósítja meg, ezáltal igen nagy kifejezőerejű nyelvet ad. A PL/SQL az SQL procedurális kiterjesztésének tekinthető, amely a következő konstrukciókat adja az SQL-hez:

A PL/SQL nem tartalmaz I/O utasításokat.

Könyvünkben az Oracle10g PL/SQL verzióját tárgyaljuk. Törekedtünk a teljességre, az adott verzió minden utasítása szerepel valamelyik fejezetben. Feltételezzük az SQL utasítások ismeretét, ezért azoknak gyakran csak azon utasításrészeit elemezzük, melyek a PL/SQL-hez kötődnek, vagy az SQL-ben nem is szerepelnek. Néhány bonyolultabb PL/SQL utasításnál egyes opciók, előírások hiányozhatnak. A részletes információt igénylők számára a [19], [21] dokumentációk állnak rendelkezésre.

Minden utasítás esetén formálisan megadjuk annak szintaxisát. A formális leírásnál az alábbi jelöléseket használjuk:

  • A terminálisok nagybetűs formában jelennek meg (például LOOP).

  • A nemterminálisok dőlt kisbetűs formában szerepelnek (például típusnév). Ha a nemterminális megnevezése több szóból áll, a szavak közé aláhúzás ( _ ) kerül (például kurzorváltozó_név).

  • Az egyéb szimbólumok az írásképükkel jelennek meg (például :=).

  • Az alternatívákat függőleges vonal (|) választja el (például MAP|ORDER).

  • Az opcionális elemek szögletes zárójelben ([ ]) állnak (például [NOT NULL]).

  • A kötelezően megadandó alternatívákat kapcsos zárójelek ({ }) zárják közre (például {MAP|ORDER}).

  • Az iteráció jelölésére a három pont (…) szolgál (például oszlop[,oszlop]…).

A könyvben közölt kódrészletekben a jobb olvashatóság érdekében a következő jelölési

konvenciókat alkalmaztuk:

  • Az alapszavak és a standard, beépített PL/SQL azonosítók nagybetűsek:

.
.
.
BEGIN
v_Datum := hozzaad(SYSDATE, 1, 'kiskutyafüle');
EXCEPTION
WHEN hibas_argumentum THEN
DBMS_OUTPUT.PUT_LINE('Blokk1 - hibás argumentum: ' || SQLCODE || ', ' || SQLERRM);
END;
.
.
.

  • A több szóból álló azonosítókban a szavakat aláhúzással ( _ ) választjuk el.

  • Az adatbázisbeli táblák nevei és az oszlopaik nevei a definíciójukban nagy kezdőbetűsek, de mindenütt másutt kisbetűsek:

SELECT id, cim FROM konyv;

  • A programozói objektumok írására a következők vonatkoznak:

Csomagok és alprogramok nevei kisbetűsek: konyvtar_csomag.lejart_konyvek.

Formális paraméterek nevét p_ prefix után nagy kezdőbetűvel írjuk: p_Max_konyv.

A változók nevét v_ prefix után nagy kezdőbetűvel írjuk: v_Max_konyv. A rövid változók (például ciklusváltozó) nevénél ettől eltérően nem használunk prefixet: i, rv.

A nevesített konstansok nevét c_ prefix után nagy kezdőbetűvel írjuk:

c_Max_konyv_init.

A kurzorok nevét cur_ prefix után nagy kezdőbetűvel írjuk:

cur_Lejart_kolcsonzesek.

Az adatbázisban tárolt típusok nevét T_ prefix után nagy kezdőbetűvel írjuk: T_Szerzok.

Az egyéb típusok nevét t_ prefix után kis kezdőbetűvel írjuk: t_nev.

A kivételek nevét kisbetűvel írjuk (prefix nélkül): hibas_argumentum.

Az adatbázis triggereinek nevét tr_ prefix után kisbetűvel írjuk: tr_insert_kolcsonzes.