SQL:ää voidaan käyttää re­laa­tio­tie­to­kan­to­jen luomiseen ja olemassa olevien tie­to­kan­to­jen kä­sit­te­lyyn, mukaan lukien tie­to­ky­se­lyt. Kieli kuuluu web-ke­hit­tä­jien, data-ana­lyy­ti­koi­den ja tut­ki­joi­den va­kio­kir­jas­toon. Mutta ver­rat­tu­na muihin oh­jel­moin­ti­kie­liin, SQL on erityinen. Selitämme kielen omi­nai­suu­det.

Mitä SQL tar­kal­leen ottaen on?

SQL on lyhenne sanoista Struc­tu­red Query Language (ra­ken­tei­nen ky­se­ly­kie­li). Sitä voidaan käyttää kyselyjen te­ke­mi­seen tie­to­kan­nois­ta, jotka si­säl­tä­vät ra­ken­teis­ta tai re­laa­tio­tie­to­ja. Kieli perustuure­laa­tio­al­gebraan, joka on ma­te­maat­ti­nen teoria tietojen jä­sen­tä­mi­seen ja kyselyjen tulosten las­ke­mi­seen. Monet SQL-oh­jel­moin­ti­kie­len eri­tyis­piir­teet ovat peräisin tästä ma­te­maat­ti­ses­ta pe­rus­tas­ta. 1970-luvun puo­li­vä­lis­sä kehitetty SQL on nykyään tie­to­kan­ta­so­vel­lus­ten va­kiin­tu­nut oh­jel­moin­ti­kie­li.

SQL:n tärkeä yk­si­tyis­koh­ta on, että se on puhdas kysely- tai oh­jel­moin­ti­kie­li, ei kattava tie­to­kan­nan hal­lin­ta­jär­jes­tel­mä (DBMS). Joitakin suo­sit­tu­ja DBMS-jär­jes­tel­miä, jotka käyttävät SQL:ää, ovat MySQL, Oracle SQL ja SQLite. Nämä DBMS-jär­jes­tel­mät käyttävät kuitenkin pää­asias­sa SQL:n murteita, joissa voi olla li­sä­ko­men­to­ja ja/tai erilaisia komentoja.

SQL domain-spe­si­fi­se­nä ja dekla­ra­tii­vi­se­na kielenä

Ver­rat­tu­na useimpiin va­kiin­tu­nei­siin oh­jel­moin­ti­kie­liin SQL on erityinen, koska se on alue­koh­tai­nen kieli (DSL). Toisin kuin yleis­kie­let (GPL), jotka so­vel­tu­vat moniin eri so­vel­luk­siin, SQL:ää voidaan käyttää vain yhteen tar­koi­tuk­seen, eli tie­to­kan­toi­hin.

SQL on myös dekla­ra­tii­vi­nen oh­jel­moin­ti­kie­li. Tämä tar­koit­taa, että oh­jel­moi­ja syöttää halutun tuloksen komennona, ja jär­jes­tel­mä varmistaa, että tämä tulos saa­vu­te­taan. Tämä eroaa im­pe­ra­tii­vi­ses­ta oh­jel­moin­nis­ta, jossa ta­voit­tei­den saa­vut­ta­mi­sek­si tar­vit­ta­vat yk­sit­täi­set vaiheet on mää­ri­tel­ty ek­spli­siit­ti­ses­ti koodissa.

Mihin SQL:ää käytetään?

SQL toimii ra­ja­pin­ta­na re­laa­tio­tie­to­kan­nan hal­lin­ta­jär­jes­tel­mien (RDBMS) kanssa. Re­laa­tio­tie­to­kan­ta voidaan ajatella tau­luk­ko­na, jossa jo­kai­sel­la rivillä on ennalta määrätty joukko att­ri­buut­te­ja, joihin on syötetty arvoja. SQL-koodi voidaan syöttää joko ihmisen toimesta teks­ti­poh­jai­sen ra­ja­pin­nan kautta tai in­tegroi­da API-käyt­tö­liit­ty­miin.

Vinkki

Tar­vit­set­ko tur­val­li­sen kodin SQL-poh­jai­sel­le verk­kopro­jek­til­le­si? Li­sä­tie­to­ja SQL-pal­ve­li­men isän­nöin­nis­tä saat IONOSilta. IONOSin pal­ve­li­mel­la hyödyt huip­pu­luo­kan lait­teis­to­kom­po­nen­teis­ta sekä ym­pä­ri­vuo­ro­kau­ti­ses­ta tuesta ja neu­von­nas­ta.

SQL:n edut ja haitat

SQL:n edut

SQL:n suurin etu on sen korkea profiili ja laaja käyttö. SQL on ollut 1970-luvulta lähtien tie­to­kan­ta­so­vel­lus­ten alan standardi. Tämän ansiosta on suh­teel­li­sen helppoa löytää kokeneita SQL-oh­jel­moi­jia sekä ra­ja­pin­to­ja muihin yleisiin tek­nii­koi­hin ja kieliin.

Lisäksi SQL on syystäkin tullut alan stan­dar­dik­si. Kieli perustuu vankkaan ma­te­maat­ti­seen pohjaan, joka mah­dol­lis­taa op­ti­maa­li­sen tietojen tal­len­nuk­sen. Suh­teel­li­set tie­to­kan­nat edel­lyt­tä­vät kuitenkin vankkaa tek­no­lo­gian ja teorian tun­te­mus­ta sekä mal­lin­nuk­sen taitoja ja suun­nit­te­lua. Hyvin suun­ni­tel­tu tie­to­kan­ta­kaa­vio mah­dol­lis­taa kuitenkin uusien oi­val­lus­ten saamisen tiedoista sopivien kyselyjen avulla.

