dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6...

12

Transcript of dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6...

Page 1: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...
Page 2: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

Sadržaj: 1. Poglavlje: ...... BAZE PODATKA .................................................................................................... 3 

1.1  UVOD ................................................................................................................................ 4 1.2  BAZE PODATAKA ............................................................................................................ 5 

1.2.1  DIREKTNE DATOTEKE ............................................................................................... 5 1.3  SUSTAV ZA UPRAVLJANJE BAZOM PODATAKA – DBMS ........................................... 5 1.4  TIPOVI I STUKTURE BAZA PODATAKA ......................................................................... 6 1.5  PODATKOVNI MODELI .................................................................................................... 8 1.6  ZADACI ZA VJEŽBU ....................................................................................................... 12 

2. Poglavlje: ...... DIZAJNIRANJE BAZE PODATAKA .................................................................... 13 2.1  OBLIKOVANJE BAZE PODATAKA ................................................................................ 14 2.2  MODELIRANJE PODATAKA .......................................................................................... 16 

2.2.1  MODELIRANJE ENTITETA I VEZA ........................................................................... 16 2.3  KORISNIČKI ZAHTIJEVI ................................................................................................ 16 2.4  ER – DIJAGRAMI ............................................................................................................ 18 2.5  POGREŠKE PRI IZRADI ER-DIJAGRAMA .................................................................... 22 

2.5.1  Atribut vs Entitet ......................................................................................................... 23 2.5.2  Rastavljanje složenih atributa .................................................................................... 24 2.5.3  Atributi i entiteti u konceptualnom modelu ................................................................. 24 

2.6  ZADACI ZA VJEŽBU ....................................................................................................... 26 

3. Poglavlje: ...... RELACIJSKI MODEL ........................................................................................... 27 3.1  IZRADA RELACIJSKOG MODELA................................................................................. 28 

3.1.1  Pojedinačni podatak ................................................................................................... 28 3.1.2  Atribut ......................................................................................................................... 28 3.1.3  Relacijska shema ....................................................................................................... 29 3.1.4  Relacija ...................................................................................................................... 29 3.1.5  Primarni ključ .............................................................................................................. 29 3.1.6  Strani ključ .................................................................................................................. 29 3.1.7  Ograničenja ................................................................................................................ 29 

3.2  Pretvaranje ER modela u relacijski ................................................................................. 29 3.2.1  PRIMARNI KLJUČ ..................................................................................................... 31 3.2.2  PRETVORBA ENTITETA I VEZA U RELACIJE ........................................................ 32 

3.3  NORMALIZACIJA ........................................................................................................... 34 3.4  ZADACI ZA VJEŽBU ....................................................................................................... 36 

4. Poglavlje: ...... TIPOVI PODATAKA ............................................................................................. 39 4.1  TIPOVI PODATAKA ........................................................................................................ 40 4.2  PRAVILA ZA DODJELJIVANJE TIPOVA PODATAKA ATRIBUTIMA ............................ 45 4.3  OGRANIČENJA ATRIBUTA ........................................................................................... 45 

4.3.1  NOT NULL ................................................................................................................. 46 4.3.2  CHECK ....................................................................................................................... 46 4.3.3  UNIQUE ..................................................................................................................... 46 4.3.4  PRIMARY KEY ........................................................................................................... 46 4.3.5  FOREIGN KEY ........................................................................................................... 46 

5. Poglavlje: ...... PROGRAMI ZA DIZAJNIRANJE BAZA PODATKA ............................................ 47 5.1  EDRAW MAX .................................................................................................................. 48 5.2  MS Visio 2013 ................................................................................................................. 48 5.3  SQL Edge ........................................................................................................................ 49 5.4  Diagram Designer ........................................................................................................... 50 

6. Poglavlje: ...... RJEŠENJA ZADATAKA ...................................................................................... 51 

POPIS KLJUČNIH RIJEČI ................................................................................................... 71 

Page 3: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

U ovom poglavlju naučiti ćete:

Što je baza podataka

Sustavi za upravljanje bazama

Tipovi i strukture baza podataka

1. Poglavlje: BAZE PODATKA

Page 4: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

Str.4§ §DIZAJN BAZA PODATAKA

Zagreb - Maksimirska 58a § A L G E B R A §

1.1 UVOD Priručnik je napravljen da vas upozna s pojmom baza podataka i da vam da neka osnovna pravila i savjete u dizajniranju i osmišljavanju baza podataka. Upoznat će te se s principom dizajniranja baza podataka kao i alatima koji bi vam trebali pomoći u izradi boljeg i funkcionalnijeg dizajna baza podataka. Dizajniranje baza podataka je postupak koji se najbolje svladava praksom i vježbom. To je također jedan od najvažnijih koraka kako u izradi baza podataka tako i u izradi informacijskih sustava. Ako se napravi neka veća greška u dizajnu baze podataka u kasnijem radu s bazom može doći do velikih problema. Vrlo često popravci baze podataka nastali zbog greški u dizajnu su vrlo teški i skupi, a ponekada i nemogući. Tako da je vrlo važno znati napraviti dobar i kvalitetan dizajn baze podataka. Baze podataka su jedan od važnijih objekata koji se koriste u svakodnevnom radu. Primjerice, svaka tvrtka ima obavezu voditi knjigovodstvene papire, pa podatke o svom poslovanju mora negdje zapisati. Također, svaka tvrtka vodi razne interne evidencije robe na skladištu, u prodavaonici, o kupcima i dobavljačima..., te podatke mora negdje zapisati. Svaka banka, videoteka, trgovina, bolnica, hotel, također, moraju zapisivati veliku količinu podataka o svom poslovanju. Na internetu se većina stranica oslanja na podatke koji su negdje pohranjeni.

Prije su se ti podaci pohranjivali pismeno, u knjige. Nakon toga su došla računala, pa su se podaci počeli pohranjivati u datoteke koje su se spremale na diskete, trake ili na disk računala. Kako su potrebe za organizacijom i lakšim dohvatom podataka rasle, tako se s običnih datoteka prešlo na bazu podataka, koja onda pomaže da se podaci lakše obrade.

Naravno, kako je baza podataka pohranjena na računalu u nekom digitalnom formatu, tako je izmišljen jezik pomoću kojeg se s tom bazom podataka razgovara, tako da baza može odgovarati na postavljena pitanja. Taj izmišljeni jezik danas se naziva SQL (čitati: es kju el) i on je tema ovog priručnika.

Page 5: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

Str.5§ §DIZAJN BAZA PODATAKA

Zagreb - Maksimirska 58a § A L G E B R A §

1.2 BAZE PODATAKA

1.2.1 DIREKTNE DATOTEKE Kao što smo spomenuli u uvodu, nekad su se podaci pohranjivali u datoteke koje možemo promatrati kao kolekciju zapisa, gdje se svaki zapis sastoji od polja. Svako polje pripada nekom tipu podataka (broj, slovo, ...). Takve se datoteke nazivaju linearne ili direktne datoteke (engl. flat file) i kod njih nema nikakve dodatne organizacije zapisa. Jedan od glavnih problema kod takve organizacije jest da zapisivanje na fizički medij (disketa, traka, tvrdi disk, ...) ovisi o samom mediju. Ostali uočeni problemi su:

konkurentnost – znači da podacima u jednom trenutku može pristupati najviše jedna osoba, tj. najviše jedan program

integritet – ako više programa koristi iste informacije, može doći do iskrivljavanja podataka jer ne postoji nikakva kontrola

relacije – teško je uspostaviti bilo kakve relacije među podacima jer ne postoji nikakva predefinirana struktura, pa je podacima teško pristupati

ponovna iskoristivost – direktna datoteka dizajnirana za jedan sustav teško se može iskoristiti na nekom drugom

sigurnost – ne postoji univerzalan način osiguravanja pristupa podacima (npr. pomoću šifre), pa su podaci podložni neautoriziranom pristupanju

1.3 SUSTAV ZA UPRAVLJANJE BAZOM PODATAKA – DBMS

Baza podataka je skup međusobno povezanih podataka pohranjenih na vanjskoj memoriji, koji su istovremeno dostupni raznim korisnicima i programima.

Podaci koji se nalaze u nekoj bazi fizički su pohranjeni kao datoteke, pa se postavlja pitanje po čemu se baza podataka razlikuje od direktne datoteke? Naravno, od same baze podataka nemamo puno više koristi nego što imamo od direktnih datoteka. Ono od čega imamo velike koristi jest sustav za upravljanje bazom podataka ili skraćeno DBMS (DataBase Management System).

DBMS je poslužitelj baze podataka koji se nalazi između korisnika baze podataka i same baze. On u ime korisnika obavlja sve operacije s podacima.

Kako rad s bazom podataka ne znači samo dohvaćanje podataka nego i njihovo dodavanje, mijenjanje i brisanje, te čuvanje integriteta podataka, čuvanje sigurnosnih kopija baze, omogućavanje istovremenog pristupa bazi više korisnika, provjeru identiteta korisnika, postaje jasno da je za to potreban DBMS.

Ključna stvar koja razlikuje bazu podataka od direktne datoteke leži u svojstvu nezavisnosti podataka koju pruža DBMS.

Page 6: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

Str.6§ §DIZAJN BAZA PODATAKA

Zagreb - Maksimirska 58a § A L G E B R A §

Slika 1: Prikaz komunikacije baze podataka, korisnika i DBMS-a

Postoje dva nivoa nezavisnosti: Fizička nezavisnost – baza može promjeniti medij na kojemu zapisuje

svoje podatke, a korisnik baze tu promjenu ne vidi. Baza se čak može distribuirati na više računala, a korisnik će vidjeti bazu kao jedinstvenu cjelinu.

Logička nezavisnost – označuje mogućnost promjene logičke sheme baze bez potrebe da korisnik išta mijenja u svom načinu pristupanja bazi.

1.4 TIPOVI I STUKTURE BAZA PODATAKA Tipove i strukture baze podataka možemo podijeliti na sljedeće tipove:

Centralizirane baze podataka

Distribuirane baze podataka

Korisnik – poslužitelj baze podataka

Paralelne baze podataka Centralizirana baza podataka koristi tzv. „Dummy“ terminale. To znači da se formatiranje i procesiranje sadržaja baze podataka odvija na središnjem računalu. Takva struktura stvara veliko procesorsko opterećenje središnjeg računala, te najveći problem je blokada cijelog sustava u slučaju ispada središnjeg računala.

Page 7: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

Str.7§ §DIZAJN BAZA PODATAKA

Zagreb - Maksimirska 58a § A L G E B R A §

Slika 2: Centralizirana baza podataka Distribuirana baza podataka koristi baze podataka koje su raspoređene na više različitih lokacija. Kod takve strukture baze podataka korisnik misli da cijelo vrijeme radi sa centraliziranom bazom. Sustav koji omogućuje takav rad naziva se i DDBMS (Distributed DBMS). DDBMS može biti homogen (na svim lokacijama se koristi isti DBMS) ili heterogen (ako se koriste različiti DBMS-ovi na primjer SQL Server i MySql).

Slika 3: Distribuirana baza podataka Kod strukture baze podataka Korisnik – poslužitelj, korisnik (klijent) ima mogućnost procesiranja i formatiranja podataka u bazi podataka. Takva vrsta strukture baze podataka postoji unutar dviju arhitektura:

Dvoslojna – na korisničkom računalu se nalaze aplikacijski programi i sučelje prema korisniku.

Troslojna – sastoji se od aplikacijskog ili Web poslužitelja i korisnika koji samo prikazuje rezultate.

Page 8: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

Str.8§ §DIZAJN BAZA PODATAKA

Zagreb - Maksimirska 58a § A L G E B R A §

Slika 4: Struktura Korisnik - poslužitelj Struktura paralelnih baza podataka koristi se kod velikih baza podataka (terabajtnih). Arhitektura paralelnih baza podataka može biti:

Arhitektura dijeljene memorije – procesi dijele istu memoriju i diskove.

Arhitektura dijeljeni diskova – svaki proces ima pristup bilo kojem disku i samo svom dijelu memorije.

Arhitektura bez dijeljenja memorije i diskova – svaki čvor sadrži proces, memoriju i jedan ili više diskova.

Hibridna (hijerarhijska) arhitektura – kombinira ostale arhitekture.

1.5 PODATKOVNI MODELI

Podaci u bazi logički su organizirani u skladu s nekim modelom podataka. Model podataka je skup pravila koja određuju kako može izgledati logička struktura baze.

