SQL-i saab kasutada re­lat­sioo­ni­liste and­me­baaside loomiseks ja ole­mas­ole­vate and­me­baaside suhtes mit­me­su­guste ope­rat­sioo­nide, seal­hul­gas and­me­pä­rin­gute te­ge­miseks. See keel kuulub vee­biaren­da­jate, and­meana­lüü­ti­kute ja teadlaste stan­dard­va­rus­tusse. Kuid võrreldes teiste prog­ram­mee­ri­mis­keel­tega on SQL eriline. Selgitame selle keele omadusi.

Mis on SQL täpselt?

SQL on struk­tu­ree­ri­tud pä­rin­gu­keel (Struc­tu­red Query Language). Seda saab kasutada struk­tu­ree­ri­tud või re­lat­sioo­nilisi andmeid si­sal­da­vate and­me­baaside päringute te­ge­miseks. Keel põhinebre­lat­sioo­ni­lise algebrama­te­maa­ti­li­sel teoorial, mis on mõeldud andmete struk­tu­ree­ri­miseks ja päringute tulemuste ar­vu­ta­miseks. Paljud SQL-i kui prog­ram­mee­ri­mis­keele eripärad tulenevad sellest ma­te­maa­ti­li­sest alusest. 1970. aastate keskel välja töötatud SQL-i peetakse tä­na­päe­val and­me­baasi­ra­ken­duste stan­dard­seks prog­ram­mee­ri­mis­kee­leks.

SQLi puhul on oluline märkida, et tegemist on puhtalt päringu- või prog­ram­mee­ri­mis­kee­lega, mitte ter­vik­liku and­me­baaside haldamise süs­tee­miga (DBMS). Mõned po­pu­laar­sed DBMSid, mis ra­ken­da­vad SQLi, on MySQL, Oracle SQL ja SQLite. Need DBMSid kasutavad aga enamasti SQLi dialekte, millel võivad olla lisakäsud ja/või erinevad käsud.

SQL kui vald­kon­naspet­sii­fi­line ja dek­la­ra­tiivne keel

Võrreldes enamiku levinud prog­ram­mee­ri­mis­keel­tega on SQL eriline, kuna tegemist on vald­kon­naspet­sii­fi­lise keelega (DSL). Erinevalt üldots­tar­be­lis­test keeltest (GPL), mis sobivad ka­su­ta­miseks paljudes eri­ne­va­tes ra­ken­dus­tes, saab SQL-i kasutada ainult üheks ots­tar­beks – and­me­baasi­deks.

SQL on ka dek­la­ra­tiivne prog­ram­mee­ri­mis­keel. See tähendab, et prog­ram­mee­rija sisestab soovitud tulemuse käsuna ja süsteem tagab selle tulemuse saa­vu­ta­mise. See on vastand im­pe­ra­tiivse prog­ram­mee­ri­mise puhul, kus ees­mär­kide saa­vu­ta­miseks vajalikud üksikud sammud on koodis sel­ge­sõ­na­li­selt mää­rat­le­tud.

Milleks ka­su­ta­takse SQL-i?

SQL toimib liidesena suht­luseks re­lat­sioo­ni­liste and­me­baaside hal­dus­süs­teemi­dega (RDBMS). Re­lat­sioo­ni­list and­me­ba­asi võib kujutada tabelina, mille iga rea kirje sisaldab eelnevalt kind­laks­mää­ra­tud at­ri­buu­di­ko­gu­mit, mis on täidetud väär­tus­tega. SQL-koodi saab sisestada kas teks­ti­põ­hise liidese kaudu või in­teg­ree­rida API-juur­de­pää­su­desse.

Tip

Kas vajate turvalist kodu oma SQL-põhisele vee­bi­pro­jek­tile? Li­sa­tea­vet SQL-serveri hos­tin­gust leiate IONOS-ist. IONOS-i serveriga saate kasu tipp­ta­se­mel riist­va­ra­kom­po­nen­ti­dest ning ööpäe­va­ringse toetuse ja nõus­ta­mi­sest.

SQL-i eelised ja puudused

SQL-i eelised

SQLi suurim eelis on selle teh­no­loo­gia kõrge profiil ja laialdane kasutus. Alates selle tek­ki­mi­sest 1970. aastatel on SQL olnud and­me­baasi­ra­ken­duste töös­tus­stan­dard. Seetõttu on suh­te­li­selt lihtne leida kogenud SQL-prog­ram­mee­ri­jaid ning liideseid teiste levinud teh­no­loo­gia­tega ja keeltega.

Lisaks on SQL muutunud töös­tus­haru stan­dar­diks põhjusega. Keel põhineb tugeval ma­te­maa­ti­li­sel alusel, mis võimaldab op­ti­maal­set andmete sal­ves­ta­mist. Siiski nõuavad re­lat­sioo­ni­li­sed and­me­baasid teh­no­loo­gia ja teooria põh­ja­likku mõistmist, samuti oskusi ja pla­nee­ri­mist mo­del­lee­ri­misel. Hästi ka­van­da­tud and­me­ba­asi skeem võimaldab aga sobivate päringute abil andmetest uusi teadmisi saada.

