Helen Borri - firebird adatbázis fejlesztői útmutató - 85. oldal

Itt adjuk le az adatbázishoz kapcsolódó tárgyak megvitatását, és a hangsúlyt az adatok létrehozására és módosítására szolgáló nyelvre mozgatjuk. Kutatásaink az SQL általános nézeteit a szabványok tekintetében kezdik, és hogy a Firebird végrehajtása sok átfedő alcsoportra oszlik. Ezt követően a 20. fejezetben részletesebben tárgyaljuk az adatokat, mint az Adatok Manipulációs Nyelve (DML) készleteit és operátorait az adatok meghatározására és manipulálására.

V. RÉSZ Firebird SQL.

19. FEJEZET Az SQL nyelv a Firebird-ben.

Az SQL (kiírva "es ku el" [62]) a relációs adatbázis-kezelő rendszerek eléréséhez használt adatanyelv. Elemei, szintaxisa és viselkedése szabványosított ANSI és ISO 1986-ban.

Az SQL-szabvány lekérdező nyelve nem eljárási nyelv, vagyis inkább a műveletek eredményeire koncentrál, nem pedig az eredmények megszerzésének módszereire. Célja, hogy alapul szolgáljon az integrált programozási nyelvben használt alanynak. A szabványok célja olyan külső szintű mechanizmus leírása, amellyel egy adott lekérdezés kiszámítható eredményt ad, függetlenül attól, hogy az adatbázis-kiszolgáló hogyan manipulálja az adatokat.

Ezért a szabvány a legkisebb részletekben előírja a nyelvi elemek és a műveleti logika értelmezésének módját, miközben nem határozza meg, hogy az adatbázisrendszer-fejlesztők milyen módon hajtsák végre mindezt. A képességek alapvető készletének "koherens" megvalósítása várható, és ez a megvalósítás más lehetőségeket is tartalmazhat, csoportosíthatók és szabványosíthatók a "belépési szint" feletti szinteken.

Firebird és szabványok

Compliance - inkább az a kérdés, mennyire tartják, és nem az abszolút. A fejlesztők szabadon alkalmazhatják a szabványban nem ismertetett nyelvi jellemzőket. Compliance tárgyát eljárások megvalósításához a lehetőségeket, és elismert szabvány abban leírt (ha van ilyen). A levelezés fordítottan változik a szokásos jellemzők számával, amelyek tipikusan megvalósulnak.

SQL utasítások

Az SQL utasítás az adatbázis lekérdezés végrehajtására szolgál. A lekérdezőnyelv a célokat meghatározó operátorokban fejeződik ki: mit kell tenni (művelet), az objektumokat, amelyekkel meg kell csinálni, és a részleteket, ahogy kell. Az elmélet szerint minden lehetséges kapcsolat a külső világ és az adatbázis között a szolgáltató szintaxisán keresztül valósul meg.

A szereplők szintaktikai konstrukcióit két fő cél szerint csoportosítják.

* CREATE, ALTER és DROP metaadat objektumok fölött (más néven sématárgyak vagy sémaelemek). Az ilyen kérelmek nyelvét az Adatmeghatározási Nyelv (DDL) nevezik.

Az adatokkal kapcsolatos műveleteket végző üzemeltetők. Ezek képviselik az adatkészletek oszlopok és sorok formájában történő meghatározására szolgáló nyelvet, és meghatározzák a következő műveleteket:

• az ilyen adatkészletek keresési és átalakítási (SELECT) képei az adatraktárból az alkalmazások számára történő leolvasáshoz;

• Módosítsa az adatbázis állapotát a megadott készletek hozzáadásával, módosításával és törlésével (INSERT, UPDATE és DELETE utasítások).

Azok az operátorok, amelyek az adatokkal kapcsolatos műveleteket hajtanak végre, egy olyan nyelvet neveznek, amelyet az Adatkezelési Nyelvnek (DML) neveznek.

Az SQL nyelv Firebird-jének végrehajtása több átfedő algoritmusra oszlik, amelyek mindegyikét speciális célokra használják, és magában foglalja a saját nyelvi bővítményeit is.