Dosadašnji DBMS-i obično su podržavali neki od sljedećih modela: Relacijski model

Zasnovan je na matematičkom pojmu relacije. I podaci i veze medu podacima prikazuju se tablicama. Tablice su međusobno povezane

Page 9: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

Str.9§ §DIZAJN BAZA PODATAKA

Zagreb - Maksimirska 58a § A L G E B R A §

relacijama čija je uloga izbjeći redundanciju (ponavljanje), očuvati integritet podataka, te povećati brzinu pretraživanja.

Mrežni model Baza je predočena usmjerenim grafom. Čvorovi su tipovi zapisa, a lukovi definiraju veze među njima.

Hijerarhijski model To je specijalni slučaj mrežnoga modela. Baza je predočena jednim stablom ili skupom stabala. Čvorovi su tipovi zapisa, a hijerarhijski odnos “nadređeni-podređeni” izražava veze među njima.

Objektni model Inspiriran je objektno-orijentiranim programskim jezicima. Baza je skup trajno pohranjenih objekata koji se sastoje od svojih internih podataka i metoda za rukovanje tim podacima. Svaki objekt pripada nekoj klasi. Izmedu klasa uspostavljaju se veze nasljeđivanja, agregacije, odnosno međusobnog korištenja operacija.

Posebni modeli U zadnjih par godina javila se potreba za „novim“ tipovima modela DBMS-ova. Razvoj baza podataka je u veći slučajeva otišao u dva smjena. Prvi smjer razvoja baza podataka bavi se mogućnošću obrade i sakupljanja podataka u bazu podataka. Vidjelo se da u sve većim situacijama je potrebna sve veća brzina obrade podataka. Količina podataka koju je potrebno obraditi nadilazila je mogućnosti relacijskih modela. Tako da su znanstvenici napravili bazu tokova podatak (Stream database) koja je kombinacija relacijskog i objektnog modela. Takva baza podataka može obraditi velike količine podatka u svega par sekundi. Drugi smjer razvoja baza podataka bavi se tipovima podataka koje je potrebno spremiti u bazu. U tom djelu se također vidio nedostatak postojećih modela. Npr. u neki od postojećih modela je jako teško, gotovo nemoguće spremiti podatak kao što je geometrijski lik ili sloj digitalne karte. Za takve probleme razvijene su vremensko – prostorne baze podataka koje imaju mogućnost spremanja vremensko promjenjivih podataka kao i prostornih podatka.

Od 80-tih godina pa sve do danas prevladava relacijski model, a očekivani prijelaz na objektni model još se nije dogodio. Što se tiče objektnog modela, on je dosta moćniji od ostalih, ali je zato i kompliciraniji, pa još uvijek nekako prevladava jednostavnost relacijskoga modela. Od 2007 godine prvo u znanstvene svrhe a kasnije i u komercijalne svrhe počinju se koristiti posebni tipovi baza podatka Baze tokova podataka i geoprostorne baze podataka. Zbog svojih posebnosti i brzine u obradi složenih tipova podataka koje obični relacijski modeli nisu mogli obraditi ili je obrada trajala predugo.

PRIMJER: Spremite lik sa slike u sljedeće modele podataka: hijerarhijski, mrežni, relacijski i objektni.

Page 10: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

Str.10§ §DIZAJN BAZA PODATAKA

Zagreb - Maksimirska 58a § A L G E B R A §

Rješenje:

Hijerarhijski model:

Mrežni model:

Page 11: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

Str.11§ §DIZAJN BAZA PODATAKA

Zagreb - Maksimirska 58a § A L G E B R A §

Relacijski model:

Objektni model:

Page 12: dizajn baza podataka - algebra.hr · 2.5.3 Atributi i entiteti u konceptualnom modelu ..... 24 2.6 ZADACI ZA VJEŽBU ... 5.1 EDRAW MAX ...

Str.12§ §DIZAJN BAZA PODATAKA

Zagreb - Maksimirska 58a § A L G E B R A §

1.6 ZADACI ZA VJEŽBU

ZADATAK 1.1

Spremite lik sa slike u sljedeće modele podataka: hijerarhijski, mrežni, relacijski i objektni.