Andmebaas — mis see on? Määratlus, mudelid ja näited
Mis on andmebaas? Selgitus, peamised andmebaasimudelid (relatsiooniline jms) ja praktilised näited — lihtne ja selge ülevaade andmete hoidmisest ja haldamisest.
Andmebaas on organiseeritud süsteem andmete (mis tahes liiki teabe) salvestamiseks, haldamiseks ja kättesaadavaks tegemiseks. Andmebaas võimaldab andmeid hoida püsivalt, otsida ja filtreerida neid kiiresti, ning jagada andmeid turvaliselt mitme kasutaja ja rakenduse vahel. Andmebaasid võivad sisaldada nii struktureeritud andmeid (nt tabelid) kui ka pool‑ või struktureerimata andmeid (nt dokumendid, failid, meedia).
Andmebaasimootor ehk DB‑mootor täidab päringuid: sorteeri, muuda, lisa, kustuta ja serveeri andmeid. Varasematel aegadel salvestati andmeid mitmel viisil — kaardiraamatud, trükitud raamatud või paberkandjad. Tänapäeval hoitakse enamik andmeid elektrooniliselt, kas eraldi arvutifailides või spetsiaalsetes andmebaasides.
Andmebaasisüsteem on arvutiprogramm elektrooniliste andmebaaside loomiseks, haldamiseks ja päringute täitmiseks. Lihtne näide on elektrooniline aadressiraamat: see on andmebaas, kus iga kontakt on kirje (üks "kaart") ja andmebaasimootor tagab kirje leidmise, muutmise ja varundamise. Tõsisemad süsteemid kasutavad kliendi‑server arhitektuuri, võimaldades andmetele ligipääsu üle võrgu ja pilvest.
Andmete organiseerimine ja andmebaasimudelid
Andmebaasis olevad andmed on mingil viisil organiseeritud. Enne arvutite laialdasemat kasutuselevõttu hoiti töötajate andmeid sageli arhiivikappides — iga töötaja kohta oli üks kaart, kus oli nimi, sünniaeg jms. Andmebaasis on need sama info "kaardid" ekraani kujul. Arvutil saab sama teavet salvestada mitmel erineval viisil; iga sellist viisi nimetatakse andmebaasi mudeliks. Kõige sagedamini kasutatavat andmebaasi mudelit nimetatakse relatsiooniliseks andmebaasi mudeliks. See kasutab andmete salvestamiseks suhteid ja kogumeid. Tavakasutajad nimetavad neid tavaliselt andmebaasi tabeliteks.
Peamised andmebaasimudelid lühidalt
- Relatsiooniline mudel — andmed salvestatakse tabelitesse ridade ja veergudena. Iga rida on kirje, veerud on atribuudid. Kasutab SQL‑i (Structured Query Language), primaar- ja võõrvõtmeid ning normaliseerimist. Sobib hästi ärirakendustele, kus on tugevad seoseid ja vajadus keerukate päringute järele.
- Dokumendipõhine (document) andmebaas — salvestab andmed dokumentidena (nt JSON, BSON). Sobib dünaamiliste skeemidega rakendustele (nt veebiteenused), kus andmestruktuurid võivad erineda kirje‑kirje haaval.
- Võtme‑väärtuse (key‑value) andmebaas — lihtne paar võtme → väärtus; väga kiire lugemiseks ja kirjutamiseks. Kasutatakse vahemäludes ja kiirete operaatorite puhul.
- Samba‑veergude (column‑family) andmebaas — optimeeritud suuremahuliste andmete ja analüüsi jaoks (nt veergude tasemel). Hea hajutatud salvestuse ja horisontaalse skaleerimise jaoks.
- Graafandmebaas — keskendub sõlmede ja servade (seoste) talletamisele; efektiivne keerukate võrgustike, suhtlusvõrkude ja soovitussüsteemide jaoks.
- Hierarhiline mudel — andmed salvestatakse puustruktuuris; ajalooliselt kasutatud failisüsteemide ja mõnede vanemate süsteemide puhul.
Põhifunktsioonid ja omadused
- Päringud ja keel — relatsiooniliste andmebaaside puhul kasutatakse tavaliselt SQL‑i; NoSQL‑süsteemidel on oma päringumeetodid.
- Indekseerimine — kiirendab andmete otsimist, luues lisastruktuure (nt indeksid veergudele).
- Transaktsioonid ja andmete järjepidevus — paljud andmebaasid toetavad transaktsioone ja ACID‑põhimõtteid (Atomicity, Consistency, Isolation, Durability), mis tagavad operatsioonide usaldusväärsuse. Mõned hajutatud või NoSQL süsteemid järgivad rohkem BASE‑lähenemist (Basically Available, Soft state, Eventual consistency).
- Varundamine ja replikatsioon — andmete regulaarne varundamine ja kopeerimine (replikatsioon) on kriitilise tähtsusega andmete kättesaadavuse ja taastamise jaoks hädaolukorras.
- Turvalisus ja ligipääsu kontroll — autentimine, autoriseerimine, auditilogid ja krüptimine kaitsevad andmeid volitamata juurdepääsu eest.
- Skaleerimine — vertikaalne (tõstetakse riistvara võimsust) või horisontaalne (lisatakse rohkem sõlmi/servereid). Valik sõltub andmebaasi mudelist ja kasutusjuhtumist.
Kasutusnäited
- Aadressiraamat või kontaktihaldus (lihtne relatsiooniline andmebaas või dokumendipõhine lahendus).
- E‑poe tootevarud ja tellimused (relatsiooniline andmebaas + indeksid tellimuste kiireks leidmiseks).
- Pangandustehingute logid ja finantssüsteemid (suurt usaldusväärsust nõudvad andmebaasid, ACID‑toega).
- Sotsiaalvõrgustike sõprussuhete ja soovitussüsteemide haldamine (graafandmebaasid).
- Suurandmete analüüs ja logihaldus (veergupõhised ja hajutatud NoSQL lahendused).
Tuntud andmebaasisüsteemid ja tööriistad
Populaarsed relatsioonilised süsteemid: MySQL, PostgreSQL, SQLite, Oracle Database, Microsoft SQL Server. NoSQL‑maailmas tuntud näited: MongoDB (dokumendid), Redis (võtme‑väärtus), Cassandra (veergupõhine), Neo4j (graaf).
Hea tava andmebaasidega töötamisel
- Mõtle andmeskeemist ette: planeeri tabelid, võtmed ja suhted vastavalt kasutusjuhtudele.
- Normaliseeri andmeid seal, kus see aitab vältida duplikaate; denormaliseeri, kui jõudlus või lihtsam päring nõuab.
- Kasutage indekseid teadlikult — liiga palju indekseid aeglustab kirjutamisi.
- Rakenda regulaarne varundus, testi taastamist ning loo replikatsioon kriitiliste andmete jaoks.
- Jälgi turvalisust: piirata ligipääsu, logida tegevusi ja krüpteeri tundlikud andmed.
- Monitoori jõudlust ja skaleerimisvajadusi ning optimeeri päringuid.
Andmebaas on tänapäeva IT‑maailmas keskne komponent nii väikestes kui ka suurtes rakendustes. Õige mudeli ja süsteemi valik sõltub andmete olemusest, töökoormusest, jõudlusnõuetest ja eelarvest. Mõistmine, kuidas andmed on organiseeritud ja milliseid vahendeid andmebaasimootor pakub, aitab luua usaldusväärseid, turvalisi ja efektiivseid infosüsteeme.
Andmebaasisüsteemide kasutamine
- idk mida öelda
Andmete muutmine
Andmebaasides muutuvad mõned andmed aeg-ajalt. Andmete muutmisel võib tekkida probleeme, võib esineda viga. Viga võib muuta andmed kasutuskõlbmatuks. Andmebaasisüsteem vaatab andmeid, need peavad vastama teatud nõuetele. See teeb seda tehingu abil. Andmebaasis on kaks ajahetke, aeg enne andmete muutmist ja aeg pärast andmete muutmist. Kui andmete muutmisel läheb midagi valesti, paneb andmebaasisüsteem andmebaasi lihtsalt tagasi olekusse, mis oli enne muudatuse toimumist. Seda nimetatakse tagasipöördumiseks (rollback). Pärast seda, kui kõik muudatused on edukalt tehtud, kinnitatakse need. See tähendab, et andmetel on jälle mõte; kinnitatud muudatusi ei saa enam tagasi võtta.
Selleks, et seda teha, järgivad andmebaasid ACID-põhimõtet:
- Kõik. Kas kõik antud kogumi ülesanded (mida nimetatakse tehinguks) on tehtud või ükski neist ei ole tehtud. Tuntud kui aatomisus
- Täielik. Andmebaasis olevad andmed on alati mõistlikud. Ei ole pooleli jäänud (kehtetuid) andmeid. Tuntud kui järjepidevus
- Sõltumatu. Kui paljud inimesed töötavad samade andmetega, ei näe nad üksteist (ega mõjuta). Igaühel neist on oma vaade andmebaasile, mis on teistest sõltumatu. Tuntud kui isolatsioon
- Tehtud. Tehingud tuleb kinnitada, kui need on tehtud. Kui need on kinnitatud, ei saa neid enam tagasi võtta. Tuntud kui kestvus.
Andmebaasi mudel
Andmete esitamiseks on erinevaid viise.
- Lihtsad failid (nn lamefailid): See on andmebaasisüsteemi kõige lihtsam vorm. Kõik andmed on salvestatud failis tavalise tekstina. Iga teabeosa võib eraldada uue rea või komaga jne.
- Hierarhiline mudel: Andmed on organiseeritud nagu puustruktuur. Huvitavad andmed asuvad puu lehtedes. Andmekirjete vahelised seosed on sellised, et mõned kirjed sõltuvad otseselt teistest kirjetest.
- Võrgumudel: Kasutage andmete salvestamiseks kirjeid ja komplekte. Sarnane hierarhilisele mudelile, kuid selle struktuur on palju keerulisem.
- Suhteline mudel: See kasutab hulgateooriat ja predikaatloogikat. Seda kasutatakse laialdaselt. Andmed näevad välja nagu tabelitesse organiseerituna. Neid tabeleid saab seejärel ühendada, et neist saaks valida lihtsaid päringuid.
- Objektipõhine mudel: Andmed esitatakse objektide kujul, nagu seda kasutatakse objektorienteeritud programmeerimises. Nad saavad otse suhelda kasutatava OOP-keelega, kuna mõlemal on sisemiselt sama andmete esitusviis.
- Objektipõhine relatsiooniline mudel: See on objektorienteeritud mudeli ja relatsioonilise mudeli hübriid.
- NoSQL-mudel: See on uut tüüpi andmebaasimudel, mida kasutatakse üha enam suurtes andmetes ja reaalajas veebirakendustes. Selles mudelis salvestatakse andmeid võtme- ja väärtuse paaridena, ilma range hierarhiaeta nagu teistes mudelites. NoSQL-süsteeme nimetatakse ka "mitte ainult SQL", sest need ei võimalda kasutada struktureeritud päringukeele sarnaseid päringukeeli.
Andmete korrastamise viisid
Nagu ka tegelikus elus, võib samu andmeid vaadelda erinevatest vaatenurkadest ja neid saab korraldada erinevalt. Andmete organiseerimisel tuleb arvestada erinevaid asju:
- Iga andmeühikut tuleks salvestada võimalikult vähe kordi. Kujutage ette, et vallaline naine on kantud maakonna registrisse, riigi liiklusvahendite osakonda, föderaalse sotsiaalkindlustusosakonna ja rahvusvahelise passiosakonna registrisse. Kui ta abiellub ja otsustab oma nime muuta, tuleb kõiki neid osakondi teavitada. Kui kõik osakonnad oleksid omavahel seotud ja tema nimi oleks salvestatud ainult ühte kohta, siis oleks ajakohastamine lihtne.
- Kui andmed on salvestatud mitmesse erinevasse andmebaasi, võivad need olla omavahel vastuolus.
- See probleem muudab andmete leidmise aeglasemaks. Kui andmeid on palju, siis võtab see probleem, et ühe andmestiku salvestamine mitmes kohas, palju ruumi. Meie näites oli ühe inimese kohta 4 andmebaasi. See teeb 8 muudatust, kui teisel inimesel on täpselt sama probleem.
- Selle probleemi lahendamiseks on välja töötatud meetod nimega andmebaasi normaliseerimine. Praegu on olemas 5 normaalset vormi. Need on viisid, kuidas muuta andmebaas kiiremaks ja panna andmed vähem ruumi võtma.
Seotud leheküljed
Küsimused ja vastused
K: Mis on andmebaas?
V: Andmebaas on süsteem andmete (mis tahes liiki teabe) säilitamiseks ja hooldamiseks. Seda saab kasutada sinna salvestatud teabe sorteerimiseks, muutmiseks või serveerimiseks.
K: Kuidas säilitasid inimesed andmeid enne digitaalarvuteid?
V: Enne digitaalarvuteid kasutati andmete säilitamiseks kaardikaarte, trükitud raamatuid ja muid meetodeid.
K: Mis on andmebaasisüsteem?
V: Andmebaasisüsteem on arvutiprogramm elektrooniliste andmebaaside haldamiseks. Seda saab kasutada andmete organiseerimiseks mingil viisil.
K: Kuidas näeb "kaart" välja vanaaegses arhiivikapis?
V: Vanaaegses arhiivikapis oli tavaliselt iga töötaja kohta üks kaart, millel oli näiteks tema sünniaeg või nimi.
K: Kuidas näeb välja selle "kaardi" tänapäevane ekvivalent?
V: Selle "kaardi" kaasaegne ekvivalent ilmub pigem ekraanil kui füüsilisel kujul.
K: Mis on andmebaasi mudel?
V: Andmebaasi mudel viitab erinevatele viisidele, kuidas arvuti saab "kaardil" olevat teavet salvestada. Kõige sagedamini kasutatavat mudelit nimetatakse relatsiooniliseks andmebaasi mudeliks, mis kasutab andmete salvestamiseks suhteid ja kogumeid.
K: Kuidas viitavad tavakasutajad neist mudelitest rääkides nendele mudelitele? V: Tavakasutajad nimetavad neid mudeleid tavaliselt "andmebaasi tabeliteks", mitte ei kasuta neist rääkides selliseid tehnilisi termineid nagu suhted või kogud.
Otsige