3. Infosüsteemide arendus
3.2. Projekteerimine ja planeerimine
3.2.5. Andmebaasid ja andmebaasisüsteemid
3.2.5.1. Olemite seosed
Eelmises peatükis kirjeldasime andmeid, olemeid ja erilist võtit. Järgnevalt esitame näite, kuidas saab erilise võtme abil kirjeldada olemite seoseid.
Lisaks olemile või objektile, milleks on ettevõtja töötaja, võib-olla veel teisi olemeid. Näiteks ettevõtte bilansis olevad autod. Olgu neid lihtsuse mõttes kaks: Ford ja Volvo. Tabelis 1 esitatud üheveeruline tabel kirjeldab ettevõtte autosid.
|
Auto nr |
---|---|
1. Volvo |
|
2. Ford |
Kuidas neid andmeid siduda? Kui autol on ainult üks kasutaja ja iga kasutaja kasutab ainult ühte autot, kehtib kasutaja ja auto vahel seos üks ühele. Seega ametiauto omamine on eelmise tingimuse põhjal üksüheses seoses kahe olemi vahel, milleks on ettevõtte töötajaskond ja ametiautod. Kui leiame, et Toomase ametiauto on Volvo ja Merjel Ford ning kehtib seos üks ühele, siis võime tabelile lisada ühe veeru.
ID-nr |
Eesnimi |
Perekonnanimi |
Ametinimetus |
Vanus |
Auto |
---|---|---|---|---|---|
1. |
Toomas |
Tuisk |
projektijuht |
Volvo |
|
2. |
Merje |
Mets |
sekretär |
Ford |
Peale üks ühele on veel teisi seoseid. Näiteks üks mitmele ja mitu mitmele seos.
Kui eelmises näiteks oleks Toomasel võimalik kasutada veel teist tööautot, siis on kahe olemi vahel üks mitmele seos. Näiteks on Toomasel võimalik kasutada lisaks Volvole ka Hondat.
Kui lisaksime tabelisse 2 ühe rea, siis ei oleks unikaal- suse tingimus täidetud, sest lisanduva rea ID-numbri väärtus on 1. Üks mitmele seose korral ühes tabelis ei ole võtmeväli unikaalne.
Tabel 3. Üks mitmele seose ühes tabelis
ID-nr |
Eesnimi |
Perekonnanimi |
Ametinimetus |
Vanus |
Auto |
---|---|---|---|---|---|
1. |
Toomas |
Tuisk |
projektijuht |
Volvo |
|
2. |
Merje |
Mets |
sekretär |
Ford |
|
1. | Toomas | Tuisk | projektijuht | 25 | Honda |
Üks mitmele seose korral on lahenduseks “Autode” ja “Personali” tabelite hoidmine eraldi tabelitena, mis on esitatud tabelis 4.
Unikaalsuse tingimuse täitmisel tuleb üks mitmele seose loomiseks koostada eraldi tabel autode jaoks nimega “Autod”, kuhu on lisatud uus väli “Kasutaja ID”.
Tabel 4. Autod
ID-nr |
Eesnimi |
Perekonnanimi |
Ametinimetus |
Vanus |
Auto |
---|---|---|---|---|---|
1. |
Toomas |
Tuisk |
projektijuht |
Volvo |
|
2. |
Merje |
Mets |
sekretär |
Ford |
Auto nr |
Auto |
Kasutaja ID |
---|---|---|
1. |
Volvo |
1 |
2. |
Honda |
1 |
3. | Ford | 2 |
Tabelite “Personal” ja “Auto” seose saame siis, kui “Personali” tabeli veeru ID-numbri väärtus võrdub” Auto” tabeli veeru “Kasutaja ID” (ID-nr = Kasutaja ID) väärtusega, nii oleme sidunud kaks tabelit – “Personal” ja “Auto”.
Päringu moodustamiseks, kasutades SQL (ingl structured query language) päringukeelt esitatud tabelite põhjal, näeks see välja nii:
SELECT Auto FROM Autod WHERE Kasutaja ID = 1.
Kui ettevõttes on ühel autol mitu omanikku (rohkem kui üks) ja autode arv on suurem kui üks, siis on tegu mitu mitmele seosega. Eelmises näites oli siiski autol üks omanik, kuid ühel omanikul rohkem kui üks auto.
Eelmistes näidetes kasutasime tabelikujulist ehk relatsioonilist andmemudelit.
Tuntumad andmemudelid on:
Levinum andmebaasitüüp, kus kõik olemid on ühendatud relatsioonidega. Relatsioon esitatakse tabelina. Tabeli rida nimetatakse kirjeks, veergu väljaks. Näide relatsioonilisest andmebaasist oli teemakäsitluse alguses, kus kahte tabelit sai seostada tingimusel ID-nr = Kasutaja ID.
Andmed organiseeritakse puustruktuurina, st puu madalamatel tasemetel olevatele andmetele pääseb ligi ainult ülemiste tasemete kaudu. Näiteks joonisel kujutatud olem kirjeldab personaliandmeid puukujulisena. Puukujulise andmemudeliga saab kirjeldada struktureeritud teksti XML-formaadis. XML (ingl extended markup language) on tekstiformaat, mis sisaldab nii teksti sisu kui ka tunnuseid ehk metaandmeid.
Joonis. Hierarhiline andmestruktuur (mudel).
Põhineb objektorienteeritud andmemudelil. Objektorienteeritud andmemudel võimaldab kirjeldada keerukamaid olemite (objektide) seoseid, näiteks objektide sarnasusi.
Tabelite ja tabelite seostega puutub tavakasutaja enamasti kokku siis, kui ta kasutab tabelarvutussüsteemi. Lihtsamaid tabelid saab kirjeldada nii, et ei ole vaja kasutada metaandmeid ja unikaalseid võtmeid, vaid ainult andmeid objekti kohta. Siiski on ülevaatlikkuse huvides vajalikud tabeli päised, sest aja jooksul kipume unustama, mida andmed tabelites tähistavad.
Tabelarvutussüsteemis on võimalik töödelda mitmeid tuhandeid ridu. Andmete kasutamine on lihtne. Tegu on kasutajasõbralike programmidega, mis lahendavad lihtsamad andmetöötluse vajadused. Tabelarvutussüsteemid sobivad ühe kasutaja režiimis ja kui tabeli ridade arv jääb kümnete tuhandete piiresse. Tuntumad tabelarvutussüsteemid on MS Excel, OpenOffice.