logicko modelovanje podataka (baze podataka)
DESCRIPTION
Logicko Modelovanje Podataka (Baze Podataka)TRANSCRIPT
NEKA HEURISTIKA UPUTSTVA ZA PROJEKTOVANJE BAZE PODATAKA
NEKA HEURISTIKA UPUTSTVA ZA PROJEKTOVANJE BAZE PODATAKA
CILJEVI:
1. Minimum redundanse.
2. Optimalno prema programskoj podrci - minimum utroka vremena za izdvajanje podataka i memorije. Funkcionalnost. Upotrebljivost u realnim uslovima.
3. Optimalno prema promenama u vremenu - pogodnost kasnijeg odravanja i intervencija. Fleksibilnost. Sistem treba da ivi u vremenu uz minimalne ili nikakve intervencije nad bazom.
4. Ugraivanje semantikih odnosa realnog sveta - adekvatnost
5. Ugraivanje ogranienja (integriteta) u bazu podataka odnosno, ako je implementirano u samom SRBP-u, koristiti to vie DEKLARATIVNOST SQL naredbi, ili mehanizme zatite integriteta baze podataka (integritet domena, integritet torke relacije, referencijalni integritet)
- da baza podataka sama sebe titi od greaka (unosa), a ne da zavisi od programa
- ugraivanje lokalnih pravila u vidu kardinaliteta ili uopte u odnosima, tj. ugraivanje poslovnih pravila (loklanih pravila koja vae u odreenoj organizaciji)
6. Potpunost modela podataka, tako da pokriva podacima sve procese koji su definisani u SSA, a pre svega primitivne procese, tj, da su sve informacione potrebe pokrivene, tj. svaki elementarni podatak iz SSA da ima adekvatan atribut u MOV, tj CDM-u. Dakle, pokrivenost potreba realnog sistema.
7. Smanjenje broja tabela, radi lake manipulacije i fleksibilnijeg reenja
8. Uvoenje "reda", zbog anomalija auriranja, korektnost.
MATERIJAL KOJI KORISTIMO:
1. TEKST OPISA POSLA
2. STRUKTURNU SISTEM ANALIZU
a. Elementarni podaci - na osnovu njih dobijamo atribute za entitete
b. Odnosi elementarnih podataka (sintaksa pomou zagrada) - elementarni podaci koji se javljaju u jednoj celini najee pripadaju jednom entitetu, {} govori o ponavljanju, [] isA, // null
c. Skladita podataka - najee se razbijaju na entitete, tabele
d. Primitivni procesi - osnov za podeme (podmodele) BP
e. Poslovna pravila - tabele sa parametrima
f. Domeni - ifarnike tabele - entiteti
POSTUPAK:
Postupak nije linearan. Opisan je kao niz koraka koje treba uraditi jednom ili vie puta u iteracijama.
1. Preuzimanje elementarnih podataka
a. Importovanje elementarnih podataka iz SSA
b. Transformacija elementarnih podataka koji su preuzeti iz SSA, ukoliko u SSA nije izvrena korekcija
- Elementarni podaci koji su mnoina postaju jednina
- Elementarni podaci koji se nazivaju kao struktura i mogu se dalje dekomponovati na elementarne podatke, vri se kreiranje novih elementarnih podataka koji ine tu strukturu.
- Nepotpuno imenovani elementarni podaci se dopunjuju dovoljno preciznim imenom.
- Neophodno je imati, za nedovoljno jasno imenovane elementarne podatke detaljniji opis (npr. u Annotation delu u CASE alatu), kako bi se potpuno razumelo znaenje kako bi se moglo pravilno odrediti njegovo mesto.
- Sinonimi (razliciti termini za isti pojam, svode se na jedan termin)= i homonimi (jedan termin za razne upotrebe, razdvajaju se razlicite pojave)
2. Kreiranje preliminarnog skupa entiteta i dodeljivanje atributa, primena heuristika ([ML], str. 51):
- ANALIZA TEKSTA OPISA POSLA: Imenice (subjekti, objekti) iz opisa posla postaju kandidati za entitete
- IJI ELEMENTARNI PODATAK: Na osnovu imena elementarnog podatka, odreuje se koji je entitet kojem pripada, pa se kreira odgovarajui entitet i njemu dodeljuje ovaj i ostali atributi koji mu odgovaraju.
- DEKOMPOZICIJA SKLADITA PODATAKA: Sva skladita podataka se preuzimaju iz DTP-a (SSA) i vri se njihova dekompozicija na entitete, tako to se uoavaju odnosi izmeu elementarnih podataka na nivou svakog skladita ponaosob (brojni odnosi, odnosi meuzavisnosti) i koriste se odnosi izraeni u navoenju strukture skladita pomou zagrada.
- NORMALIZACIJA - dovoenje skladita podataka do "normalizovanih" entiteta
1. normalna forma - atomarne vrednosti
2. normalna forma - potpuna funkcionalna zavisnost svakog od nekljunih obeleja od kandidata za klju
3. normalna forma - nepostojanje tranzitivnih funkcionalnih zavisnosti (obavezno), nepostojanje izraunljivih polja (u nekim sluajevima se dozvoljava, ali se mora strogo kontrolisati)
3. Transformacija preliminarnog skupa entiteta i atributa
a. Eliminisanje redundanse - atributi koji se ponavljaju u vie entiteta se izdvajaju u posebnu tabelu. Jedan elementarni podatak bi trebalo da se memorie samo u jednoj tabeli.
b. Transformacija elementarnih podataka - bitno je da se svaki elementarni podatak koji je preuzet iz SSA bude pokriven nekim oblikom.
- Izraunljivi elementarni podaci se ne memoriu, ve se od ostalih elementarnih podataka trai da li se moe pokriti njihovo izraunavanje, ukoliko je trivijalno njihovo izraunavanje, a ukoliko ne moe, dodaju se elementarni podaci koji su sirovi za ovaj izraunljivi podatak. Primeri: prosena ocena studenta, prosena plata radnika, broj studenata po smerovima,...
- Reavanje problema sinonima i homonima - potrebno je da ostane samo jedan termin za istovetno znaenje. HOMONIMI - isti naziv a razliito znaenje (semantika). Na primer, Obeleje DATUM, moe da znai Datum roenja Radnika, ali i Datum zaposlenja Radnika, pa jedan naziv DATUM ima razliito znaenje.
c. Dodavanje elementarnih podataka
- Dodavanje identifikacionih obeleja - Zgodno je da se identifikaciono obeleje zove ID_xxx, ili samo XXX, npr, Id_pacijenta, ili samo Pacijent (zgodno kasnije kada se vri migracija polja u drugu tabelu). Zaista, to polje je tamo u toj tabeli predstavnik pacijenta, tj, njegov zastupnik, pa je lake zbog razumevanja
- Dodavanje jo nekih atributa za odreene entitete, ukoliko se ukae potreba, a nije definisana u SSA.
d. Apstrakcija
- Uoptavanje vie slinih entiteta u jedan opti. Pri tome se kreiraju novi, opti atributi. Ovi konkretni slulajevi postaju vrste tog entiteta i kao takvi se javljaju u konkretnim slogovima, kao pojavni oblici. Potrebno je dodati jo jednu kolonu u tom optem entitetu, kojim se omoguuje razlikovanje objekata razliite vrste.
Mora se voditi rauna o tome da se tim uoptavanjem ne izgubi neki potreban podatak. Npr. ne mogu se svi datumi uoptiti u jedan elementarni podatak DATUM, jer nije svejedno da li je u pitanju DATUM IZDAVANJA ili DATUM VRACANJA u nekoj biblioteci.
Uoptavanje (generalizacija) se uglavnom vri na nivou vie entiteta. Moe se vriti i na nivou atributa, u situacijama kada je dozvoljeno i omogueno da se svi pojedinani sluajevi adekvatno pokriju. Npr. OCENA_MATEMATIKA i OCENA_SRPSKI se MORA apstrahovati u OCENA, NAZIV_PREDMETA ... kako bismo dobili fleksibilnije reenje.
Postoji vie REENJA kao projekta baze podataka, u zavisnosti od NIVOA APSTRAKCIJE.
e. Uoavanje odnosa (brojnih npr. 1:M i identifikacionih (funkcionalnih) zavisnosti) izmeu elementarnih podataka i izdvajanje grupa elementarnih podataka iz entiteta u poseban entitet
- uoavanje odnosa prema identifikacionom obeleju
- uoavanje meusobnih odnosa elementarnih podataka
f-a. Uoavanje i imenovanje odnosa izmeu entiteta
- odnosi celina - deo (npr. zaglavlje - stavke)
- odnosi opte - specifino
- odnosi stalno - promenljivo
- odnosi statino- dinamino
- odnosi potencijalno - stvarno
- odnosi prolo - sadanje- budue
- odnosi jedan -vie
- odnosi pre- posle
- odnosi sirovo- izraunljivo
- stanja jednog objekta se menjaju u vremenu.
Bitno je:
- Uloge jednog entiteta se ostvaruju relacijama ka drugim entitetima.
Primer: Moe se na jednom mestu memorisati tabela Mesto, a ona ima ulogu mesta roenja, mesta stanovanja, mesta kao sedita neke firme itd. i sve to u istoj tabeli.
f-b. Izdvajanje tipova entiteta:
Razlikovati:
- Entitet koji opisuje dokument.
- Entitet koji opisuje injenice o nekom objektu ili dogaaju.
Na je cilj fleksibilno reenje, tako da ne treba da teimo da memoriemo podatke pod nazivima dokumenata, jer je to promenljiva kategorija. Bolje je memorisati podatke o injenicama o dogaajima ili objektima, ukoliko nije potrebno da se realizuje deo za evidenciju dokumenata, pored osnovne evidencije dogaaja i objekata.
Razlikovati:
- tabelu ifarnik
- tabelu znanje
- tabelu poveziva
- tabelu koja opisuje osnovnu dinamiku redovnog rada (pokriva obradu, tj. primitivne procese iz SSA).
g. Kreiranje ifarnika
- Transformacija nabrojivog domena u ifarniku tabelu
- Izdvajanje elementarnog podatka koji ima nabrojivi domen vrednosti koji se pri unosu esto ponavlja - elementarni podatak koji ima nabrojiv skup vrednosti koji se esto unosi u originalnoj tabeli se izdvaja u posebnu tabelu ifarnik - memorie se ifra i naziv te vrste podatka. Unosi se samo jednom, a koristi vie puta, kad god treba, pozivom preko ifre se memorie, tako da ukoliko se podatak iz ifarnika menja, menja se automatski svako njegovo pojavljivanje u tabelama gde je njegova ifra strani klju.
- Jedan podatak je opti i koristie se na vie mesta, ako se izdvoji kao posebna tabela. Npr. tabela MESTO nastaje na osnovu polja: mesto roenja i mesto stanovanja.
g. Odreivanje kardinaliteta relacije
- odreivanje kardinaliteta svakog od preslikavanja
- voditi rauna da se odreivanje vri u 2 koraka:
- 1. Odnosi izmeu elemenata realnog sistema (vee ograniavanje)
- 2. Odnosi izmeu tabela u bazi podataka (manje ograniavanje, ukoliko se moe)
h. Odreivanje primarnog kljua za svaku buduu tabelu BP
Kriterijum:
- Jednoznanost
- Potpunost
- Minimalnost
Postoje 3 varijante:
- Prost broja od 1 polja za svaki entitet, koji slui samo za ostvarivanje relacija u prevoenju irelacioni model (jednostavnije je da se prenosi samo jedno polje, a ne sloeni primarni klju). Obavezno je kasnije u PDM-u (modelu relacione baze podataka) da se za svaku tabelu odredi unique index kojim se definiu alternativni kljuevi, tj. kombinacije polja koje se ne smeju ponoviti.
- Sloeni primarni klju (najee se sastoji od polja koja nose neko znaenje). Obezbeuje semantiku jednostvenost sloga, a nedostatak je pri migraciji polja.
- Tzv. govoree ifre - jedan elementarni podatak iji delovi imaju znaenje. Npr. Broj indeksa ili JMBG.
i. Odreivanje identifikacionih zavisnosti izmeu entiteta. Odreivanje tipova entiteta.
4. Zavrna optimizacija - izbor jedne od moguih korektnih varijanti, radi postizanja vee upotrebljivosti u okviru korienja od strane programa
Vri se u odnosu na:
- performanse celokupnog sistema, zajedno sa programom. Npr. dozvoljavaju se izraunljiva polja, ukoliko se time postie skraenje vremena odziva sistema, na zadatu komandu.
- lakou odravanja. Napraviti takvu organizaciju tabela koja zahteva kasnije to manje popravke i intervencije. Npr. sve to je mogue se uoptava i saima, tako da se dobija fleksibilno i upravljivo reenje.
Primeri:
- Mogu se podaci o ulazu ili izlazu neke materije objediniti da se uvaju u jednoj tabeli, sa bulovim poljem (.T. ili .F.) koji opisuje da li je ulaz ili izlaz.
- Mogu se svi ifarnici objediniti da se uvaju u jednoj tabeli. Potrebna je pored ifre i naziva jo i kolona tip ifarnika.
5. Kreiranje podmodela - provera potpunosti i povezanosti modela
- Kreiranje podmodela se radi kao izdvajanje podeme celokupne eme baze podataka, i to za svaki od primitivnih procesa se radi po jedna podema baze podataka.
- Podmodeli se rade iz 2 razloga:
- Proveravanje da li su svi primitivni procesi pokriveni podacima (dakle, pomou tih entiteta, tj. tabela e biti realizovan taj proces,
po pitanju unosa i pregleda podataka)
- Da li su na podmodelu svi entiteti meusobno povezani. Ako nisu, povezani su preko nekog drugog, pa i njega treba ukljuiti u
podmodel, ili da se doda direktna veza izmeu entiteta na celokupnoj emi.
6. Kreiranje fizikog modela podataka (PDM, odgovara relacionom modelu)
Fiziki model se u CASE alatu kreira automatski. U sutini se svodi na prevoenje MOV u RM, pri emu se RM koji se dobije dodaju osobine koje su vezane za konkretni SUBP za koji se uradio fiziki model. Kada je kreiran, proverava se:
- Da li su elementarni podaci odgovarajueg tipa podatka? Voditi rauna da neko polje ne postane memo, a trebalo bi da je string!
- Da li je dobro izvrena migracija primarnog kljua? Da li je dobijen eljeni relacioni model.
- Da li elementarni podaci imaju jasni naziv? Preimenovanje elementarnih podataka u jasnije i potpunije nazive.- Da li primarni klju obezbeuje semantiku jedinstvenost podataka u datoj tabeli? Najee je primrni klju "obian" broja i ne obezbeuje ouvanje semantike jedinstvenosti sloga, u smislu da se moe pod nekim drugim brojem uneti dati slog, tj, ostali nekljuni podaci. Da bi se to spreilo, radi se kreiranje Unique index-a nad svakom od tabela, gde je to mogue!
- Da li je obezbeen integritet podataka, pre svega referencijalni integritet putem pravila za ouvanje referencijalnog integriteta?PAGE 4