15

Click here to load reader

Koncept Baze Podataka

Embed Size (px)

Citation preview

Page 1: Koncept Baze Podataka

Koncept baze podataka

Pojam baze podataka

Raspolaganje adekvatnim, pravovremenim i pouzdanim podacima neophodno je za uspešno poslovanje. Računovodstveni podaci, katalozi proizvoda, stanje zaliha, informacije o prodaji samo su neki primeri podataka sa kojim se često susrećemo. Podatke nije dovoljno prikupiti, nego ih moramo na pogodan način organizovati kako bi mogli da im lako i efikasno pristupimo. Tabele su uobičajen način da podatke organizujemo. Na primer, za evidenciju poslovnih partnera možemo da napravimo sledeću tabelu:

Partneri

Slika 1: Početna tabela Partneri

Gledajući podatke u ovoj tabeli možemo uočiti da se za više osoba iz iste firme ponavljaju adresni podaci (problem redundanse). Dupliranje podataka otežava unos, zauzima dodatni prostor i , što je još važnije, nosi rizik da uneseni podaci budu nekonzistentni. Kad je potrebno izmeniti neki podatak (npr. promena adrese preduzeća), izmenu je potrebno sprovesti na svim mestima gde se on nalazi, što često uslovljava pojave grešaka.

Takođe i jednostavna greška pri unosu (npr. Katanićeva umesto Katićeva) dovodi do neusklađenosti podataka, pa korišćenje takvih podataka postaje diskutabilno (problem integriteta podataka).

Rešenje je uvođenje još jedne tabele u kojoj bi se čuvale informacije o firmi, tako da se podaci ne dupliraju nego se unose samo jednom. U tom slučaju za svaku osobu u tabeli Partneri bi se čuvalo polje sa nazivom firme, koji bi koristilo da jednu tabelu možemo da povežemo sa drugom.

Page 2: Koncept Baze Podataka

Slika 2: Početna tabela razdvojena je na dve tabele

Na ovaj način smo rešili problem redundanse ali i dalje možemo imati problema sa neodgovarajuće unesenim podacima. Naziv preduzeća nije pogodan način identifikacije jer je dugačak i lako može doći do pogrešnih unosa. U jednom slučaju možemo uneti ABC d.o.o. drugi put samo ABC ili D.O.O. ABC, pa je uobičajeno da se umesto naziva koriste šifre za povezivanje tabela. Mi ćemo za šifru firme uzeti redni broj. Konačno naša evidencija poslovnih partnera bi izgledala kao na Slici 3.

Page 3: Koncept Baze Podataka

Slika 3: Umesto Naziva firme za povezivanje tabela koristi se šifra firme

Pokazalo se da je čuvanje podataka u samo jednoj tabeli skoro nikada nije dobar način organizacije i da se opisani problemi redundanse i integriteta podataka javljaju čim želimo da evidentiramo više od najjednostavnijih lista podataka. Zato je za skladištenje velikih količina podataka efikasnije i primerenije koristiti bazu podataka.

