Upload
inesgalic
View
20
Download
0
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)
);