SQL:n haitat

SQL:n ja re­laa­tio­tie­to­kan­to­jen yleinen hait­ta­puo­li on tek­no­lo­gian suuri mo­ni­mut­kai­suus. SQL sisältää satoja komentoja ja lausek­kei­ta, jotka ovat suuri haaste aloit­te­li­joil­le. Monet näistä ovat to­teu­tus­koh­tai­sia, mikä tekee asioista entistä haas­ta­vam­pia.

Lisäksi re­laa­tio­tie­to­kan­nan rakenne edel­lyt­tää useita oletuksia tal­len­net­ta­vis­ta tiedoista. Nämä oletukset var­mis­ta­vat tal­len­net­tu­jen tietojen laadun, mutta ai­heut­ta­vat myös useita ra­joi­tuk­sia, jotka voivat aiheuttaa pysyviä ongelmia, jos skeema on suun­ni­tel­tu huonosti. Skeeman muutokset käytön aikana voivat olla vakava haaste. Tämän jous­ta­mat­to­muu­den lisäksi SQL-tie­to­kan­nan maan­tie­teel­li­nen jakelu on yleensä erittäin haastavaa. Tie­to­kan­nan suo­ri­tus­ky­vyn op­ti­moin­ti ha­jaut­ta­mi­sen avulla on siis kaikkea muuta kuin helppoa.

SQL:n viimeinen hait­ta­puo­li on sen yh­teen­so­pi­mat­to­muus laajalti käytetyn olio-oh­jel­moin­nin kanssa, jonka merkitys kasvaa jat­ku­vas­ti. Olio-oh­jel­moin­nis­sa data ja “käyt­täy­ty­mi­nen” (metodit) on kap­se­loi­tu olioihin. Tiedot ja me­ne­tel­mät pe­riy­ty­vät luok­ka­hie­rar­kioi­den kautta. Suh­teel­li­nen lä­hes­ty­mis­ta­pa on täysin erilainen, koska tiedot voidaan jakaa useisiin tau­lu­koi­hin. Lisäksi objektin käyt­täy­ty­mis­tä on mah­do­ton­ta mallintaa. Tästä syystä objekteja ei voida siirtää 1:1 suh­teel­li­siin tie­to­kan­ta­ra­ken­tei­siin.

Vaih­toeh­dot SQL:lle

SQL kek­sit­tiin di­gi­taa­li­sen val­lan­ku­mouk­sen alussa, eikä kieli ole me­net­tä­nyt mer­ki­tys­tään. Sen jälkeen on kuitenkin syntynyt joitakin vaih­toeh­toi­sia malleja, jotka saattavat sopia paremmin joihinkin so­vel­luk­siin.

Ob­jek­ti­suh­tei­set tie­to­kan­nan hal­lin­ta­jär­jes­tel­mät

Ob­jek­ti­re­laa­tio­tie­to­kan­to­jen hal­lin­ta­jär­jes­tel­mät (ORDBMS), kuten PostgreSQL , käyttävät SQL:ää ky­se­ly­kie­li­nä, mutta tukevat myös olio-oh­jel­moin­nin ydin­kä­sit­tei­tä. Ob­jek­ti­hie­rar­kioi­ta, perintöä ja objektien käyt­täy­ty­mis­tä voidaan käyttää ilman ob­jek­ti­re­laa­tio­map­pin­gia (ORM). Eri­tyi­ses­ti käyttäjän mää­rit­tä­mät ja yh­dis­tel­mä­tie­to­tyy­pit vä­hen­tä­vät skeemojen ja kyselyjen mo­ni­mut­kai­suut­ta.

NoSQL

SQL-pohjaiset DBMS-jär­jes­tel­mät on tar­koi­tet­tu en­si­si­jai­ses­ti struk­tu­roi­tu­jen tietojen tal­len­ta­mi­seen, mutta kaikki tiedot eivät noudata kiinteää skeemaa. Tässä ti­lan­tees­sa NoSQL-tie­to­kan­nat tulevat kuvioihin. Termi NoSQL viittaa ei-re­laa­tio­naa­lis­ten DBMS-jär­jes­tel­mien per­hee­seen. Tietojen mal­lin­ta­mi­ses­sa taulukon kenttien sijaan käytetään erilaisia muita lä­hes­ty­mis­ta­po­ja.

Yleinen lä­hes­ty­mis­ta­pa on do­ku­ment­ti­poh­jai­nen tietojen tallennus. Siinä tiedot tal­len­ne­taan yk­sit­täi­siin do­ku­ment­tei­hin eikä tau­lu­koi­hin. Do­ku­ment­ti­poh­jai­sen lä­hes­ty­mis­ta­van etuna on, että tiedot voivat olla itsestään kir­joit­tu­via. Tämä tar­koit­taa, että tietojen rakenne määräytyy yk­sit­täi­sen do­ku­men­tin eikä tie­to­kan­nan pe­rus­teel­la, jolloin tietueet voivat noudattaa erilaisia ra­ken­tei­ta.

NoSQL-ratkaisut ovat yleensä vähemmän mo­ni­mut­kai­sia ja tarjoavat etuja skaa­lau­tu­vuu­den ja suo­ri­tus­ky­vyn op­ti­moin­nin kannalta. Lisäksi on yleensä helpompaa muuttaa skeemaa käytön aikana tai tallentaa tietoja jous­ta­vas­ti. Toisaalta tietojen laadun suhteen voi olla vähemmän takeita.

Siirry pää­va­lik­koon