Baza podataka predstavlja organizovanu kolekciju podatka, tako da im lako možemo pristupiti, ažurirati ih ili pronaći željeni podatak. Baza podataka sadrži skup podataka kojim se opisuje realan sistem, odnosno formalizovan model realnog sistema. Baze podataka možemo klasifikovati po načinu organizacije podataka, a danas u upotrebi preovlađuju relacione baze podataka. U relacionim bazama podataka, podaci su smešteni unutar dvodimenzionalnih tabela, koje su međusobno povezane (u relaciji). Tako se eliminiše redundansa, ali je potreban složeniji softver koji će upravljati podacima i relacijama (Data Base Management System – DBMS). Danas se za upravljanje bazama podataka najčešće koriste MS SQL Server, Oracle (pre svega za velike poslovne sisteme) i MS Access (pre svega za manje poslovne sisteme i personalne baze podataka. U savremenom okruženju informacije su postale veoma značajne, pa računari širom sveta troše veliki deo vremena na upravljanje i korišćenje baza podataka.

Tabele relacione baze podataka

Tabele baze podataka se sastoje iz redova, koje nazivamo slog ili zapis (record) i kolona za koje upotrebljavamo termin polje ili atribut (field). Elementi u jednom polju tabele moraju da budu istorodni, tj. da uzimaju vrednosti iz istog domena. Za svako polje definiše se tip podataka koji ono može da sadrži: numerički podatak, tekstualni podatak, datum/vreme ili drugo. Pored tipa podataka možemo definisati i druga svojstva (parametre, properties) za određeno polje tabele. Koja svojstva polja je moguće postaviti i menjati zavisiće od izabranog tipa podataka za to polje. Za tekstualno polje možemo zadati maksimalnu dužinu teksta, a za numeričko polje broj decimalnih mesta, dok format ispisa možemo definisati i za tekstualno i numeričko polje.

Svaki slog obavezno sadrži vrednosti za sva polja, pri čemu neka polja mogu imati vrednost ‘nedefinisano’ ( tj. NULL, što treba razlikovati od praznog teksta). Redosled po kojem se redovi sortiraju nije unapred određen.

Primarni ključ i indeks

Svaki slog sadrži jedinstvenu kombinaciju polja – ne sme biti dupliranih redova. Polje po kojem se jedan red tabele razlikuje od ostalih zove se primarni ključ (primary key). U našem primeru primarni ključ za tabelu Firme je šifra firme. Neko drugo obeležje npr. adresa, telefon, naziv može biti isto za više organizacija, pa ga ne možemo koristiti kao primarni ključ. Ako pogledamo sada tabelu Partneri, nemamo ni jedan atribut koji samostalno razlikuje jedan slog u tabeli od ostalih. U tom slučaju možemo koristiti dva (ili više) atributa da formiramo primarni ključ. Na primer mogli bi da razmotrimo korišćenje kombinacije Prezime, Ime kao primarni ključ. U realnoj situaciji kombinacija ime i prezime nije pogodna za primarni ključ, zato što mogu da se pojave dve osobe sa istim imenom i prezimenom. Zbog toga je uobičajeno da dodamo još jedno polje u tabeli Partneri koje će služiti kao primarni ključ – npr. jedinstveni matični broj osobe.

Primarni ključ jedinstveno određuje slog u tabeli. Može se formirati od više polja. Ni jedno polje u primarnom ključu ne sme imati vrednost NULL! Ako se vratimo na Sliku 3, vidimo da kolona Sifra_firme postoji iksljučivo iz razloga da bi mogli da izvršimo povezivanje ove tabele sa tabelom Firmi. Ovakvo polje zovemo spoljni ključ. Strani ključ (foreign key) povezuje jedan slog sa slogom iz druge tabele. Kao i primarni ključ, strani ključ može biti sastavljen od više polja. Strani ključ može imati vrednost NULL ili bilo koju drugu vrednost koja je jednaka primarnom ključu iz tabele na koju je povezan.

Bez obzira na organizaciju tabele, u tabelama koje sadrže veliki broj slogova naći pojedini slog nije lako – za tabelu od 1000 ili više slogova pretraživanje red po red trajalo bi isuviše dugo. Da bi se obezbedilo brže pretraživanje i sortiranje tabele, u bazama podataka

Page 4: Koncept Baze Podataka

formiraju se posebne tabele indeksa. Na primer, ako često našu tabelu firmi pretražujemo po mestu možemo da formiramo indeks za polje Mesto. Analogija se može napraviti sa indeksom pojmova na kraju knjige – nađete traženu reč u indeksu pojmova i zatim brzo pristupite stranici na kojoj se nalazi.

Indeks (Index) omogućuje brzo pretraživanje i sortiranje tabela. Indeksi se mogu kreirati za jedno polje, kao i za kombinaciju polja. Pored polja za koje se očekuje često pretraživanje i sortiranje, indekse obično kreiramo i za polja koja koristimo za povezivanje sa drugim poljima u tabeli (spoljni ključevi). Primarni ključ tabele je automatski indeksiran. Indeksi koji se sastoje iz više polja koriste se u slučaju kad pretraživanje i sortiranje samo po jednom polju daje veliki broj slogova, npr. možemo formirati indeks od polja Ime i Prezime u tabeli Partneri iz našeg primera.

Povezivanje tabela

Videli smo da se zbog problema redundanse podaci u relacionoj bazi podataka drže u razdvojenim tabelama. Da bi korisniku omogućili da podacima smeštenim u različitim tabelama pristupi istovremeno uspostavljaju se relacije između tabela. Koristeći relacije, sistem baze podataka može obaviti operaciju udruživanja tako što kombinuje povezane tabele u rezultujuću tabelu, koja sadrži uniju kolona iz povezanih tabela. U navedenom primeru, koristeći relacije između tabela Firme i Partneri može se dobiti pregled svih poslovnih partnera u vidu tabele od koje smo počeli primer (slika 1)

Relacije između tabela u bazi podataka omogućuju da podaci smešteni u različitim tabelama budu vidljivi u isto vreme.

Kod uspostavljanja relacija između tabela razlikujemo veze:

Jedan – prema – više – jedan slog tabele može imati više slogova u drugoj tabeli. Prva tabela se naziva tabela “roditelj”, a druga tabela “dete”. U “roditeljskoj” tabeli mora postojati primarni ključ. U tabeli “dete” mora postojati polje koje će predstavljati određeni slog iz tabele roditelj. To polje se naziva spoljni ključ.

Jedan-prema-jedan – slogu iz jedne tabele odgovara tačno jedan slog iz druge tabele i obrnuto. Npr. između tabele LičniPodaci u kojoj bi za neke osobe iz tabele Partneri unosili kućnu adresu i telefon, i tabele Partneri postojala bi veza jedan-prema-jedan (ovaj odnos se zove specijalizacija). Odnos jedan prema jedan možemo imati i kad jednu tabelu sa mnoštvom kolona podelimo na dve tabele. U ovom slučaju primarni ključ iz jedne tabele povezujemo sa primarnim ključem iz druge tabele.

Više-prema-više - jedan slog tabela A ima više zavisnih slogova u tabeli B i obrnuto. Primer ovakve relacije bila bi veza između tabela Knjige – Autori: jedan autor može da ima više knjiga, a jedna knjiga može da ima više autora. Za takvu relaciju kreiramo dodatnu tabelu – tabelu veze (npr. AutorKnjiga u našem primeru) koja sadrži parove primarnih ključeva iz obe tabele. Novu tabelu povezujemo sa postojećim tabelama relacijama jedan – prema – više.

Pravila za uspostavljanje veza između tabela

Za uspostavljene veze možemo definisati i dodatna pravila kojima obezbeđuje ispravnost podataka pri unošenju i ažuriranju povezanih tabela. Ova pravila nazivaju se pravila referencijalnog integriteta i obuhvataju sledeće:

Ne može se uneti slog u tabelu “dete” ako ne postoji odgovarajući slog u “roditeljskoj” tabeli. U našem primeru ne možemo uneti osobu u tabelu Partneri dok ni smo uneli odgovarajuću firmu u tabeli firma.

Ne može se izvršiti brisanje sloga iz “roditeljske” tabele ako postoji povezani slog u tabeli “dete”. U našem primeru ne možemo obrisati firmu ukoliko postoje osobe u tabeli Partneri koji pripadaju toj firmi.

Ne može se izmeniti slog u tabeli “dete” tako da on nema odgovarajući slog u tabeli “roditelj”. U našem primeru ne možemo uneti novu firmu za postojeću osobu u tabeli Partneri, ukoliko ta firma ne postoji u tabeli Firmi.

Ne može se promeniti vrednost primarnog ključa u “roditeljskoj” tabeli sve dok postoji povezani slog u tabeli “dete”.

Podešavanja

Objekti baze podataka

Page 5: Koncept Baze Podataka

Nakon otvaranja postojeće baze podataka ili kreiranja nove baze podataka, o čemu je bilo govora u prošloj lekciji, prikazuje se prozor baze podataka. Prozor baze podataka predstavlja kontrolni centar otvorene baze podataka – preko njega upravljamo svim objektima baze podataka: kreiramo ih, menjamo, brišemo. Pored tabela koji su osnovni objekti u bazi podataka, Access sadrži i druge tipove objekata, čije ikone možete videti u traci objekata uz levu ivicu prozora baze podataka – (slika 1).

Slika 1: Prozor baze podataka

U sledećoj tabeli su ukratko objašnjeni svi tipovi objekata koji se koriste u Access bazi podataka.

Tabela 1: Objekti baze podataka

Izborom neke ikone u traci objekata u prikazaće se svi objekti tog tipa u desnom delu prozora. Na primer, klik na ikonu Forms i prikazaće se svi obrasci u aktivnoj bazi podataka, a klik na Tables za listu svih tabela.

Vrste pogleda na objekte baze podataka

Page 6: Koncept Baze Podataka

Da otvorimo konkretan obrazac (tabelu ili neki drugi tip objekta ) koristimo dupli klik na taj objekat.

Objekat možemo otvoriti i ako ga izaberemo (klik na objekat) pa aktiviramo dugme Open iz palete alatki baze podataka. Pored standardnog pogleda na objekat, koji dobijamo prilikom otvaranja objekta, svaki objekat možemo prikazati i u ‘Dizajn’ režimu. U ovoj vrsti pogleda prikazuje se struktura objekta i moguće je menjati dizajn postojećih objekata ili kreirati nove.

Da otvorimo pogled ‘Dizajn’ za objekat prvo izaberemo objekat, pa zatim klik na dugme Design na paleti alata.

Drugi način da aktiviramo pogled ‘Dizajn’je da objekat otvorimo u standardnom pogledu (dupli klik na objekat), pa zatim izaberemo dugme View iz palete alatki .

Pored standardnog pogleda i pogleda ‘Dizajn’ postoje i druge vrste pogleda, zavisno od tipa objekta. Nakon što otvorimo objekat u standardnom pogledu, možemo izabrati neki od raspoloživih pogleda za objekat iz menija View. Na listi raspoloživih prikaza ikona, ikona aktivnog prikaza oivičena je i naglašena.

Standardan pogled za tabele je ‘tabelarni’ (DataSheet View). Pored standardnog pogleda i pogleda ‘Dizajn’ za tabele je moguće izabrati

Pogled ‘Izvedena tabela’ (PivotTable View) Pogled ‘Izvedeni grafikon’ (PivotChart View)

Isti pogledi raspoloživi su i za obrasce. Standardni pogled za obrasce je ‘Pogled obrasca’ (Form View). Izveštaji imaju samo standardni pogled (‘Pogled izveštaja’, Report View) i pogleda ‘Dizajn’.

U Accessu je moguće zabraniti pojavljivanje nekih od pogleda kako korisnik na primer ne bi bio u prilici da menja dizajn obrasca ili tabele. Koji pogledi će biti raspoloživi zavisi od podešenih vrednosti za parametre: AllowFormView, AllowDatasheetView, AllowPivotTableView i AllowPivotChartView

Svaki objekat koji otvorite, otvoriće sopstveni prozor. Kao što ste i navikli, operativni sistem Windows omogućuje da istovremeno otvorite i radite sa više prozora, pa je na taj način moguće da otvorite novi objekat bez zatvaranja tekućeg objekta. Često će biti potrebno da imate istovremeni pogled na više od jednog objekta i da aktivirate jedan ili drugi prozor. Svaki otvoren prozor pojavljuje se kao posebna ikona na Windows liniji poslova (Taskbar-u), pa je aktiviranje jednog ili drugog prozora jednostavno – samo kliknite na njegovu ikonu na liniji poslova.

Kad radite sa više prozora, komande iz menija Window pomoći će da ih na pogodan način rasporedite.

Izborom Cascade svi otvoreni prozori biće preklopljeni jedan preko drugog i malo pomereni jedan u odnosu na drugi (slika 2, levo).

Izborom Tile Horizontally prozor baze podataka biće podeljen tako da se prikažu svi otvoreni prozori jedan ispod drugog (slika 2, desno).;

Izborom Tile Vertically svi otvoreni prozori biće složeni jedan do drugog unutar prozora baze podataka.

Page 7: Koncept Baze Podataka

Slika 2. Kaskadno i horizontalno raspoređeni prozori

Pri tome prozor baze podataka je okvir za sve prozore objekata, pa je stalno otvoren.

Zatvaranjem ovog prozora zatvoriće se i baza podataka.

Prikazivanje i skrivanje ugrađenih linija alatki

Kad startujemo Access pojavljuje se jedna linija alatki u vrhu prozora – linija alatki baze podataka (Database). Linija alatki, kao i u ostalim programima je brži način da aktivirate komandu nego izborom iz menija. Tokom rada sa Accessom možda ćete poželeti da imate prečice i za neke druge komande. Neke nove prečice možete prikazati aktiviranjem dodatne palete alatki – Web ili aktiviranjem Okna poslova (Task pane) gde se nalaze grupisane prečice za otvaranje nove baze podataka (okno poslova New), rad sa sistemom za pomoć (okno poslova Help) kao i pristup clipboard-u (okno poslova Clipboard).

Da aktivirate liniju alatki ili okno poslova:

1. Iz menija View izaberite Toolbars. Otvara se pod-meni sa listom raspoloživih linija alata.

2. Kliknite na željenu liniju alata da je uključite.

Da sakrijete liniju alatki ili okno poslova:

1. Iz menija View izaberite Toolbars. Otvara se podmeni sa listom raspoloživih linija alata. Trenutno prikazane linije alata imaju pored sebe oznaku uključeno.

2. Kliknite na željenu liniju alata da je isključite.

Prikazivanje okna poslova možete isključiti i na jednostavniji način klikom na X u gornjem desnom uglu okna poslova.

Dodatne linije alata biće na raspolaganju ukoliko je otvoren neki objekat. Za tabele i obrasce na raspolaganju je dodatna linija alatki Formatting a za izveštaje Print Preview. Postupak za njihovo prikazivanje i sakrivanje je isti.

Ako ne želite da se okno poslova prikaže automatski prilikom startovanja aplikacije aktivirajte Options iz menija Tools, pa u kartici View isključite opciju Startup Task Pane.

Na postojećim linijama alata možete dodati i sopstvene prečice:

1. Iz menija Tools izaberite Customize. Otvoriće se prozor Customize u kome su na kartici Commands izlistane sve komande po grupama: Files, Edit, View itd.

2. Izaberite odgovarajuću komandu na listi pa je prevucite na liniju alatki (slika 3)

Page 8: Koncept Baze Podataka

Slika 3: Dodavanje novog dugmeta na liniju alatki

Da obrišete dugme za prečicu sa linije alatki, opet izaberite stavku Customize iz menija Tools, pa je prevucite van linije menija – pojaviće se X pored pokazivača.

Obratite pažnju da sadržaj linije alatki baze podataka zavisi od konteksta. Kad je otvoren objekat baze podataka umesto ikona New i Open na početku linije alatki pojavljuje se ikona View.

Veze između tabela

Uspostavljanje veza između tabela

Veze koje postoje na nivou tabela imaju prioritet nad vezama koje su definisane na nivou upita. Ukoliko uspostavite vezu između dve tabele, Access će je automatski prepoznati kada sastavljate upit koji obuhvata polja iz više tabela. Veze između tabela mogu da se svrstaju u četiri grupe:

Jedan prema jedan – 1:1

Jedan prema više – 1:n

Više prema jedan – n:1

Više prema više – n:m

Veza tipa “jedan prema jedan” znači da jednom slogu iz jedne tabele odgovara tačno jedan slog iz druge tabele sa kojom je prva u vezi. Iako se retko koristi u sistemima za upravljanje bazama podataka, može da bude koristan način međusobnog povezivanja tabela. Dobre primere veza tipa “jedan prema jedan” nalazimo u većini aplikacija za fakturisanje; postoji datoteka pridružena fakturama koja sadrži podatke neophodne za izdavanje računa kupcu na adresu koja nije ista kao ona u datoteci s matičnim podacima o kupcu. Ta datoteka obično sadrži šifru kupca i dodatan skup polja za podatke o adresi.

Page 9: Koncept Baze Podataka

Veza tipa “jedan prema više” omogućava povezivanje jednog sloga iz jedne tabele s više slogova u drugoj tabeli. Primer takve veze je zaposleni koji je potpisao više porudžbina ili kategorija koja obuhvata više proizvoda. U oba primera imamo veze tipa “jedan prema više”. Veza Employees–Orders (Zaposleni-Porudžbine) spaja šifru zaposlenog (primarni ključ tabele Employees) sa šifrom zaposlenog u tabeli Orders (koja postaje spoljni ključ tabele Orders).

Veza tipa “više prema jedan” (koja se često zove i veza s referentnom tabelom) pokazuje Accessu da je više slogova u jednoj tabeli povezano s jednim slogom u drugoj tabeli. Na primer, tabela Odrers (Porudžbine) i tabela Customers (Kupci) su povezane vezom više prema jedan, tj. više porudžbina je vezano za jednog kupca.

Veza tipa “više prema više” najteže se razume. U opštem slučaju, možete da je zamislite kao par veza tipa jedna prema više između dve tabele, kao što su veza između tabela Products (Proizvodi) i Orders (Porudžbine) u bazi podataka Northwind. Jedan proizvod može da se nađe na više porudžbina u isto vreme, što znači da postoji veza tipa “jedan prema više” između tabela Products i Orders. S druge strane, jedna porudžbina može da obuhvati više proizvoda, što je takođe veza tipa “jedan prema više”, ali od Orders prema Products. Ovakav par odvojenih, dvosmernih, veza tipa “jedan prema više” čini jednu vezu tipa “više prema više”. Po pravilu, takva veza se razbija na dve veze 1:n prema novoj tabeli koja se rađa između ove dve.

Slika 1. Tabele Products i Orders sa tabelom Order Details između njih

Veze se uspostavljaju kada kliknete na ikonicu Relationships ili izaberete tu opciju iz menija Tools. Ponudiće vam se izbor tabela koje povezujete. Kada izaberete tabele i kliknete Add i potom Close, pojaviće vam se tabele koje ćete povezati kao na primeru na slici 1. Spustićete primarni ključ jedne tabele u odgovarajući strani ključ druge tabele.

Brisanje veza

Veze brišete tako što ih izaberete i pritisnete Delete na tastaturi. Delete možete naći i u meniju Edit ili desnim klikom na vezu.

Referencijalni integritet

Pored definisanja veza između tabela u Accessovoj bazi podataka, možete da zadate i određena pravila koja će obezbediti određeni stepen tačnosti podataka u tabelama. Na primer, ne biste želeli da dozvolite brisanje sloga iz tabele Customers (Kupci) ako u tableli Orders (Porudžbine) postoje slogovi koji su povezani s njim (odnosno, ne možete dozvoliti brisanje kupca, ako u tabeli Orders postoje “njegove” porudžbine). Kada biste izbrisali slog o određenom kupcu bez predhodnog brisanja sloga o porudžbinama koje mu pripadaju, u sistemu bi se pojavile porudžbine bez kupca. Ta vrsta problema može u potpunosti da ugrozi referencijalni integritet baze podataka.

Referencijalni integritet važi samo za ključna polja tabela; kad god se doda, izmeni ili izbriše polje primarnog ili spoljnog ključa, proverava se očuvanost referencijanog integriteta. Ukoliko bi izmena sadržaja ključnog polja bila uzrok raskidanja veza između tabela, kaže se da je time narušen referencijalni integritet. Moguće je podesiti opcije tako da referencijalni integritet određene relacije bude automatski obezbeđen.

Postojanje veze između tabela se definiše u posebnom prozoru baze podataka koji se naziva Relationship Builder. Njega možete da otvorite izborom stavke menija Tools/Relationship ili da pritisnete dugme Relationships na paleti sa alatkama. Pojavljuje se glavni prozor Relatoinships u kome možete da dodate tabele i uspostavljate veze između njih.

Na ekranu se pojavljuje nova paleta sa alatkama koja mu je pridružena. Kada ga prvi put otvorite, prozor Relationships je prazan. Tabele dodajete na jedan od sledećih načina:

Page 10: Koncept Baze Podataka

Dodajte tabele pre nego što se pokrene alatka Relationship Builder, u okviru za dijalog koji joj prethodi

Na paleti sa alatkama pritisnite dugme Show Tables Sa linije menija izaberite Relatioships / Show Table U prozoru Relationships pritisnite desni taster miša otvorite pop-up meni i izaberite Show Table u

meniju.

Pošto postavite tabele u prozor Relationships, spremni ste da uspostavite veze između njih. Da biste to uradili, izaberite u jednoj tabeli polje koje će služiti kao povezujuće i prevucite ga na odgovarajuće polje u tabeli s kojom želite da uspostavite vezu.

Da biste uspostavili vezu između dve tabele, uradite sledeće:

Pritisnite polje CategoryID u tabeli Categories Držeći pritisnut taster miša, pomerite pokazivač u prozor tabele Products Prevucite ikonu za biranje polja na polje CategoryID u tabeli Products. Access otvara okvir za dijalog

Edit Relationships koji je prikazan na slici. Izborom opcije dugme Create uspostavljate novu vezu. Access zatvara okvir za dijalog i povlači liniju

između tabela Categories i Products.

Slika 2. Kreiranje relacije (veze) između tabela Categories i Products

Okvir za dijalog Edit Relationships nudi više opcija za vezu između tabela Pets i Visits. Slika prikazuje taj okvir za dijalog i opcije koje nudi. U njemu se vidi koja je tabela primarna tabela u vezi i da li je obezbeđen referencijalni integritet (čekiramo Enforce Referential Integrity). Okvir za dijalog vam pokazuje i vrstu veze (“jedan prema jedan” ili “jedan prema više”) i omogućava da zadate da li su dozvoljena lančana ažuriranja i brisanja (automatske izmene ključa ili brisanja povezanih slogova) u povezanim tabelama, kada je zadato očuvanje referencijalnog integriteta.

Kada u okviru za dijalog Edit Relationships zadate opciju Enforce Referential Integrity, Access vam omogućava da potvrdite i opciju Cascade Update Related Fields (lančano ažuriranje povezanih polja). Ova opcija pokazuje Accessu da je korisniku dozvoljeno da menja sadržaj povezujućeg polja, odnosno polja primarnog ključa u primarnoj tabeli (šifru kategorije – CategoryID).

Ukoliko u okviru za dijalog Edit Relationships zadate opciju Enforce Referential Integrity, Access vam omogućava da potvrdite i opciju Cascade Delete Related Recordes (lančano brisanje povezanih slogova). Biranjem ove opcije nalažete Accessu da, ukoliko korisnik pokuša da izbriše slog u primarnoj tabeli, a u tabeli detetu postoje slogovi koji su s njim povezani, najpre mora da izbriše sve povezane slogove u tabeli detetu, pa tek onda i slog u primarnoj tabeli.

Sortiranje slogova

Sortiranje podataka u tabelama, formama i izlazima upita

Kada želite da slogove sortirate po određenom redosledu, dovoljno je da izaberete željenu kolonu i kliknete na dugmad A-Z za sortiranje u rastućem i Z-A za sortiranje u opadajućem redosledu. Ako želite da sortiranje izvršite po više kolona istovremeno, morate ih sve selektovati. Access uvek sortira po prioritetu s leva na desno, što znači da ćete nekada morati da menjate redosled kolona (odnosno polja) u tabeli.

Na formu možete da primenite iste tehnike za manipulisanje slogovima koje koristite u tabelarnom prikazu. Jedna razlika je to što umesto da se pomerate na određeni slog, sada prikazujete slogove jedan po jedan.

Page 11: Koncept Baze Podataka

Iste tehnike se primenjuju i na rezultat upita, A-Z za sortiranje u rastućem i Z-A za sortiranje u opadajućem redosledu. Slogovi se sortiraju i po numeričkom i po abecednom redu na ovaj način.

Definisanje ključeva

Definisanje primarnog ključa

Obavezno je da sve tabele imaju primarni ključ (eng. Primary key), odnosno jedno ili više polja čiji je sadržaj jedinstven u svakom slogu. Na primer, polje OrderID (broj porudžbine) je primarni ključ tabele Orders, jer svaki slog te tabele sadrži drugačiju šifru porudžbine. U teoriji relacionih baza podataka to se zove integritet entiteta. Pošto svaki slog ima različitu vrednost primarnog ključa, možete da razlikujete dva sloga. To je važno, jer je moguće da će u tabeli postojati dve porudžbine sa istim datumom, za istog kupca i koje je potpisao isti zaposleni.

Ako prilikom pravljenja nove tabele ne zadate primarni ključ, Access će vas pitati želite li da ga on napravi. Ako odgovorite sa Yes, Access će tabeli dodati polje primarnog ključa tipa AutoNumber. U svakom novom slogu automatski se upisuje redni broj u polje primarnog ključa.

Primarni ključevi drastično ubrzavaju proces pretraživanja i sortiranja slogova u nekoj tabeli.

Primarni ključ pravite tako što najpre birate polje koje želite da bude primarni ključ, a zatim na paleti sa alatkama pritisnete dugme Primary Key (to je dugme na kome je sličica ključa). Možete napraviti i primarni ključ koji se sastoji od više polja, tako što ćete izabrati ta polja i pritisnuti dugme Primary Key.

Primarni ključ možete da napravite na jedan od sledećih načina:

Izaberite polje koje će služiti kao primarni ključ, a zatim izaberite Edit / Primary Key Izaberite polje koje će služiti kao primarni ključ, a zatim pritisnete ikonu Primary Key (sa sličicom

ključa) na paleti sa alatkama Pritisnite desni taster miša, a zaim izaberite stavku Primary Key.

Slika 1. Zadavanje primarnog ključa

Indeksiranje polja sa ili bez dozvoljenih duplikata

Indeksiranje je pojam koji se vezuje za brzo pretraživanje i sortiranje podataka po nekom polju.

Obavezno se indeksira polje koje je primarni ključ što Access odrađuje automatski (Index – Yes, No duplicates).

Page 12: Koncept Baze Podataka

Polju u tabeli koje predstavlja spoljni ključ sami dodeljujemo indeks (Index – Yes, Duplicates OK).

Indekse dodeljujemo i onim poljima u tabeli za koje pretpostavljamo da će se po njima vršiti pretraživanje i sortiranje (Index – Yes, Duplicates OK).

Sa brojem indeksa ne treba preterivati (7-8 maksimalno) jer će performanse početi da opadaju.

Nikad ne indeksidamo polja tipa Memo i Yes/No.

Slika 2. Svojstva polja

Opcija No duplicates služi da se onemogući unošenje iste vrednosti u različita polja, duplikati nisu dozvoljeni. Opcija Duplicates OK služi za suprotno tj. ostavlja mogućnost unošenja iste vrednosti u različita polja, duplikati su dozvoljeni

Glavne operacije

Upotreba komande za pretraživanje

Kada treba da pronađete određenu reč, broj, datum u tabeli, možete koristiti komandu za pretraživanje. Ovo je posebno zgodno ako imate veliku tabelu koja je nepregledna. Komanda se pokreće ako kliknete na dugme Find koje je predstavljeno dvogledom. Otvoriće se prozor gde treba da upišete šta tražite, određenu reč, broj i sl. Treba da podesite i u kojoj tabeli će se izvršiti pretraga i da li kriterijum za pretragu treba da odgovara celom polju, početku polja ili bilo kom delu polja. Kada ste uneli podatke, kliknite na Find Next i program će naći i obeležiti u tabeli prvi odgovarajući podatak. Ako to nije ono što ste tražili, idite na Find Next sve dok ne dođete do cilja.

Druga kartica u ovom prozoru pruža mogućnost da se podatak zameni drugim. Potrebno je prvo da nađete šta hoćete da izmenite, zatim u polje Replace With unesete izmenu i da kliknete na Replace dugme. Ako hoćete da zamenite reč ili neki drugi podatak koji ste naveli kao kriterijum u svim poljima gde se on nalazi, kliknite dugme Replace All.

Upotreba filtera u tabelama i formama i njihovo uklanjanje

Brzo pronalaženje podataka, izdvajanje onih sa specifičnim osobinama i sortiranje u bazama podataka su od izuzetne važnosti. Zbog toga je dobro poznavanje ovih mogućnosti neophodno svakom korisniku Access (od početnika do profesionalaca).

Kada želite da slogove sortirate po određnom redosledu, dovoljno je da izaberete željenu kolonu i pritiskom na dugmad A-Z za sortiranje u rastućem i Z-A za sortiranje u opadajućem redosledu. Ako želite da sortiranje izvršite po više kolona istovremeno, morate ih sve selektovati. Access uvek sortira po prioritetu od leva na desno, što znači da ćete nekada morati da menjate redosled kolona (odnosno polja) u tabeli.

Filter by Selecton (filtriranje na osnovu izabrane vrednosti) je alatka koja vam omogućava da trenutno izdvojite slogove na osnovu kriterijuma u polju koje ste izabrali. Dovoljno je kliknuti u polje, npr. u koloni

Page 13: Koncept Baze Podataka

Title u polje u kome piše Sales Representative, a zatim na alat Filter By Selection, da bismo dobili isfiltrirane podatke kao na slici 1.

Deo u kome se nalaze navigaciona dugmad pokazuje vam je li baza podataka trenutno filtrirana ili ne. Osim toga ikona Apply Filter / Remove Filter je u pritisnutom položaju, pokazujući time da je filter trenutno aktivan. Kada se pritisne to dugme, isključuju se svi filtri i redosled sortiranja.

Slika 1. Filtriranje po jednom zadatom uslovu