Upload
suzana-turkovic-stojak
View
26
Download
2
Embed Size (px)
DESCRIPTION
d
Citation preview
VELEUČILIŠTE VELIKA GORICAs pravom javnosti
Damir StojakJMBAG:
Sustav za potporu rada knjižnice – MS Access
Završni rad
VELEUČILIŠTE VELIKA GORICA s pravom javnosti, Zagrebačka cesta 5, 10 410 Velika GoricaTel. 01/6222501 Fax: 01/62 51 301 [email protected] www.vvg.hrMB 01745069 ŽR 2340009-1110122348 ili 2484008-1103780586
SADRŽAJ
1. UVOD.....................................................................................................................................12. ORGANIZACIJA I POSLOVNA POLITIKA KNJIŽNICE..................................................2
2.1. Poslovna politika i organizacijska struktura knjižnice.....................................................22.2. Poslovna pravila knjižnice...............................................................................................32.3. Poslovni procesi knjižnice...............................................................................................5
3. IZGRADNJA BAZE PODATAKA........................................................................................83.1. Teorijsko određenje baze podataka..................................................................................83.2. Prikaz Microsoft office Access alata............................................................................103.4. Izrada ER modela knjižnice...........................................................................................14
4. SQL – STRUCTURED QUERY LANGUAGE...................................................................184.1. Osnovne karakteristike i podjela SQL-a........................................................................184.2. Tipovi podataka.............................................................................................................194.3. Stvaranje tablica i upis podataka....................................................................................214.4. Mijenjanje i brisanje podataka.......................................................................................25
1. UVOD
1
2. ORGANIZACIJA I POSLOVNA POLITIKA KNJIŽNICE
Knjižnice su oduvijek mjesta za pohranu ljudskog znanja, njegovu deseminaciju i
uzajamno dijeljenje. Služe očuvanju kulture, a nezamjenjive su u procesu obrazovanja, te
znanstvenog i stručnog rada. Smisao knjižnice je korištenje u njoj pohranjenog knjižničnoga
fonda. Knjižnični fond u velikoj mjeri čine knjige, ali i drugi predmeti kao što su fotografije,
slike, karte, glazbeni i slikovni magnetski i digitalni zapisi, računalni sadržaji, igračke i
mnoge druge vrste sadržaja.
2.1. Poslovna politika i organizacijska struktura knjižnice
Knjižnica obavlja svoje poslove prema utvrđenim standardima i u skladu s Zakonom o
knjižnicama. Knjižnična djelatnost obuhvaća: nabavu knjižnične grade (prema strukama),
obradu (inventarizacija, klasifikacija, sadržajna i analitička obrada, tehnička obrada) grade
knjižničarskim metodama, izradbu kataloga i baza podataka, tj. knjižničarsko-informacijskog
(računalnog) sustava, izradbu biltena i drugih informacijskih pomagala, smještaj i zaštitu
grade, vođenje zasebne zbirke diplomskih i magistarskih radova te disertacija, aktivan rad sa
korisnicima uz njihovu edukaciju (informacije putem telefona, pretraživanje i pomoć u
pronalaženju informacija, retrospektiva pretraživanja, selektivna disemenacija informacija,
međuknjižnicnu posudbu, kojom knjižnica, uvažavajući pravila međuknjižnične suradnje,
posreduje u pristupu onim informacijama kojima raspolažu druge knjižnice i srodne ustanove,
odnosno omogućuje korištenje svojih dokumenata/informacija), reviziju i otpis knjižnične
grade, suradnju s knjižnicama srodnih institucija, umrežavanje knjižnice i dr.
Kako bi se svi navedeni poslovi odvijali nesmetano potrebna je i dobra organizacijska
struktura. U organizacijskoj teoriji organizacijska struktura, pored organizacijskih sredstava i
postupaka, spada medu temeljne elemente svake organizacije. Struktura je najvažniji dio
svake organizacije. Organizacijska struktura je sociotehnička struktura ljudi i ostalih resursa
organizacije koja se sastoji od različitih međusobno povezanih elemenata u konkretne
organizacijske odnose. Organizacijska struktura je relativno trajan plan rasporeda poslova i
međusobnih veza među ljudima koji obavljaju te poslove u organizaciji.
2
Shema 1. Primjer organizacijske strukture knjižnice
2.2. Poslovna pravila knjižnice
Kada se govori o pojmu "poslovna pravila", činjenica je da danas za taj pojam ne
postoji jednoznačna definicija, već u literaturi postoji čitav niz različitih definicija koje ovaj
pojam objašnjavaju na različite načine i pridaju mu različita značenja. Pravila su povijesno
nastala iz određenog poslovnog znanja i iskustva, a često se inkoponiraju (kodiraju) u različite
poslovne informatičke sustave.
Kodiranje je provedeno u jeziku u kojem je sustav napisan, što dovodi do toga da, pri
promjeni poslovnog pravila, sustav je potrebno ili rekonfigurirati ili dodatno iskodirati. Za
obje je akcije zadužena osoba sa značajnim tehničkim znanjem. Smisao softverskih alata za
rad s pravilima jest podići pravila na novu razinu u kojoj bi njihovo pisanje i održavanje bilo
3
UPRAVA
SLUŽBA NABAVE ODJEL OBRADEINFORMATIČKA
POTPORA
TAJNIŠTVO URED RAVNATELJA
RAČUNOVODSTVO
ODJELI
POSUDBENI ODJEL
STUDIJSKA ČITAONICA
ODJEL ZA RAD S DJECOM I MLADIMA
jednostavnije. Za tu se svrhu uvodi novi, prilagođeni jezik. Ujedno se čuvanje i distribucija
pravila drugim sustavima obavlja iz jednog središnjeg mjesta.
Kako se poslovna pravila ili pravila poslovanja mogu definirati na različite načine,
može se smatrati da poslovna pravila prema tome predstavljaju određena ograničenja i
smjernice za način vođenja poslova u poduzeću kojih se treba držati. Unatoč tome što nije
lako poslovati prema poslovnim pravilima koja moraju vrijediti i nije ih lako ostvariti u
poduzeću, ona se postavljaju pred svaki novonastali sustav.
Neka od poslovnih pravila koja se primjenjuju u knjižnici su:
1. kod posudbe je bitno jedinstveno označiti svaku posudbu, znati koji član je posudio
knjižničnu građu, koju je knjigu posudio kada ju je posudio, te koji mu ju je
zaposlenik izdao
2. kod vraćanja je bitno znati kada je knjižnična građa vraćena, te koji ju je zaposlenik
prihvatio
3. knjižnična građa mora biti jedinstveno označena, imati svoj naziv, autora, pripadati
nekoj kategoriji, pisana je na nekom jeziku, te pripada nekom odjelu
4. bitno znati koje je godine knjižnična građa tiskana, po kojoj cijeni, koji je ISBN građe,
datum kada je došla u knjižnicu, te koji je nakladnik, o kojem su također potrebni neki
podaci i to
- naziv nakladnika,
- kontakt telefon,
- opcionalno e-mail, web adresu te broj fax-a
5. knjižničnu građu treba pohranjivati na police, ormare za pohranu, vitrine i ladice
odgovarajućih oblika, dimenzija i materijala
6. svaki zaposlenik ima ime i prezime, adresu stanovanja, plaću, broj računa za isplatu
plaće, te se za svakog zaposlenika zna od kada je zaposlen, a za bivše zaposlenike i do
kada su bili zaposleni
7. zaposlenici moraju imati završenu višu školu i položen stručni ispit za višeg
knjižničara odnosno knjižničara
8. članstvo u knjižnici stječe se upisom u knjižnicu
9. upisom u knjižnicu plaća se članarina za jednu godinu
10. prilikom upisa član knjižnice dobiva člansku iskaznicu koja sadrži
- tvrtku knjižnice i adresu
4
- broj poslovne jedinice i ident člana
- datum upisa i rok važenja iskaznice
- ime i prezime člana
- vlastoručan potpis člana knjižnice
2.3. Poslovni procesi knjižnice
Neodređena definicija smatra da je poslovni proces zatvoreni skup aktivnosti koje se
poduzimaju kao odgovor na neki događaj da bi se generirao izlazni rezultat. Prema
konkretnijoj definiciji poslovni proces obuhvaća sve što je potrebno kako bi se osiguralo da
onaj tko je za taj proces zainteresiran dobije ono što. Još konkretnije definicija kaže kako je
poslovni proces interakcija između ljudi, opreme, metoda i kontrola, a sve sa svrhom
postizanja određenog cilja.
Neki od poslovnih procesa u knjižnici su sljedeći:
· član knjižnice dolazi u knjižnicu s namjerom da posudi knjigu. Odmah do
ulaznih vrata knjižnice smješteno je nekoliko računala koji imaju mogućnost pretraživanja
knjižničnih kataloga. Član, dakle, prilazi jednom od računala, te se jednostavnom procedurom
nalazi u bazi podataka knjižnice, te sam upućuje upit o knjizi koju treba. Sve što treba znati je
ime knjige i/ili ime autora i za samo par sekundi može dobiti informaciju o tome postoji li ta
knjiga u vlasništvu knjižnice.
· ako knjiga koju član traži postoji, odmah uz tu obavijest stoji i obavijest je li
knjiga dostupna ili je već posuđena, te jednim klikom moguće je doznati njenu lokaciju u
knjižnici. Nakon što saznaje gdje se knjiga nalazi (na kojem katu, koji odjeljak, koji red, koja
polica), nakon minute pretraživanja
· član odlazi po knjigu, te ju donosi zadužiti na pult, knjižničaru pruža svoju
člansku iskaznicu s bar kodom, ona očitava njegov identitet u bazi podataka na računalu i
status o već dosada posuđenim knjigama i eventualnim dugovima. Ukoliko je dozvoljeno
posuditi mu knjigu, učitava bar kod knjige u računalo pod njegovim imenom i zaključuje
proces zaduživanja knjige nakon samo minute, pošto se na članskoj iskaznici koja je
plastificirana, nalaze podaci kao što su radno vrijeme knjižnice, uobičajeni rok vraćanja
knjiga, te mali cjenik zakasnina.
5
· ukoliko knjiga prilikom pretraživanja baze podataka na računalu nije
pronađena (ne postoji u vlasništvu knjižnice ili je već posuđena), te ako član ne namjerava
posuditi neku drugu knjigu, on odlazi iz knjižnice.
Primjena sustava procesa i poslovnih pravila u organizaciji, njihovo utvrđivanje i
međusobno djelovanje te upravljanje njima može se nazivati procesnim pristupom. Prednost
je procesnoga pristupa osiguravanje trajnog upravljanja vezama između pojedinačnih procesa
unutar procesne strukture kao strukturnog elementa sustava upravljanja knjižnice te njihovom
kombinacijom i međusobnim djelovanjem. Kada se primjenjuje u okviru sustava upravljanja
kvalitetom u knjižnici, taj pristup naglašava važnost razumijevanja i ispunjavanja zahtjeva
člana, potrebe promatranja poslovnih procesa u uvjetima dodavanja vrijednosti, dobivanja
rezultata poslovnih procesa i njihove učinkovitosti, i stalnog poboljšavanja poslovnih procesa
temeljeno na objektivnim mjerenjima.
6
Shema 2. Primjer poslovnog procesa posudbe knjige u knjižnici
7
Dolazak člana u knjižnicu
Prilazak računalu
Pretraga baze podataka knjižnica
Knjiga nije pronađenaKnjiga je pronađena
Detaljnija pretraga
alternativnih knjiga
Utvrđivanje dostupnosti knjige
Knjiga je dostupna
Utvrđivanje lokacije knjige u knjižnici
Knjiga nije dostupna
Alternativna knjiga nije prihvaćena
Alternativna knjiga je prihvaćena
Pronalaženje knjige
Traženje člana u bazi podataka
Očitavanje statusa člana
ČLAN
Može posuditi Ne može posuditi
Učitavanje bar koda člana i knjige
Vraćanje iskaznice članu
Knjiga je zaduženaOdlazak člana iz
knjižnice
X
X
X
Odjavljivanje iz baze podataka knjižnice
X
KNJIŽNIČAR
3. IZGRADNJA BAZE PODATAKA
Baze podataka predstavljaju višu razinu rada s podacima u odnosu na klasične
programske jezike. Riječ je o tehnologiji koja je nastala s namjerom da se uklone slabosti
tradicionalne “automatske obrade podataka” iz 60-tih i 70-tih godina 20. stoljeća. Ta
tehnologija osigurala je veću produktivnost, kvalitetu i pouzdanost u razvoju aplikacija koje
se svode na pohranjivanje i pretraživanje podataka u računala.
3.1. Teorijsko određenje baze podataka
Baza podataka je skup međusobno povezanih podataka, pohranjenih u vanjskoj
memoriji računala. Podaci su istovremeno dostupni raznim korisnicima i aplikacijskim
programima. Ubacivanje, promjena, brisanje i čitanje podataka obavlja se posredstvom
zajedničkog softvera. Korisnici i aplikacije pritom ne moraju poznavati detalje fizičkog
prikaza podataka, već se referenciraju na logičku strukturu baze. Sustav za upravljanje bazom
podataka (Data Base Management System - DBMS) je poslužitelj (server) baze podataka. On
oblikuje fizički prikaz baze u skladu s traženom logičkom strukturom. Također, on obavlja u
ime klijenata sve operacije s podacima. Dalje, on je u stanju podržati razne baze, od kojih
svaka može imati svoju logičku strukturu, no u skladu s istim modelom. Isto tako, brine se za
sigurnost podataka, te automatizira administrativne poslove s bazom. Podaci u bazi su logički
organizirani u skladu s nekim modelom podataka. Model podataka je skup pravila koja
određuju kako može izgledati logička struktura baze. Model čini osnovu za koncipiranje,
projektiranje i implementiranje baze.
Dosadašnji DBMS-i obično su podržavali neki od sljedećih modela:
- relacijski model - zasnovan na matematičkom pojmu relacije. I podaci i veze medu
podacima prikazuju se “pravokutnim” tabelama.
- mrežni model - baza je predočena usmjerenim grafom. Čvorovi su tipovi zapisa, a
lukovi definiraju veze medu tipovima zapisa.
- hijerarhijski model - specijalni slučaj mrežnog. Baza je predočena jednim stablom ili
skupom stabala. Čvorovi su tipovi zapisa, a hijerarhijski odnos “nadređeni-podređeni”
izražava veze medu tipovima zapisa.
8
- objektni model - inspiriran je objektno-orijentiranim programskim jezicima. Baza je
skup trajno pohranjenih objekata koji se sastoje od svojih internih podataka i “metoda”
(operacija) za rukovanje s tim podacima. Svaki objekt pripada nekoj klasi. Između klasa se
uspostavljaju veze nasljeđivanja, agregacije, odnosno međusobnog koriˇstenja operacija.
Hijerarhijski i mrežni model bili su u upotrebi u 60-tim i 70-tim godinama 20. stoljeća.
Od 80-tih godina pa sve do današnjih dana prevladava relacijski model. Očekivani prijelaz na
objektni model za sada se nije desio, tako da se današnje baze podataka uglavnom uvijek
mogu poistovjetiti s relacijskim bazama.
Baze podataka se u pravilu realiziraju korištenjem nekog od provjerenih softverskih
paketa. Gotovo svi današnji softverski paketi podržavaju relacijski model i SQL. Svaki od
njih sadrži svoj DBMS, uobičajene klijente (na primjer interaktivni interpreter SQL), te
biblioteke i alate za razvoj aplikacija. Svaki paket isporučuje se u verzijama za razne
računalne platforme (operacijske sustave). Konkurencija među proizvođačima softvera za
baze podataka je izuzetno velika, tako da je posljednjih godina često dolazilo do njihovog
nestanka, spajanja ili preuzimanja. Lista relevantnih softverskih paketa zato je svake godine
sve kraća. Jedino osvježenje predstavlja nedavna pojava public-domain softvera poput
MySQL. Uvođenje baze podataka u neko poduzeće ili ustanovu predstavlja složeni zadatak
koji zahtijeva timski rad stručnjaka raznih profila. To je projekt koji se može podijeliti u pet
faza: analiza potreba, modeliranje podataka, implementacija, testiranje i održavanje.
U stvarnim situacijama dosta je teško direktno pogoditi relacijsku shemu. Zato se služi
jednom pomoćnom fazom koja se zove modeliranje entiteta i veza (Entity-Relationship
Modelling). Riječ je o oblikovanju jedne manje precizne, konceptualne sheme, koja
predstavlja apstrakciju realnog svijeta. Ta tzv. ER-shema se dalje, više-manje automatski,
pretvara u relacijsku. Modeliranje entiteta i veza zahtijeva da se svijet promatra preko tri
kategorije:
- entiteti: objekti ili događaji koji su nam od interesa;
- veze: odnosi medu entitetima koji su nam od interesa;
- atributi: svojstva entiteta i veza koja su nam od interesa.
9
3.2. Prikaz Microsoft office Access alata
Razvojem Windows okruženja koje je počelo Windows-ima 1.0 koji su izašli na tržište
1985.god. razvijale su se i ostale aplikacije tvrtke Microsoft od kojih je jedna od najpoznatijih
Microsoft Office paket. Microsoft Office, kao što mu i ime kaže, podrazumijeva uredski paket
aplikacija, a razvijao se po određenim verzijama, odnosno godišnjim izdanjima. Taj uredski
paket sadrži u sebi određene programe kojima korisnik odrađuje određene zadaće. Tako za
obradbu teksta služi Word, za izradu prezentacija služi PowerPoint, tablični editor i kalkulator
je Excel, izrada web stranica postaje jednostavna sa Publisher-om te se za izradu baza
podataka koristi Access kojeg je potrebno pobliže definirati radi samog tijeka diplomskog
rada. Baze podataka općenito predstavljaju neki organizirani skup podataka kojim se onda
može lakše locirati i utvrditi određeni problem ili analizirati određeno stanje. I telefonski
imenik ili složena dokumentacija u fasciklu predstavljaju određenu bazu podataka, ali
limitiranih mogućnosti. Potreba za izradom informatičkih baza podataka proizlazi iz činjenice
da se tako složeni podaci mogu jednostavno ažurirati, mogu se razvrstavati po svim potrebnim
dijelovima (po abecednom redu, po vremenu unosa, po količini, po vrsti, i sl.), od njih se na
lak način mogu izrađivati određena izvješća, kreirati grafikoni, podaci se mogu međusobno
povezivati, mogu se filtrirati, i sl. Da bi u daljnjem tijeku rada bilo lakše pratiti postupak
definiranja i izrade baze podataka potrebno je definirati glavne objekte i pojmove Microsoft
Office Access baze podataka:
- tablica ( eng. table ) je spremnik podataka i sastoji se od redaka i stupaca, svaki redak
predstavlja jedan zapis, a svaki stupac predstavlja jedno polje;
- upit ( eng. query ) predstavlja određeni filtar podataka u tablici ili povezanim
tablicama jer kroz njega postavljamo određene parametre te tražimo prikaz podataka koji
udovoljavaju tim parametrima;
- obrazac ( eng. form ) predstavlja sučelje za jednostavniji unos podataka u bazu jer pri
velikim tablicama može biti prilično nezgodno unositi podatke pa se oni onda unose preko
obrasca točno određene tablice koji sadrži sve njene parametre, ali se oni unose na grafički
pristupačnom i jednostavnom sučelju;
- izvještaj ( eng. report ) podrazumijeva pregledan prikaz određenih podataka koji su
prije toga filtrirani upitom ili pregled podataka koji na jednostavan način prikazuju izvod
nekih tablica o predmetu koji je cilj konkretnog zanimanja korisnika baze;
10
- povezane internetske ( eng. web ) stranice podrazumijevaju veze ( eng. link ) na
određene vanjske internetske stranice koje tada možemo uređivati i obrađivati na način koji
nam odgovara te time dobivamo „*.htm“ oblik izvještaja koji možemo pregledavati sa
internetskim preglednikom ili postavljati na sami Internet na način da budu dostupni svima.
Pri pokretanju Accessa prikaže se okno zadatka (Task Pane) New File s desne strane
prozora.
Slika 1. Okno zadatka Accessa
U kojem su grupirane naredbe:
Grupa Stavke Uporaba
Open a file moja prva baza (primjer) Popis zadnjih otvaranih baza
More files… Otvaranje okvira za razgovor Open za izbor postojeće baze
New Blank Database Stvaranje nove, prazne baze
Blank Data Access Page Stvaranje HTML stranice za pristup bazi podataka
Project (Existing Data) Stvaranje Access projekta temeljem postojećih podataka
Project (New Data) Stvaranje Access projekta s novim podacima
New from existing file Choose file… Otvaranje okvira za razgovor Open za izbor postojeće baze kao predloška novoj bazi
New from template General templates… Prikaz dostupnih predložaka za novu bazu
Templates on Microsoft.com Pristup predlošcima na Internetu za novu bazu
Add Network Place Pokretanje čarobnjaka za dodavanje mrežnoga mjesta s ciljem izrade i zajedničke uporabe mape na web-odredištima
Microsoft Access Help Pozivanje pomoći za Access
Show at startup Prikaz okna zadatka prilikom pokretanja Accessa
11
Za izradu nove baze podataka potrebno je kliknuti na naredbu Blank Database u grupi New
Slika 2. Okno izrade nove baze podataka
U okviru za razgovor File New Database potrebno je odrediti naziv baze (polje File
name) i smještaj (mapu u polju Save in) te kliknuti na gumb Create. Otvorena baza se ne
može snimiti unutar Accessa. Međutim, pri zatvaranju baze ona (tj. njeni objekti i njihov
sadržaj) automatski se snimaju/pohranjuju na izvorno mjesto. Primjenom naredbi Save/Save
as u glavnome izborniku File ili alata Save u alatnoj liniji Database mogu se snimiti samo
pojedini objekti u bazi – tablice, upiti, obrasci, izvješća, makroi, moduli. Želi li se
prenijeti/premjestiti ('snimiti') cijela baza (tj. njen mdb-file) u drugu mapu ili na drugi disk ili
na disketu ili na CD i sl. potrebno ju je unutar Accessa prvo zatvoriti i zatim je uporabom npr.
programa Windows Explorer premjestiti ili kopirati na jedan od uobičajenih načina poznatih
iz okruženja MS Windowsa. Klikom na naredbu Office on the Web u glavnome izborniku
Help, pokreće se pretraživač Interneta (Internet Explorer) i u njemu se otvara početna stranica
Microsoft Office On-line. Na njoj se može pronaći niz informacija vezanih uz taj programski
paket. Za zatvaranje baze potrebno je izaberiti naredbu Close su glavnome izborniku File ili
pritiskom istovremeno na tipkovnici tipke Ctrl+F4.
12
Slika 3. Početni prozor prazne baze podataka
- relacijski odnosi tablica (eng. relationships ) podrazumijevaju tablične međuodnose.
Svaka tablica mora imati primarni ključ koji je polje koje sadrži određeni broj za svaki zapis,
a ono se povezuje sa primarnim ključem druge tablice i na taj način dobivamo relacijske
međuodnose tablica koji nam ukazuju na određene podatke jedne tablice koji su u
međuodnosu sa podacima druge tablice;
- čarobnjak (eng. wizard ) podrazumijeva alat koji je dostupan u svakom objektu te na
automatizirani način vodi korisnika u izradi određenog objekta korak po korak
- grafikoni i interaktivne tablice (eng. graph ) čine objekte Access-a kojima možemo
generirati određene podatke na način da odabiremo podatke koje ćemo prikazati u grafikonu
te da izrađujemo tablice kojima ćemo analizirati određeno polje putem nekog drugog polja;
- uvoz i izvoz podataka (eng. import, export ) u microsoft Access-u podrazumijeva
uvoženje ili izvoženje podataka u ili iz nekih drugih oblika datoteka ( excel, tekstualne
datoteke, web, paradox, i sl.) na lagan i prilagodljiv način što čini Access prilagodljivom
bazom podataka jer iste možemo „ubaciti“ u bazu iz npr. Excel tablice ili izvesti u npr. Excel
tablicu što nam omogućuje veliku interaktivnost;
- razvodna ploča (eng. switchboard ) čini sučelje baze podataka koja se postavlja pri
kraju izrade baze, a čini posao s bazom jednostavnijim jer se podiže pri ulazu u bazu i
predstavlja dijaloški okvir za izvođenje zadataka;
- primarni i strani ključ (eng. primary key, foreign key ) čini određeno polje tablice
kojim se jedinstveno identificira svaki zapis odnosno njime se definira ono polje tablice koje
će se povezivati sa nekim poljem druge tablice, ali na način da obje tablice imaju zajedničko
13
polje sa istim podacima ali je u jednoj tablici to polje primarno ( primarni ključ ), a u drugoj
strani, sekundarno (strani ključ ).
3.4. Izrada ER modela knjižnice
Entity Relationship ili ER dijagram je relacijska shema baze podataka. Na njoj se vide
tablice, polja u tablicama i među-odnosi između tablica. Tablice nazivamo entiteti, polja u
njima atributi, a među-odnose između njih relacije. Entiteti su specifični objekti ili stvari u
mini-svijetu koji je prezentiran u bazama podataka. Atributi su svojstva korištena za opis
entiteta. Relacija predstavlja odnos između entiteta. U ER dijagramu se za svaki atribut vidi
kako se zove, kojeg je tipa, koje je duljine i da li je obvezan. Također vidimo koji atributi su
primarni ključevi, a koji su strani ključevi. Isto tako vidimo kojeg su tipa relacije između
entiteta. Pošto je izrada ER dijagrama složena, a ključan je korak za daljnji razvoj baze
podataka, izrađuje se u nekoliko koraka. Prvo je potrebno navesti poslovna politiku, pravila i
procese rada knjižnice, zatim slijedi izrada logičkog modela i izrada ER dijagrama. Prvo iz
poslovnih procesa vidljiva su pet entiteta posudbe, knjige, nakladnici, članovi, zaposlenici.
Ali ako se bolje prouče atributi koji ih opisuju vidimo da neki atributi nisu jedinstveni
(više knjiga može imati istog autora, pripadati istoj kategoriji, pripadati istom odjelu, biti
pisano na istom jeziku, zaposlenici, nakladnici i članovi mogu imati istu adresu, više adresa
može biti iz iste države, grada i ulice) pa se time dobiva trinaest entiteta:
- POSUDBE,
- KNJIGE,
- NAKLADNICI,
- ČLANOVI,
- ZAPOSLENICI,
- AUTORI,
- ODJELI,
Sada kada su izvučeni i entitete može se vidjeti kako se oni međusobno vežu. Ulice,
gradovi i države se vežu na adrese. Adrese se vežu na članove, zaposlenike i nakladnike.
Dalje se odjeli vežu na knjige i članove. Nakladnici, kategorije, jezici, autori i odjeli se vežu
na knjige. Te na kraju, knjige, članovi i zaposlenici se vežu na posudbe. Iz entiteta i veza koje
smo izvukli iz kratke priče, sada možemo nacrtati logički model koji prikazuje te entitete i
veze među njima.
14
Shema 3. Logički model knjižnice
Iz logičkog modela, prikazanog shemom 3., vidi se da je središnji entitet prema kojem
sve vodi posudba, a to je ono čime se knjižnica bavi. Dalje vidljivo je da se na posudbe vežu
članovi, zaposlenici i knjige kao bitan podatak svake pojedine posudbe. Također se vidi da
članovi i knjige pripadaju odjelima, te da knjige na sebe vežu podatke o jezicima,
kategorijama, autorima i nakladnicima. Time su obuhvaćeni svi entiteti i veze izvučene iz
poslovnog procesa.
Kod izrade ER dijagrama važno je paziti na nekoliko pravila. Kao prvo ne smiju se
koristiti hrvatski znakovi jer je jezik ER dijagrama engleski. Druga stvar na koju treba paziti
je da se entiteti i atributi koji imaju više riječi u nazivu ne pišu odvojeno nego zajedno ili
odvojeno sa takozvanom podvlakom „_“ (eng. underscore). Na temelju logičkog modela i
poslovnih procesa iz kojih se vade atribute kojima se određuje tip i to da li su obvezni ili
opcionalni, izrađuje se ER dijagram.
15
Shema 4. ER model knjižnice
U svakom entitetu ER dijagrama vidljiva su četiri stupca. Prvi stupac sadrži imena
atributa. Drugi stupac označava tip atributa. Koriste se tri tipa atributa, DATE, koji označava
da je atribut tipa datum, VARCHAR2 (x), koji označava da je atribut znakovnog tipa i to
duljine „x“ znakova, te NUMBER (x,y), koji označava da je atribut brojčanog tipa i to duljine
„x“ znamenki od kojih se „y“ znamenki uzima za decimalna mjesta. Treći stupac označava je
li atribut obvezan ili opcionalan. Ključna riječ NOT NULL tj. NN označava da je atribut
obvezan, a atribut koji nema NN je opcionalan. Četvrti stupac označava je li je atribut
primarni ključ, strani ključ ili obični atribut. Atribut kraj kojeg u toj koloni stoji PK (primary
16
key) je primarni ključ, onaj kraj kojeg stoji FK (foreign key) je strani ključ, a onaj kraj kojeg
ne stoji ništa je obični atribut. Crte između entiteta označavaju veze tj. relacije između
entiteta, a imena na njima su imena dotičnih relacija.
17
4. SQL – STRUCTURED QUERY LANGUAGE
Structured Query Language (SQL) razvio je IBM u sklopu projekta “System R”
(Chamberlin i drugi, kasne 70-te godine 20. stoljeća). Jezik se postepeno usavršavao, a
njegova dotjerana varijanta pojavljuje se u današnjem IBM-ovom relacijskom DBMS-u
zvanom DB2. Druge softverske kuće (na primjer Oracle Corporation) ugradile su SQL u svoje
DBMS-e, te ga time učinile vrlo popularnim i dostupnim na svim važnijim računalnim
platformama. Preostale kuće (INGRES Corporation, DEC, . . . ) koje su razvijale svoje jezike,
bile su prisiljene da se prilagode SQL-u. Zbog pojave raznih “dijalekata” donesen je
ISO/ANSI standard za SQL.
4.1. Osnovne karakteristike i podjela SQL-a
Svaka naredba završava interpunkcijskim znakom točka-zarez (;), a ukoliko se
instrukcija prostire kroz više redova, znak ';' stavlja se na kraj posljednjeg reda. Kada se SQL
naredba uključuje u drugi programski jezik (Embedded SQL), ona završava na način
svojstven tom jeziku. Iako je SQL no-case-sensitive, odnosno ne razlikuje mala i velika slova,
uobičajeno je da se ključne riječi pišu velikim slovima. SQL se dijeli na četiri "podjezika":
- Data Definition Language (DDL) sastoji se od naredbi za definiranje objekata baze
podataka: npr. CREATE, DROP i ALTER
- Data Manipulation Laguage (DML) sastoji se od naredbi za manipuliranje podacima
u bazi: npr. INSERT, DELETE, UPDATE
- Data Control Lanuage(DCL): u ovu skupinu spadaju naredbe koje definiraju pitanja
sigurnosti baze podataka, kao što su ograničenja pristupa podacima. Ovaj skup naredbi se
koristi uglavnom kod većih projekata kada je uključen veći broj korisnika s različitim
razinama pristupa podacima: npr. GRANT i REVOKE
- Data Query Language (DQL) sastoji se od naredbi za pretraživanje i dohvaćanje
podataka u bazi : npr. SELECT
Naredba SELECT jedna je od najkorištenijih SQL naredbi, a njena snaga naročito
dolazi do izražaja upotrebom različitih operatora, funkcija i ključne riječi WHERE. Njoj ćemo
kasnije posvetiti čitavo poglavlje, ali prije toga ćemo se u idućem dijelu baviti tipovima
podataka u SQL-u. SQL je uglavnom zasnovan na relacijskom računu, s time da je
18
matematička notacija zamijenjena ključnim riječima nalik na govorni engleski jezik. No
lagano se realiziraju i sve operacije iz relacijske algebre. Osim postavljanja upita, jezik
također omogućuje: definiranje relacija, ažuriranje relacija (upis, promjena, brisanje n-torki),
sortiranje i formatiranje ispisa, neke aritmetičke operacije s podacima, definiranje “pogleda”
(virtualnih relacija izvedenih iz postojećih), utjecaj na fizičku gradu baze (na primjer stvaranje
tzv. indeksa), te kontrolu sigurnosti.
4.2. Tipovi podataka
Znakovni tipovi podataka služe za prikaz nizova znakova, odnosno spremanje svih
tekstualnih informacija, a u literaturi se uobičajeno nazivaju string. Dijele se na alfanumeričke
znakove (slova i brojevi) i specijalne znakove (non-printing characters koji predstavljaju
određenu akciju). Posebna vrsta znaka je null ("\0") koji služi za prikazivanje null vrijednosti.
SQL standard definira sljedeće znakovne tipove:
- CHARACTER(n) ili CHAR(n)- predstavlja string duljine točno n znakova, a svaki
znak prikazuje se jednim bajtom. Dozvoljeni su alfanumerički i specijalni znakovi, a ako se
dopušta i unošenje null vrijednosti, ovaj tip podataka zauzima (n+1) byte memorije.
Maksimalna duljina nije određena standardom, a ako je stvarna duljina stringa manja od n,
sustav automatski dodaje prazne znakove do veličine n. Prilikom usporedbe stringova s
obzirom na veličinu veći je onaj koji je po abecedi poslije po rasporedu. Usporedba logičkih
stringova provodi se prema ASCII sustavu.
- CHARACTER VARYING(n) ili VARCHAR - predstavlja string maksimalne duljine
n znakova, a dopušten je unos alfanumeričkih i specijalnih znakova te null vrijednosti. Ovaj
tip podataka zauzima ukupan broj znakova+2 mjesta u memoriji, a ukoliko je duljina
unesenog stringa manja od n, preostala se mjesta ignoriraju.
- C(n) - predstavlja stringove fiksne duljine, a dopušteni su samo alfanumerički
znakovi. Zastario je, a umjesto njega koristi se CHAR.
- TEXT(n) - koristi se za stringove varijabilne duljine, a prihvaća sve znakove osim
null. Također je zastario, a zamijenio ga je VARCHAR.
Bit tipovi podataka predstavljaju nizove 0 i 1 koji se kao takvi unose u bazu. Dijele se na:
- BIT(n) - predstavlja niz bitova točne duljine n.
19
- BIT VARYING (n) - predstavlja niz bitova maksimalne duljine n.
Numerički tipovi podataka se koriste za spremanje podataka numeričkog tipa, a dijele se na
dvije podskupine:
1) Precizni numerički tipovi podataka
- INTEGER - služi za prikazivanje cijelih brojeva s predznakom ili bez njega.
Zauzima 1 ili 4 bytea.
- SMALLINT - također služi za prikazivanje cjelobrojne vrijednosti, ali u memoriji
zauzima 2 bytea.
2) Približni numerički tipovi podataka
- NUMERIC(x,y) - decimalni broj koji ima ukupno točno x znamenki (+predznak) i y
znamenki iza decimalne točke.
- DECIMAL(x,y) - decimalni broj koji ima najmanje x znamenki
- FLOAT(x) - decimalni broj s pomičnim zarezom čiji su podtipovi podataka:
- FLOAT (8 byteova)
- REAL (4 bytea)
- DOUBLE PRECISION (sinonim za FLOAT)
SQL standard definira četiri podtipa podataka kojima se prikazuje vrijeme:
1. DATE se sastoji od polja - YEAR, MONTH i DAY. Pokazuje apsolutno vrijeme u
odnosu na jednu fiksnu točku u vremenu i ne dopušta negativne vrijednosti.
2. TIME – se sastoji od polja HOUR, MINUTE i SECOND. Posjeduje opciju WITH -
TIME ZONE koja ima dva parametra: TIMEZONE_HOUR i TIMEZONE_MINUTE.
3. TIMESTAMP – se sastoji od polja YEAR, MONTH, DAY, HOUR, MINUTE i
SECOND. Kao i DATE, TIMESTAMP pokazuje apsolutno vrijeme u odnosu na jednu fiksnu
točku u vremenu i ne dopušta negativne vrijednosti.
4. INTERVAL - služi za predočavanje određenog vremenskog intervala čija vrijednost
može biti i negativna. Dijeli se na: year-months (može sadržavati polja YEAR i/ili MONTH)
i date-time (može sadržavati polja DAY, HOUR, MINUTE i/ili SECOND).
Svaki od njih može sadržavati jedno ili više datumskih polja koja se dijele na:
- YEAR - vrijednost između 0001 i 9999
- MONTH - vrijednost između 01 i 12
- DAY - vrijednost između 01 i 31
- HOUR - vrijednost između 00 i 23
20
- MINUTE - vrijednosti između 00 i 59
- SECOND - jedino polje koje dopušta unos vrijednosti koje nisu cjelobrojne (od 00.000...
i 61.999..., osim kod INTERVALA koji kao maksimalnu vrijednost sekunde dopušta
59.999).
Pritom YEAR ima najveći prioritet, a SECOND najmanji. Osim spomenutih tipova
podataka, često se koriste i:
- BLOB (Binary Large Object) - služi za spremanje slika, zvuka i sličnih podataka u
bazu maksimalne veličine do 2 GB
- CLOB (Character large Object) - njime se u bazu spremaju veći dokumenti
maksimalne veličine također 2 GB i
- DBCLOB (Double Byte Character Large Object) - također može spremiti podatke
duljine do 2 GB, a najčešće se koristi za spremanje dokumenata napisanih korištenjem
grafičkih stringova (double byte character data)
4.3. Stvaranje tablica i upis podataka
Tablica se sastoji od stupaca i redaka i sadrži podatke o određenim predmetima i/ili
pojmovima, poput autora, zaposlenika, knjižnice, knjige, člana i sl. Za izradu tablice
potrebno je kliknuti dvostruko na naredbu Create table in Design view te u okviru za
razgovor Table redom upisivati nazive i svojstva polja: Klikom na Data Type, u padajućemu
izborniku prikazati će se svi dostupni tipovi podataka. U stupcu Description može se polje
pobliže opisati (svrha, namjena i sl.). Prilikom spremanja tablice u okviru za razgovor
Access upozorava da za tablicu nije određen primarni ključ (iako nije nužno, ali je poželjno)
Slika 4. Okno za određivanje Primary key-a
Primary key je jedno ili više polja koja su jedinstvena za neku tablicu te se pomoću
Primary key polja tablice mogupostavljati u relacije (povezivanje) s drugim tablicama.
Korištenje Primary key-a ubrzava proces pretraživanja i spajanja podataka u tablicama. Svi
21
podaci u ovim poljima su kontrolirano različiti ( znači da se ne mogu unositi iste vrijednosti
više puta ) i vrijednost ne može biti Null (prazno polje). Postoji nekoliko vrsta Primary key-a
- AutoNumber Primary key – za Primary key polje koristi se AutoNumber tip,
najčešće korišteno za identifikacijske brojeve, npr. knjiga, članova itd. Access će u slučaju ne
definiranja Primary keya automatski izabrati AutoNumber polje za Primary key.
- Single-field Primary key – za Primary key koristi sesamo jedno polje u tablici,
vrijednosti također ne mogu biti Null ili se ponavljati.
- Multiple-field Primary key – za Primary key korist se više polja u slučaju kada se ne
može sa sigurnošću tvrditi da samo jedno polje opisuje tu tablicu. Najčešća situacija u kojoj
postoji tablica s ovakvim Primary key-em je u many-to-many relacijama.
Nakon upisivanja svih potrebnih podataka i dodjeljivanja Primary key-a za primjer
knjižnice tablica za autore sada izgleda ovako:
Slika 5. Primjer tablice za bazu podataka knjižnice (autori)
Relacija se definira sa SQL naredbom CREATE TABLE, iza koje slijedi ime relacije,
te u zagradama navođenjem liste definicija atributa međusobno odvojenih zarezom. Atributi
se definiraju s imenom atributa iza čega slijedi specifikacija vrste atributa i ostalih svojstava
atributa. Primjer definiranja relacije AUTORI:
CREATE TABLE autori (
autori_sifra text not null,
prezime text not null,
ime text not null,
PRIMARY KEY (autori_sifra)
);
Primjer 1. Definiranje relacije autori
Za dodavanja zapisa u tablicu u popisu objekata Tables potrebno je dvostruko kliknuti
na naziv tablice. Ako je tablica prazna (tj. bez ijednog zapisa) biti će označeno polje u prvome
22
stupcu prvoga (praznoga) redka sa sadržajem (AutoNumber). Na dnu okvira pisati će da je
označen 1 zapis od ukupno 1 zapisa. Novi podaci se upisuju u relaciju SQL naredbom
INSERT INTO, iza koje slijedi ime relacije te opcionalno lista imena atributa u zagradama, a
zatim riječ VALUES iza koje slijedi lista vrijednosti atributa u zagradama. Pogledajmo
primjer upisa autora u relaciju autori:
INSERT INTO autori
( autori_sifra, prezime, ime)
VALUES
( SIM, Simmons, Dan )
Primjer 2. Upis podataka u relaciju autori
Listu imena atributa nije potrebno navoditi ako lista vrijednost koja slijedi ide točno
po slijedu definicije relacije. Tekstualne vrijednosti su omeđene jednostrukim navodnim
znakom za razliku od brojčanih vrijednosti. Ako vrijednost za neki atribut nije navedena,
atribut poprima pre definiranu vrijednost koja se specificira kod definicije relacije, ili NULL
vrijednost (prazno). Nakon svih potrebnih upisa tablica izgleda ovako:
Slika 6. Okvir tablice autori
Postoje li već u tablici zapisi, biti će označeno polje u prvome stupcu prvoga redka, ali
će u njemu pisati neki broj (najčešće 1). Na dnu okvira pisati će da je označen 1 zapis od #
zapisa. Za dodavanje novoga zapisa potrebno se postaviti na prazan redak. Pri upisu podataka
potrebno je voditi računa o tipu polja koji je određen prilikom stvaranja tablice. U polje tipa
Text mogu se upisivati bilo koji znakovi. Međutim, u polje tipa Number mogu se upisivati
samo brojke. Tablicu nije potrebno pri izlasku posebno spremati/snimati, jer Access u nju
automatski sprema svaki novi zapis. Relacija se briše iz baze podataka naredbom :
23DROP TABLE <ime_relacije>
Primjer 3. Brisanje relacije iz baze podataka
Isto se primjenjuje i na svim ostalim relacijama što se može vidjeti iz sljedećeg
primjera. Primjer definiranja relacije KNJIGE. Nakon upisivanja svih potrebnih podataka i
dodjeljivanja Primary key-a za primjer knjižnice relacija za KNJIGE sada izgleda ovako:
Slika 7. Primjer tablice za bazu podataka knjižnice (knjige)
Definiranje relacije KNJIGE izgleda ovako:
CREATE TABLE knjige (
knjiga_id text not null,
Naslov_knjige text not null,
isbn text not null,
godina_tiskanja number not null,
autori_sifra text not null,
odjeli_sifra text not null,
nakladnici_sifra text not null,
PRIMARY KEY (knjiga_id)
);
Primjer 4. Definiranje relacije knjige
Primjer upisa autora u relaciju knjige:
INSERT INTO knjige
( knjiga_id, naslov_knjige, isbn, godina_tiskanja, autori_sifra, odjeli_sifra,
nakladnici_sifra)
VALUES
( 203, Endymion, 978-0-553-57924-6, 1996, SIM, Strane_knjige, Bantam )
Primjer 5. Upis podataka u relaciju knjige
24
Nakon svih potrebnih upisa tablica izgleda ovako:
Slika 8. Okvir tablice knjige
4.4. Mijenjanje i brisanje podataka
Podaci se mijenjaju SQL naredbom UPDATE. Primjer:
Problem: Promijeniti ime autoru David pod šifrom YAL u "Anthony David"!
Primjer 6. Izmjena postojećih podataka
Iza riječi SET dolazi lista atributa koji se mijenjaju međusobno odvojeni zarezima. Podaci se
brišu naredbom DELETE FROM. Primjer:
Problem: Izbrisati naslov knjige "U ime Boga" (343) iz knjiga!
Primjer 7. Brisanje upisanih podataka
25
UPDATE autor SET ime='Anthony David' WHERE autori_sifra=YAL;
DELETE FROM knjige WHERE knjiga_id=343;