Transcript VAJE
PODATKOVNE BAZE naloge iz konceptualnega modeliranja mag. Boštjan Vouk TŠC Nova Gorica Programska orodja Konceptualno modeliranje • Dia – http://dia-installer.sourceforge.net/download.php Logično modeliranje • DBDesigner 4 – http://www.fabforce.net/downloads.php Fizično modeliranje • Oracle (SQL) Načrtovanje PB 1. Konceptualni model 2. Logični model 3. izdelava modela podatkov v organizaciji, ki naj zadovolji vse informacijske potrebe oz. zahteve na izbranem področju (primer: poslovni sistem – računovodstvo / finance, kadri, proizvodnja, prodaja, nabava, razvoj) izdelava modela podatkov, ki upošteva ciljno PB (primer: relacijska PB) Fizični model izdelava fizične PB, ki je odvisna od izbrane PB (tabele, povezave, pravila, poizvedbe, …) • V procesu načrtovanja PB uporabljamo različne metodologije. • Metodologija - strukturni pristop, ki vsebuje oz. uporablja različne procedure, tehnike, orodja in dokumentacijske tehnike Trije nivoji načrtovanja – trije modeli 1. 2. 3. Konceptualno načrtovanje – konceptualni oz. semantični podatkovni model Logično načrtovanje – logični podatkovni model Kreiranje fizične podatkovne baze – fizična podatkovna baza oz. fizični podatkovni model Prehodi med modeli in avtomatizacija prehodov Konceptualni model - Izhodišče IZHODIŠČE ??? • Opis problema v pisni ali ustni obliki in zahteve oz. želje uporabnika/ov; • Dokumentacija ( predpisana(zakonska) ali interna ); • Datotečna struktura (če obstaja) Konceptualni model - Problem Kaj je problem? – dobro definiran problem je pol rešitve! • Kako to dosežemo? – Spoznamo organizacijo kot celoto (poslovni & organizacijski sistem): • kdo izdeluje, posreduje, prodaja… • kako je organizirano delovanje… • kakšne so zahteve za podatki in informacijami: - vsakodnevne - občasne - tedenske, mesečne, letne… • postavimo temelje razumevanja organizacije dokumentacija (zunanja(zakonska) ali notranja) datotečni zapisi, če obstajajo in so dostopni Konceptualni model - Izdelava Postopek izdelave: 1. 2. 3. 4. 5. 6. 7. 8. Identifikacija entitet (entitetnih tipov) Identifikacija povezav (relationship) Identifikacija atributov (ime, opis, privzeta vrednost,….) Opredelitev domen (zaloga vrednosti) Določitev kandidatnih ključev in primarnega ključa Specializacija/Generalizacija entitetnih tipov (po potrebi) Risanje E/R (entity-relationship) diagrama Konzultacija z uporabnikom(i) Kaj je konceptualno načrtovanje? Konceptualno načrtovanje je opredelitev podatkovnih potreb oz. zahtev poslovne domene s pomočjo konceptualnega na semantičnem nivoju (semantičnega modela) Konceptualno načrtovanje preko konceptualnega modela poskrbi za opis pomena podatkov, potrebnih za poslovno domeno Konceptualnega načrtovanja ne moremo avtomatizirati, za njegovo izvedbo je odgovoren analitik. Gre za prenos semantike v model Kaj lahko še rečemo o konceptualnem načrtovanju? Je najbolj kritično, saj se napake narejene pri konceptualnem načrtovanje prenašajo naprej na naslednje modele Pri konceptualnem načrtovanju je zelo pomembno sodelovanje uporabnikov in interakcija z uporabniki. Uporabniki so nosilci znanja o poslovni domeni, so poznavalci semantike Konceptualno načrtovanje mora upoštevati tudi poslovna pravila Konceptualno načrtovanje Osnove konceptualnega načrtovanja Abstrakcija Entitetni model Metodologija konceptualnega načrtovanja: tehnike, pristopi, recepti Podatkovni podmodeli Prehod iz konceptualnega modela v logični model Predstavitev pojmov konceptualnega načrtovanja Percepcija sveta (poslovne domene), ki ga modeliramo: – Razumeti meje poslovne domene – Razumeti poslovno domeno (poslovne procese in poslovne funkcije) ter podatkovne potrebe poslovne domene Predstavitev intencionalnega dela percepcije: – Opis dejstev, pravil, objektov in dogodkov ter razmerij med njimi preko izdelave konceptualnega oz. semantičnega modela Percepcija, intencionalnost Percepcija: zaznavanje, zaznava Intencionalno: načrtno, premišljeno raziskovanje Intencionalni del percepcije: načrt, model narejen kot posledica raziskovanja preko percepcije poslovne domene. Model je lahko narejen v katerikoli diagramski tehniki, priporočeno v standardni Vir: Slovenski pravopis Abstrakcija Abstrakcija je mentalni proces, s pomočjo katerega se pri opazovanju in razmišljanju o poslovni domeni osredotočimo le na za nas pomembne karakteristike Abstrakcija je temelj ustrezne percepcije v okviru konceptualnega načrtovanja Epizodni spomin: pomnjenje dogodkov Semantični spomin: pomnjenje principov, pomnjenje oz. razumevanje konceptov Koncept predstavlja abstraktno idejo o tem, kaj neka stvar je, kaj pomeni, kako jo lahko opišemo… Abstrakcija Za konceptualno načrtovanje so pomembne tri vrste abstrakcije: – Klasifikacija – Ureditev tipov – Agregacija Klasifikacija Uporablja se za definiranje koncepta kot tipa objektov (dogodkov, predmetov, oseb, pravil, dejstev) na osnovi njihove podobnosti oz. skupnih lastnosti Skupne lastnosti so podlaga za razvrščanje objektov v pripadajoče tipe – koncepte Posamezni objekt lahko klasificiramo bodisi v le en tip, bodisi v več tipov hkrati Klasifikacija OSEBA Peter Tina OSEBA Peter ŠTUDENT Tina Ureditev tipov V okviru poslovne domene obstaja več tipov objektov, ki jih je možno urediti v delno urejeno množico z relacijo “je” Tip B je podtip tipa A, če ob vsakem trenutku velja, da so vsi primerki tipa B hkrati tudi primerki tipa A Vsak tip je podtip samega sebe Množice tipov objektov je delno urejena zato, ker vseh tipov objektov ni možno urediti z relacijo je Zaradi preglednosti ne prikazujemo tranzitivnih in rekurzivnih povezav met tipi objektov Ureditev tipov Urejenost tipov objektov podpira tudi dedovanje lastnosti Vsak tip deduje vse lastnosti svojega neposrednega nadtipa in tranzitivno od vseh nadrejenih tipov Ko ima tip več neposrednih nadtipov, deduje lastnosti od vseh Ureditev tipov OSEBA FAKULTETNI DELAVEC ŠTUDENT PEDAGOŠKI DELAVEC DEMONSTRATOR ADMINISTRATOR UČITELJ Ureditev tipov Posebna primera urejanja tipov sta generalizacija in specializacija Generalizacija je postopek prirejanja skupnega nadtipa dvema ali več obstoječim tipom Specializacija je postopek, kjer posameznemu tipu priredimo dva ali več podtipov. Običajno temelji na določeni lastnosti nadtipa Ureditev tipov OSEBA ŠTUDENT PEVEC OSEBA ŽENSKA MOŠKI Agregacija Preko agregacije definiramo novi – agregirani tip na osnovi obstoječih tipov Konceptualno ustreza agregaciji iz UML UML – The Unified Modeling Language – Grafični jezik • za vizualizacijo, specifikacijo, konstruiranje in dokumentiranje Zahteve pri izdelavi konceptualnega modela I Izraznost – Potrebna je možnost prikaza različnih konceptov za modeliranje različnih aspektov poslovne domene – Zato so potrebni koncepti za predstavitev tipov objektov, predstavitev njihovih lastnosti in njihovih medsebojnih razmerij Preprostost – Konceptualni model mora biti preprost, enostaven za uporabo ter lahko in nedvoumno razumljiv – Konceptualni model namreč služi tudi za komunikacijo med uporabnikom in analitikom Minimalnost – Vsak koncept naj ima svoj pomen – Model naj ne obsega sestavljenih konceptov – kompozitov, ki se jih da izraziti s pomočjo ostalih osnovnih konceptov – Uporaba kompozitov bi morda povečala izraznost in preprostost Zahteve pri izdelavi konceptualnega modela II Formalnost – Vsak koncept mora imeti natančno, enoumno in dobro definiran pomen – Ne sme biti dvoma o tem, kaj predstavlja oz. kaj pomeni nek koncept Grafična popolnost – Vsak koncept mora imeti svojo grafično predstavitev – Model naj ne bo predstavljen le v linearni obliki z uporabo simbolov, temveč v grafični obliki – Grafična oblika pozitivno vpliva na preprostost in večjo informativnost Berljivost – Model naj bo predstavljen pregledno – Za potrebe preglednosti uporabljati tudi večkratne pojavitve istega koncepta Lastnosti konceptualnega modela Pomen besedne zveze Konceptualni model: – Konkretni model okolja – poslovne domene, izražen z intencionalnimi tipi – Opisni in strukturni mehanizem, jezik za opis okolja – poslovne domene Cilj je, predstaviti poslovno domeno na način, ki bo čim bližje človekovemu razumevanju in dojemanju sveta Lastnosti konceptualnega modela: izraznost, preprostost, minimalnost, formalnost, grafična popolnost, berljivost Entitetni model – model entiteta razmerje Je najpogosteje uporabljana tehnika za predstavitev konceptualnih podatkovnih modelov Nazivi, ki se uporabljajo: – Konceptualni podatkovni model – Podatkovni model – Entitetni model – ER model – … Razširjeni model entiteta razmerje Vloga konceptualnega modela v razvoju IS Predstavlja podatkovne strukture, ki: – Omogočajo delovanje poslovnih procesov, poslovnih funkcij in izvajanje poslovnih pravil – Predstavljajo podatkovno podlago poslovnim procesom, poslovnim funkcijam in poslovnim pravilom Govorimo lahko o poslanstvu konceptualnega modela – entitetnega modela Koncepti entitetnega modela Entitetni tip (v žargonu se uporablja kar izraz entiteta) Atribut Razmerje Enolični identifikator entitete (ključ) Entitetni tip - Entiteta Entitete so posamezne instance tipov objektov iz poslovne domene: dogodki, predmeti, osebe, pravila, dejstva O entitetah obstaja določena predstava o tem: – kakšne lastnosti dejansko imajo – kakšne lastnosti jim moramo določiti (morajo imeti), da bodo izpolnjevale poslanstvo entitetnega modela Na osnovi predstave o tem in percepcije, lahko entitete klasificiramo v entitetne tipe: vse entitete, ki ustrezajo določeni predstavi, pripadajo posameznemu entitetnemu tipu Entitetni tip – Entiteta Vsak trenutek pripada posameznemu entitetnemu tipu množica entitet tega entitetnega tipa, ki jo imenujemo entitetna množica Entitetna množica je časovno spremenljiva: entitete nastajajo, se spreminjajo in tudi izginjajo (izstopajo iz množice). Entitetna množica je v nekem trenutku lahko tudi prazna Simbol za predstavitev entitete IME ENTITETE Entitetni tip – Entiteta Različno dojemanje in/ali poimenovanje istega entitetnega tipa – istega koncepta Razumevanje/poznavanje koncepta iz različnih zornih kotov Razmerje med entitetami – entitetnimi tipi Entitete niso svet zase, medsebojno se povezujejo preko razmerij, povezav Razmerje ima določen pomen Predstavitev razmerja v klasičnem modelu entitetarazmerje in v entitetnem modelu (v zadnjem času se v praksi uporablja entitetni model) Med opazovanim parom (v splošnem podmnožici) entitet je lahko več razmerij: OSEBA, KRAJ – stalno bivališče, začasno bivališče Predstavitev razmerja OSEBA živi KRAJ Atribut Entitete imajo določene lastnosti, posamezne entitete (istega entitetnega tipa) se med seboj razlikujejo po vrednosti njihovih lastnosti Entiteta ima praviloma veliko lastnosti, le del teh lastnosti je zanimiv oz. pomemben za opazovano poslovno domeno Lastnosti, ki so pomembne za opazovano poslovno domeno, vključimo v konceptualni model tako, da jih kot atribute določimo entiteti (entitetnemu tipu) Atribut Govorimo lahko o več vrstah lastnosti: – Entitetna imena: naziv, ime, opis – Prave entitetne lastnosti: višina, teža, cena, vrednost – Lastnosti, ki jih določimo za potrebe poslovnih procesov, poslovnih funkcij in poslovnih pravil: statusi Atribut določimo za tisto lastnost, ki je za poslovno domeno pomembna Primer: Konceptualni model p/b OPIS: – Podan je naslednji opis sistema. Obstajajo osebe, ki jih opišemo z imenom, priimkom, starostjo, krajem bivanja in krajem rojstva. Osebe so lahko moškega in ženskega spola. Za moške nas zanima še vojaški čin, če ga ima, za ženske pa dekliški priimek. Za kraj nas zanima še čas bivanja v kraju (leta bivanja) in število prebivalstva. Tako za kraj rojstva kot tudi kraj bivanja, nas zanima država v kateri se nahaja(jo). Poleg imena države nas zanima še število prebivalstva države. Izdelaj konceptualni model ! Primer: Konceptualni model p/b 1) Entitete: entitete so posamezne stvari, ki obstajajo ali mislimo da obstajajo Osebe (moški + ženske; to so podtipi); specializacija Kraji Države Primer: Konceptualni model p/b 2) Povezave: razmerja med entitetami (1:1, 1:N, M:N) Oseba / Kraji (je rojena) Oseba / Kraji (je bivala) ; povezava vsebuje atribut: število let Kraji / Drzave (leži v) Primer: Konceptualni model p/b 3) Atributi : so lastnosti entitet. Vsakemu atributu definiramo kardinalnost (m,n); m je min. število in n max. pojavitev Osebe( ime, priimek, starost) podtip Moski (vojaški čin) podtip Zenska(dekliški priimek) Kraji(ime, število prebivalcev) Drzave(ime, število prebivalcev) Primer: Konceptualni model p/b 4) Domene: vrednosti, ki jih lahko ima atribut. Glede na domeno definiramo podatkovni tip znakovni tipi številčni tipi datumski tip … Primer: Konceptualni model p/b 5) Identifikatorji – ključi ( močni-sestavljen iz lastnih atributov, šibki-sestavljen iz atributov več entitet) Osebe( ime, priimek, starost); lahko tudi ID podtip Moski (vojaški čin) podtip Zenska(dekliški priimek) pri podtipih identifikatorja (ključa) nista postavljena ker dedujeta vse lastnosti od nadtipa OSEBE Kraji( ime, število prebivalcev); lahko tudi ID Drzave( ime, število prebivalcev); lahko tudi ID Primer: Konceptualni model p/b 6.) Specializacija / generalizacija (t,e) totalno in ekskluzivno pokrivanje osebe moški, ženske Orodje za izdelavo konceptualnega modela Dia http://dia-installer.sourceforge.net/download.php Primer: Konceptualni model p/b 7.) E / R diagram (dia-installer.sourceforge.net ) Priime k Id Id (1,1) (1,n) Je rojena Ime Ime KRAJI OSEBA Starost (1,n) Je bivala št.preb. (1,n) (1,1) (t,e) Se nahaja Voj.cin MOSKI ZENSKA dek.priimek (1,n) Ime DRZAVE št.preb. Vaja 1: Konceptualni model p/b Planica OPIS: – V Planici vsako leto prirejajo tekmovanja v smučarskih skokih in poletih. O tekmovanjih zbiramo več podatkov: datum in čas začetka tekmovanja, ime tekmovanja (npr. »20. TEKMOVANJE ZA SVETOVNI POKAL«) , predviden čas trajanja in na kateri skakalnici poteka (npr. »90 metrska skakalnica«). Neko tekmovanje lahko poteka le na eni izmed skakalnic. Na tekmovanja se lahko prijavijo tekmovalci za katere moramo poznati: ime, priimek in ime države iz katere prihaja (npr. »NORVEŠKA«). Za vsakega tekmovalca vodimo tudi podatke o skokih, ki jih je izvedel na posameznem tekmovanju. Za vsak skok poznamo tudi dolžino skoka v metrih (npr. 158,6), skupno oceno za slog v točkah (npr. 8,98), status skoka (npr. »USPEŠEN«, »RAZVELJAVLJEN«, »PADEC«,…) in zaporedno številko skoka (vsak tekmovalec lahko izvede največ tri skoke, oziroma v primeru ponovitve tudi več). Izdelaj konceptualni model ! Vaja 2: Konceptualni model p/b Formula1 OPIS: Sestavite konceptualni model podatkov, s katerim boste hranili podatke o tekmovanju formule 1. O tekmovanju hranimo naslednje podatke: država, kraj, ime steze, datum in ura začetka tekme, vreme (deževno, oblačno, spremenljivo, sončno), temperaturo zraka in steze ter sliko steze, število obiskovalcev in število nastopajočih voznikov. Vsako tekmovanje je označeno z zaporedno številko (2 mesti). Za vsakega voznika hranimo ime, priimek, ime moštva, zaporedno številko, štartno mesto, čas najhitrejšega kroga in sliko. V kolikor je voznik prišel do cilja, hranimo podatke o doseženem mestu, številu prevoženih krogov, skupnem času in povprečni hitrosti. Če je voznik izpadel, zabeležimo številko kroga in razlog (okvara, nesreča, vozniška napaka). Izdelaj konceptualni model ! Vaja 3: Konceptualni model p/b Evidenca zdravil OPIS: – Aplikacija evidenca zdravil naj omogoča evidenco zdravil, njihovih dobaviteljev ter evidenco porabe zdravil po uporabnikih. Aplikacija naj omogoča tudi evidenco zalog in njihovo naročanje ko le-te padejo pod neko kritično količino – signalno zalogo. O zdravilih hranimo naslednje podatke: šifro, naziv, dobavitelja, cena, davčna skupina in opis. Vodimo tudi evidenco zalog zdravil po letih. O dobaviteljih/kupcih vodimo naslednje podatke: šifra, naziv, kraj, naslov, poštna številka in naziv pošte, država, telefon, fax, e-mail in kontaktna oseba. Zdravila prejmemo z dokumentom (prejeta dobavnica), izdamo/prodamo pa z dokumentom (izdana dobavnica oz. račun). O dokumentih vodimo podatke: vrsta dokumenta(prejeta dobavnica, izdana dobavnica,…), številka dokumenta, datum dokumenta, kupec/dobavitelj. Vsak dokument ima še podrobnosti, to so podatki : zdravilo(izdelek) in količina. Izdelaj konceptualni model ! Vaja 4: Konceptualni model p/b Bančno poslovanje OPIS: – Enostavno bančno poslovanje naj omogoča evidenco komitentov(strank), bank ter evidenco dvigov oz. pologov in posojil. Za komitente hranimo naslednje podatke: ime in priimek, naslov, kraj, pošto in naziv pošte ter višina limita in dnevnega limita. Za banke pa naslednje podatke: naziv, naslov in kraj. Komitenti(stranke) lahko dvigujejo in polagajo na svoj bančni račun različne vsote denarja, dvig pa je omejen z limitom. Vsak uporabnik lahko dvigne na dan samo določeno vsoto denarja(dnevni limit). Poleg tega komitent najame lahko tudi posojilo/a pri banki, ki jih odplačuje v mesečnih obrokih. O le-teh hranimo naslednje podatke : višina posojila (glavnica), število obrokov in višina obroka. Izdelaj konceptualni model ! Vaja 5: Konceptualni model p/b Volitve v šolski parlament OPIS: – Na volitvah v šolski parlament, dijaki glasujejo tako da, na volilnem listu obkrožijo številko kandidata za katerega glasujejo. Vsak dijak odda dva glasova: enega za predsednika in enega za člana šolskega parlamenta. O dijakih evidentiramo naslednje podatke: vpisna številka, ime in priimek, datum rojstva in razred, o kandidatih pa poleg le-teh še zaporedno številko kandidata, ki jo določimo z žrebom ter volilni program. Izide volitev zapišemo tako da, poleg vpisne številke dijaka, ki je volil zapišemo tudi zaporedno številko kandidata za katerega je glasoval ter funkcijo (član ali predsednik). Izdelaj konceptualni model ! Vaja 6: Konceptualni model p/b Prevozi OPIS: – Transportna delovna organizacija opravlja transportno-prevozniško dejavnost. Prevoze opravljajo s tovornjaki. Ker se tovornjaki med seboj razlikujejo in so izkušnje ter vozne sposobnosti voznikov različne, je v podjetju za vsak posamezni tovornjak znano, kateri voznik sme voziti kateri tovornjak. Za vsakega voznika jih zanimajo naslednji podatki: ime in priimek, naslov, kraj, državljanstvo in kategorije(A,B,C,D,E), za katere ima izpit. Za vsako vozilo jih zanima naslednje: teža, nosilnost, znamka, dolžina in tip. Za vsako naročilo stranke se izda delovni nalog, ki lahko obsega tudi več prevozov. Za vsak posamezni prevoz nas zanima teža tovora in pa cena prevoza. Vse prevoze enega delovnega naloga opravi isti voznik. Ko je posel opravljen, se za delovni nalog stranki izda račun. Izdelaj konceptualni model ! Vaja 7: Konceptualni model p/b Datotečna struktura Izdelaj konceptualni model na osnovi naslednjih (datotečnih) zapisov : type student=record stStudenta: integer; type ocena=record ime: string; stStudenta: integer; primek: string; stPredmeta: integer; naslov: string; stUcitelja: integer; end; datum: string; ocena:ineteger; end; type ucitelj=record stUcitelja: integer; ime: string; primek: string; naslov: string; end; type predmet=record stPredmeta: integer; ime: string; end; Vaja 8: Konceptualni model p/b Dokumentacija Številka naročilnice: 123456 21.12.99 Kupec: 432 Datum: FOV Prešernova 11, 4000 Kranj Komentar: Dobaviti na računalniški center, Kidričeva 57l Vaja 9: Konceptualni model p/b Osebna izkaznica Izdelaj konceptualni model na podlagi Osebne izkaznice.