Megosztás:


Beágyazott SQL-program összeállítása

Mivel a beágyazott SQL-programok SQL- és gazdagépnyelv-utasítások kombinációját tartalmazzák, nem küldhető el közvetlenül a gazdanyelv fordítójának. Ehelyett egy többlépéses folyamaton keresztül állítja össze. Bár ez a folyamat termékenként eltér, a lépések nagyjából megegyeznek az összes termék esetében.

Ez az ábra a beágyazott SQL-programok fordításához szükséges lépéseket mutatja be.

Beágyazott SQL-program pr02 fordításának lépései

A beágyazott SQL-programok összeállításának öt lépése van:

  1. A beágyazott SQL-program elküldve az SQL-előkompilerhez, egy programozási eszközhöz. Az előkomponens megvizsgálja a programot, megkeresi a beágyazott SQL-utasításokat, és feldolgozza őket. A DBMS által támogatott minden programozási nyelvhez más-más előkompiler szükséges. A DBMS-termékek általában egy vagy több nyelvhez kínálnak előkompilálókat, beleértve a C, Pascal, COBOL, Fortran, Ada, PL/I és különböző szerelvénynyelveket.

  2. Az előfordító két kimeneti fájlt hoz létre. Az első fájl a forrásfájl, amely meg van tisztítva a beágyazott SQL-utasításoktól. Helyettük az előkompiler helyettesíti a saját fejlesztésű DBMS-rutinokat, amelyek biztosítják a program és a DBMS közötti futásidejű kapcsolatot. Ezeknek a rutinoknak a nevei és hívóütemezései általában csak az előkomponens és a DBMS számára ismertek; ezek nem nyilvános interfészek a DBMS-hez. A második fájl a programban használt összes beágyazott SQL-utasítás másolata. Ezt a fájlt néha adatbázis-kérelemmodulnak vagy DBRM-nek is nevezik.

  3. Az előkompiler forrásfájlból származó kimenet a gazdagép-programozási nyelv szabványos fordítójához (például C vagy COBOL fordító) kerül továbbításra. A fordító feldolgozza a forráskódot, és kimenetként létrehozza az objektumkódot. Vegye figyelembe, hogy ennek a lépésnek semmi köze a DBMS-hez vagy az SQL-hez.

  4. A linker elfogadja a fordító által létrehozott objektummodulokat, összekapcsolja őket a különböző könyvtári rutinokkal, és végrehajtható programot hoz létre. A végrehajtható programhoz társított kódtár-rutinok közé tartoznak a 2. lépésben ismertetett, védett DBMS-rutinok.

  5. Az előkomplikátor által létrehozott adatbázis-kérelem modul egy speciális kötési segédprogramba kerül. Ez a segédprogram megvizsgálja az SQL-utasításokat, elemzi, ellenőrzi és optimalizálja őket, majd létrehoz egy hozzáférési tervet minden utasításhoz. Az eredmény egy kombinált hozzáférési terv a teljes programhoz, amely a beágyazott SQL-utasítások végrehajtható verzióját jelöli. A kötési segédprogram tárolja a tervet az adatbázisban, és általában a használni kívánt alkalmazásprogram nevét rendeli hozzá. A DBMS-től függ, hogy ez a lépés fordításkor vagy futási időben történik-e.

Figyelje meg, hogy a beágyazott SQL-programok fordításához használt lépések nagyon szorosan összefüggnek az SQL-utasítás feldolgozásának korábbi lépéseivel. Figyelje meg különösen, hogy az előkompiler elkülöníti az SQL-utasításokat a gazdanyelvi kódtól, a kötési segédprogram pedig elemzi és ellenőrzi az SQL-utasításokat, és létrehozza a hozzáférési terveket. Azokban a DBMS-ekben, ahol az 5. lépés fordítási időben történik, az SQL-utasítások feldolgozásának első négy lépése fordítási időpontban történik, míg az utolsó lépés (végrehajtás) futásidőben történik. Ennek az a hatása, hogy az ilyen DBMS-ekben nagyon gyorsan végrehajtja a lekérdezéseket.