SQL-i puudused

SQL-i ja re­lat­sioo­ni­liste and­me­baaside üldine puudus on teh­no­loo­gia suur keerukus. SQL koosneb sadadest käskudest ja klaus­li­test, mis on uus­tul­nu­ka­tele suureks väl­ja­kut­seks. Paljud neist on ra­ken­dus­spet­sii­fi­li­sed, mis muudab asjad veelgi kee­ru­li­se­maks.

Lisaks nõuab re­lat­sioo­ni­lise and­me­ba­asi struktuur mitmeid eeldusi sal­ves­ta­ta­vate andmete kohta. Need tagavad sal­ves­ta­tud andmete kva­li­teedi, kuid toovad kaasa ka mitmeid piiran­guid, mis võivad põh­jus­tada püsivaid probleeme, kui skeem on halvasti ka­van­da­tud. Skeemi muutmine töö käigus võib olla tõsine väl­ja­kutse. Lisaks sellele paind­lik­kuse puu­du­misele on SQL-and­me­ba­asi geog­raa­fi­line jaotamine ta­va­li­selt väga keeruline. And­me­ba­asi jõudluse op­ti­mee­ri­mine det­sent­ra­li­see­ri­mise abil on seega kõike muud kui lihtne.

SQLi viimane puudus on selle kok­ku­so­bi­ma­tus laialt ka­su­ta­tava ob­jek­to­rien­tee­ri­tud prog­ram­mee­ri­mi­sega, mis muutub üha olu­li­se­maks. Ob­jek­to­rien­tee­ri­tud prog­ram­mee­ri­mises on andmed ja „käitumine” (meetodid) kap­sel­da­tud ob­jek­ti­desse. Andmed ja meetodid pä­ran­da­takse klas­si­hierar­hiate kaudu. Suhteline lä­he­ne­mis­viis on põ­hi­mõt­te­li­selt erinev, kuna andmed võivad olla jaotatud mitme tabeli vahel. Lisaks on võimatu mo­del­lee­rida objekti käitumist. Seetõttu ei saa objekte 1:1 üle kanda suh­te­lis­tesse and­me­baasi­struk­tuu­ri­desse.

Al­ter­na­tiivid SQL-ile

Kuna SQL leiutati di­gi­taal­re­vo­lut­siooni alguses, ei ole keel kaotanud oma ak­tuaal­sust. Siiski on sellest ajast alates tekkinud mõned al­ter­na­tiiv­sed skeemid, mis võivad olla mõningate ra­ken­duste jaoks sobivamad.

Objekt-re­lat­sioo­ni­li­sed and­me­baaside haldamise süsteemid

Objekt-re­lat­sioo­ni­li­sed and­me­baaside hal­dus­süs­tee­mid (ORDBMS), nagu PostgreSQL , kasutavad pä­rin­gu­kee­lena SQL-i, kuid toetavad ka ob­jek­to­rien­tee­ri­tud prog­ram­mee­ri­mise põ­hi­mõt­teid. Ob­jek­ti­hierar­hiaid, pä­ran­da­mist ja objekti käitumist saab kasutada ilma objekt-re­lat­sioo­ni­lise kaar­dis­ta­miseta (ORM). Eelkõige kasutaja määratud ja kom­po­siitand­me­tüü­bid vä­hen­da­vad skeemide ja päringute keerukust.

NoSQL

SQL-põhised and­me­baaside hal­dus­süs­tee­mid on peamiselt mõeldud struk­tu­ree­ri­tud andmete sal­ves­ta­miseks, kuid mitte kõik andmed ei järgi kindlat skeemi. Siin tulevad mängu NoSQL-and­me­baasid. Termin NoSQL viitab mit­te­su­he­te­põ­histe and­me­baaside hal­dus­süs­teemide pe­re­kon­nale. Andmete mo­del­lee­ri­mise asemel tabelite väljadena ka­su­ta­takse mit­me­su­gu­seid muid lä­he­ne­mis­viise.

Po­pu­laarne lä­he­ne­mis­viis on do­ku­men­ti­del põhinev andmete sal­ves­ta­mine. See toimib nii, et andmed sal­ves­ta­takse üksikutes do­ku­men­ti­des, mitte tabelis. Do­ku­men­ti­del põhineva lä­he­ne­mis­viisi üks eelis on see, et andmed võivad olla ise­kir­ju­ta­vad. See tähendab, et andmete skeem mää­ra­takse kindlaks üksikute do­ku­men­tide, mitte and­me­ba­asi poolt, mis tähendab, et andmete si­ses­ta­mine võib toimuda erinevate skeemide järgi.

NoSQL-la­hen­dused on ta­va­li­selt vähem keerukad ja pakuvad eeliseid ska­lee­ri­mise ja jõudluse op­ti­mee­ri­mise osas. Lisaks on ta­va­li­selt lihtsam muuta skeemi töö käigus või sal­ves­tada andmeid paind­li­kult. Teisalt võib andmete kva­li­teedi osas olla vähem ga­ran­tii­sid.

Go to Main Menu