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.