Helen Borri - ghidul dezvoltatorului de baze de date firebird - pagina 85

Aici terminăm discuția obiectelor bazei de date și direcționăm focalizarea spre limba creării și modificării datelor. Studiul nostru incepe cu o vedere generală a SQL în ceea ce privește standardele și ca realizarea Firebird este împărțită într-o multitudine de suprapunere subseturi. După aceea, în capitolul 20, vom începe o analiză mai detaliată a ambelor seturi de date și declarații limbaj de manipulare a datelor (Data Manipulation Language, LMD) pentru definițiile de date și manipulări cu ei.







PARTEA V. Firebird SQL.

CAPITOLUL 19. Limba SQL în Firebird.

SQL (pronunțat "es kyu el" [62]) este un sublanguage de date pentru accesarea sistemelor de gestionare a bazelor de date relaționale. Elementele, sintaxa și comportamentul său standardizate ANSI și ISO în 1986.

Limbajul de interogare al standardului SQL este un limbaj non-procedural, adică se concentrează pe rezultatele operațiilor și nu pe modul de obținere a rezultatelor. Scopul său este să fie baza sublanguagei utilizate în limbajul de programare incluziv. Scopul standardelor este de a descrie un mecanism de nivel extern prin care o interogare dată va returna un rezultat previzibil, indiferent de modul în care serverul de baze de date manipulează intern datele.

Prin urmare, standardul prescrie în cel mai mic detaliu modul de specificare a elementelor lingvistice și interpretarea logicii de operare, în timp ce nu specifică reguli despre modul în care dezvoltatorii de sisteme de bază ar trebui să implementeze toate acestea. Este de așteptat implementarea "coerentă" a setului de capabilități de bază și această implementare poate include și alte oportunități, grupate și standardizate la niveluri deasupra "nivelului de intrare".

Firebird și standarde

Conformitatea cu standardul este, mai degrabă, o chestiune de nivel de conformitate, nu absolută. Dezvoltatorii pot implementa liber funcțiile de limbă care nu sunt descrise în standard. Conformitatea se referă la modalități de implementare a elementelor recunoscute de standard și descrise în acesta (dacă există). Corespondența variază invers cu numărul de caracteristici standard implementate în mod obișnuit.

Instrucțiuni SQL

Instrucțiunea SQL este utilizată pentru a executa o interogare de bază de date. Limbajul de interogare este exprimat în operatorii care au stabilit scopul: ce ar trebui făcut (operațiunea), obiectele cu care ar trebui să se facă și detaliile, așa cum ar trebui să se facă. Conform teoriei, orice interacțiune posibilă între lumea exterioară și baza de date se realizează prin sintaxa operatorului.

Construcțiile sintactice ale operatorilor sunt grupate în funcție de două obiective principale.

* CREATE, ALTER și DROP peste obiecte de metadate (numite și obiecte schematice sau elemente de schemă). Limba acestor solicitări este denumită Limba de definiție a datelor (DDL).

Operatorii care efectuează acțiuni privind datele. Ele reprezintă limba pentru definirea seturilor de date sub formă de coloane și rânduri și specifică operațiile pentru:







• căutarea și transformarea (SELECT) a unor astfel de seturi de date din depozitul de date pentru citirea de către aplicații;

• Schimbați starea bazei de date prin adăugarea, modificarea și ștergerea seturilor specificate (instrucțiuni INSERT, UPDATE și DELETE).

Acești operatori, care efectuează acțiuni pe date, se referă la o limbă numită Limba de manipulare a datelor (DML).

Implementarea în Firebird a limbajului SQL este împărțită în mai multe subseturi suprapuse, fiecare dintre acestea fiind utilizată în scopuri speciale și include extensiile proprii de limbă.

* Embedded SQL (Embedded SQL, ESQL) este o implementare SQL "de bază", constând din sintaxa DDL și DML, care sunt incluse în alte subseturi, acolo unde este posibil. Aceasta a fost implementarea inițială a SQL în predecesorul InterBase, dezvoltat pentru includerea în aplicațiile client și care necesită preprocesorul GPRE.

* Dynamic SQL (Dynamic SQL, DSQL) - acest subset este cel mai des utilizat astăzi. Este folosit în toate programele de interfață cu baza de date

- Datele care comunică cu serverul prin interfața de programare a aplicațiilor (API). Unele comenzi DDL disponibile în ESQL care nu pot fi implementate în DSQL sunt înlocuite cu apeluri către funcțiile API.

* Procedural SQL (Procedural SQL, PSQL) este limba pentru scrierea procedurilor stocate și declanșatoare. Se compune din toate instrucțiunile DML cu adăugarea unui set de extensii procedurale.

Limba de definiție a datelor (DDL)

Pentru a determina metadatele pentru a fi utilizate în baza de date Firebird, folosim vocabularul operatorilor și parametrii standard SQL pentru a crea un obiect cu tipul său și numele - sau identitatea - precum și pentru a seta și modifica atributele sale. În acest lexicon există, de asemenea, operatori pentru ștergerea obiectelor.

Solicitările folosind DDL sunt rezervate pentru definirea metadatelor, prin urmare:

* Gestionați-le ușor dacă le implementați în aplicațiile utilizatorilor finali;

* așteptați erori atunci când compilați dacă intenționați să le utilizați în procedurile stocate.

Limba de manipulare a datelor (DML)

DML-urile, sintaxa și expresiile lor pentru căutarea și manipularea seturilor de date sunt subiectul acestei părți a cărții.

* Capitolul 20 introduce conceptul de seturi, structura și sintaxa interogărilor DML. Capitolul include cap. "Subiect de optimizare", în care se ia în considerare lucrul cu optimizatorul de interogări.

* Capitolul 21 descrie funcțiile, operațiile și expresiile, ordinea utilizării lor.

* Capitolul 22 se referă la interogări care funcționează pe mai multe tabele atunci când se utilizează conexiuni, sub-interogări și sindicate.

* Capitolul 23 discută sintaxa și întrebările de definire a seturilor care necesită sortare sau grupare, precum și interogări care caută rânduri în mai multe tabele fără a folosi conexiuni.

Caracteristici de limbaje integrate (ESQL)

Unele sisteme de gestionare a bazelor de date relaționale, inclusiv Firebird, oferă posibilitatea de a include direct instrucțiuni SQL în module scrise în limbajul de programare din a treia generație. Standardul oferă algoritmi conceptuali care vor fi utilizați pentru programarea aplicațiilor, dar nu specifică reguli de implementare.

Abilitatea de a programa aplicații cu SQL încorporat în Firebird include un subset de operatori precum instrucțiunile SQL și constructe care pot fi incluse în codul sursă al programului pentru preprocesare înainte de compilarea codului. Construcțiile construite în limba SQL sunt numite SQL (ESQL) încorporat. Instrucțiunile ESQL nu pot fi generate dinamic.

ESQL nu este permis în procedurile stocate și declanșează, iar limbajul procedural (PSQL) este nevalid în SQL încorporat. ESQL poate executa proceduri stocate. ESQL este folosit în programe scrise în limbi de programare tradiționale, cum ar fi C sau COBOL. Fiecare instrucțiune ESQL trebuie precedată de o instrucțiune SQL EXEC. Preprocesorul GPRE convertește instrucțiunile ESQL în structurile de date ale limbajului de programare folosit și apelurile către serverul Firebird.

Pentru mai multe informații, consultați documentația "Embedded SQL" în documentația Borland pe InterBase 6.x sau EmbedSQL.pdf în pachetul de documente electronice corespunzător [63].







Trimiteți-le prietenilor: