23
Baze podataka i Access 4 Autor: msc. Velja Milanovid, prof. 1. Pojam informacionih sistema Pod pojmom sistem podrazumevdemo skup elemenata koji su međusobno povezani i ponašaju se po određenim zakonitostima. U starogrčkom jeziku reč sistem koristila se prvobitno kao naziv za udruženje, zajednicu ili društvo, da bi kasnije bila u upotrebi i kada se označavao neki skup, celina, čak i sama država. Da bi bilo jasno šta čini jedan sistem, sistem se mora posmatrati u odnosu na njegovo okruženje. Granica sistema razdvaja sistem od spoljnih sistema. Interakcija sistema sa okruženjem se sastoji iz skupa ulaznih i izlaznih dejstava. Dejstvo okoline na sistem naziva se ulaz. Dejstvo sistema na okolinu je izlaz sistema. Slika 1 Značajnu ulogu imaju informacioni sistemi. U literaturi se nalazi mnogo različitih definicija. Informacioni sistem najčešde se definiše kao skup ljudi i opreme koji po određenoj organizaciji i metodama obavljaju prikupljanje, prenos, obradu, čuvanje i dostavljanje podataka i informacija na korišdenje. Osnovni cilj informacionog sistema je da omogudi prikupljanje podataka i prikazivanje dobijenih informacija na najbolji način. Kao elementi informacionog sistema danas se uglavnom navode: a) tehnička oprema (hardware)

1. Pojam informacionih sistema · Pojam informacionih sistema Pod pojmom sistem podrazumevdemo skup elemenata koji su međusobno povezani i ponašaju se po određenim zakonitostima

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

B a z e p o d a t a k a i A c c e s s 4

Autor: msc. Velja Milanovid, prof.

1. Pojam informacionih sistema

Pod pojmom sistem podrazumevdemo skup elemenata koji su međusobno povezani i ponašaju se po određenim zakonitostima. U starogrčkom jeziku reč sistem koristila se prvobitno kao naziv za udruženje, zajednicu ili društvo, da bi kasnije bila u upotrebi i kada se označavao neki skup, celina, čak i sama država.

Da bi bilo jasno šta čini jedan sistem, sistem se mora posmatrati u odnosu na njegovo okruženje. Granica sistema razdvaja sistem od spoljnih sistema. Interakcija sistema sa okruženjem se sastoji iz skupa ulaznih i izlaznih dejstava.

Dejstvo okoline na sistem naziva se ulaz. Dejstvo sistema na okolinu je izlaz sistema.

Slika 1

Značajnu ulogu imaju informacioni sistemi. U literaturi se nalazi mnogo različitih definicija.

Informacioni sistem najčešde se definiše kao skup ljudi i opreme koji po određenoj organizaciji i metodama obavljaju prikupljanje, prenos, obradu, čuvanje i dostavljanje podataka i informacija na korišdenje.

Osnovni cilj informacionog sistema je da omogudi prikupljanje podataka i prikazivanje dobijenih informacija na najbolji način.

Kao elementi informacionog sistema danas se uglavnom navode:

a) tehnička oprema (hardware)

B a z e p o d a t a k a i A c c e s s 5

Autor: msc. Velja Milanovid, prof.

b) programska oprema (software) c) organizaciona podrška (orgware) d) kadrovska podrška (lifeware).

Svi materijalni delovi računara koji su međusobno povezani ili funkciono usklađeni, naziva se mašinska oprema ili hardver (hardware).

Sve što je u vezi sa programima nazivasmo programska oprema ili softver (software).

Organizacionu podršku (orgware) čine metode i postupci za usklađivanje svih delova informacionog sistema u organizovanu celinu.

Kadrovsku podršku (lifeware) čine kadrovi koji neposredno rade na poslovima i krajnji korisnici informacionog sistema.

Slika 2

1. 1. Vrste informacionih sistema

Danas je uglavnom prihvadena slededa podela::

1. informacioni sistemi za obradu podataka (DP – Data processing)

2. upravljački informacioni sistem (MIS – Management Information Systems),

3. informacioni sistemi za podršku odlučivanju (DSS – Decision Support Systems)

4. ekspertni sistem (ES – Expert System)

1.1.1. Informacioni sistemi za obradu podataka (dp – data processing)

Osnovna uloga takvih informacionih sistema bila je prihvatanje i obrada poslovnih transakcija, tako da se njihova najčešda primena sastojala u zameni ručne obrade mašinskom, u smislu mehanografske obrade. U središtu pažnje informacionih sistema za

B a z e p o d a t a k a i A c c e s s 6

Autor: msc. Velja Milanovid, prof.

obradu podataka su podaci. Programska rešenja zasnivaju se na klasičnim programskim jezicima (C++, Delphi, C, Java, Visual Basic, Visual C++ , C#). Osnovni izlazi iz sistema su štampani izveštaji.

Osnove osobine informacionih sistema za obradu podataka jesu:

pasivan način korišdenja,

korisnici su zaposleni isključivo u posebnom organizacionom delu za elektronsku obradu podataka (elektronski računarski centar),

mehanička efikasnost u obavljanju posla,

zasnovanost na analizi prošlih događaja

1. 1. 2. Upravljački informacioni sistem (mis – management information systems)

Upravljački informacioni sistem je mreža zasnovana na računarima, koja pruža odgovarajude podatke rukovodstvu preduzeda u svrhu donošenja odluka. Ti sistemi javljaju se kao druga faza razvoja informacionih sistema, kao posledica potrebe poslovnih sistema da prikupljene i obrađene informacije iskoriste u svrhu upravljanja, a takođe i kao posledica razvoja hardvera i usavršavanja softvera. Podaci se unose tamo gde nastaju, terminalskom mrežom, a proces izveštavanja je poboljšan jer se osim pisanog izveštaja unosi i ekranski tip izveštaja koji korisnik dobija na ekranu svog terminala. Upravljački informacioni sistemi orijentisani su ka informacijama.

1. 1. 3. Informacioni sistemi za podršku odlučivanju (dss – decision support systems)

Informacioni sistemi za podršku odlučivanju (DSS – Decision Support Systems) počinju da se razvijaju nastankom programskih jezika četvrte generacije i takozvanih generatora aplikacija. To su sistemi koji pomažu rukovodstvu preduzeda da rešava probleme koji su specifični. Korisnik donosi poslovne odluke u interakciji sa izlaznim informacijama iz informacionog sistema i da pružaju mnoge važne prednosti u odnosu na predhodne vrste informacionih sistema, u vidu:

raznovrsnijeg izveštavanja korišdenja grafičkih i drugih izlaznih mogudnosti, eliminacije vedeg dela papirne dokumentacije na ulazu, uvođenja elemenata veštačke inteligencije.

1. 1. 4. Ekspertni sistemi (expert systems)

Ekspertni sistemi su najnovija rešenja u razvoju informacione tehnologije. Oni su povezani sa nastankom veštačke inteligencije i razvijaju se kao jedan njen deo. Veštačka inteligencija je termin koji je dodeljen mnogim oblastima istraživanja koje se bave rastudom sposobnošdu računara da izvršavaju zadatke kako to čovek radi. U izradi ekspertnog sistema učestvuje vedi broj eksperata za oblast rešavanja problema i za softver.

Za razliku od informacionih sistema za podršku u odlučivanju, gde je korisnik bio u situaciji da dobije pomod od sistema, ali samo ako je imao ideju za tip izveštaja ili korišdenje nekog modela, ekspertni sistem mu nudi alternativu, odgovor kako bi drugi eksperti rešili sličan problem.

B a z e p o d a t a k a i A c c e s s 7

Autor: msc. Velja Milanovid, prof.

Ekspertni sistemi su samoučedi, tako da pamte rešenja korisnika koja mogu da budu od interesa za obogadivanje baze znanja sistema. Oni koriste prirodan jezik – uglavnom engleski i na taj način je još manje formalizovano njihovo korišdenje.

Ekspertni sistemi ne zasnivaju se na bazi podataka, ved na bazi znanja.

Veoma se lako menja a kao svoj obavezni deo sadrži objašnjenje odluke. Oni sadrže bazu znanja organizovanu za korišdenje kao skup pravila. Ekspertni sistemi uključuju osnovne ideje inteligentnog rešavanja problema. Oni su prirodna faza u evolucuji računara. Slededa faza predstavlja dalju evoluciju ekspertnih sistema u formu koja se naziva „kreativna inteligencija“ (CREATIVE INTELLIGENCE), u kojoj nove ideje treba da stvara sam računar.

1. 2. Projektovanje informacionih sistema

Razvoj informacionog sistema je složen zadatak. Uglavnom se taj proces odvija u slededim fazama:

projektovanje izgradnja uvođenje funkcionisanje.

Projektovanje informacionog sistema mora biti zasnovano na zahtevima korisnika i prethodnoj analizi postojedeg stanje, na osnovu čega se definiše struktura informacionog sistema kao i potrebna tehnička oprema, softver, organizaciona i kadrovska podrška.

Izgradnja informacionog sistema se obavlja nabavkom hardvera i sistemskog softvera, izradom ili nabavkom aplikativnog softvera i obukom kadrova. Za tu fazu neophodno je napraviti dinamički plan.

Uvođenje informacionog sistema je faza razvoja koja se realizuje kada su obezbeđene sve komponente informacionog sistema.

Funkcionisanje informacionog sistema započinje posle uspešno obavljenih testova i probnog rada svih komponenti i dovoljne osposobljenosti kadrova. Za normalno funkcionisanje informacionog sistema treba obezbediti neprekidno održavanje i potrebne uslove za dalji razvoj.

B a z e p o d a t a k a i A c c e s s 8

Autor: msc. Velja Milanovid, prof.

2 . B A Z E P O D A T A K A

Da bi shvatili šta su to baze podataka prvo morate znati da razlikujete podatke od informacija.

Reči “podatak” i “informacija” se često koriste kao sinonimi. Ipak, one imaju različito

značenje. Podatak <> informacija

Podatak može biti

Sirov materijal, iz kojeg mogu da se izvuku zaključci, da se nešto sazna Podaci su činjenice, iz kojih mogu da se dobiju nove činjenice

Informacija predstavlja:

Znanje Značenje Funkcija podatka Rezultat kombinovanja, upoređivanja i izvođenja zaključaka nad podacima

Sistem baza podataka sadrži 4 osnovne komponente:

korisnici,

aplikacija nad bazom podataka,

sistem za upravljanje bazama podataka (Database Management System - DBMS), i

baza podataka.

Slika 3

Baza podataka je skup podataka koji su povezani određenim relacijama .

Izraz je nastao u kompjuterskoj industriji, njegovo značenje prošireno od strane običnih korisnika tako da danas označava praktično svaku kolekciju podataka, elektronsku i neelektronsku, koju je mogude proširivati, menjati i brisati (uništavati).

Osnovne f-je BP su:

Baza podataka obezbeđjuje mogudnosti pretraživanja, dodavanja, modifikovanja i brisanja podataka kada je to potrebno.

Baza podataka takođe obezbeđejuje mogudnost transformiranja dobijenih podataka u korisne informacije.

Bazom podataka obično rukuje administrator baze podataka (DBA) Omogudeno je smeštanje različitih podataka: dokumenti, slike, video, zvuk...

B a z e p o d a t a k a i A c c e s s 9

Autor: msc. Velja Milanovid, prof.

Baza podataka predstavlja organizovan skup logički povezanih podataka koji su smešteni u jednoj ili više datoteka, tako da se mogu :

pretraživati, sortirati, ažurirati, grupisati, transformisati i štampati.

U vedini modernih baza podataka, može se smestiti i iz njih dobiti veliki broj različitih podataka i dokumenata. Unutar baze podataka, podaci su smešteni u “sirovoj” formi. Kada se ti sirovi podaci pretražuju ili dobijaju upitom, oni se transformišu u mnogo korisniju izlaznu informaciju.

Iz „definicije" baze podataka vidi se da je ona kolekcija međusobno povezanih podataka organizovanih u tabele. Podaci u bazama podataka su organizovani u dvodimenzionalne tabele. Tabela može da ima više kolona, gde svaka kolona predstavlja neku osobinu ili atribut. Vrste tabele čine konkretni podaci, odnosno konkrente vrednosti osobina/atributa nekog objekta.

Prava snaga baze podataka ne leži u mogudnosti skladištenja informacija, ved u sposobnosti pronalaženja i preuzimanja tačno onih informacija koje želimo.

Šta baza podataka ima sa svakodnevnim životom?

Više nego što možete zamisliti...

Mnogo veb sajtova koje posedujete je podržano bazom podataka Mnoga radna mesta na šalterima, u kancelarijama, u proizvodnji koriste baze

podataka Mnoge usluge koje dobijate svakodnevno u banci, pošti, na autobuskoj stanici ili u

domu zdravlja su podržane bazama podataka.....

Baza podataka može biti organizovana kao kolekcija zapisa u kompjuteru kako bi kompjuterski program mogao da nađe u BP informacije koje bi potom iskoristio.

Taj tip programa se zove Sistem za upravljanje bazom podataka (DBMS).

DBMS treba da obezbedi sledede funkcije za kontrolisani pristup podacima u bazi podataka:

Sigurnosni sistem, koji onemogudava pristup bazi podataka neautorizovanim korisnicima (sigurnosni servisi), odnosno samo autorizovani korisnici mogu da koriste podatke u skladu sa definisanim privilegijama (autorizacioni servisi)

Integritetni sistem, koji održava konzistentnost podataka u bazi podataka, odnosno da se sve promene dešavaju u skladu sa definisanim pravilima.

Sistem za kontrolu konkurencije, koji dopušta deljivi pristup podacima iz baze podataka, tj da se obezbedi korektno ažuriranje podataka kada više korisnika pokušava istovremeno da vrši ažuriranja.

Sistem za kontrolu oporavka baze podataka, koji omogudava rekonstrukciju prethodnog konzistentnog stanja u slučaju neke hardverske ili softverske neispravnosti.

B a z e p o d a t a k a i A c c e s s 10

Autor: msc. Velja Milanovid, prof.

Razne korisničke funkcije, kao što su import, eksport podataka, statističke analize, funkcije za nadgledanje,...

Izbor DBMS-a

Postoji veliki broj proizvođača DBMS-a različitih performansi, namenjeni različitim segmentima tržišta. Tipovi sistema baza podataka:

Knjigovodstvene aplikacije (sistemi za upravljanje dokumentima, sistemi za banke, i

sl)

Modere Web aplikacie koje obezbeđuju složenu funkcionalnost u distribuiranom

okruženju (on-line kupovine, raze socijalne mreže i sl.)

personalni sistemi baza podataka (npr. aplikacija za evidenciju kucnih troskova gde

BP koristi samo jedan korisnik

Slika 4

enterprise sistemi baza podataka (npr. velika kompanija, ima sistem baza podataka sa velikim količinama informacija.

Slika 5

2. 1. Modeli baza podataka

Ravni model se sastoji od jednog dvodimenzionalnog niza podataka, gde se smatra da svi članovi iste kolone imaju slične vrednosti, a za sve članove istog reda se predpostavlja da su povezani međusobom. Ovaj model je osnova Microsoft Excel spreadsheet-a.

B a z e p o d a t a k a i A c c e s s 11

Autor: msc. Velja Milanovid, prof.

Mrežni model organizuje informacije koristedi dve osnove, zvane podatak i set. Podaci sadrže polja. Setovi definišu “jedan prema više” odnose između podataka: jedan vlasnik, više članova. Podatak može biti vlasnik u bilo kojem setu i član bilo kojeg broja setova.

Slika 6

Relacioni model je matematički model definisan u obliku predikatske logike i teorije nizova.

Slika 7

Relaciona BP sadrži više tabela, sličnih onima iz “ravnog” modela BP. Relacije između tabela nisu eksplicitno definisane, umesto toga se koriste ključevi kojima se omogudava poklapanje redova podataka u različitim tabelama.

Ključ je skup jedne ili više kolona u jednoj tabeli čije vrednosti se moraju poklapati u odgovarajudim kolonama druge tabele.

Bilo koja kolona (ili grupisane kolone) može biti ključ. Nije neophodno definisati sve ključeve unapred, kolona se može koristiti kao ključ iako nije predhodno bila predviđena za to.

Ključ kojim se jedinstveno definiše red u tabeli se naziva jedinstveni ključ ( primarni ključ). Ključ čije se vrednosti mogu ponavljati naziva se sekundarni ključ.

2. 2. Elementi relacione baze podataka

Access organizuje informacije u tabele: liste redova i kolona koje podsedaju na notes računovođe ili unakrsnu tabelu. U jednostavnoj bazi podataka možete imati samo jednu tabelu. Za vedinu baza podataka bide vam potrebno više od jedne tabele. Na primer, možda dete imati jednu tabelu za skladištenje informacija o proizvodima, drugu tabelu za skladištenje informacija o porudžbinama i još jednu sa informacijama o kupcima.

B a z e p o d a t a k a i A c c e s s 12

Autor: msc. Velja Milanovid, prof.

Slika 8

Svaki red se pravilnije zove zapis, a svaka kolona polje. Zapis predstavlja kombinovanje informacija o nečemu na smislen i dosledan način. Polje je pojedinačna stavka informacije – tip stavke koji se pojavljuje u svakom zapisu. U tabeli „Proizvodi“, na primer, svaki red ili zapis sadrži informacije o jednom proizvodu. Svaka kolona ili polje ima isti tip informacija o tom proizvodu, na primer njegovo ime ili cenu.

2.2.1. Šta se podrazumeva pod dobrim dizajnom baze podataka?

Procesom dizajniranja baze podataka upravljaju određeni principi.

Prvi princip je da su duplirane informacije (koje se nazivaju i redundantni podaci) loša pojava, jer nepotrebno zauzimaju prostor i povedavaju verovatnodu pojave grešaka i nedoslednosti.

Drugi princip ističe važnost ispravnosti i potpunosti informacija. Ako baza podataka sadrži neispravne informacije, izveštaji koji izvlače informacije iz baze podataka de takođe sadržati neispravne informacije. Kao posledica toga, donete odluke koje su zasnovane na tim izveštajima de u osnovi sadržati pogrešne informacije.

2. 2. 2. Proces dizajniranja

Proces dizajniranja se sastoji iz slededih koraka:

Određivanje namene baze podataka

Ovaj korak doprinosi pripremi za preostale korake.

Pronalaženje i organizovanje potrebnih informacija

Sakupite sve tipove informacija koje dete možda želeli da zapišete u bazu podataka, poput imena proizvoda i broja porudžbine.

Raspoređivanje informacija u tabele

B a z e p o d a t a k a i A c c e s s 13

Autor: msc. Velja Milanovid, prof.

Rasporedite stavke informacija po glavnim entitetima ili temama, kao što su „Proizvodi“ ili „Porudžbine“. Na taj način svaka tema de postati tabela.

Pretvaranje stavki informacija u kolone

Odlučite koje informacije želite da uskladištite u svaku tabelu. Svaka stavka de postati polje i prikazade se kao kolona u tabeli. Na primer, tabela „Zaposleni“ bi mogla da sadrži polja poput „Prezime“ i „Datum zapošljavanja“.

Određivanje primarnih ključeva

Odaberite primarni ključ za svaku tabelu. Primarni ključ predstavlja kolonu koja se koristi da jedinstveno identifikuje svaki red, na primer „ID proizvoda“ ili „ID porudžbine“.

Podešavanje relacija između tabela

Razmotrite svaku tabelu i odlučite na koji način de podaci iz jedne tabele biti povezani sa podacima u drugoj tabeli. Dodajte polja u tabele ili kreirajte nove tabele kako biste, po potrebi, objasnili relacije.

Pročišdavanje dizajna

Analizirajte dizajn radi pronalaženja grešaka. Kreirajte tabele i dodajte nekoliko zapisa sa probnim podacima. Proverite da li iz tabela možete da dobijete željene rezultate. Po potrebi podesite dizajn.

Primenjivanje pravila normalizacije

Primenite pravila normalizacije podataka kako biste videli da li su tabele ispravno strukturirane. Po potrebi podesite tabele.

2. 2. 3. Određivanje namene baze podataka

Preporučuje se da zapišete namenu baze podataka na papir – samu namenu, način na koji planirate da je koristite, kao i ko de je koristiti. Na primer, za malu bazu podataka za posao koji radite kod kude mogli biste da zapišete nešto jednostavno poput „Baza podataka kupaca sadrži listu informacija o kupcima sa namenom kreiranja pošiljki i izveštaja“. Ako je baza podataka složenija ili je koristi vedi broj ljudi, što se često dešava u poslovnom okruženju, opis namene bi mogao da zauzme jedan ili više pasusa, a trebalo bi takođe da sadrži vreme kada de i način na koji de svaka osoba koristiti tu bazu podataka. Potrebno je da postoji precizno definisan cilj zadatka koji dete modi da uzmete u obzir tokom čitavog procesa dizajniranja. Postojanje tako definisanog cilja vam pomaže da se pri donošenju odluka usredsredite na ciljeve.

2. 2. 4. Pronalaženje i organizovanje potrebnih informacija

Da biste pronašli i organizovali potrebne informacije, počnite od postojedih informacija. Na primer, možda izlazne porudžbine zapisujete u registrator ili informacije o kupcima čuvate na papirnim obrascima u arhivi. Sakupite te dokumente i navedite sve prikazane tipove informacija (na primer, svako polje koje popunjavate u obrascu). Ako nemate postojede obrasce, zamislite da morate da dizajnirate obrazac kako biste zapisali informacije o kupcima. Koje informacije biste uneli u obrazac? Koja polja za popunjavanje biste kreirali? Identifikujte i navedite sve te stavke. Na primer, pretpostavite da trenutno listu kupaca

B a z e p o d a t a k a i A c c e s s 14

Autor: msc. Velja Milanovid, prof.

čuvate na karticama za indeksiranje. Pregledanje ovih kartica bi moglo da pokaže da svaka kartica sadrži ime, adresu, grad, državu, poštanski broj i broj telefona kupca. Svaka od ovih stavki predstavlja potencijalnu kolonu u tabeli.

Dok pripremate listu, nemojte se truditi da ona odmah bude savršena, ved navedite svaku stavku koje se setite. Ako de još neke osobe koristiti bazu podataka, i njih upitajte za ideje. Kasnije možete da preciznije podesite listu.

Nakon toga razmotrite tipove izveštaja i pošiljki koje dete možda želeti da kreirate na osnovu baze podataka. Na primer, možda biste želeli da kreirate izveštaj o prodaji proizvoda koji de prodaju prikazivati po regionu ili izveštaj sa rezimeom zaliha koji prikazuje nivoe zaliha proizvoda. Možda biste želeli da generišete i tipska pisma koja dete slati kupcima najavljujudi prodajni događaj ili nudedi premiju. Dizajnirajte izveštaj u glavi i zamislite kako de izgledati. Koje informacije biste obuhvatili izveštajem? Navedite svaku stavku. To isto učinite za tipsko pismo, kao i za svaki drugi izveštaj čije kreiranje planirate.

Slika 9

Razmišljanje o izveštajima i pošiljkama koje biste želeli da kreirate pomaže vam da identifikujete stavke koje de vam biti potrebne u bazi podataka. Na primer, pretpostavimo da ste kupcima omogudili da daju (ili odbiju) saglasnost za periodične ispravke koje se šalju putem e-pošte i da želite da odštampate listu onih koji su dali saglasnost. U tabelu sa kupcima dodajte kolonu „Slanje e-pošte“ da biste zapisali te informacije. Polje za svakog kupca možete da postavite na vrednost „Da“ ili „Ne“.

Potreba da se kupcima šalju e-poruke podrazumeva još jednu stavku koju je potrebno zapisati. Kada saznate da kupac želi da prima e-poruke, moradete da znate i e-adresu na koju dete ih poslati. Stoga je potrebno da zapišete e-adresu svakog kupca.

Ključna stvar koju bi trebalo da imate u vidu je da svaku informaciju treba da raščlanite na najmanje korisne delove. Kad su u pitanju imena, puno ime podelite na dva dela – ime i prezime, kako bi prezime bilo odmah dostupno. Odvojeno skladištenje prezimena kupaca može da bude korisno ako, na primer, izveštaj želite da sortirate po prezimenu. Uopšte uzev, ako želite da sortirate, pretražujete, izračunavate ili izveštavate na osnovu neke stavke sa informacijama, trebalo bi da tu stavku smestite u posebno polje.

Razmislite o pitanjima na koja možda želite da baza podataka pruži odgovor. Na primer, koliko ste prodaja preporučenog proizvoda zaključili prošlog meseca? Gde žive vaši najvažniji

B a z e p o d a t a k a i A c c e s s 15

Autor: msc. Velja Milanovid, prof.

kupci? Ko je dobavljač vašeg najprodavanijeg proizvoda? Ukoliko predvidite ove odgovore, bidete u mogudnosti da se usredsredite na dodatne stavke koje treba da zapišete.

Posle sakupljanja ovih informacija spremni ste za slededi korak.

2. 2. 5. Raspoređivanje informacija u tabele

Odaberite glavne entitete ili teme kako biste informacije rasporedili u tabele. Na primer, pošto pronađete i organizujete informacije za bazu podataka prodaje proizvoda, preliminarna lista bi mogla da izgleda ovako:

Slika 10

Glavni entiteti koje su ovde prikazani su proizvodi, dobavljači, kupci i porudžbine. Stoga, kreiranje ima smisla početi sa ove četiri tabele: jedna je za činjenice o proizvodima, druga za činjenice o dobavljačima, treda za činjenice o kupcima, a četvrta za činjenice o porudžbinama. Iako ovim lista nije dovršena, to je dobar početak. Možete da nastavite s pročišdavanjem ove liste sve dok ne dobijete dizajn koji dobro funkcioniše.

Kada prvi put budete redigovali preliminarnu listu stavki, možda dete poželeti da ih smestite u jednu tabelu, umesto u četiri koje su prikazane na prethodnoj slici. Sada dete saznati zašto bi to bilo loše. Nakratko razmotrite tabelu koja je ovde prikazana:

Slika 11

U ovom slučaju, svaki red sadrži informacije i o proizvodima i o dobavljačima. Pošto možete imati veliki broj proizvoda od istog dobavljača, informacije o imenu dobavljača i njegovoj

B a z e p o d a t a k a i A c c e s s 16

Autor: msc. Velja Milanovid, prof.

adresi moraju se ponoviti više puta. Na taj način se zauzima nepotreban prostor na disku. Mnogo je bolja opcija da samo jednom zapišete informacije o dobavljaču u odvojenu tabelu „Dobavljači“, a zatim je povežete sa tabelom „Proizvodi“.

Drugi problem sa dizajnom u ovom slučaju javlja se kada je potrebno da izmenite informacije o dobavljaču. Na primer, pretpostavimo da treba da promenite adresu dobavljača. Pošto se ona pojavljuje na mnogo mesta, može da se desi da slučajno promenite adresu na jednom mestu, a da zaboravite da je promenite na ostalim mestima. Zapisivanje adrese dobavljača na samo jednom mestu rešava taj problem.

Kada dizajnirate bazu podataka, uvek pokušajte da svaku činjenicu zapišete samo jednom. Ako je potrebno da istu informaciju, poput adrese određenog dobavljača, ponavljate na više mesta, smestite tu informaciju u odvojenu tabelu.

Na kraju, pretpostavimo da postoji samo jedan proizvod vinarije „Coho Winery“, a vi želite da ga izbrišete bez gubljenja informacija o imenu i adresi dobavljača. Kako dete izbrisati zapis o proizvodu, a da pri tome ne izgubite i informacije o dobavljaču? To nije mogude. Pošto svaki zapis sadrži činjenice o proizvodu, kao i činjenice o dobavljaču, ne možete da izbrišete jedno, a da ne izbrišete i drugo. Da biste ove činjenice čuvali odvojeno, tabelu morate podeliti na dva dela: jedna tabela služi za informacije o proizvodu, a druga za informacije o dobavljačima. Brisanje zapisa o proizvodu bi trebalo da izbriše činjenice o proizvodu, a ne i činjenice o dobavljaču.

Kada odaberete temu za tabelu, kolone u toj tabeli bi trebalo da skladište samo činjenice o temi. Na primer, tabela proizvoda bi trebalo da skladišti samo činjenice o proizvodima. Pošto je adresa dobavljača činjenica o dobavljaču, a ne činjenica o proizvodu, ona pripada tabeli o dobavljačima.

2. 2. 6. Pretvaranje stavki informacija u kolone

Odlučite koje informacije treba da pratite u vezi sa temom zapisanom u tabeli kako biste odredili kolone u tabeli. Na primer, kolone „Ime“, „Adresa“, „Grad-država-poštanski broj“, „Slanje e-pošte“, „Oslovljavanje“ i „E-adresa“ predstavljaju dobru početnu listu kolona za tabelu „Kupci“. Svaki zapis u tabeli sadrži isti skup kolona tako da za svaki zapis možete da uskladištite informacije o imenu, adresi, gradu-državi-poštanskom broju, slanju e-pošte, oslovljavanju i e-adresi. Na primer, kolona sa adresama sadrži adrese kupaca. Svaki zapis obuhvata podatke o jednom kupcu, a polje za adresu sadrži adresu tog kupca.

Nakon što odredite početni skup kolona za svaku tabelu, kolone možete dodatno da pročistite. Na primer, dobro je uskladištiti puno ime kupca u dve odvojene kolone – ime i prezime, kako biste mogli da sortirate, pretražujete i indeksirate samo prema ovim kolonama. Slično tome, adresa se u stvari sastoji od pet odvojenih komponenti – adrese, grada, države, poštanskog broja i zemlje/regiona, koje je korisno uskladištiti u odvojene kolone. Na primer, ako želite da izvršite operaciju pretraživanja, filtriranja ili sortiranja po državi, potrebna vam je informacija o državi koja je uskladištena u odvojenoj koloni.

Trebalo bi da razmotrite da li de baza podataka sadržati informacije samo domadeg porekla ili i međunarodnog. Na primer, ako planirate da skladištite međunarodne adrese, bolje je umesto kolone „Država“ imati kolonu „Region“ jer takva kolona može da prihvati i domade

B a z e p o d a t a k a i A c c e s s 17

Autor: msc. Velja Milanovid, prof.

države, kao i regione drugih zemalja/regiona. Slično tome, kolona „Poštanski broj“ ima više smisla nego kolona „Poštanski broj – Srbija“ ako dete skladištiti međunarodne adrese.

Slededa lista sadrži nekoliko saveta za određivanje kolona.

Ne uključujte izračunate podatke

U vedini slučajeva, rezultat računskih operacija ne bi trebalo da skladištite u tabele. Umesto toga, Access može da izvršava računske operacije kada vi želite da vidite odgovarajudi rezultat. Na primer, pretpostavimo da postoji izveštaj „Proizvodi u porudžbini“ koji prikazuje podzbir jedinica u porudžbini za svaku kategoriju proizvoda u bazi podataka. Međutim, kolona podzbira „Jedinice u porudžbini“ ne postoji ni u jednoj tabeli. Umesto toga, tabela „Proizvodi“ sadrži kolonu „Jedinice u porudžbini“ koja za svaki proizvod skladišti jedinice u porudžbini. Koristedi te podatke, Access izračunava podzbir svaki put kada odštampate izveštaj. Sam podzbir ne bi trebalo skladištiti u tabeli.

Informacije uskladištite u najmanje logičke jedinice

Možda dete poželeti da imate jedno polje za puna lična imena ili imena proizvoda sa opisima proizvoda. Ako kombinujete više vrsta informacija u jednom polju, kasnije de biti teško preuzeti pojedinačne činjenice. Potrudite se da informacije raščlanite na logičke jedinice; na primer, kreirajte odvojena polja za ime i prezime ili ime, kategoriju i opis proizvoda.

Slika 12

Kada pročistite kolone sa podacima u svim tabelama, modi dete da odaberete primarni ključ za svaku tabelu.

2. 2. 7. Preciziranje primarnih ključeva

Svaka tabela bi trebalo da sadrži kolonu ili skup kolona koji jedinstveno identifikuje svaki red uskladišten u tabeli. To je često jedinstveni identifikacioni broj, poput ID broja zaposlenog ili serijskog broja. U terminologiji baze podataka ova informacije se naziva primarni ključ

B a z e p o d a t a k a i A c c e s s 18

Autor: msc. Velja Milanovid, prof.

tabele. Access polja primarnog ključa koristi za brzo povezivanje podataka iz više tabela, kao i sakupljanje podataka za vaše potrebe.

Ako ved imate jedinstveni identifikator tabele, kao što je broj proizvoda koji jedinstveno identifikuje svaki proizvod u katalogu, taj identifikator možete da koristite kao primarni ključ tabele – ali samo ako de vrednosti za svaki zapis u ovoj koloni uvek biti različite. U primarnom ključu ne možete imati duplirane vrednosti. Na primer, imena osoba nemojte koristiti kao primarni ključ jer ona nisu jedinstvena. Lako bi moglo da se desi da dve osobe u jednoj tabeli imaju isto ime.

Primarni ključ uvek mora da ima vrednost. Ako postoji mogudnost da vrednost kolone u nekom trenutku postane nedodeljena ili nepoznata (vrednost koja nedostaje), ona ne može da se koristi kao komponenta u primarnom ključu.

Uvek bi trebalo da odaberete primarni ključ čija se vrednost nede menjati. U bazi podataka sa više tabela primarni ključ jedne tabele se može koristiti kao referenca u drugim tabelama. Ako se primarni ključ promeni, promena se mora primeniti i na sva mesta na kojima se referencira na ključ. Korišdenje primarnog ključa koji se nede menjati smanjuje verovatnodu da primarni ključ postane nesinhronizovan sa drugim tabelama koje na njega referenciraju.

Kao primarni ključ se često koristi proizvoljni jedinstven broj. Na primer, svakoj porudžbini možete da dodelite jedinstveni broj porudžbine. Jedina namena broja porudžbine je identifikacija porudžbine. On se nakon dodeljivanja nikada ne menja.

Ako nemate u vidu kolonu ili skup kolona koje bi mogle da budu dobar primarni ključ, razmotrite upotrebu kolone koja sadrži tip podataka „Automatsko numerisanje“. Kada koristite tip podataka „Automatsko numerisanje“, Access de automatski dodeliti vrednost umesto vas. Takav identifikator nije zasnovan na činjenicama; oni ne sadrže činjenične informacije koje opisuju red koji predstavljaju. Ti identifikatori su idealni za korišdenje u vidu primarnih ključeva jer se ne menjaju. Verovatnije je da se primarni ključ koji sadrži činjenice o redu – npr. broj telefona ili ime kupca – promeni jer se same činjenične informacije mogu promeniti.

Slika 13

Kolona čiji je tip podataka postavljen na „Automatsko numerisanje“ je često dobar primarni ključ. Nijedan ID proizvoda se ne ponavlja.

U nekim slučajevima, možda dete želeti da za primarni ključ tabele koristite dva ili više polja. Na primer, tabela „Detalji porudžbine“ u kojoj su uskladištene stavke za porudžbinu bi za primarni ključ koristila dve kolone: „ID porudžbine“ i „ID proizvoda“. Kada se primarni ključ sastoji iz više kolona, naziva se i složeni ključ.

U bazama podataka prodaje proizvoda možete da kreirate kolonu „Automatsko numerisanje“ koja de u svakoj tabeli služiti kao primarni ključ: „ID proizvoda“ za tabelu

B a z e p o d a t a k a i A c c e s s 19

Autor: msc. Velja Milanovid, prof.

„Proizvodi“, „ID porudžbine“ za tabelu „Porudžbine“, „ID kupca“ za kolonu „Kupci“ i „ID dobavljača“ za tabelu „Dobavljači“.

Slika 14

2. 3. Kreiranje relacija između tabela

Nakon raspoređivanja informacija u tabele, potreban vam je metod da ih ponovo povežete na smislen način. Na primer, slededi obrazac sadrži informacije iz nekoliko tabela.

Slika 15

Informacije u ovom obrascu potiču iz tabele „Klijenti“…

B a z e p o d a t a k a i A c c e s s 20

Autor: msc. Velja Milanovid, prof.

…tabele „Zaposleni“…

…tabele „Porudžbine“…

…tabele „Proizvodi“…

…i tabele „Detalji porudžbine“.

Access je sistem za upravljanje relacionim bazama podataka. U relacionoj bazi podataka informacije se na osnovu teme dele u zasebne tabele. Nakon toga se koriste relacije između tabela kako bi se informacije po potrebi povezale.

2. 3. 1. Kreiranje relacije „jedan-prema-više“

Razmotrite ovaj primer: tabele „Dobavljači“ i „Proizvodi“ u bazi podataka porudžbina proizvoda. Dobavljač može da dostavlja neograničen broj proizvoda. To znači da za svakog dobavljača koji je predstavljen u tabeli „Dobavljači“ može da postoji više proizvoda predstavljanih u tabeli „Proizvodi“. Dakle, relacija između tabele „Dobavljači“ i tabele „Proizvodi“ je relacija „jedan-prema-više“.

Slika 16

Da biste predstavili relaciju „jedan-prema-više“ u dizajnu baze podataka, primarni ključ sa strane relacije „jedan“ dodajte u vidu jedne ili više dodatnih kolona u tabelu na strani relacije „više“. U ovom slučaju, npr. kolonu „ID dobavljača“ dodajete u tabelu „Proizvodi“. Access de nakon toga modi da koristi ID broj dobavljača u tabeli „Proizvodi“ za pronalaženje odgovarajudeg dobavljača za svaki proizvod.

Kolona „ID dobavljača“ u tabeli „Proizvodi“ naziva se sporedni ključ. Sporedni ključ je primarni ključ druge tabele. Kolona „ID Dobavljača“ je sporedni ključ u tabeli „Proizvodi“, pošto je primarni ključ u tabeli „Dobavljači“.

B a z e p o d a t a k a i A c c e s s 21

Autor: msc. Velja Milanovid, prof.

Slika 17

Vi obezbeđujete osnovu za spajanje srodnih tabela uparivanjem primarnih i sporednih ključeva. Ako niste sigurni koje tabele bi trebalo da dele zajedničku kolonu, identifikacija relacije „jedan-prema-više“ obezbeđuje situaciju u kojoj de dve povezane tabele zaista zahtevati deljenu kolonu.

2. 3. 2. Kreiranje relacije „više-prema-više“

Razmotrite relaciju između tabele „Proizvodi“ i tabele „Porudžbine“.

Jedna porudžbina može da sadrži više proizvoda, a jedan proizvod može da se pojavi u više porudžbina. Stoga, za svaki zapis u tabeli „Porudžbine“ može da postoji više zapisa u tabeli „Proizvodi“, dok za svaki zapis u tabeli „Proizvodi“ može da postoji više zapisa u tabeli „Porudžbine“. Ovaj tip relacije naziva se relacija „više-prema-više“ jer za svaki proizvod može da postoji više porudžbina, a za svaku porudžbinu može da postoji više proizvoda. Imajte u vidu da je za otkrivanje relacije „više-prema-više“ između tabela važno da uzmete u obzir obe strane relacije.

Teme dveju tabela – tabele porudžbina i proizvoda – imaju relaciju „više-prema-više“. To predstavlja problem. Kako biste shvatili problem, zamislite šta bi se dogodilo ako biste pokušali da kreirate relaciju između ove dve tabele dodavanjem polja „ID proizvoda“ u tabelu „Porudžbine“. Potrebno je da u tabeli „Porudžbine“ postoji više od jednog zapisa po porudžbini da biste imali više proizvoda po porudžbini. Ponavljadete informacije o porudžbini za svaki red koji je povezan sa pojedinačnom porudžbinom – što za posledicu ima neefikasan dizajn koji bi mogao da dovede do netačnih podataka. Srešdete se sa istim problemom ako polje „ID porudžbine“ smestite u tabelu „Proizvodi“ – za svaki proizvod dete imati više od jednog zapisa u tabeli „Proizvodi“. Kako rešiti ovakav problem?

B a z e p o d a t a k a i A c c e s s 22

Autor: msc. Velja Milanovid, prof.

Odgovor leži u kreiranju trede tabele koja se često naziva vezna tabela, a koja relaciju „više-prema-više“ raščlanjuje na dve relacije „jedan-prema-više“. Primarni ključ iz obe tabele umede se u tredu tabelu. Kao posledica toga, treda tabela de zapisati svako pojavljivanje ili instancu relacije.

Slika 18

Svaki zapis u tabeli „Detalji porudžbine“ predstavlja jednu stavku u porudžbini. Primarni ključ tabele „Detalji porudžbine“ sastoji se iz dva polja – sporednih ključeva iz tabele „Porudžbine“ i tabele „Proizvodi“. Kao primarni ključ ove tabele ne možete koristiti samo polje „ID porudžbine“, jer jedna porudžbina može da ima više stavki. Polje „ID porudžbine“ se ponavlja za svaku stavku u porudžbini, tako da ono ne sadrži jedinstvene vrednosti. Ne možete koristiti ni samo polje „ID proizvoda“, jer jedan proizvod može da se pojavi u više porudžbina. Ali ova dva polja zajedno uvek kreiraju jedinstvenu vrednost za svaki zapis.

U bazi podataka prodaje proizvoda, tabela „Porudžbine“ i tabela „Proizvodi“ nisu direktno povezane. One su, u stvari, povezane indirektno preko tabele „Detalji porudžbine“. Relacija „više-prema-više“ između porudžbina i proizvoda predstavljena je u bazi podataka pomodu dve relacije „jedan-prema-više“:

Između tabela „Porudžbine“ i „Detalji porudžbine“ postoji relacija „jedan-prema-više“. Svaka porudžbina može da ima više stavki, dok je svaka stavka povezana sa samo jednom porudžbinom.

Između tabela „Proizvodi“ i „Detalji porudžbine“ postoji relacija „jedan-prema-više“. Svaki proizvod može da ima više pridruženih stavki, ali svaka stavka upuduje samo na jedan proizvod.

Iz tabele „Detalji porudžbine“ možete da odredite sve proizvode u određenoj porudžbini. Možete da odredite i sve porudžbine za određeni proizvod.

Posle unosa tabele „Detalji porudžbine“, lista tabela i polja bi mogla da izgleda poput ove:

B a z e p o d a t a k a i A c c e s s 23

Autor: msc. Velja Milanovid, prof.

Slika 19

2. 3. 3. Kreiranje relacije „jedan-prema-jedan“

Drugi tip relacije jeste relacija „jedan-prema-jedan“. Na primer, pretpostavimo da treba da zapišete neke specijalne dopunske informacije o proizvodu koje de vam retko biti potrebne ili koje su primenljive na samo nekoliko proizvoda. Pošto vam te informacije nisu često potrebne i pošto bi njihovo skladištenje u tabelu „Proizvodi“ dovelo do pojave praznog prostora za svaki proizvod za koji one ne važe, smestite ih u odvojenu tabelu. Koristite „ID proizvoda“ kao primarni ključ, kao u tabeli „Proizvodi“. Relacija između ove dopunske tabele i tabele „Proizvod“ je relacija „jedan-prema-jedan“. Za svaki zapis u tabeli „Proizvod“ postoji jedan podudarni zapis u dopunskoj tabeli. Kada identifikujete takvu relaciju, obe tabele moraju da dele zajedničko polje.

Kada otkrijete potrebu za relacijom „jedan-prema-jedan“, razmotrite da li informacije iz dve tabele možete da smestite u jednu tabelu. Ako to iz nekog razloga ne želite da uradite, možda zbog toga što bi to proizvelo mnogo praznog prostora, slededa lista sadrži opis načina na koji biste tu relaciju predstavili u dizajnu:

Ako dve tabele imaju istu temu, verovatno možete da podesite relaciju pomodu istog primarnog ključa u obe tabele.

Ako dve tabele imaju različite teme sa različitim primarnim ključevima, odaberite jednu od tabela (bilo koju) i umetnite njen primarni ključ u drugu tabelu kao sporedni ključ.

B a z e p o d a t a k a i A c c e s s 24

Autor: msc. Velja Milanovid, prof.

Određivanje relacija između tabela vam pomaže da se uverite da imate odgovarajude tabele ili kolone. Kada postoji relacija „jedan-prema-jedan“ ili „jedan-prema-više“, bide potrebno da tabele unutar relacije dele zajedničku kolonu ili kolone. Kada postoji relacija „više-prema-više“, za predstavljanje relacije de biti potrebna treda tabela.

2. 4. Pročišdavanje dizajna

Ako imate potrebne tabele, polja i relacije, trebalo bi da kreirate tabele i popunite ih probnim podacima, kao i da isprobate rad sa informacijama: kreiranje upita, dodavanje novih zapisa itd. Na taj način dete doprineti otkrivanju potencijalnih problema – na primer, možda de biti potrebno da dodate kolonu koju ste zaboravili da umetnete tokom faze dizajniranja ili možda bi neku tabelu trebalo da podelite na dve tabele kako biste uklonili dupliranje.

Proverite da li bazu podataka možete da koristite kako biste dobili željene odgovore. Kreirajte prve radne verzije obrazaca i izveštaja i vidite da li one prikazuju očekivane rezultate. Potražite nepotrebne duplikate podataka i izmenite dizajn kako biste ih eliminisali nakon što ih pronađete.

Dok budete isprobavali početnu bazu podataka, verovatno dete otkriti da ima mesta za poboljšanja. Evo nekoliko stvari koje bi trebalo da proverite:

Da li ste zaboravili neke kolone? Ako je to slučaj, da li te informacije pripadaju postojedim tabelama? Ukoliko se radi o informacijama o nečem drugom, možda de biti potrebno da kreirate još jednu tabelu. Kreirajte kolonu za svaku stavku informacija koju treba da pratite. Ako se ta informacija ne može izračunati na osnovu drugih kolona, postoji verovatnoda da de vam za nju biti potrebna nova kolona.

Da li su neke kolone nepotrebne jer se mogu izračunati na osnovu postojedih polja? Ako neka stavka informacija može da se izračuna na osnovu drugih postojedih kolona – npr. cena sa popustom izračunata na osnovu maloprodajne cene – često je bolje uraditi samo to i izbedi kreiranje nove kolone.

Da li iznova unosite duplirane informacije u neku tabelu? Ako je to slučaj, verovatno je potrebno da tabelu podelite na dve tabele između kojih de postojati relacija „jedan-prema-više“.

Da li ste svaku informaciju raščlanili na najmanje korisnih delova? Ako je potrebno da izveštavate, sortirate, pretražujete ili izračunavate prema nekoj stavci informacije, stavite je u zasebnu kolonu.

Da li svaka kolona sadrži činjenicu o temi tabele? Ako kolona ne sadrži informaciju o temi tabele, ona pripada drugoj tabeli.

2. 4. 1. Pročišdavanje tabele „Proizvodi“

Pretpostavimo da svaki proizvod u bazi podataka prodaje proizvoda spada u opštu kategoriju, poput alkoholnih i bezalkoholnih pida, začina ili morskih plodova. Tabela „Proizvodi“ bi mogla da sadrži polje koje prikazuje kategoriju svakog proizvoda.

Pretpostavimo da posle ispitivanja i pročišdavanja dizajna baze podataka odlučite da uskladištite opis kategorije sa njenim imenom. Ako dodate polje „Opis kategorije“ u tabelu

B a z e p o d a t a k a i A c c e s s 25

Autor: msc. Velja Milanovid, prof.

„Proizvodi“, moradete da ponavljate opis kategorije za svaki proizvod koji spada u određenu kategoriju – ovo nije dobro rešenje.

Bolje rešenje je da tabela „Kategorije“ postane nova tema koja de se pratiti u bazi podataka, sa sopstvenom tabelom i sopstvenim primarnim ključem. Nakon toga primarni ključ iz tabele „Kategorije“ možete dodati u tabelu „Proizvodi“ kao sporedni ključ.

Tabele „Kategorije“ i „Proizvodi“ imaju relaciju „jedan-prema-više“: kategorija može da sadrži više proizvoda, ali proizvod može da pripada samo jednoj kategoriji.

Kada redigujete strukture tabela, obratite pažnju na grupe koje se ponavljaju. Na primer, razmotrite tabelu koja sadrži sledede kolone:

ID proizvoda Ime ID1 proizvoda Ime1 ID2 proizvoda Ime2 ID3 proizvoda Ime3

Ovde svaki proizvod predstavlja grupu kolona koja se ponavlja i razlikuje od drugih samo po broju koji se dodaje na kraj imena kolone. Kada vidite ovako numerisane kolone, trebalo bi da ponovo razmotrite dizajn.

Takav dizajn ima nekoliko nedostataka. Za početak, primorava vas da postavite gornju granicu broja proizvoda. Čim prekoračite tu granicu, moradete da dodate novu grupu kolona u strukturu tabele što predstavlja osnovni administrativni zadatak.

Problem je i u tome što de ti dobavljači koji imaju manji broj proizvoda od maksimalnog nepotrebno zauzeti prostor, pošto de dodatne kolone biti prazne. Najozbiljniji nedostatak takvog dizajna je u tome što otežava izvršavanje mnogih zadataka, kao što je sortiranje ili indeksiranje tabele prema ID-u proizvoda ili imenu.

Svaki put kada vidite grupe koje se ponavljaju, pažljivo redigujte dizajn obrativši pažnju na deljenje jedne tabele na dve. U prethodnom primeru je bolje koristiti dve tabele, jednu za dobavljače, a drugu za proizvode, pri čemu bi one bile međusobno povezane ID-om dobavljača.

2. 5. Primenjivanje pravila normalizacije

Pravila normalizacije podataka (ponekad se nazivaju samo pravila normalizacije) možete da primenite kao slededi korak u dizajnu. Koristite ova pravila da biste proverili da li su tabele ispravno strukturirane. Proces primenjivanja pravila na dizajn baze podataka naziva se normalizacija baze podataka ili samo normalizacija.

Normalizacija je najkorisnije pošto predstavite sve stavke informacija i dođete do preliminarnog dizajna. Cilj je da se uverite da ste informacije podelili u odgovarajude tabele. Putem normalizacije ne možete da proverite da li imate sve ispravne stavke podataka potrebne za početak rada.

B a z e p o d a t a k a i A c c e s s 26

Autor: msc. Velja Milanovid, prof.

Pravila primenjujete redom, pri čemu se tokom svakog koraka morate uveriti da je vaš dizajn postigao takozvanu „normalnu formu“. Opšteprihvadeno je pet takvih formi – od prve do pete normalne forme. Ovaj članak sadrži objašnjenja o prve tri, jer su one dovoljne za vedinu slučajeva dizajna baze podataka.

2. 5. 1. Prva normalna forma

Prva normalna forma podrazumeva da u svakom preseku reda i kolone u tabeli postoji jedna vrednost, a nikada lista vrednosti. Na primer, ne možete imati polje pod nazivom „Cena“ u koje dete smestiti više cena. Ako svaki presek redova i kolona zamislite kao deliju, svaka delija može da sadrži jednu vrednost.

2. 5. 2. Druga normalna forma

Druga normalna forma zahteva da svaka kolona bez ključa potpuno zavisi od celog primarnog ključa, a ne samo nekog njegovog dela. Ovo pravilo se primenjuje kada imate primarni ključ koji se sastoji od više kolona. Na primer, pretpostavimo da imate tabelu koja sadrži sledede kolone, pri čemu polja „ID porudžbine“ i „ID proizvoda“ formiraju primarni ključ:

ID porudžbine (primarni ključ)

ID proizvoda (primarni ključ)

Ime proizvoda

Ovakav dizajn krši pravilo druge normalne forme, jer kolona „Ime proizvoda“ zavisi od polja „ID proizvoda“, a ne od polja „ID porudžbine“, tako da ne zavisi od celog primarnog ključa. Potrebno je da iz tabele uklonite kolonu „Ime proizvoda“. Ona pripada dugoj tabeli (tabeli „Proizvodi“).

2. 5. 3. Treda normalna forma

Treda normalna forma ne zahteva samo da svaka kolona bez ključa bude zavisna od celog primarnog ključa, ved i da kolone bez ključa zavise jedna od druge.

Drugim rečima, svaka tabela bez ključa mora da zavisi od primarnog ključa i ni od čega drugog. Na primer, pretpostavimo da imate tabelu koja sadrži sledede kolone:

ID proizvoda (primarni ključ) Ime PMC Popust

Pretpostavimo da kolona „Popust“ zavisi od preporučene maloprodajne cene (PMC). Ova tabela narušava tredu normalnu formu jer kolona bez ključa „Popust“ zavisi od kolone bez ključa „PMC“. Nezavisnost kolone znači da bi trebalo da budete u mogudnosti da promenite svaku kolonu koja ne sadrži ključ ne utičudi na druge kolone. Ako promenite vrednost u polju „PMC“, kolona „Popust“ de se promeniti u skladu sa tim i na taj način prekršiti to pravilo. U ovom slučaju, kolonu „Popust“ bi trebalo premestiti u drugu tabelu sa ključem u polju „PMC“.