Tietotekniikkaa tumpeloille – SQL

Viime vuosina on paljon puhuttu, että koodaamisen pitäisi kuulua yleissivistykseen. Se oikeastaan kuuluu, mikäli osaa ajatella oikeasta suunnasta. Jostain syystä vain pohdimme aina ohjelmointikielten kautta ja unohdamme koodaamisen olevan vain puhdasta logiikkaa.

SQL eli Structured Query Language (SQL) on hyvä esimerkki tästä tietotekniikan mystifioinnista. Kun siitä kerrotaan esimerkiksi Wikipedian mukaisesti, niin se kuullostaa pelottavalta:

Structured Query Language (SQL) on IBM:n kehittämä standardoitu kyselykieli, jolla relaatiotietokantaan voi tehdä erilaisia hakuja, muutoksia ja lisäyksiä. Käytännössä kaikki relaatiotietokannat ymmärtävät SQL-kieltä.

SQL ei määritä verkkoprotokollaa tai standardia, jolla SQL-komentoja välitetään. ODBC tarjoaa jonkinnäköisen tietokantariippumattoman ajuriratkaisun, mutta sekin vaatii samaisen ODBC-ajurin jokaiselle asiakasohjelmalle. LDAP on esimerkki tietokannasta, jossa myös verkkoprotokolla on standardoitu.

ISO/IEC on standardoinut SQL:n, uusimman standardin ollessa SQL-2008. Tärkeimmät käyttökäskyt ovat SELECT, UPDATE, INSERT ja DELETE. Tärkeimmät tiedon määrittelykäskyt ovat CREATE TABLE, CREATE VIEW, joilla luodaan uusia tietokantaobjekteja (taulu ja näkymä, vastaavasti). ALTER-käskyllä voidaan muuttaa objektia (esim. lisätä tauluun jälkeenpäin uusi sarake).

Jo pelkästään Wikipedian määritelmä karkottaa suurimman osan lukijoista pois. Relaatiotietokanta, määrittelykäskyt, tietokantaobjektit kuullostavat joltain lähes tohtorintutkintoa vaativalta tekniikalta.

Miten relaatiotietokannan voisi kuvailla alakoululaiselle. Tuskin se olisi edes mahdollista, koska kyse on vaikasta asiasta eli strukturoitua dataa sisältävästä tietokannasta, jota voi käsitellä käyttökäskyjen kautta. Vai olisiko se sittenkin mahdollista.

Relaatiotietokannat perustuvat predikaattilogiikkaan pohjautuvaan relaatiomalliin, jonka käsitteitä käyttäen tietokannan peruskäsitteet, kuten taulut, määritellään. Relaatiotietokannoissa (engl. relation, suom. suhde) taulujen välille luodaan yhteyksiä. Taulujen tiedot yhdistetään toisiinsa toisen taulun avaimella. Yleisimmin ID:llä. Toisessa taulussa yhteyden luovaa saraketta kutsutaan viiteavaimeksi tai vierasavaimeksi (engl. Foreign Key).

Mutta mitä tuolla oikeasti kerrotaan. Siellä puhutaan käsitteistä taulu, sarake ja rivi. Siis tietokanta perustuu tauluihin, joissa on sarakkeita ja rivejä. Ja aikaisemmin mainittiin neljä peruskäskyä eli lisää, poista, muuta ja valitse.

Siis yksinkertaisimmillaan SQL- tietokanta perustuu seitsemän eri asian sisäistämiseen, jotka liittyvät kahteen käsitteeseen. Toinen liittyy taulu- nimiseen käsitteeseen ja toinen toiminnot- käsitteeseen.

Taulu

Tietokannan taulu on hyvin yksinkertainen asia. Taulu sisältää määrämuotoista dataa. Siis se se sisältää tietoja, jotka voiden jaoitella yhden otsikon alle. Esimerkiksi tieto voisi olla vaikka osoitteita:

– Ville Virtanen, Testikatu 36 B, 213400 Testikylä

Eli mitä me luemme tuosta:

  • Etunimi
  • Sukunimi
  • Katuosoite
  • Postinumero
  • Postitoimipaikka

Eli voisimme rakentaa tietokannan taulun, joka sisältää osoitetiteoja. Ja nyt tulevat ne maagiset ja vaikeat asiat eli rivit ja sarakkeet mukaan. Siis jokaisessa tietokantataulussa on rivejä ja sarakkeita.

Sarake kertoo yksinkertaisesti mitä tietoa kyseisessä kentässä on. Ja rivillä on ne yksittäiset tiedot. Kuullostaa yksinkertaiselta ja sitä se onkin.

Lähes jokainen oppii tekemään tälläisiä tauluja muutaman tunnin opiskelulla eli pohtimaan kuinka asiat pilkotaan osiin ja nimeämään sarakkeet järkevästi. Tästä on yksinkertaisesti kyse SQL-tietokannan taulussa eli asioiden järkevästä pilkkomisesta ja tietojen kirjoittamisesta niille kuuluviin sarakkeisiin.

INSERT, UPDATE, SELECT, DELETE

Tietokannan käyttämisen perusedellytys on se, että sinne voidaan lisätä rivejä ja poistaa niitä. Ja sitä varten näyttää olevan selvät käskyt:

  • Insert = lisää rivi
  • Update = muuta rivillä olevaa tietoa
  • Select = valitse joltain tai joiltain riveiltä/riveiltä tietoa
  • Delete = poista rivin tiedot

Näyttää yksinkertaiselta eli jos halua lisätä rivin niin annan käskyn:

Lisää rivi jossa:

  • Etunimi on Ville
  • Sukunimi Virtanen
  • Katuosoite Testikatu 5 B 32
  • Jne…

Näyttää helpolta eli pitää vain osata kertoa, että rivi lisätään ja muuttaa tieto oikeaan syntaksiin (hieno sana):

INSERT INTO Henkilot (Etunimi, Sukunimi, Osoite, Postinumero,Postitoimipaikka)
VALUES (’Ville’, ’Virtanen’, ’Testikatu 5 B 32’, ’1345’, Testikaupunki’);

Ihan samalla ne muutkin käskyt toimivat. Kysytään vain, että näytä kaikki tiedot ihmisistä joiden etunimi on Teppo. Tai käsketään poistamaan kaikki, jotka asuvat Testikylässä.

Helppoa eikö totta

Tosiasiassa tietokantojen käyttö ei ole aivan noin helppoa. Sinne tulee mukaan monia muitakin käsitteitä kuten viite-eheydet, monimutkaiset haut jne. Mutta tietokannan käyttämisen perusteet pystyy oppimaan käytännössä muutamassa päivässä mikäli osaa esimerkiksi käyttää Exceliä tai kirjoittaa ruutuvihkoon ja piirtää sarakkeita. Lisäksi pitää ymmärtää, että tietoa voi lisätä, poistaa, hakea ja muokata. Eli osaa yliviivauksen ja kumittamisen taidon.

Tehokkain tapa pitää yllä oman ammattikuntansa hienoutta, on väittää ettei kuka tahansa pysty näihin hommiin. On ehkä turha vaatia vuosien maisterikoulutusta vaikkapa tietokannan käyttämisen kun saman asian voi opettaa muutamassa kuukaudessa normaaliälyllä vaaditulle ihmiselle.

Kuhan aamutuimaan pohdin, Kari…

P.S. Tiedän kyllä että syvällinen osaaminen ei synny ihan noin helposti. Mutta tiedän myös, että useinkin yksinkertaisia asioita mystifioidaan, jottei se selviäisi muille kuin asiaan vihkiytyneille.

 

One comment

Leave a Reply

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *