softverski studio iv - univerzitet...

45
Softverski studio IV Rečnik podataka. Model podataka. dr Svetlana Anđelić

Upload: others

Post on 30-Jan-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

  • 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