1.–31. märtsil toimub informaatika-alaste artiklite kirjutamise võistlus!
Andmebaas
Allikas: Wikipedia
See artikkel vajab toimetamist. |
Andmebaas on korrastatud infokogum, kusjuures pole oluline, mis tüüpi see info on. Näiteks telefoniraamat on andmebaas, mis sisaldab telefoninumbreid, asutuste nimetusi ja aadresse. Sõnastik on andmebaas, mis sisaldab sõnu ning nende tähendusi jne. Siin käsitleme PC-arvutitel kasutatavaid andmebaase, kus andmebaasiks on kogum mingi ühise tunnuse järgi ühendatud andmefaile, samuti võib andmebaasiks olla ka ainult üks fail.Andmebaasi võib lihtsustatud kujul vaadelda tabelina, mis koosneb ridadest ja veergudest. Tabeli rida nimetatakse andmebaaside terminoloogia kohaselt kirjeks, iga tabeli lahtrit andmeväljaks. Kirje on mugav viis korraldada kindla struktuuriga infot ühetüübiliste objektide (näiteks inimeste) kohta. Andmeväli on kirje element ja samuti väikseim andmekogus. Veergude pealkirjad on seega väljade nimed.Igal andmefailil on struktuur, mis sisaldab informatsiooni selles failis sisalduvatest andmetest, täpsemini nende tüüpidest. Andmefaili struktuur ja andmefaili kirje struktuur on samaväärsed mõisted, kuna andmefaili struktuur määrab ära tema sisse salvestavate kirjete struktuuri.
Kasvav trend on see, et toode peaks toetama rohkem kui ühte andmebaasisüsteemi. Andmebaase on mitmeid tüüpe, enamkasutatavad on lame- ja relatsioonandmebaasid, kuid kasutatakse ka teisi andmebaasi tüüpe, näiteks puustruktuuriga ehk hierarhilisi andmebaase.
Sisukord |
Andmebaasi tüübid
Lameandmebaasid
Lameandmebaasiks nimetatakse andmebaasi, mis koosneb ainult ühest tabelist. Ühe tabeliga saab hakkama, kui soovite selles hoida näiteks klientide, ärikontaktide, töötajate, kaupade vmt. andmeid. Kui tahate oma töötajate isikuandmetega aga siduda ka palgaandmeid või klientide andmetega neile väljastatud arvete andmed, siis läheb juba vaja keerukamat seotud tabelitega töötavat relatsioonandmebaasi.
Puustruktuuriga e. hierarhiline
Hierarhilisel mudelil põhinevas andmebaasis leiavad kajastamist omaniku ja alluva suhted. Kehtivad üks mitmele seosed. Ükski alluv selles baasis ei või olla jagatud mitme omaniku vahel. Samal ajal ei saa ükski alumise taseme kirje olla ülemise taseme kirje omanikuks. Nt kataloogide-failide puu arvutites.
Võrkmudel
Võrkmudel on ülesehituselt sarnane hierahilisele mudelile. Mõnevõrra on avardunud omaniku ja alluva mõisted ja võimalused. Alluval võib võrkstruktuurilises andmebaasis olla mitu omanikku ja mitu alluvat. See põhjustab mõne kirje lisamisel või kõrvaldamisel baasist palju ümberkorraldusi.
Relatsiooniline
Relatsioonimudeli puhul on objektid andmebaasis ja nendevahelised seosed esitatud tabelite kujul. Need võivad koosneda enamast kui ühest tabelist, mis on omavahel seotud. Seostamine tähendab andmefailide ühendamist ühesuguse sisuga väljade järgi. Relatsioonandmebaas koosneb nimega tabelitest, kus on nimega veerge üks või enam, ning suvaline arv ridu. Ühes andmebaasis võib olla mitmeid tabeleid. Iga selline tabel kujutab endast üht relatsiooni. Lisatingimuseks on, et üheski relatsioonis ei või olla kahte ühesugust rida. Iga tabeli kohta võime seega määrata ühe või enam veergu, mille väärtuste kaudu on read identifitseeritavad. Taolist veergude kogumit nimetatakse primaarvõtmeks. Primaarvõtmete või lihtsalt võtmete järgi võime ühendada eri tabelite andmeid. Näiteks Töötajad table võib sisaldada veergu nimega Asukoht sisaldades väärtust, mis sobib Asukoha tabeli võtmega.
Kuna tabelid on üksteisest sõltumatud, muudab see relatsioonimudelil põhinevad andmed basis ettenägematute muutuste ja vajaduste suhtes paindlikeks. Oma paindlikkuse tõttu on relatsioonimudelid muid alammudeleid suhteliselt kiiresti välja tõrjumas.
Võtmed relatsioonilises mudelis
- Primaarvõti ehk esmasvõti (ingl. k. primary key) on kandidaatvõti, mis on valitud relatsiooni kirjeid unikaalselt identifitseerima. Primaarvõti on võti, mis üheselt identifitseerib ühe kirje. Valiku kriteeriumid:
- atribuudi domeen (peaks olema võimalikult lühike väärtus). - atribuutide arv (peaks olema võimalikult vähe atribuute). - tulevane unikaalsuse tõenäosus (peaks sisaldama unikaalseid väärtuseid nii praegu kui ka tulevikus).
- Kandidaatvõti (ka võtmekandidaat) (ingl. k. candidate key) on supervõti, mille alamhulk ei ole korrektne supervõti. See tähendab, et kandidaatvõtmest ei saa enam ühtegi atribuuti eemaldada, ilma et ta kaotaks unikaalsuse. Relatsioonil võib olla mitu kandidaatvõtit. Kandidaatvõtme omadused on:
- unikaalsus - iga kandidaatvõtme väärtus identifitseerib üheselt ühe relatsiooni kirje. - täielikkus - kandidaatvõtmest ei saa eemaldada atribuute, ilma et ta kaotaks unikaalsuse omaduse.
- Alternatiivseteks võtmeteks (ingl. k. alternate key) nimetatakse primaarvõtmeks mitte valitud kandidaatvõtmeid.
- Lihtvõti - Kui võti sisaldab ühte atribuuti, siis nimetatakse seda lihtvõtmeks (ingl. k. simple key).
- Liitvõti - Kui võti sisaldab mitu atribuuti, siis nimetatakse seda liitvõtmeks (ingl. k. composite key).
- Supervõti (ingl. k. superkey) on atribuut või atribuutide kombinatsioon, mis identifitseerib unikaalselt relatsioonis olevaid kirjeid. Supervõti võib sisaldada atribuute, mida pole unikaalsuse tagamiseks vajalikud, st. et temast võib atribuute eemaldada ja ta tagab ikkagi unikaalsuse.
- Intelligentne võti ehk sisulise tähendusega (informatiivne) võti (ingl. k. intelligent key). Sisulise tähendusega võti on küll unikaalne, kuid selle väärtus omab kasutaja jaoks tähendust, näiteks:
- isikukood; - õppeaine kood ülikoolis; - üliõpilaskood; - auto registrinumber; - raamatu ISBN kood.
- Naturaalne võti (ingl. k. natural key) on sisulise tähendusega võtme eriliik. Selle võtme väärtus on identifitseeritava objektiga üks-üheselt seotud. Näiteks isiku DNA või sõrmejäljed.
- Kattuvateks võtmeteks (ingl. k. overlapping keys) nimetatakse liitvõtmeid, millel vähemalt üks atribuut langeb kokku).
- Välisvõti - Seose loomiseks kahe relatsiooni vahele "tõmmatakse" ühe relatsiooni ühe (või ka mitme) atribuudi andmed teise relatsiooni salvestamiseks. Ühelt poolt peab suhte loomisel osalema unikaalne võti (mõni kandidaatvõtetest). Enamasti on selleks unikaalseks võtmeks primaarvõti. Selle tulemusel on kahes erinevas relatsiooni ühesuguse sisuga atribuudid, mis loovad suhte nende relatsioonide vahel. Seotud relatsiooni tekkinud atribuuti (atribuute) nimetatakse välisvõtmeks. Relatsioonis võib olla üks või mitu välisvõtit. Relatsioonis võib välisvõti ka puududa.
Objekt - orienteeritud andmebaas
Objektiandmebaas võimaldab säilitada objekt-orienteeritud programmis loodud objekte. Andmed salvestatakse objektidena ja neid saab interpreteerida ainult vastava klassi meetodit kasutades. Sarnaste objektide vahelised suhted säilitatakse, samuti objektide vahelised viited. Päringud võivad olla kiiremad, sest sageli puudub vajadus relatsioonide liitmise järgi nagu relatsioonilises andmebaasis. Objekte saab andmebaasist välja võtta otse, ilma otsinguta kasutades selleks objekti indikaatorit. Objektorienteeritud andmebaas toetab multimeediarakendusi, sest andmetega seotud klassi meetodid vastutavad nende andmete õige interpreteerimise eest.Objektorienteeritud andmebaasid toetevad harilikult paremini versioneerimist, samuti pakuvad süstemaatilist tuge päästikprotsessidele ja tõketele, millel on aktiivandmebaasides põhjapanev roll. Objektorjenteeritud andmebaasidest on kasu enamikul andmebaasivajadustega objektorjenteeritud rakendusprogrammidel.
Andmebaasi sisulised tegevused
Andmebaasi disain ehk projekteerimine
Disainietapi ülesandeks on analüüsi etapis väljatoodud nõuetele vastavate loogiliste ja tehniliste lahenduste väljatöötamine. Disain võrdub projekteerimisega. Eristatakse loogilist ja füüsilist disaini. Loogiline disain tegeleb konkreetsest realisatsiooni- ja rakenduskeskkonnast sõltumatute, järelikult nende keskkondade jaoks spetsiaalselt optimeerimata lahenduste loomisega. Füüsiline disain häälestab loogilise disaini lahendusi konkreetsete “füüsiliste” keskkondade jaoks.
Disaini faasis toimuvad :
- detailmodelleerimine ja tööstsenaariumide koostamine
- kasutajaliideste ja kliendi tarkvara loomine
- serveri andmebaasi loomine
- rakenduspakettide häälestamine
- disaini tulemuste hindamine/ üleandmine/ nõustamine
- süsteemi tarkvara hindamine ja üleandmine
- puuduste parandamine
- kasutajate koolitus
- dokumenteerimine
- projektijuhtimine
Andmete osas tähendab andmete loogiline projekteerimine kõigepealt realatsioonilise andmemudeli sissetoomist ning andmestruktuuride viimist kolmandale normaalkujule. Andmemudelisse ei tohi jääda mitu-mitmele suhteid, mis analüüsi mudelis on lubatud. Erinevalt analüüsietapil koostatud kontseptuaalmudelist nähakse nüüd iga andmeobjekti taga konkreetset andmetabelit. Seepärast nimetatakse andmemudelit loogiliseks andmebaasiskeemiks. Kirjeldatakse kõik andmeväljad, määratakse standardsed (mitte konkreetse tarkvaraga seotud) andmetüübid ning väljapikkused. Füüsiline disain andmete osas sisaldab:
- Andmemudeli viimist konkreetse andmebaasisüsteemi tarkvara (näit Oracle, Microsoft SQL) konteksti
- Andmetüüpide täpsustamist vastavalt valitud andmebaasisüsteemi võimalustele
- Andmestruktuuride denormaliseerimist mõningate eriti tähtsate andmebaasioperatsioonide töökiiruse tõstmise eesmärgil
- Andmete denormaliseerimise vajadused selgitatakse välja transaktsioonianalüüsi (erinevate andmebaasioperatsioonide täitmissagedused ja täitmisajad) käigus
- Mitmesuguste füüsilise disaini objektide (indeksid, numbrijadad, abitabelid, trigerid, salvestatud protseduurid) lisamist andmebaasi.
Andmebaasi projekteerimine eeldab ka andmebaasi kasutavate/ uuendavate rakenduste projekteerimist. Andmebaasi rakendused on registri tüüpi rakendused, mis realiseerivad elementaarseid andmete registreerimise ja päringu protsesse ehk andmebaasiliideseid. Andmebaasiliides koosneb kasutajaliidesest (ekraanivorm, report) ning kasutajaliidese (sündmuste) kaudu käivitatavatest andmebaasi operatsioonidest (päringud, andmeuuendused, transaktsioonid).
Registri tüüpi rakenduse disain sisaldab:
- Kasutajaliideste loogiline ja füüsiline projekteerimine
- Konkreetsete ekraanivormidega seotud reaalsete kasutusjuhtumite tööstsenaariumide detailne kirjeldamine ekraanivormi väljade täitmise tasemel
- Ekraanivormidest käivitatavate andmebaasioperatsioonide (andmete lisamine, muutmine, kustutamine, päringud) loogiline ja füüsiline projekteerimine
- Andmebaasioperatsiooni teostamise loogika tekstilist ja/ või graafilist kirjutuskeelt kasutades. Operatsioonide projekteerimine toimub tavaliselt SQL keele ning viimast laiendava protseduurse keele vahenditega
Realiseerimine
Siin toimub eraldi disainitud andmebaaside ja rakenduste lõplik realiseerimine ja integreerimine terviksüsteemi tasemel. Põhitegevusteks programmeerimine, testimine, integreerimine. Integreerimise õnnestumises mängib võtmerolli hästi projekteeritud andmebaas.
Rakendamine
Eesmärgiks on süsteemi ehitajate juures realiseeritud ja töötava terviksüsteemi üleviimine tellija keskkonda ja seal toimima panemine. Kõige keerukamaks tegevuseks on siin andmete ülekandmine vana(de)st süsteemi(de)st uue süsteemi andmebaasi(desse). Selles faasis toimub:
- käituskeskkonna olukorra hindamine
- tehniline ettevalmistus
- koolitus
- tarkvara käituskeskkonda viimine
- esmakasutamine
- lõppakti koostamine
- hoolduse seadistamine
- lõppdokumentide allkirjastamine
- projektijuhtimine.
Järmise sammuna on üleminek süsteemi rutiinsele kasutamisele.
Hooldus
Tellija keskkonnas toimiva süsteemi ülalhoidmine, vigade parandamine, jõudluse jälgimine, häälestamine, uute arendustööde käivitamine. Andmebaasi hoiab üleval andmebaasi administraator. Arvutiprojektide puhul on tavaks kuni üheaastane hooldus. Hooldusfaasis on võimalik pisivigade parandamine ja kasutaja täiendav abistamine. Siia kuulub hoolduse valmisoleku seadistamine, vigade parandamine ja abistamine.
Infosüsteemide hindamine
Hindamine on vajalik projektiarenduses reglementeerida nii infosüsteemide audiitori tegevusena kui ka oma projektide kvaliteedi hindamiseks. Hindamist tuleb rakendada projektide kõikide aspektide, nii sisulise kui ka arendustegevuse kohta. Infosüsteemi hindamisel on eesmärgid, teatav projekti seisund (pakkumine võit mitmes etapp või lõpptulem). Kasutatakse teatavaid hindamise parameetreid ja luuakse protseduur, kuidas hindamist korraldada. Hinnang võib olla kvantitatiivne kui ka kvalitatiivne. Hindamise eesmärgid on finantsid, aeg, leping, tellija nõuded/ soovid, funktsionaalsus, andmed, arhitektuur, töökorraldus arvutitega, tellija kompetentsus, tehnoloogia faasilisuse järgimine, projekti läbiviimise terviklikkus ning teostatud tööd. Hindamise protseduur on tüüpiliselt kokku lepitav. Hinnang antakse lepingu, dokumentatsiooni, lahenduste/ vahendite kaasaegsuse, teostuse taseme suhtes. Samuti võib anda soovitus, mida veel teha. Projekti tulemuste hindamine toimub ettenähtud või kokkulepitud protseduuride ja meetrika alusel. Kasutatakse seesmist ehk projekti liikmete poolset hindamist ja välisauditit. Projektipakkumise hindamiseks moodustavad firmajuhid ja eksperdid nn. eksperdikomisjoni, kes lepib kokku hindamise meetrika ja protseduuri suhtes. Järgnevalt esitatud hinamise käsitlus ei ole standard. Tavaliselt on igal suuremal organisatsiooni oma käsitlus. Hindamise protseduurid näevad sageli ette mitmeastmelist hindamist, mille korral halvimad pakkumised eemaldatakse esmaselt ja paari või kolme parima pakkumisega tegeletakse põhjalikumalt. Hindamisel ei ole kõik parameetrid sama kaaluga. Tavaliselt töötatakse välja nn. koefitsientide süsteem. Sellega arvestatakse iga hinde osakaalu. Meetrika koostatakse sageli mitmetasemelisena, milles eristatakse näiteks tehnilist, küstitud dokumentatsiooni ja omaduste hindamist. Sellisena formuleeritud protseduuri on hea kasutada halbade pakkumiste kiireks eemaldamiseks konkursist.
Vaata ka
- Andmebaasihaldur - Database Management System (DBMS), vt ka ORDBMS
- Andmebaasimootor - database engine
Välislingid
.