Põhitõdesid andmebaasidest

Allikas: Lambda
Redaktsioon seisuga 19. september 2005, kell 10:44 kasutajalt Tammet (arutelu | kaastöö)
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)
Mine navigeerimisribale Mine otsikasti

Andmebaasisüsteemid on valmis-programmeeritud abivahendid programmeerimiseks. Tuntumad suured kommertssüsteemid on Oracle, IBM-i DB2, Microsofti SQL-server ja Access. Tuntumad vabavarasüsteemid on PostgreSQL, MySQL, BSDDB.

Valmistehtud andmebaasisüsteemi kasutamine ei ole ühegi programmi valmistegemise juures otseselt hädavajalik, kuid tihtipeale aitab selline süsteem programmi palju kiiremini teha ja kokkuvõttes tuleb tulemus parem, kui kõik ise programmeerides.

Tüüpilise andmebaasisüsteemi põhi-idee on pakkuda programmeerijale teek (st. valmisprogrammeeritud funktsioonid) ja enamasti ka spetsiaalne keel (enamlevinud keel on SQL) suure hulga andmete (stringid, numbrid jne) salvestamiseks kettale ja nende kiireks otsimiseks kettalt.

Üks lihtsamaid viise on hoida andmeid lihtsalt failides, tulpade kaupa. Umbes nii hoiab andmeid näiteks MySQL. Selleks, et andmeid rutem failidest leida ja uusi andmeid lihtsamalt sisestada, koostavad ja kasutavad süsteemid hulga lisa-andmestruktuure, nagu näiteks indeksid (sisaldavad infot sorteerimise kohta, nii et pidevalt poleks vaja kõike üle sorteerida) jne.

Praktikas ei ole nö "tõsist" andmebaasisüsteemi alati vaja, sest andmete hulk on enamuses süsteemides väike ja süsteemil kasutajaid vähe.

Sel juhul saab andmeid sisestada ja otsida väga edukalt ka käsitsi, näiteks tekstiredaktori või MS Exceli abil. Samuti, kui on oodata, et andmeid on vähe, saab andmeid edukalt otsida ka nii, et:

  • kõigepealt loeme kettalt kõik andmed mällu
  • siis otsime ja sorteerime andmeid ilma
 ketta poole pöördumata.

Mälus (reeglina massiivis) olevaid andmeid saab sorteerida ja otsida päris kiirelt: mälu on tuhandeid kordi kiirem, kui ketas.

"Suurte" süsteemide peamine fookus on nimelt olukorral, kus andmeid on palju ja nad kõik ei mahu korraga mällu ära. Sel juhul tuleb paratamatult korraga hoida mälus vaid väike osa andmetest, ning siis läheb kõik tegevus keerukaks, sest süsteem püüab automaatselt otsustada, mida ja kui palju oleks korraga mõttekas mälus hoida, kuidas pidevaid kettalt lugemisi/kirjutamisi optimeerida jne jne.

Teine oluline "suurte" süsteemide idee on võimaldada andmehulka kettal korraga kasutada paljudel programmidel (mõni kirjutab, teine samal ajal otsib jne), nii et selle juures kõik segi ei läheks.

Andmebaasisüsteemide sisemised teegid (näiteks bsddb teegid) ja keel (näiteks SQL) võimaldavad reeglina teha kolme tüüpi operatsioone:

  • Andmete kirjeldamine:
 Tabelite ja failide loomine, lisainfo
 andmine nende kohta (mitu tulpa, mis
 nimed, tüübid, kuidas teha indekseid jne)
 
 SQL-is: create table ...
 
  • Andmete lisamine ja muutmine:
 Ridade lisamine, valitud ridade kustutamine,
 osade väljade sisu muutmine.
 
 SQL-is: insert into ...
 
  • Andmete küsimine:
 Andmete otsimine näidatud tabelitest
 eri tingimuste alusel. Keerukamad
 otsingud otsivad korraga mitmest
 tabelist ja kombineerivad tulemuse
 uueks tabeliks (nn join). Tulemus
 tihtipeale sorteeritakse.
 
 SQL-is: select ....