* A beágyazott SQL (Embedded SQL, ESQL) egy "alap" SQL-implementáció, amely a DDL és a DML szintaxisából áll, és ahol lehetséges, más alcsoportokban. Ez volt az elsődleges SQL-implementáció az előd InterBase-ban, amelyet az ügyfélalkalmazásokba való beépítésre fejlesztettek ki, és igényelte a GPRE előfeldolgozót.

* Dinamikus SQL (Dynamic SQL, DSQL) - ez a részhalmaz leggyakrabban ma használatos. Minden adatbázisban használható interfészprogramokban használják

- A szerverrel kommunikáló adatok az Application Programming Interface (API) segítségével. Az ESQL-ben elérhető olyan DDL parancsok, amelyeket DSQL-ben nem lehet végrehajtani, az API-funkciókhoz tartozó hívások váltják fel.

* Eljárási SQL (Procedural SQL, PSQL) a tárolt eljárások és triggerek írásához használt nyelv. Ez az összes DML-állításból áll, további eljárási kiterjesztésekkel együtt.

Adatmeghatározási nyelv (DDL)

A Firebird-adatbázisban használt metaadatok meghatározásakor az operátorok és az SQL-szabványok paramétereinek használatával hozzuk létre az objektumot annak típusával és nevével - vagy azonosítójával -, és meghatározzuk és megváltoztathatjuk az attribútumokat. Ebben a lexikonban vannak operátorok objektumok törléséhez.

A DDL használatára vonatkozó kérelmek a metaadatok meghatározására szolgálnak, így:

* Finoman kezelheti őket, ha végfelhasználói alkalmazásokban hajtja végre azokat;

* Hibák várhatók a fordítás során, ha azokat tárolt eljárásokban kívánja használni.

Adatkezelési nyelv (DML)

A könyv ezen részének témája a DML utasítások, a szintaxisuk és az adatkészletek keresésére és manipulálására szolgáló kifejezések.

* A 20. fejezet bemutatja a készletek fogalmát, a DML lekérdezések szerkezetét és szintaxisát. A fejezet a következő fejezetet tartalmazza: "Optimalizálási téma", ahol a lekérdezésoptimalizálóval végzett munka tekinthető.

* A 21. fejezet leírja a funkciók, a műveletek és a kifejezések használatának sorrendjét.

* A 22. fejezet olyan lekérdezésekkel foglalkozik, amelyek több táblázatban működnek, amikor csatlakozásokat, al-lekérdezéseket és szakszervezeteket használnak.

* A 23. fejezet tárgyalja a szortírozást és kérdéseket, amelyek meghatározzák vagy csoportosítják a készleteket, valamint olyan lekérdezéseket, amelyek több táblázatban keresnek sorokat a kapcsolatok használata nélkül.

Beágyazott nyelvi jellemzők (ESQL)

Néhány relációs adatbázis-kezelő rendszer, köztük a Firebird, lehetővé teszi az SQL utasítások közvetlen beépítését a harmadik generációs programozási nyelvben írt modulokba. A szabvány koncepcionális algoritmusokat tartalmaz, amelyeket alkalmazások programozására használnak, de nem határoz meg semmilyen végrehajtási szabályt.

A beágyazott SQL-alkalmazások alkalmazásának a Firebird programba való beillesztése olyan operátorok részhalmazát foglalja magában, mint például az SQL utasítások és konstrukciók, amelyek a kód forráskódjának összeállítása előtt szerepelhetnek a program forráskódjában az előfeldolgozáshoz. A beépített SQL nyelvi konstrukciókat beágyazott SQL (ESQL) néven nevezik. Az ESQL utasításokat nem lehet dinamikusan generálni.

Az ESQL nem engedélyezett a tárolt eljárásokban és triggerekben, és az eljárási nyelv (PSQL) érvénytelen a beágyazott SQL-ben. Az ESQL képes végrehajtani a tárolt eljárásokat. Az ESQL-t olyan hagyományos programozási nyelvekben írt programokban használják, mint a C vagy a COBOL. Az ESQL utasításokat egy EXEC SQL utasítás előzi meg. A GPRE előfeldolgozó az ESQL utasításokat az alkalmazott programozási nyelv adatstruktúráiba konvertálja, és felhívja a Firebird kiszolgálót.

További információért lásd a "Beágyazott SQL" című dokumentumot a Borland dokumentációjában az InterBase 6.x vagy EmbedSQL.pdf fájlban a megfelelő elektronikus dokumentációs csomagban [63].