Informații generale despre sql

SQL (Structured Query Language - Structured Query Language) este limbajul de-al patrulea nivel, proiectat pentru a lucra cu baze de date relaționale.

La începutul anilor 1970 într-unul din laboratoarele de cercetare ale bazelor de date relaționale experimentale IBM a fost dezvoltat Sistemul R (Eng.), La care a fost apoi înființat un limbaj special de Sequel, face relativ ușor de a gestiona datele din baza de date. Sequel abrevierea pentru Structured Query Language English - Structured Query Language English. Mai târziu, pentru motive juridice limba Sequel a fost redenumit și SQL pronunția oficială a fost [, es kju: „el] - es tac-el.

Prima bază de date pentru a sprijini noua limbă a început în 1979 OracleV2 pentru masini VAX de la compania Relational Software Inc. și System / 38 de la IBM, bazat pe System / R.

Istoria versiune a standardului prezentat în tabelul de mai jos:

Prima versiune a standardului adoptat de Institutul ANSI și ISO aprobat în 1987, anul

Un pic de o versiune modificată a standardului anterior.

Modificări semnificative (ISO 9075); Entry Level Nivelul standard de SQL-92 a fost adoptat ca standard de FIPS 127-2

Adaugă suport pentru expresii regulate, interogări recursive, declanșatoare, suport, extensii procedurale de bază, tipuri de date non-scalare și unele caracteristici orientate obiect

Introduceți extensia pentru lucrul cu funcții fereastră XML-date (utilizate pentru baza de date OLAP-baze de date, generatoare de secvență și bazate pe aceste tipuri de date

Funcționalitate cu XML de date este extinsă în mod semnificativ. Acum puteți împărtăși din instrucțiunile SQL și XQuery

Principalele avantaje ale utilizării SQL:

1. Indiferent de baza de date specială. În ciuda existenței dialecte, și diferențele de sintaxă, în majoritatea SQL-interogări texte care conțin instrucțiuni DDL și DML, acesta poate fi destul de ușor de mutat dintr-o bază de date la alta. Desigur, este dificil de realizat atunci când se utilizează unele caracteristici specifice de punere în aplicare o astfel de portabilitate.

3. declarativă. Cu SQL programator descrie ceea ce are nevoie de date pentru a fi eliminate sau modificate. Modul de a face acest lucru, SGBD decide în mod direct, atunci când procesarea SQL de interogare, dar este util să ne imaginăm modul în care baza de date va analiza textul cererii sale. sunt deosebit de critice acele momente atunci când se lucrează cu baze de date mari și interogări complexe, - interogarea mai complexă este construită, cu atât mai mult permite grafii, viteze diferite de execuție, dar identice în setul de date finale.

În plus, este posibil să se constate o serie de deficiențe:

1. Nerespectarea modelului de date relaționale. Creatorul modelului de date relaționale Edgar Kodd, Kristofer Deyt și susținătorii lor indică faptul că SQL nu este adevărat limbaj relațional. În special, ele indică următoarea problemă SQL:

- Valoarea nedefinită (NULL);

- o indicație clară a ordinii coloanelor de la stânga la dreapta;

- coloană fără un nume și duplicat numele coloanelor;

- utilizarea de indicatori, etc.

2. Complexitatea. Deși SQL și a fost conceput ca un mijloc pentru utilizatorul final, în cele din urmă, el a devenit atât de complex încât a devenit instrument de un programator.

3. Abaterile de la standard. În ciuda prezenței standardului internațional ANSI SQL-92, multe companii în curs de dezvoltare sisteme de management de baze de date (de exemplu, Oracle, Sybase, Microsoft, MySQL), face modificări în limbajul SQL utilizate în baza de date dezvoltată, ne îndepărta astfel de standard. Astfel, există sunt specifice fiecărui anumită limbă de bază de date dialecte SQL. Există patru niveluri de conformitate cu punerea în aplicare a standardului SQL:

4. Complexitatea de lucru cu structuri ierarhice. Anterior, SQL nu oferă o metodă standard de manipulare a structurilor de arbori. Unii vânzători DBMS oferă soluțiile lor. De exemplu, Oracle foloseste CONNECT BY expresie. În prezent, ca un standard adoptat cu o construcție recursiv.

Deoarece SQL nu este un limbaj de programare (de exemplu, nu oferă instrumente pentru a automatiza operațiunile de date), introduse de către diferiți producători extinderea se concentreze în primul rând pe extensii procedurale. Procedurile stocate și limbi procedurale. Practic, fiecare bază de date se aplică un limbaj procedural. Astfel de limbi pentru cele mai populare baze de date sunt prezentate în tabelul de mai jos.