Əsas səhifə » SQL nədir?

SQL nədir?

Laman Asadli

Bakı,AzerPress

Müasir həyatımızı məlumatsız təsəvvür edə bilmərik. Bizə lazım olan məlumatları kompüterlərlə və ya digər avtomatlaşdırılmış vasitələrlə ötürülməsi və emal edilməsi üçün yararlı səkilə salsaq və bir bazaya yığsaq, həmin məlumatlar artıq verilənlərə çevrilir və verilənlər bazasını təşkil edir.

Verilənlər bazalarının texnologiyasının tarixi 60-cı illərin əvvəllərindən başlayır. Həmin illərdə verilənlər bazalarının idarə edilməsi üçün proqram vasitələrinin yaradılması istiqamətində ilk cəhdlər atılmışdır. 1969-cu ildə Edqar Frank Kodd tərəfindən münasibətli (relational) verilənlər modeli təqdim edilmişdir. Münasibətli verilənlər bazasının idarə edilməsi sistemi (gələcəkdə mətndə VBİS) yaradılması üzrə ilk uğurlu cəhd İBM şirkəti tərəfindən edilmişdir. IBM şirkətinin tədqiqat laboratoriyalarından birində 1970-ci illərin əvvəllərində IBM System R eksperimental münasibətli VBİS-i yaradılmışdır. Həmin VBİS-də verilənlərin sadə üsulla idarə olunması üçün SEQUEL adlı xüsusi dil yaradılmışdır. SEQUEL abreviaturası “Structured English Query Language” sözlərinin ilk hərflərindən yaranır və “sorğuların strukturlaşdırılımış ingilis dili” kimi tərcümə olunur. Lakin SEQUEL abreviaturası eyni zamanda “Hawker Siddeley” aviatikinti şirkətlər qrupunun ticarət markası olduğu üçün hüquqi səbəblərdən İBM daha sonra SEQUEL abreviaturasını SQL (Structured Query Language) şəklində təqdim etdi. 1986-cı ildə SQL dilinin birinci standartı ANSI (American National Standards Institute) tərəfindən qəbul olunduqdan sonra onun rəsmi tələffüzü [, es kju:’ el] (es kyu el) oldu. Lakin ingilis dilli mütəxəssislər bu gün də SEQUEL abreviaturasından yadda qalmış “sikvel” işlədirlər. Tədqiqatın məqsədi proqramlaşdırmanı bacarmayan istənilən istifadəçi tərəfindən istifadə oluna bilən sadə qeyri-prosedur dilinin yaradılması idi. Sorğu dilinin yaradılmasıyla Donald Çemberlin (Donald D. Chamberlin) və Rey Boys (Ray Boyce) məşğul olurdu. Pet Selindjer (Pat Selinger) dəyər optimizatoru (cost-based optimizer), Reymond Lori (Raymond Lorie) sorğuların kompilyatoruyla məşğul olurdu. Yeni dili dəstəkləyən birinci VBİS-lər 1979-cu ildə Relational Software Inc şirkəti (daha sonra Oracle şirkəti olmuş) tərəfindən yaradılmış Oracle V2, və IBM-in System/R əsasında System/38 VBİS-ləri olmuşdur. Beləliklə, E.F.Kodd verilənlərin münasibətli (relational) modelini yaratdı, həmin modeldə olan verilənlər bazasında işləmək üçün dili isə ilk dəfə İBM şirkətinin mütəxəssisləri yaratdı. Lakin mövcud olan SQL dili server və proqram təminatı ilə məşğul olan şirkətlərinin istəklərini təmin etmirdi və onlar da öz növbəsində özlərinin sorğu dillərini istehsal etməyə başladılar. Məsələn: 1984-cü ildə Mark Hoffman və Bob Epstein tərəfindən Sybase şirkəti yaradıldı və onlar Transact-SQL prosedur dilinin üzərində işləməyə başladılar. 1987-ci ildə Sybase və Microsoft şirkətləri arasında saziş bağlandı və onlar birgə Sybase (Sybase DataServer) VBİS üzərində işləməyə başladılar. Həmçinin, 1983-cü ildə Relational Software, Inc. Oracle Corporation adı altında fəaliyyətini davam etdi və SQL-in dialekti PL/SQL üzərində işləri davam etməyə başladı. Beləliklə, 1980-ci illərin əvvəllərində müxtəlif istehsalçıların bir neçə VBİS-ləri mövcud idi, həm də onların hər birinin verilənlərlə işləmək üçün özünəməxsus dili mövcud idi. Buna görə müxtəlif VBİS-ə daşına bilən vahid bir SQL dilinin standartının yaradılması qərarına gəldilər. Bu cür standartların yaradılmasıyla ANSİ (İng. American National Standards Institute – “Amerika Milli Standartlar İnstitutu”) və İSO (İng. International Organization for Standardization –“Standartaşdırma üzrə Beynəlxalq Təşkilat”) məşğul idi. SQL dilinin ilk standartı 1986-cı ildə ANSİ tərəfindən və 1987-ci ildə İSO tərəfindən buraxıldı. Həmin SQL-86 standartı qeyri-formal olaraq SQL1 adlandırıldı. Lakin həmin standart VBİS istehsalçıları tərəfindən formal olaraq qəbul olunmadı və çoxlu dəyişiklərə məruz qaldı. Məhz bu səbəbdən bəzi ədəbiyyatda SQL dilinin ilk standartı kimi SQL-86 deyil ondan sonra çıxmış SQL-89 standartı göstərilir. SQL-86 standartı yenidən işləndi və 1989-cu ildə yeni SQL-89 standartı qəbul olundu və tətbiq olundu. Daha sonra SQL standartları bir neçə dəfə dəyişdi. 1992-ci ildə SQL-92 və ya SQL2 standartı, 1999-cu ildə SQL:1999 və ya SQL3 standartı, 2003-cü ildə SQL:2003 (bəzi ədəbiyyatda bunu da SQL3 adlandırırlar), 2006-cı ildə SQL:2006, 2008-ci ildə SQL:2008 və nəhayət 2011-ci ildə SQL:2011 qəbul olundu. Göründüyü kimi, SQL standartı dinamik inkişaf etmişdir və standartın mövcudluğu SQL dilini çox güclü və geniş istifadə olunan vasitəyə çevirmişdir. İlk dəfə standarta “uyğunluğun səviyyəsi” anlayışı SQL-92 standartında təklif edilmişdi. VBİS istehsalçılarının əksəriyyəti öz məhsullarını SQL-92 standartına uyğunlaşdırdılar və hal-hazırda mövcud olan VBİS əksəriyyətin əsasını həmin standart təşkil edir və daha sonra çıxan standartlara uyğunluğu üzərində daim iş gedir. Lakin SQL dilinin dialektləri eyni köklü olsa da müxtəlif VBİS-nin özünəməxsus xüsusiyyətləri vardır. Yəqin ki, ədəbiyyatda SQL abreviaturası ilə yanaşı T-SQL və PL/SQL ilə də rastlaşmısınız. Və təbii ki, sual yaranır: bunlar eyni şeydir, yoxsa bir-birindən tamamilə fərqlidir? SQL dilinin ilk versiyası yaradılandan sonra, hər dəfə dəyişiklərə məruz qalmışdır. Məsələ bundadır ki, SQL-in ilk versiyası deklarativ xarakter daşıyırdı, yəni proqramlaşdırma dilində olan imperativ əmrlər və hesablamalar onda mövcud deyildi və SQL sadəcə qeyri-prosedur sorğu dili kimi istifadə edilirdi. Bu da VBİS-də müəyyən çətinliklər yaradırdı. SQL dilinin vahid standartı qəbul olunsa da VBİS istehsalçıları mövcud olan məhdudiyyətləri dəf etmək məqsədiylə yeni həllər axtarmağa başladılar. Aydınlıq gətirmək üçün qeyd etmək lazımdır ki, deklarativ və imperativ proqramlaşdırma mövcuddur. İmperativ proqramlaşdırmada proqram icra olunmalı hərəkətlər yığımı kimi təqdim olunur. Yəni kod məsələnin həllini təsvir edir. İmperativ dillərin tipik nümayəndələri – C, Pascal, BASIC. Deklarativ proqramlaşdırmada kod məsələnin özünü təsvir edir (onun həlli üsulunu deyil). Deklarativ dillərin nümayəndələri: Lisp, ML, Prolog, Haskell… Bəzən imperativ dillərinə deklarativ dillərinin elementləri daxildir və əksinə. Məsələn: C# da olan atributlar deklarativ proqramlaşdırmanın elementidir. Beləliklə, Oracle ilkin SQL-də olan məhdudiyyəti aradan qaldırmaq üçün klassik SQL dilinə əlavələr etdi. Məsələn: dəyişənlərlə, sabitlərlə, prosedurlarla, funksiyalarla, modullarla, şərti operatorlarla, dövrlərlə işləmək, istisnaları emal etmək, paketlər və triqqerlər yaratmaq imkanı əlavə etdi. Nəticədə, SQL dilinə prosedur dilinin elementləri əlavə edilməklə SQL dilinin yeni dialektini, yəni PL/SQL (Procedural Language / Structured Query Language) yaradıldı. Eyni zamanda, 1984-cü ildə Sybase şirkəti Transact-SQL dilinin üzərində işləməyə başladı. 1987-ci ildə Sybase və Microsoft şirkətləri arasında saziş bağlandı və onlar birgə VBİS üzərində işləməyə başladılar. 1992-ci ildə Microsoft və Sybase birgə səyləri nəticəsində SQL Server 4.2 VBİS buraxıldı. Daha sonra, 1994-cü ildə, Microsoft və Sybase ayrıldılar və Microsoft Transact-SQL (və ya T-SQL) dilini inkişaf etdirməyə davam etdi. Adından göründüyü kimi, SQL dilinə əsasən tranzaksiyalarla işləmək imkanı əlavə olunub. Daha sonra Microsoft T-SQL dilinə prosedur elementlər də əlavə etdi, yəni funksiyalarla, proseduralarla, triqqerlərlə işləmək imkanı. Beləliklə, deyə bilərik ki, PL/SQL və T-SQL klassik SQL standartı əsasında qurulub və T-SQL dilində yazılan əksər kodlar PL/SQL də icra olunacaqdır. Lakin, fərqli imkanlar olduğu üçün T-SQL-də yazılmış bəzi xüsusi kodlar PL/SQL-də işləməyəcək və əksinə. Həmçinin qeyd edə bilərik ki, 1996-cı ilə qədər SQL proqramlaşdırma dili deyildi. Həmin ildə SQL/PSM standartı qəbul olundu (PSM – İng. Persistent Stored Modules – “Daim Saxlanılan Modullar”) və SQL dilinə prosedur proqramlaşdırma imkanları əlavə edildi. Həmin ildən başlayaraq SQL/PSM də, onun dialektləri də: PL/SQL və T-SQL proqramlaşdırma dillərinin imkanlarına malikdirlər və proqramlaşdırma dili kimi təqdim oluna bilərlər.

Mənbə: TechNet.az

banner

Azərbaycan dilində “MS SQL Server və T-SQL” dərsləri

Digər Kateqoriyalar

2023 © AzerVoice