E-R mudel

Seotud dokumendid
Andmebaasid, MTAT loeng Normaalkujud

Relatsiooniline andmebaaside teooria II. 6. Loeng

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

SQL

Pealkiri

Pealkiri

Pealkiri

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk

Eksam õppeainetes "Andmebaasid I" (IDU0220) ja "Andmebaaside projekteerimine" (IDU3381)

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

Microsoft Word - RVLi juhend.doc

Eesti Muusika- ja Teatriakadeemia diplomite, akadeemiliste õiendite ja tunnistuste väljaandmise kord I Üldsätted 1. Käesolev eeskiri sätestab Eesti Mu

ITI Loogika arvutiteaduses

raamat5_2013.pdf

IFI6083_Algoritmid_ja_andmestruktuurid_IF_3

Andmebaasid, MTAT Andmebaasikeeled 11.loeng

SQL

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

4. KIRURGIA Üliõpilase andmed. Need väljad täidab üliõpilane Praktikatsükli sooritamise aeg Kirurgia praktikatsükkel Ees- ja perekonnanimi Matriklinum

DVD_8_Klasteranalüüs

E-õppe ajalugu

Microsoft Word - ref - Romet Piho - Tutorial D.doc

E-arvete juhend

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013

IT infrastruktuuri teenused sissejuhatav loeng 00

PowerPoint Presentation

Operatsioonisüsteemi ülesanded

Tartu Ülikool

Microsoft Word - VOTA_dok_menetlemine_OIS_ doc

G aiasoft Programmi VERP ja Omniva Arvekeskuse liidese häälestamine ja arvete saatmine-lugemine VERP 6.3 ja VERP 6.3E Versioon ja hilisemad K

KINNITATUD Tartu Ülikooli rektori 4. septembri a käskkirjaga nr 13 (jõustunud ) MUUDETUD Tartu Ülikooli rektori 27. novembri a k

vv05lah.dvi

VKE definitsioon

Mida me teame? Margus Niitsoo

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

Microsoft PowerPoint - EMCS13

Eesti kõrgusmudel

Loeng03

ДЕЛОВОЕ ОБЩЕНИЕ

FRESENIUS ÕPPEKESKUS KIIRJUHEND

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

Võistlusülesanne Vastutuulelaev Finaal

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

PowerPoint Presentation

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l

Skriptimiskeeli, mida ei käsitletud Perl Python Visual Basic Script Edition (VBScript) MS DOS/cmd skriptid Windows PowerShell midagi eksootilisemat: G

Rühmatöö Moodle is Triin Marandi 2017 oktoober

(Microsoft Word - T\366\366leht m\365isaprogramm 4-6 kl tr\374kkimiseks.doc)

Microsoft PowerPoint - Keskkonnamoju_rus.ppt

AG informaatika ainekava PK

Abiarstide tagasiside 2016 Küsimustikule vastas 137 tudengit, kellest 81 (60%) olid V kursuse ning 56 (40%) VI kursuse tudengid. Abiarstina olid vasta

Uudiseid k-meride abil bakterite leidmisest [Compatibility Mode]

lvk04lah.dvi

Microsoft PowerPoint - geodb_090507v1.ppt [Read-Only] [Compatibility Mode]

MTAT Loeng 11 ( )

Praks 1

Microsoft Word - EHR.docx

Kursuseprogrammi vorm

Lisa 2 Kinnitatud Kambja Vallavalitsuse määrusega nr 11 PUUDEGA LAPSE HOOLDUS- JA SOTSIAALTEENUSTE VAJADUSE HINDAMISVAHEND Lapsevaema/hoold

Vana talumaja väärtustest taastaja pilgu läbi

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim

Microsoft Word - RM_ _17lisa2.rtf

Microsoft PowerPoint - loeng.ppt

Microsoft Word - requirements.doc

Veebipõhised andmebaasid ja otsi(ngu)mootorid Internet on Oluline, peagi peamine andmeallikas! 2/3 Eesti aktiivsest elanikkonnast kasutab;! 90% arvuti

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Microsoft Word - Vx610 EMV KASUTUSJUHEND.doc

MTAT Loeng 2 ( )

Õppimine Anne Villems, Margus Niitsoo ja Konstantin Tretjakov

Pealkiri

Andmed arvuti mälus Bitid ja baidid

Andmeturve

P2P süsteemid

VL1_praks6_2010k

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

E-õppe tehnoloogiad kõrgkoolis E-learning Technologies in Higher Education MTAT

1. AKE Ajalise keerukuse empiiriline hindamine

PowerPointi esitlus

Tallinna Tehnikaülikool

SINU UKS DIGITAALSESSE MAAILMA Ruuter Zyxel LTE3302 JUHEND INTERNETI ÜHENDAMISEKS

PowerPoint Presentation

PowerPoint Presentation

X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesug

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3,

Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

MAJANDUSAASTA ARUANNE aruandeaasta algus: aruandeaasta lõpp: sihtasutuse nimi: Sihtasutus AKADEEMIAKE registrikood: tän

Matemaatilised meetodid loodusteadustes. I Kontrolltöö I järeltöö I variant 1. On antud neli vektorit: a = (2; 1; 0), b = ( 2; 1; 2), c = (1; 0; 2), d

Võrguväljaanded ja veebiarhiveerimine

PRESENTATION HEADER IN GREY CAPITALS Subheader in orange Presented by Date Columbus is a part of the registered trademark Columbus IT

ANOVA Ühefaktoriline dispersioonanalüüs Treeningu sagedus nädalas Kaal FAKTOR UURITAV TUNNUS Mitmemõõtmeline statistika Kairi Osula 2017/kevad

Microsoft PowerPoint - Lisa 5 koolituse materjalid

1. Eesti keele B2-taseme eksamiks ettevalmistamisele suunatud kursus Algus OÜ 2. Õppekavarühm: võõrkeeled ja -kultuurid. Õppekava õp v lju d d sa skus

Word Pro - digiTUNDkaug.lwp

Väljavõte:

Uued mõisted. Tudeng peab olema suuteline selgitama järgmisi mõisteid: olem (nõrk- tugev; domineeriv-alluv), olemite klass, tunnused, seosed, nende tüübid, võti (võtme kandidaat, primaarne võti, supervõti), ER mudelite graafilised vahendid, UML klassimudelite graafilised vahendid. Oskused. Tudeng peab olema suuteline interpreteerima etteantud graafilist andmebaasi kontseptuaalset mudelit, selgitama tema kitsendusi. Koostama lihtsaid, 3-5 olemitüübiga graafilisi mudeleid talle tuntud valdkondade kohta. Eelmise loengu lühikokkuvõte Miks on vaja andmebaase? Andmebaasid kui andmekeskne vaade ülesannete kompleksile on vajalik, kuna tavalise, programmikeskse vaate puhul on järgmised halvad omadused: andmed on isoleeritud konkreetse programmi failidesse; tekib andmete dubleerimine; sellest andmete mittevastavus tegelikkusele; andmed kohandatakse ühe ülesande (mitte ülesannete kompleksi) vajadusele (näiteks tudengite fail organiseeritud ainult matrikli numbri järgi ja perekonnanimi järgi saab otsida ainult täisläbivaatusega); andmete struktuuri muutudes (matrikkel arvulisest tekstiliseks või lisandub mõni tunnus, näit. lugejapileti number) tuleb muuta programme, mis nende andmetega tegelevad (tavaliselt on neid palju); erinevad programmeerimissüsteemid kasutavad erinevaid failide formaate, mistõttu erinevates programmeerimiskeeltes kirjutatud rakendused ei saa samu faile kasutada; kui päringud on peidetud programmidesse, saab neid muuta ainult programmeerija, mitte kasutaja. Andmebaas mitme kasutaja huvides moodustatud, elektroonselt säilitatav, omavahel seotud andmete kogum, mis on koostatud ühe organisatsiooni (või selle osa) huve silmas pidades. Andmebaaside põhiprobleem: kuidas ehitada kõiki kasutajaid rahuldav andmemudel. 1. Andmemudeli loomine Mistahes infosüsteemi loomisel on aluseks kaks olulist mudelit: andmemudel (kirjeldab milliseid andmeid süsteemis säilitatakse, mis tüüpi ja milliste kitsendustega) ja funktsionaalne mudel (kirjeldab protsesse, mida andmetega tehakse, kuidas neid töödeldakse). Mõlema mudeli loomine järgneb analüüsi sammule, kui on kindlaks tehtud nõuded süsteemile. Nõuete määramise kohta on kursuse 2. nädala materjalide hulgas lisamaterjal. Selles kursuses vaatame andmemudeleid. Andmemudeli loomine on loominguline protsess, ei ole formaalset algoritmi, mis tagaks hea mudeli. Tavaliselt keskendutakse algul olemite, olemitüüpide ja olemitüüpidevaheliste seoste määramisele, seejärel fikseeritakse iga olemi võtmeatribuudid, ning siis lisatakse ülejäänud atribuudid. Kogu protsessi võib kirjeldada järgmiste sammude jadana: a. Olemite ja nendevaheliste seoste määramine. b. Esialgse graafilise mudeli skitseerimine. c. Esialgse mudeli täpsustamine. d. Võtmetunnuste lisamine. e. Ülejäänud tunnuste lisamine. f. Üldistamisseoste lisamine vajadusel. g. Kontroll (dubleerivad andmed, vajalike andmete olemasolu kontroll, kitsenduste kontroll jne.). 1

Kogu protsess ei ole rangelt järjestikune, vaid vajadusel pöördutakse eelnevate sammude juurde tagasi. Mudeli joonistamiseks kasutatakse graafilist esitust. Graafilist mudelit võib skitseerida käsitsi, aga viimastes staadiumites on soovitatav kasutada spetsiaalset tarkvara (Rational Rose, DBDesigner, Sybase PowerDesigner jne.), mis võimaldavad mudeli eksporti otse andmebaasi juhtimissüsteemi sisendiks. 2. Andmete modelleerimise põhiterminid Graafilised mudelid on loodud selleks, et andmete ja nendevaheliste seoste struktuuri kompaktselt ja ülevaatlikult kirja panna. Lihtsamatel juhtudel piisab ühel kirja pandud graafilisest mudelist. Keerulisematel juhtudel jagatakse mudel osadeks ja koostatakse mitu osamudelit. Graafilisi mudeleid kasutatakse laialt IT projekti osapoolte vahelises suhtluses, näit. andmebaasi projekteerija ja tellija vahelise kommunikatsioonivahendina. Kõige olulisemad on kaks terminit: Entity, eesti k. olem, (objekt) - reaalselt eksisteeriv ja identifitseeritav asi või nähtus; Relationship - seos mitme olemi vahel. Enne kui asume nende mõistete abil andmemudelit looma, teeme terminid endale täpsemalt selgeks. 2.1 Olem (ingl.k.entity) Olem (e. objekt) - reaalselt eksisteeriv ja antud ülesande kontekstis identifitseeritav asi või nähtus. Näited: raamat, inimene, eksam, tellimus. Tundub üsna lihtne mõiste, aga ega ei ole küll. Vt. raamat - mis on tegelikult olem, kas see üks konkreetne füüsiline raamat? Kuidas eristan teisest koopiast? Kas see on üks väljaanne? Kui aga väljaandeid on palju, isegi samade kirjastuste omi? Mis nendest on tegelikult konkreetse ülesande olemiks, sõltub ülesandest. Raamatulaenutuse ülesandes võime olemiks võtta kas füüsilise raamatu (siis on igale koopiale vaja oma kohaviita) või ühe väljaande (siis modelleerime koopiaid numbriliselt näiteks T.Pratchett Orikavana, 4 eksemplari, hoiame neid riiulil samas kohas, kui 1 välja laenatakse, muudame eksemplaride arvu andmebaasis 3-ks.). Ülesannete komplektiga, mida antud andmebaasiga hakatakse lahendama on määratud nende ülesannete jaoks mõistlike olemite hulgad. Näiteks raamatulaenutus võib tegeleda iga füüsilise raamatuga, kirjastuste tegevust huvitab väljaanne oma tiraažiga. Olemite klass. Kuna andmebaasid tegelevad ülesannetega, kus on palju sarnaste olemite kogumeid, siis oluliseks mõisteks on olemite klass (ingl.k.entity set). Olemite klass on samatüübiliste olemite hulk. Näiteks raamatute hulk raamatukogu komplekteerimise ja laenutuste ülesandes; üliõpilaste hulk teaduskonna eksamite-arvestuste ülesandes. Igal konkreetsel hetkel võib antud olemite klassis olla palju (mistahes arv) olemi eksemplare. Eksemplaride arv võib olla, ja reeglina ongi, ajas muutuv. Siit mõiste: klassi eksemplaride dünaamika. Eksemplaride lisamine-eemaldamine-parandamine - selleks peavad andmebaasides olema vahendid. Graafiline mudel ei tegele eksemplaridega, vaid ainult klassidega. Ühe ülesande olemite hulgad ei pea olema mittelõikuvad. Panga töötajate hulk ja panga klientide hulk võib olla ühisosaga, s.t. sisaldada samu inimesi. Magistrant (on kaheldamatult üliõpilane) võib osaleda õppetöös mitte ainult õppurina vaid ka praktikumide juhendajana. 2

Olem on andmebaasis esitatud oma tunnuste (atribuutide) kaudu. Näited tunnustest: üliõpilase perenimi, matriklinumber, pikkus, juuste värv, jne. Otsustamine, millised just on meid huvitava olemite tüübi tunnused, mida on vaja mudelisse võtta, ei ole lihtne. Näiteks: Kas ülikooli astuva tudengi poolt lõpetatud keskkooli/gümnaasiumi nimi on tudengi tunnus? Kas eesnimi on tunnus või olem? Ka selle määravad konkreetse ülesande (mille jaoks andmebaas luuakse) huvid. ÕIS-s on eesnimi isiku tunnus, nimede päritolu uurimise andmebaasis on eesnimi olem (oma tunnustega: päritolu kultuur, esimese teadaoleva kasutamise aeg, muganduse originaal jne.). Kaks abstraktsioonitaset: olemi klass, kui objekt ja - olemi eksemplar kui objekt. Võrdle konkreetse muutuja väärtus ja selle muutuja kirjeldust programmeerimises. Ka seal on tegu kahe erineva abstraktsiooniastmega. Konkreetse ülesande puhul on reeglina tegu paljude erinevate olemiklassidega. Näiteks klassid raamatulaenutuse ülesandest: raamat, lugeja, laenutus. Esimesed kaks - reaalsed füüsilised asjad, kolmas - tegevusakt, nähtus. 2.2 Seosed (ingl.k. relationship) Seos ühendab reeglina kahte olemitüüpi (siin kursuses me ei käsitle ternaarseid e kolme olemitüübi seost). Näited: üliõpilane ja tema poolt sooritatud eksamid; lugeja ja tema laenutused; üksikisik ja tema abikaasa; töötaja ja tema lapsed; auto ja tema omanik; auto ja selle autoga tehtud avariid. Seosel võivad olla oma tunnused: abikaasade seosel - abielutunnistuse number, lugeja raamatu laenamisel - viimase laenutuse kuupäev, jne. Kas ja missugused tunnused on vajalikud, tuleb otsustada ülesande huvidest lähtuvalt. Seosed võivad olla ka sama olemitüübi eksemplaride vahel. Näiteks: isik on teise isiku isa. Sellist, sama olemitüübi eksemplare siduvat seost nimetatakse rekursiivseks seoseks. Kas peaksime antud nähtust modelleerima seosena või võib seda modelleerida ka eraldiseisva olemina ka see on modelleerimisprobleem. Näiteks: kas laenutus on seos isiku ja raamatu vaheline seos või tuleb laenutus esitada eraldi olemitüübina, millel on tunnused: laenutuse kuupäev, tagastamise kuupäev jne ja mis on omakorda seotud laenutaja isiku ja laenatud raamatu olemiga? Otsus tuleb teha ülesandest sõltuvalt. Üks olemitüüp võib osaleda piiramatus arvus seostes. Räägitakse ka olemi rollist antud seoses. Näiteks seoses isik töötab antud osakonnas on isiku roll olla töötaja; seoses isik juhatab antud osakonda on isiku roll olla juhataja. Ülaltoodud rekursiivse esivanema seose puhul esineb olem isik kahes rollis on isa, on järeltulija. Seost saab iseloomustada mitmete omadustega: 1. Seose aarsus - mitu olemit ühest tüübist saab olla antud seoses. Nii klassifitseeritakse seosed 1: 1; 1 : n ja n : m seosteks. Süsteem võib anda ka vahendid minimaalse ja maksimaalse aarsuse määramiseks arvuliselt (näiteks: mitte alla 1; mitte üle 15). 2. Seose totaalsus - kui kõik olemi eksemplarid osalevad antud seoses, siis öeldakse, et seos katab olemi totaalselt v. täielikult (ingl.k. total relationship), vastasel juhul osaliselt (ingl.k. partial relationship). Totaaluses omadus iseloomustab seose ühe otsa olemitüüpi. Ilmselt kõik asutuse töötajad on seotud mingi allüksusega, aga ainult vähesed juhatavad allüksust (esimene seos katab töötajad totaalselt, teine osaliselt. 3

Seose omadusi saab kasutada mudelis esindatud andmete seisundi õigsuse kontrolliks (kui isikule tekkib teine abikaasa, on andmetega midagi valesti). Seepärast nimetatakse neid seose puhul deklareeritud omadusi mudeli kitsendusteks (ingl.k. constraints). Seose omadused on loomulikult modelleerimise küsimused mudel peab peegeldama reaalse maailma objektide vaheliste seoste omadusi. Olemitüüpidel saavad seostes olla erinevad rollid. Näiteks on võimalik, et osa olemeid saab eksisteerida ainult siis, kui vastav temaga seotud olem on olemas. Näiteks ühe tudengi eksami andemetel on mõte ainult siis, kui vastava tudengi enda andmed on ka olemas. Kui tudengi olem eemaldatakse süsteemist, siis koos temaga peaks eemaldatama ka tema eksamid. Selliseid seoseid, kus ühe olemitüübi eksemplaride olemasolu sõltub vastava teise olemitüübi eksemplari olemasolust, nimetatakse eksistentsiseosteks ja vastavat kitsendust eksistentsikitsenduseks. Üldiselt: kui olem x eksemplaride olemasolu sõltub olemi y eksemplari(de) olemasolust, siis x on seotud y-ga eksistentsiseosega. S.t. kui y eksemplar kustutatakse, siis kustutatakse ka temaga seotud x eksemplarid. Siin y on domineeriv olem (ingl.k. dominant entity) ja x alluv olem (ingl.k. subordinate entity). 2.3 Võtmed Olemi eksemplar andmebaasis esindab füüsiliselt identifitseeritavat objekti või nähtust reaalsest maailmast. Kui teda esindavad andmebaasis parajasti tema atribuudid, siis kuidas tagatakse kahe erineva olemi eristamine? Näited: kaks tudengit, mõlemal Jaan Kask nimeks; kaks õppejõudu, mõlemal Rein Jürgenson nimeks. Nende näidete puhul olemid ise on reaalses elus eristatavad ja me peame leidma vahendid, kuidas neid ka modelleerimisel eristada. Õnneks on riik huvitatud inimeste identifitseerimisest ja on loonud sellised tunnused nagu passinumber ja isikukood. Kui olem ei ole identifitseeritav (forell kaupluse letil teiste forellide seas, kirjaklamber karbis, jne), siis selliseid olemeid me ei modelleeri eraldi olemitena. Küll saame nende hulka modelleerida ühe olemina: kauplusesse saabunud kaup: forell, 325 kg, 7 /kg. Võti (ingl.k. key) on atribuut (või attribuutide kogum), mille väärtus(ed) üheselt määrab(/vad) olemi eksemplari antud tüüpi olemite hulgas. On täiesti selge, et kui atribuutide kogum K on võti, siis on seda ka mistahes K ülemhulk (saadakse K-le atribuutide lisamisega). Meid huvitab tihti minimaalne selline atribuutide hulk, mis on võti, s.t. selline atribuutide hulk, mille mistahes pärisalamhulk enam ei oleks võti. Seepärast nimetatakse võtmeks ainult neid minimaalseid võtme omadusega atribuutide hulki ja täiendatud hulki nimetatakse supervõtmeks (ingl.k.super key). Ühel olemil võib olla palju võtmeid. Näiteks tudengi isikukood, passi number, matriklinumber, lugejapileti number ja enamusel juhtudel ka tema ees- ja perekonnanimi koos sünnikuupäevaga - need kõik on võtmed. Viimane, nimedest ja sünnikuupäevast koosnev võti sobib mitmetunnuselise võtme näiteks. Et lihtsustada süsteemi tööd, määratakse nende võimalike võtmete seast üks olemi primaarseks võtmeks (ingl.k. primary key). Teisi nimetatakse võtmekandidaatideks (ingl.k. candidate key). Tavaliselt organiseeritakse andmekogum füüsiliselt primaarse võtme järgi s.t. Selle tunnuse väärtuse järgi saab vastava olemi eksemplari kiiresti (ilma kõiki eksemplare läbi vaatamata) kätte. 4

On võimalik moodustada olemite kogumeid, millel puudub primaarne võti, millel üldse puudub võti. Kui isikuandmetes puuduvad passiandmed, siis nimed ja sünnikuupäev ei pruugi olla piisavad iga isiku üheseks identifitseerimiseks. Raamatukogudes on tihti sama kohaviidaga mitu antud raamatu eksemplari ja ühte konkreetset füüsilist raamatut ei saagi tunnuste kaudu identifitseerida. Kui rahaülekannet antud arveldusarvelt iseloomustab ainult ülekande number (mis on küll unikaalne antud arvelt tehtud ülekannete hulgas, aga mitte kogu panga kõigi ülekannete hulgas), siis ülekanne ei ole selle numbri järgi üheselt identifitseeritav. Selliseid olemite kogumeid, millel ei ole võtit, nimetatakse nõrkadeks olemikogumiteks (ingl.k. weak entity sets). Primaarse võtmega olemit nimetatakse siis tugevaks olemiks. Mõisted tugev-nõrk olem on seotud mõistetega domineeriv-alluv olem: ainult tugev olem saab olla domineeriv, nõrk olem peab olema vähemalt ühes seoses alluv olem. Nõrgal olemil peab olema tunnus (või tunnuste hulk), mille väärtused lubavad eristada ühe tugeva olemi juurde kuuluvaid nõrku olemeid omavahel. Nõrgale olemile saame tüüpiliselt moodustada võtme temaga eksistentsiaalselt seotud tugeva olemi võtme lisamise teel tema mingile tunnusele. Näiteks arveldusarve numbri lisamisel ülekande numbrile, saame ülekande üheselt kogu panga ulatuses identifitseerida. Sama lugu on tudengi eksamitega: kui eksami olemis on kirjas ainult kuupäev, ainekood ja hinne, siis koos temaga seotud tugeva olemi tudeng võtmega 'matriklinumber', moodustab paar ainekood, matriklinumber tüüpiliselt võtme. (Millal see nii ei ole?) Ka seosed võivad omada võtmeid. Kui seose mõlemas otsas on tugevad olemid, tuleb võtta vastavate olemite primaarsed võtmed ja nad moodustavad seose üheseks identifitseerimiseks vajaliku võtme. Mida teha, kui seose üks osaline on nõrk olem? 3. Graafiliste mudelite ülesmärkimise vahendid Graafiliste mudelite kujusid on palju. Enamlevinud on neist kaks: E-R mudel (millel on endal mitu ülesmärkimise viisi) ja UML klassimudel. Vaatame mõlemaid lähemalt. 3.1 E-R mudel E-R mudelitest ongi olemas ainult graafiline kuju. Neid kasutatakse mudeli esimese lähendi esitamiseks, et pärast teisendada see mingile muule kujule. Olemi tüüpi tähistatakse ristkülikuga, tunnused (atribuute) ovaalidega. Jooni kasutatakse nii atribuutide sidumiseks olemitüübiga mille tunnused nad on, kui ka olemitüüpide sidumiseks omavahel. Seostele olemite vahel pannakse romb, et sinna kirjutada seose nimi. Iga skeemi element peab omama nime. Osakond Juhatab Isik Osakonnanimi Number Eesnimi Perenimi IK 5

Et kõiki kirjeldatud mõisteid ka graafiliselt saaks kujutada, kasutatakse järgmisi tähistusi: Olem nõrk olem seos atribuut multiväärtustega atribuut Mitme elemendiga atribuut arvutatav e. virtuaalne totaalne seos atribuut Näide: SOTL Ship_of_the_line laeva tüüp 6

Kasutatakse mitmesuguseid graafilisi esitusi : Leidub palju E-R mudeli edasiarendusi. Hilisemad kannavad nime EER-mudel e. Enhanced Entity-Relationship model täiendatud ER mudel. Ülesanne: võtke kaks omavahel seotud mõistet ja püüdke neid modelleerida E.-R vahenditega. Näiteks: raamat ja selle autor, üliõpilane ja tema juhendaja, ruumid hoones ja neis paiknevad statsionaarsed arvutid, jne. Olete ülesandele valesti lähenenud, kui teie kahe olemi vahel polegi mingit seost. Kas vahel on üks või mitu seost? Kas seos on 1-1, 1-n, n-1 või n-m tüüpi? E-R mudeli ajaloost E-R mudeli pakkus välja P.Chen 1976.a. Kuigi algselt oli idee ühendada selleks ajaks juba väljakujunenud hierarhiline ja võrkmudel ja unifitseerida nende vahendid, on E-R mudel praegu tuntud põhiliselt kui süsteemianalüüsi ja andmebaasi konstrueerimise esimeste etappide vahend. Teda on püütud siduda protsesside kirjeldamise vahenditega ja välja töötatud meetodid tema baasil objekt-orienteeritud mudel saamiseks. Toimuvad iga-aastased E-R mudelile pühendatud konverentsid. Ülesandeid mõtlemiseks: 1. Mille poolest E-R mudelis käsitletav olemi tüübi mõiste erineb näiteks programmeerimises käsitletavast andmetüübi mõistest? 2. Millise ülesande lahendamiseks on vaja olemiks võtta konkreetne füüsiline raamat (sama raamatu teine koopia on teine olem)? Millisele ülesandele võiks vaja minna raamatu ühe väljaande olemit? 3. Kuidas modelleerida seoseid ÕIS-i järgmiste olemite vahel: Aine, Õppejõud, Tudeng, Eksam/arvestus. 4. Olgu Tudeng olemitüüp, mille eksemplarideks on kõik TÜ tudengid. Genereerige niipalju rekursiivseid seoseid nende vahele, kui suudate (võite teatava piirini eirata reaalsust). 3.2 UML klassimudel UML (Universal Modelling Language) on graafiliste vahendite komplekt, mis katab tarkvaratehnoloogia vajaduse mudelite järele. Selles komplektis on 13 mudelite tüüpi, millest antud kursuses tutvume ainult ühe: klassimudeliga. 7

Klassi mudel: Annab terminite sõnastiku nii IT meeskonna jaoks kui tellijaga suhtlemiseks Saame üksteisest aru, millest üldse räägime. Annab esimese mustandi andmebaasi skeemi loomise jaoks. Klassi diagramme kasutatakse nii analüüsis kui disaini etapis. Klassimudel on kõige enam kasutatav mudelitüüp UML-perekonnast. Klassi mudeli süntaks Olemeid kirjeldatakse ristkülikuna, mis üldjuhul jagatud 3 osaks: 1. olemi tüübi nimi 2. tema atribuudid, igal tüüp ja tunnus, kas on + avalik, - privaatne, # - kaitstud, võib puududa. 3. meetodid (mis andmemudelite skitseerimise etapis võivad puududa) Näiteks: Tudeng # Matrikli number + Eesnimi +Perekonnanimi + Sünnikuupäev ID-kaardi number Vanus () Seosed esitatakse joonega, kuhu peale kirjutatakse seose nimi ja otstesse aarsus. Viimane näitab, mitu antud olemi tüübi eksemplari võib antud seosega seotud olla. Võimalused: 0..1 kas 0 või 1 n..m n kuni m 1 parajasti 1 1..* vähemasti 1 0..* arv pole piiratud 8

Näide selgitustega e. puust ja punaselt : (http://www.togethersoft.com/services/practical_guides/umlonlinecourse/#classdiagrams) NB! Seosetüüpide puhul kasutatavaid tähistusi on mitmeid, enne kui asute mingit skeemi lugema, peate aru saama, millist tähistust kasutatakse. Järgnev on üks sageli esinev tähistuste komplekt. Tähistus, kus asemel kasutatakse 9

Kokkuvõtteks veel üks levinud tähistus: Olem ja tema atribuudid Parajasti üks olemi eksemplar osaleb seoses Seoses osaleb kas üks või mitte ühtegi antud olemi eksemplari Üks või enam olemi eksemplari osaleb seoses Seoses osaleb kas mitte ühtegi, üks või mitu olemi eksemplari Seoses osaleb mitu olemi eksemplar 10