Sissejuhatus andmebaasidesse
Miks on andmebaase vaja?
Paljude asutuste, rakenduste ja teenuste lahutamatu osa on tänapäeval andmed. Neid on vaja talletada ja tagada kiire juurdepääs info saamiseks. Väiksemate andmehulkade puhul on võimalik hoida andmeid näiteks paberil, kuid andmehulga kasvades muutub see kiirelt ajakulukaks ja ebaefektiivseks tegevuseks. Lahenduseks on andmebaas, kuhu on võimalik salvestada suuri andmekogumikke. Andmebaas tagab ka korrektse andmete seisu ja kiire ligipääsu infole mitmetele osapooltele korraga. Selle toel töötavad ka erinevad veebiteenused nagu näiteks internetipank, e-raamatukogu, Facebook jne. Neid teenuseid kasutades suhtleb kasutaja andmebaasiga, veebileht on lihtsalt mugav kasutajaliides selle tegemiseks.
Tänapäeval ei hoita andmeid aga enam ainult selle eesmärgiga, et omada ülevaadet inventuurist või võimaldada mõne veebiteenuse töötamist. Andmebaasid on ettevõtetele äriliselt väga tähtsad. Näiteks eelnevalt väljatoodud internetipanga teenuse näitel on pangal, kes sellist teenus pakub, suur eelis nende pankade ees, kes seda ei võimalda. Peale teenuste kasutamise mugavuse pakkumise kliendile võimaldavad andmebaasis olevad andmed teha klientidele spetsiifilisi otsusi ja pakkumisi, isegi kui klientide arv kasvab suureks. Seda ei tee ainult pangad, vaid pea kõik ettevõtted. Näiteks Walmart kogub tänapäeval rohkem kui 2.5 petabaiti (78 tuhat korda rohkem, kui keskmise nutitelefoni mälumaht) andmeid iga tund. Seda andmestikku ostude ja klientide kohta kasutatakse analüüsi sisendiks ja tulemusena saadakse teada, mida ettevõte tegema peaks, et edukam olla. Sellise andmemahu hoiustamiseks ja mõistliku ajaga töötlemiseks on vaja kasutada andmebaase.
Andmebaas ja andmebaasi juhtimissüsteem
Andmebaas (database) - omavahel seotud ja
süstematiseeritud andmete kogum, mis lisaks
andmetele sisaldab eneses ka nende andmete
struktuuri (koosseisu) kirjelduse.
Andmebaasi juhtimissüsteem e. haldussüsteem
(ABJS – DBMS) - programm, mis “oskab” vastavalt
andmebaasis olevale kirjeldusele tõlgendada seal
olevaid andmeid.
Seega andmebaas on koht, kuhu andmed salvestatakse. Seda võib ka ette kujutada kui tabelite kogumit. Tasub aga tähele panna, et näiteks Exceli tabelisse saab ka andmeid salvestada, aga see ei ole siiski andmebaas. Sinna tabelisse sisestatud andmed ei ole süstematiseeritud ja ei ole kirjeldatud ka andmete tüüpe, seoseid ja muid omadusi, mida järgmistes peatükkides tutvustatakse. Exceli tabelis saab ka ühte tulpa salvestada mitut tüüpi väärtusi, kuid andmebaasis seda teha ei saa.
Andmebaasi juhtimissüsteem on programm, mille abil saab luua ühenduse andmebaasiga. Kui andmebaasi pole, siis saab andmebaasi juhtimissüsteemiga selle luua. Ühenduse loomise järel saab juba läbi juhtimissüsteemi andmebaasi manipuleerida. Sagedasemad operatsioonid on näiteks andmete pärimine, lisamine, muutmine ja kustutamine.
Andmebaas internetipanga näitel
Alloleval skeemil on näha tüüpilist andmebaasi kasutusjuhtu internetipanga näitel. Kasutaja siseneb internetipanka oma kontoga, sisestades kasutajatunnuse ja parooli. Nende sisestamisel saadetakse päring andmebaasi, et kontrollida, kas selline kasutaja eksisteerib. Kui vastus on positiivne, siis logitakse kasutaja internetipanka sisse ja kasutajale kuvatakse andmeid, mis on salvestatud andmebaasi selle kasutaja kohta. Soovi korral on võimalik kasutajal ka andmebaasis muudatusi teha. Näiteks sõbrale rahaülekannet tehes. Selle tulemusel muutuvad andmebaasis andmed nii kasutaja kui ka tema sõbra kohta.
Allolevalt skeemilt saab näha kirjeldatud protsessi. Skeemilt on puudu veel olulisi vahepunkte, aga neid siin kursusel ei käsitleta.
Ülaltoodud näitest on näha, et paljud kasutajad võivad andmebaasiga korraga suhelda. On oluline, et andmebaas võimaldaks kiiret juurdepääsu andmetele ja seda paljudele kasutajatele korraga ükskõik, kus nad ka ei asuks. Lisaks sellele peab olema andmebaasi kasutus ka turvaline ning iga kasutaja peab nägema ainult neid andmeid, millele tal õigused on.
Andmebaasi loomise protsess
Skeemil on näha protsess, kuidas luuakse andmebaas. Kõik algab ühest suurepärasest ideest. Kui idee on olemas, siis tuleb läbi viia põhjalik analüüs, mida andmebaas sisaldama peab, et ideed ellu viia. Seda saab kergelt teha, kui vestelda uue andmebaasi tulevaste kasutajatega ja uurida, mida nad näha tahaksid. Näiteks ÕIS-i kasutajana tahaks tudeng näha oma hinnete kokkuvõtet, läbitud aineid jne.
Kui analüüs teha halvasti, siis võib järgmistes protsessides ilmneda selle arvelt rohkem probleeme ja peab ka vahel tagasi liikuma, et lahenduses kohandusi teha.
Analüüsiga valmib ka esimene visuaalne mudel tulevasest andmebaasist. Seda kutsutakse loogiliseks mudeliks. Tegu on mudeliga, mis kirjeldab ära meie loodava andmebaasi struktuuri lihtsustatud kujul. See tähendab, et mudel kujutab küll andmebaasi, aga lihtsuse mõttes on sealt välja jäetud palju infot. Selle mudeliga tutvume lähemalt järgmises peatükis.
Loogilise mudeli edasiarendus on juba relatsiooniline mudel, kus kirjeldatakse ära andmebaas sellisena, nagu ta päriselt olema saab. Selle mudeliga tutvume kolmandas peatükis.
Peale mudelite valmimist ja andmebaasi käivitamist vastavalt relatsioonilisele mudelile toimub andmehõive, mille käigus täidetakse andmebaas andmetega. Seejärel arendatakse välja rakendus või rakendused, millega saab mugavalt andmeid vaadelda, lisada ja muuta. Lõpuks jääb alles ainult rõõm kasutada loodud andmebaasi ja teostada jooksvalt edasiarendusi ja hooldusi.
Andmed ja nende tüübid
Andmed on kõikjal meie ümber. Andmed kirjeldavad fakte erinevate nähtuste, isikute, objektide või protsesside kohta. Nende töötlemisest või tõlgendamisest saadakse informatsiooni. Näiteks võib vaadelda üliõpilaste hindeid ja arvutada nende põhjal keskmise hinde.
Igapäevaselt sellele tähelepanu ei pöörata, aga iga nähtuse, isiku, objekti või protsessi kohta käival faktil on ka andmetüüp. Kui aga tahta salvestada andmeid andmebaasi, siis tuleb hakata hoolikalt mõtlema, et mis tüüpi andmed on. Andmebaasis on vaja määrata andmetüüpe selleks, et tagada andmete korrektsus. Näiteks annab andmebaas veateate, kui kogemata tahta salvestada täisarvu kohta, kuhu on määratud tüübiks hoopis sõne, ehk tekst. Andmetüübid määravad ka ära selle, millised operatsioone on võimalik andmetega teha. Näiteks, kui liita kokku kaks arvu 1 + 1, siis peaks tulemuseks olema 2. Samas kui liita kokku need arvud tekstina, siis oleks tulemuseks "1" + "1" = "11".
Enimlevinud andmetüübid on:
- täisarv
- ujukomaarv
- tekst ehk sõne
- kahendväärtus
- aeg
Täisarvud
Täisarvud jagunevad SQL Anywhere-is neljaks erinevaks täisarvu tüübiks: INTEGER, BIGINT, SMALLINT, TINYINT. Erinevaid täisarvu tüüpe iseloomustavad nende maksimaalsed ja minimaalsed võimalikud väärtused. Neist enimkasutatud on INTEGER, mille väärtuste vahemik on -2147483648 kuni 2147483647.
Sellised väärtused tulenevad kahe astmetest, näiteks 2147483647 = 231-1. Lähemalt saab nende kohta lugeda siit.
Täisarvu tüüp tuleks valida vastavalt sellele, mis väärtusi seal hoidma hakatakse. Kui on teada, et suurused ei ületa kunagi näiteks väärtust 500, siis peaks valima tüübiks SMALLINT, mille võimalikud väärtused on vahemikus -32768 kuni 32767. Selle tulemusel on andmebaas efektiivsem.
Ujukomaarvud
Ujukomaarvud võimaldavad salvestada andmebaasi arve komakoha täpsusega. Tüübi valikuid on nende puhul SQL Anywhere-is mitmeid: DOUBLE, FLOAT, NUMERIC, REAL. Sellel kursusel kasutame enamasti tüüpi NUMERIC.
Tekst ehk sõne
Tekstilisi väärtusi esitatakse jutumärkide vahel. Tekstina võib salvestada pea ükskõik mida, ka arve. Tasub aga tähele panna, et kui salvestada arve tekstina, siis rakendades neile erinevaid operatsioone käsitletakse neid ka tekstina. Näiteks "1" + "1" = "11". Sagedasemateks teksti tüüpideks on TEXT ja VARCHAR. TEXT võimaldab salvestada määramata pikkusega sõnesi, VARCHAR aga võimaldab määrata maksimaalse sõne väärtuse pikkuse. Näiteks VARCHAR(15). Selle andmetüübi puhul on lubatud kõik sõned, mille pikkus on võrdne-väiksem kui 15 tähemärki.
Kahendväärtus
Esineb olukordi, kus andmevälja võimalikke väärtuseid on kokku kaks. Näiteks, kui on vaja salvestada tõeväärtust, kas inimesel on juhiload või ei ole. Võimalikud väärtused oleks sellisel juhul true või false. Selleks on SQL Anywhere-is olemas andmetüüp BIT, mille ainsateks väärtusteks saab olla 0 või 1. IT maailmas on tüüpiliselt nii, et true väärtust sümboliseerib 1 ja false väärtust sümboliseerib 0.
Aeg
Ka aja salvestamiseks on SQL Anywhere-is mitu erinevat võimalust. On võimalik salvestada ainult kuupäevi andmetüübiga DATE, on võimalik salvestada kindlat kellaaega andmetüübiga TIME ja saab ka salvestada mõlemat korraga andmetüübiga DATETIME.
Kuigi ajale on eraldi andmetüüp, siis andmebaas hoiustab väärtusi ikkagist sõne kujul. Kui aga tahta kasutada salvestatud väärtusi, siis on vaja tüüpiliselt kasutada andmebaasi poolt pakutavat funktsiooni, mis suudab väärtusi käsitleda kui aega. Antud funktsioone võib ka ise luua. Näiteks SQL Anywhere-is on olemas funktsioon DATEFORMAT(aeg, 'HH:MM:SS'). Antud juhul esimeseks parameetriks tuleks anda salvestatud aeg ja teiseks parameetriks formaat, mis kujul soovite aega lugeda. Funktsiooni kasutades tagastab see salvestatud aja väärtuse sõne kujul antud formaadis.
SQL Anywhere 17 kõikvõimalike andmetüüpidega saab lähemalt tutvuta siin.
<< Eessõna | Loogiline mudel >> |