Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Softverski studio IV
Rečnik podataka. Model podataka.
dr Svetlana Anđelić
Šta ćete naučiti na ovom bloku?
• Rečnik podataka
• Model podataka
Rečnik podataka- pojam -
• Katalog koji sadrži koncizan skup definicija svih podataka sistema koji
se proučava.
• Rečnik podataka opisuje sadržaj i strukturu svih tokova i skladišta
podataka.
• Svaki rečnik podataka smešta i opisuje sve vrste podataka u sistemu:
o opis polja definisanih nad podacima,
o opis struktura podataka koji se koriste u tokovima podataka,
o opis domena.
Rečnik podataka- pojam -
• Rečnik podataka daje opis strukture i sadržaja svih tokova i skladišta
podataka, bez obzira šta tok ili skladište podataka predstavljaju:
o papirni dokument,
o niz karaktera kao ulaz sa terminala,
o "paket" informacija dobijen telekomunikacionom linijom,
o kartoteku ili datoteku.
Rečnik podataka- polja -
• Polje je elementarna (atomska) struktura koja se dalje ne dekomponuje i
koja ima svoju vrednost.
• Polja su osnovni podaci iz kojih su sačinjene strukture;
• Polja se definišu tako što im se dodeljuje naziv, domen nad kojim su
definisana i ograničenja;
• Na primer, u indeksu studenta, polja su BROJ_INDEKSA,
IME_I_PREZIME, OCENA, STATUS, i slično
Rečnik podataka- domen -
• Polja svoje vrednosti uzimaju iz skupova vrednosti koji se nazivaju
domenima.
• Domeni mogu biti:• predefinisani, odnosno standardni programsko-jezički domeni, koji se
definišu na sledeći način: integer, character, real, logical, date
• semantički, kada se definišu posebno, preko svog imena, predefinisanog
domena, i eventualno, ograničenja na mogući skup vrednosti
predefinisanog domena. Na primer, semantički domen semestri se definiše
kao: semestri defined_as integer(2) between 1,10
Rečnik podataka- polja i domeni -
• Činjenica da polje uzima vrednost iz nekog domena označava se na
sledeći način: naziv polja: domen [ograničenje]
• Na primer:
o BI: CARACTER(7)
o SEMESTAR: SEMESTRI
o OCENA: INT(2) IN (5,6,7,8,9,10)
o SEMESTVŠ: SEMESTRI IN (1,2,3,4) *Semestar visoke škole*
Rečnik podataka- polja i domeni -
• Dva polja su semantički slična samo ako su definisana nad istim
domenom.
• Drugim rečima, semantički domeni uspostavljaju razliku između
pojedinih istovrsnih predefinisanih domena koji nemaju semantičku
sličnost
• Npr. Semestar
Rečnik podataka- prosta ograničenja -
• Θ konstanta, gde je Θ bilo koji operator poređenja koji se na datom
domenu može definisati (na primer, , =, = za brojne
domene), a konstanta je neka definisana vrednost iz datog domena.
o Na primer: STAROST: INT(2) < 65
• BETWEEN konstanta, konstanta, gde su konstante vrednosti iz datog
domena.
o Na primer: SEMESTAR: INTEGER(2) BETWEEN 1,10
Rečnik podataka- prosta ograničenja -
• IN (lista vrednosti), gde se lista formira od konstanti iz odgovarajućeg
domena.
o Na primer: OCENA INT(2) IN (5,6,7,8,9,10)
• NOT NULL, kada dato polje ne može da dobije "vrednost nula",
odnosno mora uvek da ima neku vrednost.
o Na primer: BROJ_INDEKSA: CHARACTER(7) NOT NULL
Rečnik podataka- složena ograničenja -
• Formiraju se od prostih ili drugih složenih ograničenja tako što se
vezuju logičkim operatorima AND, OR i NOT.
o Na primer:
▪ STAROST: INT(2)
Rečnik podataka- strukture -
• Struktura tokova podataka i skladišta predstavlja neku kompoziciju
polja, odnosno konstrukciju čije su komponente polja.
• Očigledno je da se kao komponenta jedne strukture, može, pored polja,
pojaviti i druga definisana struktura.
Rečnik podataka- konstrukcija struktura -
• Agregacija komponenti
• Eksluzivna specijalizacija (unija) komponenti
• Neeksluzivna specijalizacija (unija) komponenti
• Skup komponenti (skup više vrednosti jedne komponente)
Rečnik podataka- agregacija komponenti -
• Agregacija predstavlja složenu strukturu n komponenti
• Lista komponenti se zapisuje u "špicastim" zagradama
• Na primer: ISPITNA_PRIJAVA: < BROJ_INDEKSA,IME_STUDENTA,
NAZIV_PREDMETA,
DATUM_POLAGANJA,
OCENA,
IME_NASTAVNIKA
>
Rečnik podataka- Eksluzivna specijalizacija (unija) komponenti -
• Predstavlja se kao lista komponenti u uglastim zagradama – [a,b,c] i
označava da se u strukturi pojavljuje eksluzivno jedna od navedenih
komponenti, ili a ili b ili c.
• Ako se u uglastoj zagradi pojavi samo jedna komponenta, npr. [a], to
znači da se u strukturi ova komponenta javlja ili ne javlja.
Rečnik podataka- Eksluzivna specijalizacija (unija) komponenti -
• Primer za eksluzivnu specijalizaciju komponenti je:
PROIZVOD: < ŠIFRA_PR,
NAZIV_PR,
[ STOPA_AMORT, KOLIČ_NARUČ ]
>
• Podaci o proizvodu pretstavljaju agregaciju polja ŠIFRA_PR i NAZIV_PR i
eksluzivne specijalizacije [STOPA_AMORT, KOLIČ_NARUČ] koja kaže da se u
strukturi javlja bilo polje STOPA_AMORT (ako je proizvod osnovno
sredstvo), bilo KOLIČ_NARUČ (ako je proizvod materijal za proizvodnju)
Rečnik podataka- Neeksluzivna specijalizacija (unija) komponenti -
• Predstavlja se kao lista komponenti u kosim zagradama /a,b,c/ i
označava da se u odgovarajućoj strukturi pojavljuje bilo samo jedna,
komponenta, bilo dve, ili sve.
• Primer za neeksluzivnu specijalizaciju je:
STUD_ZAHTEV: / ZAHTEV_ZA_UVER_STATUS,
ZAHTEV_ZA_UVER_POL_ISPIT/
• Student može da podnese bilo zahtev za uverenje o statusu (redovan ili
vanredan), bilo zahtev za uverenje o položenim ispitima, bilo oba.
Rečnik podataka- Skup komponenti -
• Skup komponenti (preciznije skup više vrednosti jedne komponente),
koji se predstavlja u vitičastim zagradama, na primer {a}, koja kaže da se
u odgovarajućoj strukturi neka komponenta može pojaviti više puta.
Rečnik podataka- Skup komponenti -
• Primer:
UVERENJE_O_POL_ISPIT: < BROJ_INDEKSA,
IME_STUDENTA,
{< NAZIV_PREDMETA, OCENA>},
PROSEČNA_OCENA
>
• UVERENJE_O_POL_ISPIT je agregacija polja BROJ_INDEKSA i IME_STUDENTA, zatim
skupa agregacije polja NAZIV_PREDMETA, OCENA (naziv predmeta i ocena se
na uverenju više puta ponavljaju) i polja PROSEČNA_OCENA.
Rečnik podataka- sintaksa za specifikaciju -
• Rečnik podataka sadrži četiri osnovna segmenta:
1. za opis struktura skladišta i tokova,
2. za opis polja,
3. za opis semantičkih domena, i
4. za definiciju logičkih funkcija preko kojih se iskazuju složenija
ograničenja
Rečnik podataka- primer -
Rečnik podataka- primer ’’mešovitog zapisa’’ -
• strukture:
DOK_ZA_PRIJEMNI_ISPIT: < DIPLOMA,
{},
{}
>;
SVEDOČANSTVO: < NAZIV_ŠKOLE,
VRSTA_ŠKOLE,
IME_KAND,
DATUM_SVED,
{< NAZIV_ŠKOL_PRED, OCENA_ŠKOL_PRED:INT(1) IN (1,2,3,4,5)>},
PROSEK: REAL(1,2) < 5.00
>;
DIPLOMA: < NAZIV_ŠKOLE: CHAR (20),
VRSTA_ŠKOLE: VRSTE_ŠKOLA,
IME_KAND,
DATUM_DIPL: DATE
>;
Rečnik podataka- primer ’’mešovitog zapisa’’ -
• polja:NAZIV_ŠKOLE: CHAR(20);
VRSTA_ŠKOLE: VRSTE_ŠKOLA;
IME_KAND: CHAR(25);
DATUM_DIPL: DATE;
DATUM_SVED: DATE;
NAZIV_ŠKOL-PRED: CHAR(15);
OCENA_ŠKOL_PRED: INT(1) IN (1,2,3,4,5);
PROSEK: REAL(1,2) < 5.00
• domen:VRSTE_ŠKOLA: CHAR(20) IN ('GIMNAZIJA', 'SREDNJETEHNIČKA', 'OSTALE')
Rečnik podataka- primer ’’ručnog zapisa’’ -
• strukture:
DOK_ZA_PRIJEMNI_ISPIT: < DIPLOMA,
{},
{}
>;
SVEDOČANSTVO: < NAZIV_ŠKOLE,
VRSTA_ŠKOLE,
IME_KAND,
DATUM_SVED,
{< NAZIV_ŠKOL_PRED, OCENA_ŠKOL_PRED>},
PROSEK
>;
DIPLOMA: < NAZIV_ŠKOLE,
VRSTA_ŠKOLE,
IME_KAND,
DATUM_DIPL
>;
Rečnik podataka- primer ’’ručnog zapisa’’ -
Naziv polja Domen Ograničenje
NAZIV_ŠKOLE CHAR(20)
VRSTA_ŠKOLE VRSTE_ŠKOLA
IME_KAND CHAR(25)
DATUM_DIPL DATE
DATUM_SVED DATE
NAZIV_ŠKOL-PRED CHAR(15)
OCENA_ŠKOL_PRED INT(1) IN (1,2,3,4,5)
PROSEK REAL(1,2) < 5.00
Rečnik podataka- primer ’’ručnog zapisa’’ -
Naziv domena Predefinisani domen Ograničenje
VRSTE_ŠKOLA CHAR(20) IN ('GIMNAZIJA', 'SREDNJETEHNIČKA', 'OSTALE')
Model podataka- pojam -
• preko skupa podataka i njihovih međusobnih veza, predstavlja stanje
sistema u nekom trenutku vremena
• to je struktuirani skup informacija o prošlosti i sadašnjosti sistema
potreban da se pod dejstvom budućih poznatih ulaza, odrede budući
izlazi iz sistema
• nalaženje modela podataka naziva se i "analiza objekata sistema" ili
"analiza podataka" za razliku od "funkcionalne analize sistema" kojom
se utvrđuje model procesa sistema
Model podataka- aspekti modela -
• Statički aspekti modela se fokusiraju na njegovu strukturu
(model podataka)
• Dinamički aspekti modela se fokusiraju na njegovo ponašanje
(model procesa)
Model podataka- kategorije -
• Konceptualni
o MOV (ER), PMOV (EER), objektno-orijentisani, objektno-relacioni
• Implementacioni
o relacioni, mrežni, hijerarhijski
• Fizički (model baze podataka)
Model podataka- podela modela -
• Modeli I generacije
o semantički nedovoljno bogati i relativno fizički zavisni
o čine ih konvencionalni programski jezici (jezici treće generacije)
• Modeli II generacije
o relacioni, mrežni, hijerarhijski
• Modeli III generacije
o model objekti - veze (MOV), prošireni relacioni model (PMOV)
o Semantic Data Model (SDM) i semantičke mreže
o različiti objektno-orijentisani modeli podataka
Model podataka- hijerarhijski model -
• Najstariji model
• Podaci su smešteni u seriju slogova (zapisa)
• Da bi se uspostavila veza između slogova, hijerarhijski model uspostavlja
relaciju: roditelj – naslednik (preslikavanje 1:N – roditelji mogu imati više
naslednika (dece), ali jedno dete ima samo jednog roditelja);
• Roditelji i naslednici su povezani vezama koje se nazivaju pokazivači;
• Roditelj ima listu pokazivača za svakog od svojih naslednika.
Model podataka- hijerarhijski model -
Model podataka- hijerarhijski model -
• lako se transformiše u linearnu listu
Model podataka- hijerarhijski model -
• Nedostaci:
o ne može se dodati slog u tabelu naslednika dok se ne uključi u
roditeljsku tabelu
o ne podržava veze tipa N:M
o za kompleksnije veze moraju se pojaviti duplikati (komplikovano
održavanje)
Model podataka- mrežni model -
• Razvijen je krajem 60-tih – CODASYL
• Ne odnosi se na mrežno okruženje već na višestruku nadređenost
skupova koji su povezani pokazivačima i mogu se posmatrati kao
mrežna struktura
Model podataka- mrežni model -
• Karatketirtike:
o podaci se predstavljaju preko slogova
o uspostavljanje veza među podacima se ostvaruje ulančavanjem slogova
u strukture: stabla, lista i mreža
o neke kolone sadrže pokazivače na druge tabele umesto samih podataka
o omogućava veze tipa N:M
o slabost: kompleksanost i težina upotrebe
Model podataka- mrežni model -
Model podataka- relacioni model -
• 1971 – Edgar Cood formuliše teorijske osnove relacionih baza podataka
(organizacija podataka i formalizam manipulacije podacima)
• Zasnovan je na matematičkom pojmu relacije
• Podaci i veze među podacima se prikazuju preko dvodimenzionalnih
tabela
• Većina savremenih baza podataka služi se ovim modelom
Model podataka- relacioni model -
• Karakteristike:
o sve se predstavlja relacijama (tabelama)
o minimalna redudansa podataka
o jednostavno ažuriranje podataka
o izbegnute su anomalije ažuriranja
o redosled kolona i redova ne utiče na informacioni sadržaj tabele
o ne mogu da egzistiraju dva identična reda (rekorda) u jednoj tabeli
o svaki red se može jednoznačno odrediti (postoji primarni ključ)
Model podataka- relacioni model -
Model podataka- relacioni model -
• Suština relacionog modela je da se i klase objekata i klase veza između
objekata predstavljaju na jedinstven način, tj. preko tabela
• Nije od značaja gde i kako su smeštene tabele
• Relacione baze podataka (RBP) se sastoji iz više tabela
• Tabele su povezane ključevima
• Informacija iz RBP se dobija postavljanjem SQL upita
Model podataka- relacioni model -
Model podataka- komponente -
• Model podataka je potpuno određen ako su definisane sledeće tri
komponente, odnosno koncepti:
o Strukture podataka, kojima se definišu statičke karakteristike sistema
o Ograničenja, logička ograničenja na podatke (pravila integriteta) a
odnose se na definisanje poslovnih pravila.
o Skup operatora (operacije) - definiše dinamičku interpretaciju podataka
kroz njihovu obradu (održavanje BP i pretraživanje) - ima uticaja na
definisanje fizičkog nivoa modela i verifikaciju finalnog dizajna.
Najava sledećeg bloka
• Postupak modelovanja realnog sistema
• Izbor i opis objekta
• Generalizacije (specijalizacije) i agregacije(dekompozicije)
• MOV, PMOV
Hvala na pažnji