Model Iran Je

Embed Size (px)

DESCRIPTION

Model Iran Je

Citation preview

  • FAKULTET STROJARSTVA I RAUNARSTVA

    STUDIJ RAUNARSTVA

    Baze podataka

    V j e b e

    Nastavnik: Doc.dr.sc. Draena Tomi

    Asistent: Goran Kraljevi, dipl.ing.raunarstva

    Akademska godina 2004/2005

  • Baze podataka Vjebe

    2

    Sustav za upravljanje bazama podataka

    Baza podataka je skup meusobno povezanih podataka, pohranjenih zajedno bez tetne ili nepotrebne (nekontrolirane) zalihosti (redundancije), s ciljem da ih koriste razliite aplikacije. Podaci su pohranjeni u obliku neovisnom od programa koji ih koriste. Unos, izmjena i dohvat podataka obavlja se ISKLJUIVO kroz zajedniko i kontrolirano suelje. Programski sustav koji omoguava upravljanje bazom podataka je sustav za upravljanje bazama podataka, SUBP (DBMS - Database Management System). Korisnik ili korisniki program postavlja zahtjev za obavljanjem neke operacije s podacima, a SUBP ga analizira, provjerava, optimizira, transformira u niz operacija koje je potrebno obaviti na fizikoj razini, obavlja operacije i vraa rezultat.

    Najvanije zadae SUBP-a su:

    zatititi bazu podataka od neovlatenog koritenja (data security) sprijeiti naruavanja pravila integriteta (data integrity) osigurati obnovu podataka u sluaju unitenja (recovery) sprijeiti tetne interferencije korisnika u viekorisnikim sustavima

    (concurrency) omoguiti koritenje rjenika podataka (podaci o podacima) optimizirati sve funkcije i obavljati ih efikasno koliko je to mogue

    Jezici u sustavima za upravljanje bazama podataka Neophodni dijelovi SUBP su jezik za definiciju podataka i jezik za upravljanje podacima:

    DDL (data description language) jezik za definiciju ili deklaraciju objekata u bazi podataka. Objekti su relacije (tablice), indeksi, pogledi (view), itd.

    DML (data manipulation language) omoguava manipulaciju objektima baze podataka. Osnovne su operacije: dohvat podataka, unos, izmjena i brisanje.

  • Baze podataka Vjebe

    3

    Osnovni pojmovi

    E-R model

    skup koncepata i grafikih simbola koji se mogu koristiti za kreiranje konceptualne sheme baze podataka

    Entitet

    Entitet je stvar, objekt, od znaaja, realan ili imaginaran za koji je potrebno poznavati i uvati odreene informacije.

    Postupkom klasifikacije moe se ustanoviti skup srodnih entiteta (npr.osobe) to se moe predstaviti TIPOM ENTITETA (npr. OSOBA), to znai da se tip entiteta sastoji od pojava entiteta koji imaju zajednike atribute.

    Pojava entiteta je pojedini entitet, a sve pojave entiteta istog tipa imaju iste atribute, a razlikuju se vrijednosti atributa pojedinih pojava.

    Atribut

    Atribut je svaki detalj koji slui da poblie odredi, identificira, klasificira, kvantificira ili izrazi stanje entiteta.

    Predstavlja opis entiteta

    Veza

    Veza (relacija) je agregacija/povezivanje dvaju ili vie entiteta u novi entitetvezu koji moe imati i svoje atribute.

    Broj entiteta u vezi predstavlja STUPANJ VEZE. Unarna veza

    Binarna veza

    Ternarna veza

    N-arna veza

    Osnovni tipovi veza

    Jedan-prema-jedan (1:1) 1,1:1,1

    1,1:0,1

    0,1:0,1

    Jedan-prema-vie (1:M) 1,1:0,M

    0,1:0,M

    Vie-prema-vie (M:N) 0,M:0,N

  • Baze podataka Vjebe

    4

    Kljuevi u relacijskoj bazi podatka

    Super klju (engl. superkey) atribut ili skup atributa koji jedinstveno

    odreuje n-torku unutar relacije. Kandidat klju (engl. candidate key) super klju takav da nema nijedan

    odgovarajui podskup koji bi bio super klju unutar relacije. Primarni klju (engl. primary key) kandidat klju koji je odabran da

    jedinstveno odredi n-torku unutar relacije.

    Kandidat (za PRIMARNI) klju mora zadovoljiti 2 uvjeta:

    jedinstvenost na relacijskoj shemi niti u jednom trenutku ne mogu postojati dvije n-torke s jednakim vrijednostima skupa atributa K.

    minimalnost niti jedan pravi podskup od skupa atributa K nema svojstvo jednoznanosti.

    Primjer:

    DJELATNIK

    Matbr Prezime Ime JMBG

    11234 Novak Josip 1403970330103

    12345 Horvat Ivan 2812964310267

    23456 Kolar Ana 0111959335208

    34567 Novak Josip 0301949320319

    Kandidat klju: {Matbr}, {JMBG}

    Primarni klju: {Matbr}

    Alternativni klju: {JMBG}

    Super klju: npr. {Matbr, Prezime}

    Vanjski ili strani klju (engl. foreign key) atribut ili skup atributa unutar

    jedne relacije koji odgovara kandidat kljuu neke (mogue i iste) relacije.

    Vanjski kljuevi omoguuju povezivanje n-torki iz razliitih tablica.

    Primjer:

    OSOBA MJESTO

    SifNas Prezime PostBr PostBr NazMjesta

    100 Mari 88000 88000 Mostar

    107 Sesar 88220 88220 iroki Brijeg

    109 Juri 88000

  • Baze podataka Vjebe

    5

    Dva opa ogranienja u relacijskom modelu

    Entitetski integritet

    (Codd, 1970) Vrijednost primarnog kljua kao cjeline, ne smije biti jednaka NULL vrijednosti. Ako je primarni klju relacije sloen, niti jedna njegova komponenta ne smije poprimiti NULL vrijednost. Primjeri:

    NASTAVNIK = {SifNas, PrezNas} PK (NASTAVNIK) = {SifNas} SifNas ne smije biti NULL

    ISPIT = {Matbr, SifPred, DatIsp} PK (ISPIT) = {Matbr, SifPred, DatIsp} Matbr, SifPred, DatIsp ne smiju biti NULL

    Referencijalni integritet

    Ako u relacijskoj shemi R postoji strani klju (engl. foreign key) koji odgovara primarnom kljuu (engl. primary key) relacijske sheme S, tada svaka vrijednost stranog kljua u relaciji r(R) mora biti:

    ili jednaka vrijednosti primarnog kljua neke n-torke iz relacije s(S) ili jednaka NULL vrijednosti

    Primjer:

    OSOBA MJESTO

    SifNas Prezime PostBr PostBr NazMjesta

    100 Mari 88000 88000 Mostar

    107 Sesar NULL 88220 iroki Brijeg

    109 Juri 77000 88320 Ljubuki

    Relacije OSOBA i MJESTO ne zadovoljavaju pravilo referencijalnog integriteta jer u relaciji OSOBA postoji vrijednost stranog kljua (77000) za koju ne postoji odgovarajua n-torka u relaciji MJESTO.

  • Baze podataka Vjebe

    6

    UML notacija

    UML (Unified Modeling Language) je jezik za:

    vizualiziranje

    specificiranje

    konstruiranje

    dokumentiranje

    dijelova softverskog sustava.

    Osnovne strukturalne stvari (klase, atributi, operacije) zajedno sa osnovnim relacijama (zavisnost, generalizacija i asocijacija) dovoljni su da se naprave statiki modeli za mnoge vrste problema.

    KLASA predstavlja opis skupa objekata koji dijele iste atribute, operacije, relacije i semantiku. Grafiki, klasa je prikazana kao pravokutnik koji obino sadri ime, atribute i operacije.

    Relacije Osnovni tipovi relacija unutar UML modela su:

    1. zavisnost (dependency),

    2. asocijacija (association),

    3. generalizacija (generalization),

    ZAVISNOST je semantika relacija izmeu dvije stvari u kojoj promjena u jednoj (nezavisnoj stvari) moe utjecati na semantiku druge (zavisne stvari).

    Grafiki, zavisnost se prikazuje kao isprekidana linija, s moguom oznakom smjera (strelica) i imenom.

  • Baze podataka Vjebe

    7

    ASOCIJACIJA je strukturalna relacija koja opisuje skup veza izmeu objekata. Grafiki, asocijacija se predstavlja kao puna linija. Prilikom modeliranja, vano je navesti koliko objekata moe da bude povezano jednim konkretnim primjerkom asocijacije.

    Prvi broj oznaava opcionalnost / obveznost (0 ili 1), Drugi broj oznaava kardinalnost (1, *, toan broj npr. 3 ...)

    Agregacija (aggregation) je specijalan oblik asocijacije i reprezentira strukturalnu relaciju izmeu cjeline i njenih dijelova.

    Primjer asocijacije:

    Klasa asocijacija u asocijaciji izmeu dvije klase (u primjeru su to OSOBA i TVRTKA), sama ta asocijacija moe imati atribute. Jedna od prednosti koju koritenje UML-a ima nad tradicionalnim notacijma entitet-veza (ER) pri logikom modeliranju jeste podrka za klasu asocijacija pri emu se i dalje vide asocijacije N:N. Tradicionalno, u ER notacijama postojala je ili samo tablica asocijacija (bez preslikavanja N:N) ili se tablica tablica asocijacija uope ne bi prikazivala dok se ne stigne do fizikog modeliranja (relacijski model) baze podataka.

    Primjer: Razrjeavanje N:N relacije (relacijski model)

    1..1 0..*

  • Baze podataka Vjebe

    8

    Primjer agregacije:

    GENERALIZACIJA je relacija specijalizacije/generalizacije u kojoj se objekti specijaliziranih elemenata (djeca) mogu zamijeniti objektima generaliziranih elemenata (roditelja). Na ovaj nain, djeca dijele strukturu i ponaanje roditelja. Grafiki, relacija generalizacije se prikazuje kao puna linija sa upljom strelicom koja pokazuje prema roditelju.

    Klasa ne mora imati roditelje ili moe imati jednog i vie roditelja. Klasa koja nema roditelje, a ima jedno ili vie djece zove se osnovna klasa (root class). Klasa koja nema djece zove se list klasa (leaf class). Klasa koja ima tono jednog roditelja nastala je tzv. jednostrukim nasljeivanjem, a klasa koja ima vie roditelja nastala je tzv. viestrukim nasljeivanjem. Primjer:

  • Baze podataka Vjebe

    9

    Normalizacija podataka

    Prva normalna forma 1 NF Relacijska shema je u 1 NF ako:

    Nekljuni atributi funkcijski ovise o kljuu. Domene sadre samo jednostavne vrijednosti.

    Druga normalna forma 2 NF Relacijska shema je u 2 NF ako je u 1 NF i ako je:

    Svaki atribut iz zavisnog dijela potpuno funkcijski ovisan o kljuu. (FZ X Y je nepotpuna ako postoji atribut ili skup atributa Z koji je podskup od X, za koji vrijedi Z Y)

    Trea normalna forma 3 NF Relacijska shema je u 3 NF ako je u 2 NF i ako:

    Niti jedan atribut iz zavisnog dijela nije tranzitivno ovisan o kljuu. Atribut Z je tranzitivno ovisan o X ako vrijedi: X Y i Y-/->X (Y je funkcijski ovisan o X, a X nije funkcijski ovisan o Y); Y Z

    Shema baze podataka ima dobra svojstva ako zadovoljava 3 NF. Shema baze podataka zadovoljava 3 NF ako svaka njezina relacijska shema zadovoljava 3 NF. Primjer normalizacije

    Matbr Prezime Ime SifPred NazPred DatIsp Ocjena SifNas PrezNas

    1111 Peri Ivan 1001 Mat-1 29.01.2003 1 1111 Cigi

    1111 Peri Ivan 1001 Mat-1 05.02.2003 1 2222 Mavar

    1111 Peri Ivan 1001 Mat-1 01.04.2003 3 1111 Cigi

    1111 Peri Ivan 1003 Fiz-1 03.02.2003 2 3333 Primorac

    1111 Peri Ivan 1002 Mat-2 15.06.2003 4 2222 Mavar

    1234 Tomi Tomo 1001 Mat-1 29.01.2003 3 2222 Mavar

    Pretpostavljeni klju je: MATBR

    Normalizacija na 1 NF (da li klju funkcijski odreuje zavisni dio)

    Postoji funkcijska zavisnost:

    Matbr Prezime, Ime

    NE POSTOJI:

    Matbr SifPred Matbr NazPred Matbr DatIsp Matbr Ocjena Matbr SifNas Matbr PrezNas

  • Baze podataka Vjebe

    10

    Matbr Prezime Ime SifPred NazPred DatIsp Ocjena SifNas PrezNas

    1111 Peri Ivan 1001 Mat-1 29.01.2003 1 1111 Cigi

    1111 Peri Ivan 1001 Mat-1 05.02.2003 1 2222 Mavar

    1111 Peri Ivan 1001 Mat-1 01.04.2003 3 1111 Cigi

    1111 Peri Ivan 1003 Fiz-1 03.02.2003 2 3333 Primorac

    1111 Peri Ivan 1002 Mat-2 15.06.2003 4 2222 Mavar

    1234 Tomi Tomo 1001 Mat-1 29.01.2003 3 2222 Mavar

    STUDENT ISPIT

    Matbr Prezime Ime Matbr SifPred NazPred DatIsp Ocjena SifNas PrezNas

    1111 Peri Ivan 1111 1001 Mat-1 29.01.2003 1 1111 Cigi

    1234 Tomi Tomo 1111 1001 Mat-1 05.02.2003 1 2222 Mavar

    1111 1001 Mat-1 01.04.2003 3 1111 Cigi

    1111 1003 Fiz-1 03.02.2003 2 3333 Primorac

    1111 1002 Mat-2 15.06.2003 4 2222 Mavar

    1234 1001 Mat-1 29.01.2003 3 2222 Mavar

    PK (STUDENT) = {Matbr}

    PK (ISPIT) = {Matbr, SifPred, DatIsp} ISPIT ne zadovoljava 2 NF

    Normalizacija na 2 NF

    PREDMET ISPIT

    SifPred NazPred Matbr SifPred DatIsp Ocjena SifNas PrezNas

    1001 Mat-1 1111 1001 29.01.2003 1 1111 Cigi

    1002 Mat-2 1111 1001 05.02.2003 1 2222 Mavar

    1003 Fiz-1 1111 1001 01.04.2003 3 1111 Cigi

    1111 1003 03.02.2003 2 3333 Primorac

    1111 1002 15.06.2003 4 2222 Mavar

    1234 1001 29.01.2003 3 2222 Mavar

    PK (ISPIT) = {Matbr, SifPred, DatIsp}

    PK (PREDMET) = {SifPred} ISPIT ne zadovoljava 3 NF

    Normalizacija na 3 NF

    NASTAVNIK ISPIT

    SifNas PrezNas Matbr SifPred DatIsp Ocjena SifNas

    1111 Cigi 1111 1001 29.01.2003 1 1111

    2222 Mavar 1111 1001 05.02.2003 1 2222

    3333 Primorac 1111 1001 01.04.2003 3 1111

    1111 1003 03.02.2003 2 3333

    1111 1002 15.06.2003 4 2222

    1234 1001 29.01.2003 3 2222

    PK (ISPIT) = {Matbr, SifPred, DatIsp}

    PK (NASTAVNIK) = {SifNas}

  • Baze podataka Vjebe

    11

    Sve tablice zadovoljavaju 3 NF.

    STUDENT (Matbr, Prezime, Ime)

    PREDMET (SifPred, NazPred)

    NASTAVNIK (SifNas, PrezNas)

    ISPIT (Matbr, SifPred, DatIsp, Ocjena, SifNas)

  • Baze podataka Vjebe

    12

    Modeliranje podataka Primjeri Primjer 1.

    Faktura je dokument koji se alje kupcu kako bi mogao izvriti plaanje kupljene robe. Da bi se napravila faktura moraju postojati osnovni podaci o kupcu (naziv, adresa, telefon i sl.), podaci o fakturi (broj fakture, datum izdavanja, broj narudbe prema kojoj je raena, rok plaanja, iznos za plaanje i sl.), kao i podaci o kupljenim artiklima (naziv, jedinica mjere, kupljena koliina, cijena i sl.).

    Faktura se sastoji od 2 osnovna dijela:

    Zaglavlje fakture koje sadri zajednike, ope podatke Stavke fakture s pojedinanim artiklima, koliinama i cijenama.

    Definirati sve entitete, atribute i veze za proces Fakturiranja kupcima.

  • Baze podataka Vjebe

    13

    Preslikavanje u relacijski model baze podataka:

    Napomena:

    Atributi cijena i ukupni_iznos u tablicama FAKTURA_STAVKA i FAKTURA mogu biti redundantni podaci jer se cijena pojedine stavke fakture moe izraunati kao: kolicina * cijena (cijena iz tablice ARTIKAL). Meutim, ukoliko se omogui definiranje rabata (bilo da se radi o fiksnom ili procentualnom iznosu rabata) po pojedinoj stavci, onda gornja tvrdnja vie nije tona. Slino vrijedi i u sluaju ukupnog iznosa (tablica FAKTURA) koji se moe izraunati kao suma cijena pojedinih stavki. Meutim, i na ukupni iznos fakture je mogue definirati rabat pa u tom sluaju ima smisla i postojanje ovog atributa (ukupni_iznos).

    Takoer, prije poetka kodiranja obavlja se ogranieno uvoenje zalihosti i ugaanje baze podataka zbog poboljanja elastinosti i poboljanja performanci. Npr. dodavanje atributa za pohranu izvedenih vrijednosti koja se moe izraunati agregatnom funkcijom (npr. ukupni iznos fakture kao suma iznosa stavki).

  • Baze podataka Vjebe

    14

    Primjer 2. Profesionalni programer Marko Markovi odluio je napraviti program za evidentiranje svih programa koje je uradio, korisnika kod kojih ti programi rade, kao i ostvarene zarade po svakom programu.

    Za svaki program se evidentira vrijeme utroeno za njegovu izradu, kao i vrijeme utroeno kod korisnika za prilagodbu programa korisnikim zahtjevima, kad je program puten u rad kod korisnika, kao i koliko je od korisnika naplaeno za taj program. Takoer se evidentira da li je program u uporabi tj. aktivan ili ne.

    Preslikavanje u relacijski model baze podataka:

  • Baze podataka Vjebe

    15

    Primjer 3. Na Fakultetu strojarstva i raunarstva u Mostaru evidentirani su podaci o kandidatima koji su se prijavili na razradbeni ispit i njihovim rezultatima. Evidentiraju se podaci o:

    kandidatu JMBG, ime, prezime, mjesto roenja, zavrena srednja kola (ifra, naziv, adresa, potanski broj mjesta, mjesto, ifra opine i naziv opine u kojoj se kola nalazi)

    za svakog kandidata ocjena iz pojedinih predmeta iz srednje kole ifra i naziv predmeta, razred i ocjena. ifra odreuje predmet u nekom razredu (godini), npr. Matematika u 1.razredu i Matematika u 2.razredu imaju razliite ifre. Isti predmeti u razliitim kolama imaju istu ifru npr. Matematika iz 1.razreda ima istu ifru za sve kole

    podaci o zadacima na razradbenom ispitu redni broj zadatka, tekst zadatka, toan odgovor (A, B, C, D ili E)

    za svakog kandidata odgovori koje je dao na zadatke (odgovor za svaki pojedini zadatak mogu biti A, B, C, D, E ili nita)

  • Baze podataka Vjebe

    16

    Preslikavanje u relacijski model baze podataka:

  • Baze podataka Vjebe

    17

    Primjer 4. U bazi podataka potrebno je evidentirati podatke o zrakoplovima, aerodromima i letovima. Zrakoplov je identificiran svojim jedinstvenim registracijskim brojem (npr. N6061U). Za zrakoplov se evidentiraju godina proizvodnje i tip zrakoplova. Za svaki tip zrakoplova evidentira se ifra tipa i naziv tipa zrakoplova (npr. ifra: 123, naziv tipa: "Airbus-A319") te najvea ukupna dozvoljena teina pri polijetanju. Za svaki aerodrom se evidentira ifra i naziv aerodroma.

    Zrakoplov prema namjeni moe biti ili putniki ili teretni (jedno iskljuuje drugo). Za svaki pojedini zrakoplov, ovisno o njegovoj namjeni, evidentira se je li u zrakoplov ugraena dodatna oprema: za svaki pojedini putniki zrakoplov evidentira se ima li ugraenu internu televiziju, ima li ureaj za satelitsku komunikaciju, a za svaki pojedini teretni zrakoplov broj dodatno ugraenih klimatiziranih kontejnera za prijevoz ivotinja i je li ugraen katapult za izbacivanje tereta padobranom.

    Evidentiraju se letovi samo putnikih zrakoplova. Let je identificiran ifrom i datumom leta (npr. "OU763", 1.6.2001), a za let se evidentira s kojeg aerodroma zrakoplov polijee, na koji aerodrom slijee te vrijeme polijetanja i vrijeme slijetanja. Evidentira se koji zrakoplov leti na kojem letu.

    Evidentiraju se kategorije cijena karata. Svaka kategorija cijena ima svoju ifru (jedinstveno identificira kategoriju) i naziv (npr. "poslovna", "ekonomska", "s popustom za zaposlenika kompanije", "s popustom za osobe mlae od 27 godina", itd). Putnik kupuje kartu tono odreene kategorije cijene za odreeni let. Putnik ne moe za jedan let kupiti vie od jedne karte. Za svakog putnika se evidentira jmbg (jedinstveno odreuje putnika), prezime i ime. Dijagram klasa:

  • Baze podataka Vjebe

    18

    U sluaju specijalizacije/generalizacije koja je na prethodnom dijagramu vidljiva izmeu klasa ZRAKOPLOV, TERETNI i PUTNICKI pri preslikavanju u relacijski model mogua su slijedea rjeenja.

    1. Ako specijalizacije (TERETNI i PUTNICKI) imaju vlastite kljueve:

    ZRAKOPLOV (RegBrZr, GodProizv) TERETNI (SifraTer, BrKlimKont, Katapult, RegBrZr) PUTNICKI (SifraPut, InterTv, SatelKom, RegBrZr)

    u tom sluaju u relacijskom modelu postoje tri tablice. U tablicama TERETNI i PUTNICKI postoji strani klju (RegBrZr) koji se referencira na primarni klju tablice ZRAKOPLOV (RegBrZr) 2. Ako specijalizacije (TERETNI i PUTNICKI) nemaju vlastite kljueve:

    ZRAKOPLOV (RegBrZr, GodProizv) TERETNI (RegBrZr, BrKlimKont, Katapult) PUTNICKI (RegBrZr, InterTv, SatelKom)

    onda je u relacijskom modelu mogue spojiti sheme s jednakim kljuevima (prema Armstrongovom pravilu unije) u jedinstvenu tablicu:

    ZRAKOPLOV (RegBrZr, GodProizv, BrKlimKont, Katapult, InterTv, SatelKom)

    ili horizontalnom normalizacijom ostaviti tri tablice:

    ZRAKOPLOV (RegBrZr, GodProizv) TERETNI (RegBrZr, BrKlimKont, Katapult) PUTNICKI (RegBrZr, InterTv, SatelKom)

    Ekvivalentni relacijski model:

  • Baze podataka Vjebe

    19

    Kreiranje tablica

    CREATE TABLE ime_tablice

    (ime_stupca tip (veliina) (ogranienje),

    ime_stupca tip (veliina) (ogranienje),

    ime_stupca tip (veliina) (ogranienje),

    ...);

  • Baze podataka Vjebe

    20

    Primjer:

    CREATE TABLE mjesto

    (pbr NUMBER(10) NOT NULL,

    naziv VARCHAR2(25) NOT NULL,

    CONSTRAINT mjesto_pk PRIMARY KEY(pbr)

    );

    CREATE TABLE osoba

    (mbr NUMBER(10) NOT NULL,

    ime VARCHAR2(25) NOT NULL,

    prezime VARCHAR2(25) NOT NULL,

    email VARCHAR2(25),

    pbr NUMBER(10) NOT NULL,

    CONSTRAINT osoba_pk PRIMARY KEY(mbr),

    CONSTRAINT osoba_mjesto_fk FOREIGN KEY(pbr)

    REFERENCES mjesto(pbr)

    );