Académique Documents
Professionnel Documents
Culture Documents
Sadraj:
I. II. III.
A. 1. 2. 3. 4. 5.
IV.
A. 1. 2. 3. 4. 5. B. 1. 2. 3. 4. 5. C.
UPIT(QUERY).................................................................................................................................... 14
VRSTE UPITA: ................................................................................................................................................... 15 Simple Query selekcijski upit ......................................................................................................................... 15 Parameter Query ........................................................................................................................................... 15 Crosstab Query tablini upit ......................................................................................................................... 15 Action Query akcijski upiti ............................................................................................................................ 15 Upiti koje je mogue generirati samo SQLom: .............................................................................................. 16 KREIRANJE UPITA ............................................................................................................................................ 16 Stvaranje prolaznog upita Simple Query Wizard-om: ................................................................................... 16 Stvaranje upita u Design View, QBE alatom: ............................................................................................... 16 Stvaranje izvrnog (akcijskog upita): ............................................................................................................ 17 Stvaranje parametarskog upita: .................................................................................................................... 17 Stvaranje upita pisanjem SQL izraza: ........................................................................................................... 17 KORITENJE GRADITELJA UVJETA - EXPRESSION BUILDER: ................................................................. 18
V.
A. 1. 2. 3.
OSNOVNE NAREDBE I IZRAZI U SQL - U :........................................................................................................ 19 SELECT i FROM naredbe ............................................................................................................................. 19 WHERE izraz (postavljanje uvjeta) .............................................................................................................. 20 ORDER BY izraz (sortiranje) ........................................................................................................................ 22 B. UPOTREBA OPERATORA U UVJETU: ................................................................................................................. 22 1. AND & OR ..................................................................................................................................................... 22 2. IN & BETWEEN & NOT ............................................................................................................................... 23 3. Upotreba LIKE operatora ............................................................................................................................ 24 C. UPITI KOJI KORISTE PARAMETRE............................................................................................................... 25 D. ALIASI I PODUPITI(SUBQUERIES): ................................................................................................................... 25 E. FUNKCIJE SUMIRANJA TOTALI: ................................................................................................................. 26 F. IZRAZI KOJI SE KORISTE NA FUNKCIJAMA U SELECT NAREDBI:..................................................................... 27 1. GROUP BY .................................................................................................................................................... 27 2. HAVING ........................................................................................................................................................ 28 G. DISTINCT I ELIMINIRANJE DUPLIKATA ........................................................................................................ 29 H. JOIN-S ,VEZANJE TABLICA SQL-OM U UPITU ................................................................................................ 30 1. Izvoenje Join-a (vezanja) ............................................................................................................................. 30 2. Inner ,Self i Outer joins: ................................................................................................................................ 31 I. NEKE SQL FUNKCIJE........................................................................................................................................... 33 1. Funkcije za Datum i Vrijeme ......................................................................................................................... 33 2. IIF funkcija ................................................................................................................................................... 34 J. RAD SA PRAZNIM VRIJEDNOSTIMA ...................................................................................................................... 34 1. Kako Null values djeluje na raunanje :........................................................................................................ 35 2. Pretvaranje Null values u nulu ...................................................................................................................... 35 3. Kombiniranje Tekst polja koja imaju zero-length string: ............................................................................. 36 1
K. 1. 2. 3. 4. 5. L. 1. 2. 3. M. N. 1. 2. O.
DEFINIRANJE TABLICE SQL-OM ..................................................................................................................... 36 CREATE TABLE kreiranje novih tablica ...................................................................................................... 36 CREATE INDEX kreiranje indeksa ............................................................................................................... 37 VIEW Pogled ................................................................................................................................................. 37 DROP brisanje tablice,procedure,pogleda(view),indeksa............................................................................. 38 ALTER dodavanje polja (Altering) u tablice ................................................................................................. 38 AURIRANJE I BRISANJE PODATAKA: .............................................................................................................. 38 INSERT dodavanje i auriranje redaka (podataka) u poljima ...................................................................... 38 DELETE brisanje podataka iz tablice ........................................................................................................... 39 UPDATE auriranje podataka ...................................................................................................................... 39 PRIMJERI PODUPITA (SUBQUERIES) ................................................................................................................ 40 NEKE NAREDBE SQL-A KOJE SE NE KORISTE ESTO ...................................................................................... 41 EXISTS & ALL ............................................................................................................................................... 41 UNION ........................................................................................................................................................... 42 SAETAK SYNTAKSE SQLA U ACCESSU ....................................................................................................... 43
VI.
A. 1. 2. 3. 4. 5. B. 1. C. D. 1. 2. E. 1. 2. 3. 4. 5.
FORMA (MASKA)............................................................................................................................. 45
STVARANJE FORME: ......................................................................................................................................... 46 Stvaranje forme u Design View: .................................................................................................................... 46 Stvaranje formi pomou Form Wizard-a: ...................................................................................................... 46 Stvaranje Autoformi: ..................................................................................................................................... 47 Stvaranje grafikona: ...................................................................................................................................... 47 Stvaranje Pivot tablice: ................................................................................................................................. 47 ODREIVANJE SVOJSTAVA (PROPERTIES) FORME: .................................................................................... 47 Dijelovi forme: ............................................................................................................................................... 48 PODFORME: ...................................................................................................................................................... 48 STVARANJE KONTROLA NA FORMI: ................................................................................................................. 48 Opis osnovnih kontrola u Toolbox izborniku: .............................................................................................. 49 TAB order ...................................................................................................................................................... 50 TO JE SWITCHBOARD? ................................................................................................................................... 51 Prvi korak: ..................................................................................................................................................... 51 Drugi korak: .................................................................................................................................................. 51 Trei korak: ................................................................................................................................................... 51 etvrti korak: ................................................................................................................................................. 52 Dodatne mogunosti: ..................................................................................................................................... 52
IX.
A. 1. 2. 3. 4. 5. 6. 7. 8. 9.
X.
A. 1. 2.
XI.
A. 1. 2. 3. 4. 5. 6. 7.
XV.
Objekti baze podataka u ACCESS-u: Tablice (Tables) Upiti (Query) Forme (Forms) Izvjetaji (Reports) Stranice za Internet (Pages) spoj forma i izvjetaja ,slue za prikazivanje i unos podataka na Internetu ili Intranetu Makro-programi (Macros) Programski moduli (Modules) u VBA
Kombiniranje ovih komponenata njihovo povezivanje i usklaivanje ini bazu podataka. to su komponente bolje postavljene u meusobne odnose to je baza podataka uinkovitija i bra.
COLUMN :(polje,field,stupac,atribut,svojstvo) prikazuje jedno svojstvo subjekta.Svako polje moe sadravati drugaije tipove podataka. U jednom polju moe biti samo jedan tip podataka.Polje tabele mora obavezno imati naziv, a obavezno je navoenje tipa podataka koji e se upisivati u to polje. Naziv polja moe biti duine do 64 znaka i mora biti jedinstven u tablici ,ne smiju postojati dva jednaka naziva polja u istoj tabeli. Access podrava osam razliitih tipova podataka, podrana je mogunost kreiranja tipa podataka od strane korisnika za svaki od tipova (osim za OLE objekte).
Tipovi podataka u polju nazivaju se DOMENE: Domena TEXT MEMO Koristi se za Veliina
Krai tekst, koji se moe se Do 255 znakova kombinirati sa brojevima (npr.adresa). Dui tekst koji koristimo za opise i slino Do 65 535 znakova BYTE od 0 do 255 INTEGER od 32768 do +32767 LONG INTEGER(cijeli brojevi)
od 2147483648 do +2147483647
NUMBER
Numeriki podaci koriteni za matematike operacije osim operacija nad valutama-za to postoji poseban tip
SINGLE(decimalni brojevi)
od 3. 4*1038do +3.4*1038
DOUBLE
od 1.797*10308do +1.797*10308
REPLICATION ID za udaljene baze DECIMAL slino kao Double 8 bytova GENERAL 1994.06.19 17:34:23 LONG 1994.lipanj 19 MEDIUM 19-lip-94 SHORT 1994.06.19 LONG TIME 17:34:23 MEDIUM 05:34 (12-satno) SHORT 17:34 (24-satno)
CURRENCY AUTONUMBER
Manipulacija sa valutama (izbjegava 8 bytova mogua zaokruivanja pri raunanju) Automatski broja koji se svaki redak povea (smanji) za 1 ili stavlja neki 4 ili 16 (Replication ID) bytova proizvoljni broj Boolean tip podatka. Sadri samo da ili ne vrijednost. (True/False,On/Of) 1 bit
YES/NO OLE OBJECT HYPERLINK Objekti drugih programa kao to su dokumenti Worda , Excela, slike, zvukovi itd. Adresa neke datoteke na naem kompjuteru ili Internetu Ogranieno samo veliinom Hard Disca Do 64 000 znakova
Prije nego se ponemo graditi bazu podataka,moramo utvrditi koji subjekti postoje te odluiti koje subjekte i njihova svojstva elimo uvati u bazi.Tablicu stvaramo u etiri koraka: 1.Prvi korak je odreivanje subjekata i njihovih svojstava u tablici 2.Drugi korak je utvrivanje Identifikatora u tablici 3.Trei korak je utvrivanje relacijskih veza izmeu tablica 4.etvrti korak je normalizacija
1.. Odreiivanjje subjjekatta ii njjiihoviih svojjsttava u ttablliicii 1 Odre van e sub eka a n hov h svo s ava u ab c
Kada utvrdimo za to trebamo bazu podataka,moramo utvrditi subjekte za koje emo stvoriti tablice. Zatim utvrdimo svojstva svakog subjekta koja elimo uvati u nekoj tablici. Primjer Videoteka : Subjekti; lanovi,Filmovi,Dobavljai itd. Svojstva subjekta: lanovi; ClanID,Ime,Prezime,Adresa itd. Filmovi; FilmID,Naziv,Cijena,Reiser itd. Dobavljai; Matini broj,Naziv,Adresa,Telefon itd.
Primary key je jedno ili kombinacija vie polja koja su jedinstvena za neku tablicu. Kada utvrdimo konaan izgled tablica utvrujemo identifikator tzv. Primary key, ako nema jedinstvene vrijednosti u nekom polju za svaki redak, dodajemo ifru ili kombiniramo vie polja u klju. Pomou Primary key polja tablice moemo postavljati u relacije. Koritenje Primary key-a ubrzava proces pretraivanja i spajanja podataka u tablicama. Svi podaci u ovim poljima su kontrolirano razliiti, ne moemo upisati iste vrijednosti vie puta i polje ne smije sadravati prazne vrijednost tj. ne moe biti Null.
Jednostavni primarni klju ili Single-field Primary key.Za klju koristimo samo jedno polje u tablici Sloeni primarni klju ili Multiple-field Primary key.U sluaju kada ne moemo sa sigurnou tvrditi da e samo jedno polje dati jedinstvenu vrijednost za klju koristimo vie polja.Tada je dozvoljeno da se neka od polja u primarnom kljuu ponove,ali ne sva odjednom.
U Design view-u oznaimo polje koje elimo definirati kao Primary key (u sluaju da elimo izabrati vie polja drimo prtisnutu tipku Ctrl) i oznaimo eljena polja ili na tipkovnici stisnemo Shift + k.
Primarni klju se uklanja na isti nain - klikom na ikonu. Polje ne mora biti Primary key da bi imalo jedinstvene vrijednosti ve ga moemo definirati kao Indexed Value bez duplikata.(U Design view-u pod opcijom Indexed odaberemo Yes(No Duplicates).) Indexe za odreenu tablicu pregledavamo tako da na alatnoj traci odaberemo Indexes gumb . Moemo izgraditi indekse sloene od vie polja tako da navedemo ime indeksa ,zatim bez navoenja imena indeksa upiemo u Field Name imena svih polja koja elimo u sloenom indeksu (Access smatra kao dio ranijeg indeksa sve retke koje nae dok ne doe do slijedeeg naziva indeksa).Indekse moemo stavljati u relacije sa drugim poljima u drugim tablicama.
Relacija je asocijacija postavljena izmeu zajednikih polja iz dvije tablice. Da bismo mogli npr. u jednoj formi ili upitu prikazati samo eljene podatke iz vie tablica koje govore o istom predmetu,sva polja koja uzimamo iz vie tablica moraju biti koordinirana. Ta koordinacija se postie pomou relacija. Relacije postavljamo zato da bismo se mogli uinkovito koristiti podatcima u tablicama.Relacijskom vezom govorimo Accessu kako e ponovno spojiti podatke iz tablica u upitu.Tek nakon to smo postavili relacije moemo kreirati upite, forme i izvjetaje za prikazivanje podataka iz vie tablica odjednom. Da bi se mogle uspostaviti relacijske veze u svakoj se tabeli prvo mora odrediti Primarni klju. 6
U relacijskom odnosu tablica moe biti primarna ili sekundarna. Polje primarne tabele (master) mora biti primarni klju ili je tabela po tom polju indeksirana bez mogunosti dupliciranja vrijednosti tog polja (unique index ) Relacijska veza dvije tabele u veini sluajeva se kreira tako da se Primarni klju prve tabele kopira u drugu tabelu gdje postaje Strani klju (Foreign key) , zatim se ta dva polja meusobno poveu. Izuzetno u vezi jedan-jedan kopirani Primarni klju iz prve tabele postaje Primarni klju druge tabele. Podaci u Foreign key-u moraju biti isti kao i u Primary key-u, imena polja ne moraju biti ista, preglednije je ako su ista ili slina. Treba obratiti panju da su nam polja istoga tipa , ako su brojanog tipa moraju biti i istog formata. AutoNumber se moe povezati s brojanim poljem,ali se ne moe povezati sa poljem tipa AutoNumber u drugoj tablici. Relacijske odnose je mogue uspostaviti i izmeu upita te pridruenih tabela, ali tada nije podran referencijalni integritet. Podrane su slijedee relacijske veze meu tabelama : jedan na jedan , jedan na vie , vie na vie Primjer Videoteka:
Uviamo da vie lanova moe posuditi vie Filmova. Ovu vezu nazivamo VIE-VIE Jedan Dobavlja moe dobaviti vie Filmova. Ovu vezu nazivamo JEDAN-VIE Zbog ovih veza takve baze podataka nazivamo RELACIJSKE.
Jedan-vie ili One-to-many (1:M) je najee koritena relacija. Redak iz Tablice A ima vie odgovarajuih redaka u Tablici B, ali redak iz Tablice B ima samo jedan odgovarajui redak u Tablici A
Jedan dobavlja moe prodati vie filmova,ali jedan film moe imati samo jednog dobavljaa. Primarni klju tablice jedan kopira se u tablicu vie(jedan-vie)
Jedan lan moe posuditi vie filmova,jedan film moe posuditi vie lanova. Kako e se vrijednost u oba stupca vie puta ponavljati kombinacija oba stupca u Sloeni primarni klju nije mogua jer se ta vrijednost moe ponoviti,a primarni klju mora biti jedinstvena vrijednost.Zato emo dodati jo jedan stupac koji moe oznaavati datum,redni broj narudbe i sl. te sloiti primarni klu od tri stupca. Moramo dobro razmisliti o primarnom kljuu i predvidjeti sve opcije kako bi njegova vrijednost bila jedinstvena za svaki redak, jer ako se ta vrijednost ponovi baza nee prihvatiti dupli podatak!
1 :: 1 1 1
Jedan na jedan ili One-to-one(1:1) je relacija koja se rijetko pojavljuje. U njoj svaki redak iz Tablice A moe imati samo jedan odgovarajui redak u Tablici B. Moemo ih koristiti kada elimo podijeliti velike tablice na dva dijela. 8
U toj vrsti veze kopiramo primarni klju iz prve tablice u drugu svejedno u kojem smjeru i on postaje primarni klju i u drugoj tablici:
5.. Posttupak kreiiranjja nove ttablliice:: 5 Pos upak kre ran a nove ab ce
Pozovemo Database window tipkom F11. U Database window izaberemo grupu Tables Kliknemo na New
Imamo na izboru vie naina kreiranja tablice: Datasheet view Prebacuje nas na datasheet view(vidimo tablicu sa stupcima,retcima i podacima u njima). Ova metoda omoguuje nam direktan upis podataka u tablicu. Design view Najpogodnije za stvaranje tablice i definiranje stupaca u tablici.U ovom nainu poljima lako odreujemo imena, tip podataka,karakteristike itd.) Table Wizard arobnjak koji nas vodi kroz proces stvaranja tablice i to tako da izabiremo stupce koji e biti u tablici iz velikog izbora gotovih polja(stupaca) Import Table arobnjak koji uvozi tablice i objekte iz neke vanjske datoteke u nau bazu koju trenutno kreiramo Link Table arobnjak koji kreira tablicu koja je vezanalinkana sa nekom tablicom u vanjskoj datoteci (znai da ta tablica nije u naoj bazi ve u nekoj drugoj ali ju moemo pozvati iz nae baze) Mi emo odabrati Design view zato da bi kreirali tablicu od temelja.Svaki redak u Design view prozoru predstavlja jedno polje u tablici i ima odreena svojstva: Field Name Ime polja, moe sadravati razmake ,ali nije preporuivo,mora biti ispunjeno Data Type Tip podataka tog polja,mora biti ispunjeno Description Opis polja,ne mora biti ispunjeno, a vrijednost koja je tu unesena e biti vidljiva samo u status baru (pri dnu ekrana) kada radimo sa tim poljem u formi ili tablici u Datasheet View-u . Nakon to ispunimo ime polja i njegov Data Type otvore se nove opcije koje poblie opisuju to polje. Field Size Memorijska veliina polja. Ovisi o tipu podataka, moe biti manja od maksimalne kod nekih tipova. Format Format u kojem e se podatak prikazati pri pregledavanju ,za neke tipove podataka format je unaprijed definiran u Control Panelu pod Regional Settings i prenosi se iz Windowsa. ((1)) 1 Forrmattiirranjje polljja Yess//No Fo ma an e po a Ye No Umjesto klasinog Check Box formata polju Yes/No moemo prilagoditi format tako da u polju za definiranje izgleda tabele Format: upiemo predloak koji elimo vidjeti u tablici,naprimjer:
Prikazae u polju Yes/No DA vrijednost u zelenoj ,a NE u crvenoj boji. Prva vrijednost DA e biti Yes(1) vrijednost samo ako ispred stavimo znak ; ako izostavimo taj znak prva vrijednost e biti No(0) .Kada ne elimo koristiti toku zarez moemo prvo upisati izraz za No(0),pa onda za Yes(1). Da bi tablica prikazala prilagoeno polje onako kako smo ga odredili moramo promijeniti Display control: (koja je inicijalno Check Box) u Text Box ili Combo box.Inicijalna vrijednost Yes/No polja je No(0).
izgledati ovako:
10
((2)) 2 Forrmattiirranjje Textt polljja:: Fo ma an e Tex po a Kad elimo text vidjeti kao mala slova u Format: upiemo < znak , za velika slova > znak ((3)) 3 Forrmattiirranjje prrazznog polljja:: Fo ma an e p a nog po a Umjesto praznog polja Access moe prikazati neki tekst koji nestaje kad se upie podatak.
Kada u Format: nekog polja upiemo @; Nepoznat [Blue] izgledae ovako,nakon upisa vrijednost ovaj tekst e nestati.
((4)) 4
Dodavanjje prreffiikssa iillii ssuffiikssa kojjii e ossttattii u polljju kada upiiemo vrriijjednosstt:: Do d a v a n e p e k a u k a ko e o a u po u kada up e mo v edno
KM; @ dodae prefiks KM svakoj upisanoj vrijednosti. ((5)) 5 Prromjjena bojje zznakova u polljju fforrmattiirranjjem:: P om ena bo e nakova u po u o ma an em
Mogue boje: Black, Blue, Green, Cyan, Red, Magenta, Yellow, White za tekst polje: @ [boja]
Decimal Places 11
Namjeta broj decimalnih mjesta za numerika polja Input Mask Odreuje format unosa i prikaza podatka te osigurava upis uvijek u istom obliku .Koristimo odreene znakove u kombinaciji sa / . , ; : ili ( ) ovisno o postavkama u Regional Settings. Znak Doputa upis: 0 9 # L ? A a Brojke Brojke,razmak Brojke,razmak,plus,minus Slova Slova Slova,Brojke Slova,Brojke Obavezan unos Da Ne Ne Da Ne Da Ne Da Ne Primjer (000)000000 (000) 00 00 (00 00)-00-00 LLLLLLLLL ????????? AAAAAA aaaaaa &&&&&&&& CCCCCCCC >LL000-99-00 Izgled (123)123456 (123) 12 12 +(123) 12 12 NeKasLovA NeKsLov 1a2B3c a23c B*1!A? 7 B*!A? 7 KM123-12-12
& Bilo koji znak,razmak C > < Bilo koji znak,razmak Prikazuje VELIKA SLOVA Prikazuje mala slova
<LL999-00-999 km12-12-123
Caption Naziv polja koje e koristiti kod prikazivanja tablice (npr. kada polju ije je logiko ime S_zap elimo prikazati ime ifra Zaposlenog) Default Value Inicijalna vrijednost koja e biti automatski upisana u polje ,ako je ne promijenimo unosom nove vrijednosti Validation Rule Postavljanje uvjeta koji mora biti ispunjen da bi Access prihvatio podatak (recimo da vrijednost uvijek mora biti manja od 100 u polje upiemo <100 itd.) Validation Text Poruka koja se prikazuje korisniku ako kod upisa podatka nije potovan Validation Rule Required Ako je ova opcija ukljuena polje ne moe imati praznih vrijednosti Indexed Indeksiranje polja,indeksirana polja mogu imati duple vrijednosti ,moemo postaviti i opciju koja zabranjuje ponavljanje podataka(unique) ((6)) 6 Possttavlljjanjje rrellaciijja u Accessssu:: P o a v a n e e a c a u A c ce u
Da bismo mogli postaviti relacije moramo zatvoriti sve tablice, upite, forme i ostale komponente Accessa. Na alatnoj traci kliknemo na Relationships gumb ili u izborniku odaberemo Tools i tamo odaberemo Relationships alat. Otvara se prozor relacija na kojem izabiremo tablice koje emo stavljati u relacije. Tablice odaberemo tako da pozovemo pop-up izbornik desnim klikom mia bilo gdje u novootvorenom prozoru i odaberemo Show table opciju tablice. . Dvoklikom na ime tablice stavljamo tu tablicu u prozor odakle je moemo dalje vezati za druge
Nakon to smo odabrali sve tablice koje emo staviti u relacije moramo postaviti i same relacije. Njih postavljamo tako da u Tablici A oznaimo Primary key polje(bold) i dok drimo gumb mia povuemo ga na polje u Tablici B koje uva iste podatke tj. foreign key (obino ima isto ili slino ime). Nakon ovog postupka nam se otvori Edit Relationships prozor u kojem odabiremo opcije relacije.Tip veze se postavlja automatski. Ukoliko je polje iz Tablice A Primary key ili Indeks i oba polja imaju isti tip podataka moemo ukljuiti Referential Integrity (sistem pravila koja osiguravaju da su relacije izmeu redaka ispravne i da sluajno ne promijenimo ili obriemo povezane podatke).Stisnemo tipku Create i naa relacija je postavljena. 12
((7)) 7 Refferrenciijjallnii IInttegrriittett R e e en c a n n eg e Referencijalni Integritet je tip veze koji onemoguava da se podatak u Sekundarnoj tablici pojavi prije nego to je upisan u Primarnoj tablici. Primarna tablica je ona iz ijeg smjera veza kree prema tablici koja u vezi postaje Sekundarna. Pri stvaranju veza u Accessu je podran referencijalni integritet i to: - kaskadno(stupnjevito) auriranje polja koja su u relacijskom odnosu tj.povezana.Usluaju da se podatak u primarnoj tablici promijeni, isti e se promjeniti u sekundarnim tablicama ako je ova opcija potvrena. - kaskadno(stupnjevito) brisanje polja koja su u relacijskom odnosu tj.povezana.Radi na istom principu kao i auriranje. Obrisati e sva povezana polja u sekundarnim tablicama.Iz sekundarne tablice se ne moe pozvati brisnje podatka u primarnoj tablici. Relacija koja ima postavljen Referencijalni integritet mora polaziti iz polja koje je ili primarni klju ili ima definiran UNIQUE index. Treba dobro predvidjeti posljedice ukljuivanja ove opcije jer moe zakomplicirati rukovanje bazom ako se ne predvide sve mogue posljedice stvaranja ovakve veze! Grafiki prikaz veza meu tablicama naziva se : ((8)) 8 ERA MODEL Enttiitty Rellattiionsshiip Attrriibutte Modell ERA MODEL En y Re a on h p A bu e Mode Grafiki prikaz svih subjekata nekog poslovnog sustava sa njihovim pripadajuim vezama
Prozor Relationships u Accessu koristi varijaciju ERA modela. ERA model moemo koristiti kod kreiranja baze podataka.U dijagramu emo nacrtati sve subjekte(entities) kojima emo rukovati u bazi zajedno sa njihovim raznim atributima i vezama(relationships). Mogli bi rei da je: Subjekt tema o kojoj elimo uvati podatke u bazi. (npr. lanovi,filmovi) Atribut je opisno svojstvo subjekta (npr. naziv,adresa) Veza definira odnose meu subjektima odnosno to se deava izmeu dva subjekta (npr. Pero POSUUJE Film", "Continental PRODAJE Film".) Relativno je jednostavno prikazati bazu pomou ER Diagrama, gdje etverokuti predstavljaju subjekte,rombovi veze,a ovali atribute.Primarni kljuevi su podvueni:
Ne postoji jedinstven ER model ,jedino je bitno da iz dijagrama moemo vidjeti to je subjekt,atribut,veza,index,primarni klju i strani klju. ((9)) 9 Kako ssttvorriittii LOOKUP POLJE:: Kako vo LOOKUP POLJE
13
Stvaranje lookup polja je proces kojim odabranom polju dodjeljujemo mogunost popunjavanja podacima iz druge tablice u kojoj se nalaze ifrirani esto ponavljani podatci, upita ili iz liste predodreenih podataka. Prvo pod Field properties odaberemo Lookup,vidjeemo da je kao Display Control odabran Text Box. Zatim umjesto kontrole Text Box klikom odaberemo List Box ili Combo Box.Dalje odreujemo izvor inain prikaza podataka u lookup polju: Row Source Type - je nain popunjavanja podataka.Ukoliko elimo da se nae polje popunjava vrijednostima iz tablice/upita odaberemo Table/Query opciju,ukoliko elimo da se polje popunjava iz liste predodreenih podataka odaberemo Value list i pod Row Source direktno upiemo podatke odvojene znakom toka-zarez; Bound column redni broj vezanog stupca u tablici iz koje elimo podatke Column count broj stupaca koji elimo vidjeti Column heads ako elimo vidjeti imena stupaca u combo boxu Column widhts eljena irina stupaca u jedinici mjere, razdvaja se znakom toka-zarez; List Rows koliko redova elimo vidjeti odjednom List Width ukupna irina liste Limit to list ograniava upisivanje na samo one podatke koji ve postoje u listi Na osnovu tabele se kasnije kreiraju upiti,forme, i izvjetaji. Access prua vrlo korisnu mogunost rada aplikacije ak bez kreiranja bilo koja tabele u samom Access-u tj. moe se raditi s datotekama koje su kreirali drugi SUBP. ((10)) 10 Kompakttiirranjje bazze podattaka:: Kompak an e ba e poda aka
Redoviti postupak u odravanju baze podataka je kompaktiranje baze (Compact Database).Postupkom kompaktiranja je mogue promijeniti poredak sortiranja na ve postojeim bazama. Kompaktiranje pozivamo iz izbornika Tools Database Utilities Compact Database ,zatim odaberemo eljenu bazu i sauvamo je zbog sigurnosti podataka pod razliitim imenom od originala (nije obavezno) dok se ne uvjerimo u njenu funkcionalnost,kasnije joj moemo dodijeliti ime originala.
Upit je komponenta baze podataka kojom se koristimo kada elimo nai, izdvojiti ,promijeniti ili izraunati odreene podatke iz jedne ili vie tablica tabele po nekom zadanom kriteriju (uvjetu). Upit za razliku od tablice ne pohranjuje podatke nego radi sa podatcima koji su pohranjeni u tablicama.Organiziran je kao i tabela u redove i stupce.Rezultat upita mogue je ispisati na pisau.Moemo ih koristiti kao podlogu za izvjetaje ili forme. Podatke je mogue prikazati u obliku u kakvom se prikazuju i u tabeli (tabelarni oblik), mogue je prikazati cijelu tabelu ili samo dio tabele, mogue je polja grupirati te prikazivati totale, prikazivati podatke iz vie tabela u jednom upitu itd. Tablicu moramo prikazati preko upita ako postojeim poljima tablice elimo dodati polja koja se dobivaju izraunavanjem jer tu mogunost nije mogue koristiti prilikom prikaza same tabele. Upit moemo postaviti na jednoj i vie tablica. Upit koji zahvaa vie tablica zovemo Strukturirani upit. Princip stvaranja upita nad vie tablica je jednak kao kad stvaramo upit nad jednom tablicom.Kod strukturiranih upita dolaze do izraaja veze meu tablicama. Kod postavljanja upita nad vie tablica obavezno moramo definirati relacijske veze meu eljenim tablicama inae e rezultati upita biti netoni.Ukoliko tablice koje koristimo u upitu nemaju direktnu vezu treba dodati tablice koje posredno stvaraju vezu izmeu takvih tablica da bi se definirala veza meu njima. Podatke iz tablica moemo samo pregledati prolazni upiti, ali i mijenjati te aurirati izvrni upiti. Promjenom tabele na osnovu koje je kreiran upit promjenit e se i sam upit. Kod pretraivanja baze Access ne razlikuje mala i velika slova. Prilikom kreiranja upita moemo koristiti parametre.To su uvjeti koje korisnik upisuje svaki put kad eli vidjeti podatke iz upita ,tako korisnik sam odreuje koji e se podatci izlistati. Upite u Accessu moemo kreirati na tri naina: 1.SQL-om jezikom za izradu strukturiranih upita u obliku komande ili naredbe 14
2.QBE (Query By Example) metodom ,pomonim programom koji nam nudi Access kada izaberemo Design view. Pomou te metode dajemo raunalu primjer (example) polja koja elimo vidjeti u upitu i postavljamo eljene uvjete,nakon pokretanja upita raunalo prevodi primjer u SQL jezik.
3.Visual Basic jezikom Izdvajanje odreenog stupca iz tablice zove se PROJEKCIJA Izdvajanje odreenih redaka iz tablice pod odreenim uvjetom zove se SELEKCIJA Presjek tablice je KOMBINACIJA PROJEKCIJA + SELEKCIJA = KOMBINACIJA
Parameter Query je tip upita u kojem moemo namjestiti da se kada pokrenemo upit automatski otvara prozori u koji moramo unijeti podatak koji e sluiti kao kriterij za pretraivanje tablica. Pogodni su kao podloga za forme i izvjetaje zbog svoje fleksibilnosti
su upiti pomou kojih se izvodi neka obrada nad podacima tabele. Postoje etiri vrste akcijskih upita odnosno mogue su etiri vrste obrada podataka tabele .Svima takvim upitima je zajedniko da vre promjene na mnogim podatcima u samo jednoj operaciji :
a)) Updatte Query ,,auriiranjje ttabelle a Upda e Query aur ran e abe e b)) Append Query,, dopunjjavanjje b Append Query dopun avan e
koristi se kod globalne promjene grupe redaka u jednoj ili vie tablica, npr. koristimo ga kada elimo podignuti sve cijene za 10% ili pozivne telefonske brojeve iz 041 na 01 itd. uzima grupu redaka iz jedne ili vie tablica i ubacuje ih na kraj jedne ili vie tablica,tako moemo spojiti dvije tablice sa odgovarajuim podatcima u jednu. 15
c)) Make--ttablle Query,, kreiiranjje ttabelle c Make ab e Query kre ran e abe e d)) Dellette Query ,,briisanjje iiz ttabelle d De e e Query br san e z abe e
stvara novu tablicu iz dijela ili svih podataka iz jedne ili vie tablica,npr. ako elimo imati tablicu Narudbe95 tj. sve narudbe iz 95. godine brie grupu redaka iz jedne ili vie tablica, npr. ako elimo obrisati jednog ili vie zaposlenika koji su dobili otkaz,ili lanove videoteke koji nisu posudili film u zadnje dvije godine. Svi upiti koji mijenjaju podatke u tablicama mogu imati nezgodne rezultate.Prije pokretanja takvih upita trebalo bi uvijek napraviti backup baze ili bar selekcijski upit sa istim uvjetima da bi pregledali podatke koji e biti promijenjeni ili obrisani kad je god to mogue pa tek onda pokrenuti akcijski upit.
5.. Upiittii kojje jje mogue generiirattii samo SQLom:: 5 Up ko e e mogue gener ra samo SQLom
a)) Pass--ttrough iillii upravlljjakii upiitt a Pass rough uprav ak up b)) Datta--deffiiniittiion iillii obradnii upiitt b Da a de n on obradn up c)) Uniion iillii skupnii upiitt c Un on skupn up
je specifian SQL upit koji se koristi za direktno slanje komandi SQL posluitelju (npr. Microsoft SQL posluitelju). Naravno, ovo se izvodi preko ODBC-a. je upit kojim se mogu kreirati, mijenjati ili brisati tabele ili kreirati ili brisati indeksi. je upit pomou kojeg je mogue prikazivati podatke iz vie tabela ili upita (tabele ili upiti iji se podaci prikazuju moraju biti u nekoj od relacijskih veza).
1.. Sttvaranjje prollaznog upiitta Siimplle Query Wiizard--om:: 1 S varan e pro aznog up a S mp e Query W zard om
Pozovemo Database window tipkom F11 U Database window izaberemo grupu Queries Kliknemo na Create Query by using wizard ili New Iz Table/Query kuice odabiremo tablicu ili upit iz kojeg elimo vidjeti polja Iz Avaliable fields liste odabiremo polja iz te tablice koja e se nalaziti u upitu tako da oznaimo polje i stisnemo gumb za prebacivanje . Ova dva koraka moemo ponavljati dok nismo odabrali sva polja iz svi tablica koje elimo. Kliknemo na gumb Next U kuicu na vrhu prozora upisujemo ime upita, i pri dnu ekrana biramo elimo li vidjeti rezultate upita ili elimo jo dotjerati dizajn upita. Nakon ovog arobnjaka upit e prikazati sva odabrana polja i podatke iz svih redaka za odabrana polja. Da bi vidjeli samo eljene podatke moramo jo postaviti kriterije po kojima e podatci biti prikazani ,stoga odabiremo drugu opciju Modify Query design i otvara se Design view upita sa ve odabranim poljima.
2.. Sttvaranjje upiitta u Desiign Viiew,, QBE allattom:: 2 S varan e up a u Des gn V ew QBE a a om
16
Pozovemo Database window tipkom F11 U Database window izaberemo grupu Queries Kliknemo na Create Query in Design view ili New Otvara se prozor za odabir tablica iz baze koje elimo ukljuiti u upit Odaberemo tablice i kliknemo na Add Iz odabranih tablica povuemo eljena polja na QBE mreu,ili ih odaberemo direktno u mrei u poljima Field: i Table: Na alatnoj traci moemo promijeniti tip upita koji je inicijalno SELECT upit Ako elimo sortirani prikaz kliknemo na redak Sort: u QBE mrei i odaberemo uzlazno (Ascending od A do ili od 0 do 9) ili silazno (Descending od do A ili od 9 do 0) i sortiramo prikaz Ako neka polja ne elimo prikazati u rezultatu u retku Show: uklonimo kvaicu Postavimo uvjete u Criteria: polju i pokrenemo upit klikom na gumb Run sa izbornika. Uvjet upisan u stupcu QBE mree se odnosi smo na polje navedeno u stupcu.Uvjeti koje emo upisati u isti redak koristie operator AND dok e uvjeti upisani u slijedeem retku uvjeta koristiti operator OR:
Ako upitu elimo dodati agregatnu funkciju klikom na gumb odrediti funkciju koju elimo koristiti. Sauvamo upit
Make-table Query nakon odabira nam se javlja prozor u koji upisujemo ime tablice koju emo stvoriti i elimo li ju spremiti u ovu ili neku drugu bazu. Postavimo kriterije i pokrenemo upit . Update Query javlja nam se novo polje Update To u koje upisujemo izraz na mjesto polja koje elimo promijeniti. Mijenjaju se vrijednosti za sve obuhvaene podatke. Postavimo kriterije i pokrenemo upit da bi se promjene izvrile. Append Query nakon odabira nam se javlja prozor gdje upisujemo ili odabiremo sputanjem liste ime ve postojee tablice u koju e se podatci dodati na kraju tablice. Postavimo kriterije i pokrenemo upit da bi se promjene izvrile. Delete Query pokretanjem se briu svi obuhvaeni podatci iz izabranih tablica.
5.. Sttvaranjje upiitta piisanjjem SQL iizraza:: 5 S varan e up a p san em SQL zraza
17
Pozovemo Database window tipkom F11 U Database window izaberemo grupu Queries Kliknemo na Create Query in Design view ili New Otvara se prozor za odabir tablica iz baze koji emo zatvoriti Na izborniku odaberemo gumb ili View SQL da bi provjerili njegovu
Otvara se prozor za upisivanje SQL izjave,upiemo naredbe i pokrenemo upit gumbom Run ispravnost.Sauvamo upit Upitom se moe upravljati i preko (Query properties) karakteristika upita : -prikaz jedinstvenih zapisa ( Unique records ) -da li e biti prikazana sva polja upita, -prikaz odreenog broja zapisa,ogranienja za korisnika itd.
Uvjeti se postavljaju pomou raznih operatora koji su objanjeni u SQL poglavlju,gdje su objanjene i agregatne funkcije.
C.. KORITENJE GRADITELJA UVJETA - EXPRESSIION BUIILDER:: C KORITENJE GRADITELJA UVJETA - EXPRESS ON BU LDER
Expression builder pozivamo tako da kliknemo desni gumb mia na Criteria: ili Field: redak u QBE mrei i odaberemo Build opciju iz pop-up izbornika.Otvara se Expression builder prozor koji je sainjen od tri dijela.
Gornji dio se zove Expression box i u njemu gradimo izraz . Srednji dio je lista operatora koje ubacujemo u izraz tako da kliknemo na njega kada se nalazimo na mjestu u izrazu gdje ga elimo ubaciti. Donji dio se sastoji takoer od tri dijela. Lijevi dio u kojem se nalaze objekti baze podataka, funkcije, konstante, operatori i uobiajeni izrazi Srednji dio je lista specifinih elemenata za odabrani direktorij u lijevom dijelu Desni dio je lista vrijednosti za element koji je izabran u srednjem dijelu Izraz izgraujemo kombiniranjem operatora, elemenata, funkcija i vrijednosti ovisno o potrebi.Lista izraza se nalazi u helpu. Pozivamo ju tako da se pozicioniramo na Criteria polje i pritisnemo tipku F1. Tamo su operatori sloeni po svojoj domeni rada (rad sa brojevima, tekstom ,datumima itd.)
podatke te vezu prema veem SUBP(SQL posluiocima).Sadri standardizirane naredbe za pristup raznim vrstama baza podataka.Moe posluiti kao veza s drugim sustavima za upravljanje bazama podataka preko veznih upita. SQL naredbe su vrlo jednostavne,ali se mogu kombinirati na vrlo sloene naine,dijele se na dvije kategorije: DDL Data Definition Language - stvaranje/mijenjanje/brisanje tablica.Jezik koji opisuje atribute baze,posebno tablica,polja,indexa.Odnosi se Create Table naredbu. DML Data Manipulation Language - stvaranje/mijenjanje/brisanje podataka u tablicama DML naredbe obino sadre imena polja,tablica te par neophodnih dodatnih podataka.Ove naredbe mogu sadravati uvjete koji definiraju toan podskup podataka koje elimo vidjeti umjesto skupa svih podataka,mogu sortirati podatke na odreeni nain,te vriti agregaciju tj.spajanje podataka.Odnosi se na Select, Update, Insert, i Delete naredbe. Access slovi kao sustav u kojem je najjednostavnije i kreirati SQL naredbu te da su pogreke prilikom kreiranja svedene na minimum (misli se na pogreke u dobivenom rezultatu, a ne u samoj sintaksi SQL-a ). Podrava podskup naredbi standardnog SQL-a koji je vrlo moan. SINTAKSA je skup pravila koja se moraju potivati prilikom pisanja u programskom jeziku. SQL se u Access-u upotrebaljava kod : Upita odreuje listu podataka koje e upit prikazati Kontrola u objektima predefinirana lista i kombinirani unos Formi i Izvjetaja koje e podatke prikazati Makronaredbi moe sadravati SQL naredbu kao RunSQL akciju ili kao argument Where uvjet Programskih modula postoji nekoliko razloga za koritenje SQL-a u programskim modulima: odreivanje podataka koje e sadravati pojedini objekt,postavljanje filtera pisanje naredbe SQL-a vee od 256 znakova ( do 32 768 znakova )
Svaki upit zapoinje naredbom iza koje obavezno mora stajati razmak SQL-u nisu vana mala i velika slova,iako najee vidimo SQL naredbe pisane velikim slovima radi razlikovanja od drugih podataka. Kod pisanja SQL naredbe imena stupaca ne smiju imati razmake ili ako sadre razmak moraju se staviti u uglate zagrade [ime polja] Na kraju nabrojanih polja ili tablica ne smije stajati zarez.Na kraju izjave obavezno moramo postaviti znak toka-zarez (;) Recimo da elimo vidjeti adresu svakog zaposlenika u tablici radnici. Koristiemo SELECT naredbu na slijedei nain:
19
Da bi odabrali samo retke koji zadovoljavaju jedan ili vie uvjeta koristimo izraz WHERE koji se pie iza naredbe FROM Izraz WHERE se koristi za odabir i prikazivanje samo eljenih polja koja ispunjavaju zadani uvjet Polje koje se navodi u izrazu WHERE ne mora se navesti u naredbi SELECT Kod postavljanja uvjeta dozvoljeni su slijedei operatori ,u uvjetu se izvode se ovisno o prioritetu po slijedeem redoslijedu: OPERATORI ARITMETIKI ^ Potenciranje Negativni predznak(negacija) * Mnoenje / Dijeljenje / Cijelobrojno dijeljenje mod Ostatak cjelobrojnog dijeljenja(modulus) Oduzimanje + Zbrajanje & spajanje teksta RELACIJSKI (USPOREIVANJE) = Jednako <> Razliito < Manje od > Vee od <= Manje ili jednako >= Vee ili jednako LIKE Uspredba teksta sa uzorkom(pattern) LOGIKI NOT Negacija AND Konjunkcija(logiko i ) 20 PRIORITET 0 1 2 2 3 4 5 5 6 PRIORITET 7 7 7 7 7 7 7 PRIORITET 8 9
OR XOR EQV
10 11 12 PRIORITET 13 13 13 13 13
STATISTIKI Sum Zbraja Avg Prosjek Min,Max Najmanji, Najvei Count Broja First,Last Prvi, Zadnji
Ako elimo vidjeti broj_radnika radnika koji zarauju preko 65,000, napisat emo naredbu:
upotrijebili smo operator >= (vie od ili jednako) jer smo eljeli vidjeti ispis samo onih radnika ija je plaa vea od 65,000, ili jednaka 65,000. Isto se moe napraviti sa tekst tipom podatka:
Pravila upisivanja znakova iza operatora obzirom na tip podatka u polju: NUMBER znakovi upisani iza operatora se ne moraju okruivati nikakvim zagradama,decimalni broj emo prikazati pomou toke: cijelibroj.decimale TEXT tekst se stavi izmeu dva apostrofa i zmeu teksta i apostrofa ne smije postojati razmak :tekst uvjeta DATE/TIME podatak se pie izmeu dvije ljestve(catch) na slijedei nain brojevima u zadanom formatu: #mjesec/dan/godina# Ako elimo vidjeti samo radnike koji su menaderi ,te ih elimo sloiti silaznim redom naredba e izgledati ovako:
ORDER BY izraz sortira podatke po predefiniranom redoslijedu: ASCENDING ASC (uzlazno od A do ili od 0 do 9) DESCENDING DESC (silazno od do A ili od 9 do 0) Koliko polja ima naredba Select toliko ih moe biti u izrazu Order By tj. upit se moe sortirati po vie polja. Polje na kojem smo naveli u izrazu Order By mora biti ukljueno u Select naredbi.
X
TRUE TRUE FALSE FALSE
Y
TRUE FALSE TRUE FALSE
X AND Y
TRUE FALSE FALSE FALSE
SELECT radnikID FROM Statistika WHERE placa > 40000 AND pozicija = 'Knjigovoa';
OR operator spaja dva ili vie uvjeta, i prikazuje samo one redove koji ispunjavaju BILO KOJI zadani uvjet.On vri logiku operaciju DISJUNKCIJE(Disjunkcija lat. rastavljanje,razdvajanje) X
TRUE TRUE FALSE FALSE
Y
TRUE FALSE TRUE FALSE
X OR Y
TRUE TRUE TRUE FALSE
Na primjer za prikaz svih koji zarauju manje od 40,000 ILI imaju manje od 10,000 bonusa, napie se slijedea izjava:
SELECT radnikID FROM Statistika WHERE placa < 40000 OR bonus < 10000;
22
SELECT radnikID FROM Statistika WHERE pozicija = 'Knjigovoa' AND placa > 60000 OR bonus > 7500;
SQL prvo trai retke gdje je plaa vea od 60,000 i pozicija je Knjigovoa. Zatim gleda da li bilo koji red zadovoljava OR uvjet da je bonus vei od 7,500. Tako prikazuje listu redaka prikazujui podatke o Managerima koji imaju plae vee od 60,000 kojima dodaje podatke o svim drugim radnicima koji imaju bonus vei od 7,500 . To se dogaa zato to OR operator ukljuuje red u listu ako je bilo koji uvjet toan. Primjeujemo da se AND operacija obavlja prva,a OR druga. Kada elimo da se OR operacija obavi prva tj.da dobijemo samo Managere koji imaju plae vee od 60,000 ili bonus vei od 7,500 upotrijebiemo zagrade:
SELECT radnikID FROM Statistika WHERE pozicija = 'Knjigovoa' AND (placa > 60000 OR bonus > 7500);
tako ,ako imamo desetak OR uvjeta izraz moemo napisati na krai i pregledniji nain. BETWEEN je operator raspona ,koristimo ga kad trebamo navesti podruje unutar kojeg se nalaze svi eljeni zapisi. Npr.ako elimo listu onih koji zarauju vie ili jednako 30,000, ali manje ili jednako 50,000, koristimo:
SELECT radnikID FROM Statistika WHERE placa BETWEEN 30000 AND 50000;
23
Kada elimo listu onih koji nisu u toj grupi koristimo NOT:
SELECT radnikID FROM Statistika WHERE placa NOT BETWEEN 30000 AND 50000;
NOT IN lista sve redove koji nisu navedeni u IN listi. NOT dodan ispred nekog operatora vratie sve vrijednosti koje su razliite od zadane.
Koritenjem Jocker znakova pretraivanje baze postaje puno lake prilagoditi potrebama: Kada iz tablice Statistika elimo vidjeti radnikID, svih onih kojima prezime poinje sa "S" napisaemo:
LIKE *a[1-3]z??
Traimo rije koja na poetku ima bilo koji broj znakova i poinje sa bilo kojim slovom,dok rije mora zavravati na zadani nain.Brojei od kraja rijei peti znak mora biti slovo a,etvrti znak od kraja je broj od 1 do 3,tree je slovo z i zadnja dva znaka suproizvoljna,ali ih moe biti samo dva. primjer 2:
LIKE B?????*
Traimo rije koja poinje slovom B i sadri vie od pet znakova. primjer 3:
LIKE *o*[!k]
Traimo rije koja na poetku (prva zvjezdica* moe znaiti i nula znakova) ili bilo gdje u sredini rijei sadri slovo o dok na kraju rijei ne smije biti slovo k. 24
primjer 4:
Like "??????"
Traimo sve rijei koje imaju est znakova.Isti izraz u Input mask: ograniie upis na rijei koje imaju tono est znakova. NOT LIKE prikazuje retke koji ne odgovaraju zadanom uzorku.
SELECT radnikID FROM Statistika WHERE placa BETWEEN [donja vrijednost] AND [gornja vrijednost];
Dobiemo dijalog gdje emo upisati donju eljenu vrijednost,zatim e se pojaviti drugi dijalog za gornju vrijednost:
Traie od korisnika upis prvih slova prezimena slova za uvjet. U ovom primjeru smo umjesto unaprijed zadanog slova ostavili korisniku mogunost izbora slova tako da smo umjesto slova tekstu u uglatim zagradama pridruili znakom &(pridruivanje) znak *(asterisk) koji e se ispisati kad se od korisnika zatrai unos poetnog slova (za vee ograniavanje liste moe se unijeti i vie slova).
25
Primjer odreivanja Aliasa tj. natpisa(Caption) za imena tablica i upotrebe subquerija pomou tvrdnje IN ,te kako upotrijebiti navedeno na primjeru sa tri tablice: Prvo emo pogledati upit koji lista prezimena onih vlasnika koji su naruili predmet i to je predmet narudbe,listajui samo one narudbe koje mogu biti ispunjene (uvjet je da u tablici Antikviteti postoji narueni predmet) .Polju i tablici odreujemo alias pomou rijei AS.
SELECT Vl.prezime AS[PREZIME VLASNIKA],Nar.narucio AS[NARUENI PREDMET] FROM Naruceno AS Nar,Vlasnici AS Vl WHERE Nar.kupacID=Vl.vlasnikID AND Nar.narucio IN(SELECT predmet FROM Prodano);
Objanjenje upita: Umjesto orginalnog imena polja (koje ostaje nepromjenjeno) sad vidimo naslov polja kao alias "PREZIME VLASNIKA" te "NARUENI PREDMET" koji su navedeni u SELECT-u to ini tablicu preglednijom. Nar & Vl su skraeni naslovi (aliasi) za tablice , navode se u naredbi FROM . Kad su navedeni ,umjesto orginalnih imena tablica,kao prefikse za polja koristitmo aliase to olakava tipkanje dugih imena tablica i smanjuje mogunost greke. Podupit IN(SELECT predmet FROM Prodano) ograniava prikaz eljenih predmeta samo na one dostupne u tablici Prodano.U ovakvom podupitu moemo navesti samo jedno polje iz neke tablice. Kada u upitu koristimo vie tablica moramo navesti u izrazu WHERE vezu meu tablicama tj. polja pomou kojih e Acces kordinirati podatke kao Nar.vlasnikID=Vl.vlasnikID.Ako ne navedemo polja veze Access nee moi odrediti koji podatci iz jedne tablice odgovaraju podacima iz druge tablice pa e izlistati sve mogue kombinacije svih podataka iz obje tablice tzv. Kartezijev produkt
Najnia vrijednost u polju Najvia vrijednost u polju Broji zadane vrijednosti u polju,ne broji Null (prazne) elije.Count(*) vraa ukupan broj redaka Zbraja zadane vrijednosti u polju.
Sum(polje)
Text, Number, Date/Time,Currency,AutoNumber Text, Number, Date/Time,Currency,AutoNumber Text, Memo, Number,Date/Time, Currency,AutoNumber,Yes/No, OLE Object Number,Curren Number,Currency
Zovemo ih funkcije sumiranja zato jer sumiraju rezultate upita umjesto da prikazuju sve retke. Koristimo ih u naredbi SELECT u obliku:
F.. IZRAZI KOJI SE KORISTE NA FUNKCIJAMA U SELECT F IZRAZI KOJI SE KORISTE NA FUNKCIJAMA U SELECT NAREDBI: NAREDBI:
1.. GROUP BY 1 GROUP BY
Kada u SELECT-u gdje koristimo funkciju navedemo ime polja koje ne koristi funkciju dobiemo poruku o greci:
27
To se dogaa zato to TOTALI sumiraju vie redaka to je nemogue prikazati u tablici koja eli pridruiti svaki podatak iz polja TOTAL svakom podatku iz polja bonus jer ih nije jednak broj. Zbog toga se izrazu dodaje novi izraz GROUP BY koji e grupirati jednake podatke iz dodanog polja i njima pridruiti zadane TOTALE:
SELECT COUNT(*)AS [Count(Knjigovoa)],bonus FROM Statistika WHERE pozicija = 'Knjigovoa' GROUP BY bonus;
Svako polje koje nije funkcija ,a navedeno je u SELECTU mora se navesti i u GROUP BY odvojeno zarezom.
SELECT COUNT(*)AS [Count(Knjigovoa)],bonus,placa FROM Statistika WHERE pozicija = 'Knjigovoa' GROUP BY bonus,placa;
Svrha izraza GROUP BY je udruivanje redaka dobivenih nekom od funkcija sumiranja u grupu prema zadanom stupcu. Tablica Prodano ima polje cijena i svaki redak u tom polju ima vrijednost: elimo vidjeti cijenu najskupljeg predmeta koji je kupio neki vlasnik.Moramo rei SQLu da grupira kupovine svakog vlasnika,pa onda izdvoji najveu cijenu:
SELECT kupacID, MAX(cijena) AS [Najskuplji kupljen predmet] FROM Prodano GROUP BY kupacID;
Nije mogue postaviti uvjet na funkciju sumiranja izrazom WHERE zato to se WHERE izraz ne moe primjeniti na funkcije sumiranja.Stoga je SQLu dodan jo jedan izraz : HAVING
SELECT Prodano.kupacID, Prodano.cijena,Prodano.predmet, Max(Prodano.cijena) AS MaksimalnaCijena FROM Prodano , Naruceno WHERE Prodano.kupacID =Naruceno.kupacID and predmet='stolica' and Max(Prodano.cijena)<140 GROUP BY Prodano.kupacID, Prodano.cijena,Prodano.predmet;
Zato naredbi dodajemo HAVING izraz gdje navodimo uvjet za polje funkcije sumiranja: 28
SELECT Prodano.kupacID, Prodano.cijena,Prodano.predmet, Max(Prodano.cijena) AS MaksimalnaCijena FROM Prodano , Naruceno WHERE Prodano.kupacID =Naruceno.kupacID and predmet='stolica' GROUP BY Prodano.kupacID, Prodano.cijena,Prodano.predmet HAVING Max(Prodano.cijena)<140;
Sve uvjete iz izraza WHERE moemo navesti u izrazu HAVING ,tako moemo sasvim izbaciti izraz WHERE iz naredbe kada koristimo HAVING:
SELECT Prodano.kupacID, Prodano.cijena,Prodano.predmet, Max(Prodano.cijena) AS MaksimalnaCijena FROM Prodano , Naruceno GROUP BY Prodano.kupacID, Prodano.cijena,Prodano.predmet,Naruceno.kupacID HAVING Max(Prodano.cijena)<140 and predmet='stolica' and Prodano.kupacID =Naruceno.kupacID;
Moramo paziti da sva polja navedena u uvjetu navedemo u izrazu GROUP BY inae emo dobiti poruku ogreci. Kad elimo vidjeti cijenu svih predmeta koji je kupio neki vlasnik ,a cijena im je jednaka i vea od 1000 kuna upotrijebiemo HAVING izraz:
SELECT kupacID, MAX(cijena) AS [Cijena iznad 1000Kn] FROM Prodano GROUP BY kupacID HAVING MAX(cijena) >= 1000;
SELECT DISTINCT vlasnikID,prezime,ime FROM Prodano,Vlasnici WHERE prodavacID = vlasnikID ORDER BY prezime asc;
U ovom primjeru kako su svi prodali bar jedan predmet dobiemo listu svih Vlasnika abecednim redom. Ovaj oblik vezanja tablica pripada kategoriji inner joins.
29
H..JOIN-S ,,VEZANJE TABLICA SQL-OM U UPITU H JOIN-S VEZANJE TABLICA SQL-OM U UPITU
Dobro dizajnirana baza prikazuje podatke o jednom subjektu (entity) u jednoj tablici, dodatne informacije se dobijaju iz drugih tablica upitima preko vezanja(join) tablica. Primarni klju u tablici Vlasnici je vlasnikID.To znai da nema dva retka sa istim vlasnikID i onda kada dva vlasnika imaju isto ime i prezime.VlasnikID polje osigurava da se ne zamjene dva vlasnika tako to se stupac sa jedinstvenim vrijednostima koristi za identifikaciju i nalaenje vlasnika u tablici umjesto imena. Strani klju( foreign key) je stupac u drugoj tablici koji uva iste vrijednosti kao i primarni klju prve tablice, u to polje moemo upisati samo podatke koji postoje u primarnom kjuu prve tablice,ako tu mogunost posebno ne odobrimo. Takva jednakost je poznata kao referencijalni integritet (referential integrity).Razlika izmeu tih polja je u tome to se u stranom kljuu vrijednosti mogu ponavljati. U tablici Prodano polja kupacID i prodavacID su strani kljuevi,ona su primarni klju tablice Vlasnici. Svi ID podatci slue za identifikaciju kupca,prodavaca i vlasnika bez navodjenja njihovog punog imena.
Svrha kljueva (keys) je da se podatci u dvije ili vie tablica mogu povezati bez ponavljanja podataka iz svih tablica. Za pronalaenje imena onih koji su kupili stolice koristimo slijedei upit:
SELECT prezime,ime,cijena FROM Vlasnici,Prodano WHERE vlasnikID = kupacID AND predmet = 'stolica';
Vidi se se da su obje tablice u relaciji izlistane u FROM naredbi, u uvjetu uoavamo predmet = 'stolica' dio koji ograniava listu na one koji su kupili stolicu.Dalje, vidi se kako se ID stupci veu iz prve tablice na drugu upotrebom izraza WHERE vlasnikID = kupacID . To znai da e biti e izlistani samo redovi gdje se ID's poklapa kroz tablice,a kupljeni predmet je stolica (zbog AND) Zbog toga to uvjet u vezi upotrebljava znak jednakosti, ovaj join nazivamo equijoin Kad se ne bi postavio uvjet preko kojeg se veu podatci u obje tablice dva skupa podataka bi se spojila veui svaki podatak iz jedne tablice sa svakim iz druge i rezultat upita bi bio Kartezijev produkt! Primjer:
Ako u svim tablicama u upitu imamo razliita imena polja navoenje imena tablica nije potrebno,ali ako ima istih imena mora se navesti ime tablice da bi se odredilo iz koje tablice elimo polje. Kada navodimo ime tablice i ime polja izmeu imena tablice i polja se stavlja TOKA:
SELECT vlasnici.prezime, vlasnici.ime FROM vlasnici,prodano WHERE vlasnici.vlasnikID = prodano.kupacID AND predmet = 'stolica';
30
Umjesto izrazom WHERE vezu tonije moemo odrediti izrazima INNER ili OUTER JOIN.
SELECT DISTINCT vlasnikID, kupacID FROM Vlasnici INNER JOIN Prodano ON Vlasnici.vlasnikID = Prodano.kupacID;
Primjer 2:
SELECT Prodano.kupacID, Prodano.cijena,predmet FROM Prodano INNER JOIN Naruceno ON Prodano.kupacID = Naruceno.kupacID; b)) Sellff--Joiin b Se Jo n
Kada elimo pronai retke koji imaju duplikate u zadanom polju u istoj tablici moemo udruiti eljenu tablicu samu sa sobom kreirajui self-join. Self-join zahtijeva najmanje dvije tablice za postavljanje,ali umjesto da se doda druga, dodaje ista tablica kojoj se dodijeli alias (nadimak).Tako moemo usporediti polje orginalne sa istim poljem kopije iste tablice to nam dozvoljava usporeivanje redaka u tom polju. Naprimjer, ako koristite self-join za nalaenje duplih upisa vlasnika pod razliitom ifrom,usporeujemo jmbg polje u prvoj sa istim poljem u drugoj tablici Za primjer emo upisati dupli podatak za jednog vlasnika sa razliitim vlasnikID(7 i 3) u tablicu vlasnici:
SELECT Vlasnici.prezime,Vlasnici.VlasnikID FROM Vlasnici INNER JOIN Vlasnici AS Duplikati ON Vlasnici.jmbg = Duplikati.jmbg;
Kreiranje self-joina obino zahtijeva viestuke join uvjete. Primarni je onaj na kojem je utemeljen join ,a to je odreivanje polja koje emo usporediti.To nije dovoljno jer e nam gore navedeni primjer svaki redak uporediti sam sa sobom.Rezultat je ponavljanje svakog od redaka koji imaju istu vrijednost u vezanom stupcu toliko puta koliko se ukupno nalazi jednakih vrijednosti u vezanom stupcu tablice.U gornjem primjeru upit nalazi jedan redak koji ispunjava uvjet puta dva puta upisan isti jmbg i svaki podatak ispisuje dva puta. Za eliminiranje duplih redova sa istim primarnim kljuem moramo dodati drugi uvjet . Npr. drugi uvjet moe usporeivati primarni klju (vlasnikID) tablice operatorom (<>). 31
SELECT Vlasnici.prezime,Vlasnici.ime,Vlasnici.jmbg FROM Vlasnici INNER JOIN Vlasnici AS Duplikati ON Vlasnici.jmbg = Duplikati.jmbg WHERE Vlasnici.vlasnikID <> Duplikati.vlasnikID ORDER BY Vlasnici.prezime;
U select naredbu treba uvrstiti polje primarnog kljua ako elimo vidjeti razliku izmeu redaka koji sadre jednake vrijednosti
SELECT Vlasnici.VlasnikID,Vlasnici.prezime,Vlasnici.ime, Vlasnici.jmbg FROM Vlasnici INNER JOIN Vlasnici AS Duplikati ON Vlasnici.jmbg = Duplikati.jmbg WHERE Vlasnici.vlasnikID <> Duplikati.vlasnikID ORDER BY Vlasnici.prezime;
Ako navedemo SELECT DISTINCT i ne uvrstimo polje primarnog kljua dobiti emo samo jednu vrijednost:
SELECT DISTINCT Vlasnici.prezime, Vlasnici.ime,Vlasnici.jmbg FROM Vlasnici INNER JOIN Vlasnici AS Duplikati ON Vlasnici.jmbg = Duplikati.jmbg WHERE Vlasnici.vlasnikID <> Duplikati.vlasnikID ORDER BY Vlasnici.prezime;
Napomena: Isti rezultat moemo dobiti jednostavnim izrazom koji koristi podupit:
SELECT Vlasnici.vlasnikID,Vlasnici.prezime, Vlasnici.ime, Vlasnici.jmbg FROM Vlasnici WHERE Vlasnici.jmbg IN (SELECT jmbg FROM Vlasnici As Duplikati GROUP BY jmbg HAVING Count(*)>1) ORDER BY Vlasnici.prezime; c)) Outter jjoiin c Ou er o n
OUTER JOIN svaki odgovarajui redak iz dviju tablica kombinira u jedan redak u rezultatu upita.Jedna od tablica daje sve (ALL) podatke iz polja dok druga daje samo podatke koji postoje u polju prve tablice. Kad podatak iz tablice koja je definirana kao ALL (daje sve podatke) ne moe nai jednaku vrijednost u drugoj tablici, podatak se svejedno pojavljuje u rezultatu,ali polje gdje se treba pojaviti odgovarajui podatak ostaje prazno. Postoje tri varijacije outer joina : (lijevi) left outer join i (desni) right outer join (postoje u Accessovim bazama i projektima) (potpuni) full outer join (postoji samo u Access projektima) Za primjer smo dodali novi vlasnikID(7) u tablicu Vlasnici:
SELECT DISTINCT Vlasnici.vlasnikID,Prodano.kupacID FROM Vlasnici LEFT OUTER JOIN Prodano ON Vlasnici.vlasnikID = Prodano.kupacID;
32
Left outer join e pokazati vlasnikID 6 i 7 iako takvi podatci ne postoji u tablici Prodano! Slijedea tvrdnja e vratiti samo retke kojh nema u tablici Antikviteti:
SELECT DISTINCT Vlasnici.vlasnikID,Prodano.kupacID FROM Vlasnici LEFT OUTER JOIN Prodano ON Vlasnici.vlasnikID = Prodano.kupacID WHERE (kupacID IS NULL);
Outer join e pokazati podatak koji postoji u prvoj dok u drugoj tablici ima vrijednost NULL i obratno.Ovaj koncept je koristan kad elimo vidjeti vrijednosti polja koje ne postoje u obje tablice.
DAY(Datum) vraa vrijednost od 1 do 31 ovisno o danu u mjesecu. Primjer: Day([ImePolja])>13 vratie sve datume iznad 13. u nekom mjesecu Day([Datum])= 13 vratie samo datume 13. u nekom mjesecu Day([Datum])=[upii datum(dan):] vratie dan koji upiemo MONTH(Datum) vraa vrijednost od 1 do 12 Primjer: Month([Datum])=5 vratie sve datume iz petog mjeseca Month([Datum])>6 vratie sve datume iznad estog mjeseca (drugo polugodite) Day([Datum])=13 And Month([Datum])=5 vratie sve datume 13.05. bilo koje godine YEAR(Datum) vraa vrijednost od 1000 do 9999 ovisno o godini Year([Datum])=2002 vratie sve datume iz 2002.godine
Ovaj primjer koristi IIf funkciju za prikaz odreene rijei obzirom na uvjet:
SELECT cijena, IIF([cijena] > 1000, "Large", "Small") as kolicina FROM Antikviteti;
Kada polje ne sadri upisanu vrijednost ono sadri Null value ili Zero-length string.Postoje li u nekom polju Null vrijednosti one mogu utjecati na rezultat upita.Moe se dogoditi da neki zapisi ne budu prikazani u rezultatu. Naprimjer kada koristimo logiki oprerator LIKE vratie se samo pune vrijednosti,ali ne i Null values. Za traenje praznih brojanih (Null values) ili tekst (zero-length strings) vrijednosti u polju koristimo IS Null kriterij. Primjer traenja Null values:
Kad elite izraunati neki od totala(sum, avg, count itd.) podaci sa Null vrijednostima nee biti ukljueni u raun. Ako koristite aritmetiki operator (kao +, -, *, /) u izrazu (kao [cijena]+[porez]) , a jedno od polja sadri Null value rezultat e biti Null value.
Ako koristite Count za brojanje vrijednosti u polju dobiete broj svih ne-praznih vrijednosti ,prazne se nee brojati.
Kada imamo polja koja sadre Null values, moemo napisati izraz koji pretvara Null values u nulu, da bi polja mogli koristiti u funkcijama pridruivanja,ili da bi sprijeili da rezultat izraza bude Null value. U tom sluaju koristimo Nz funkciju za pretvaranje Null values u nulu:
35
3.. Kombiiniiranjje Tekstt polljja kojja iimajju zero--llengtth sttriing:: 3 Komb n ran e Teks po a ko a ma u zero eng h s r ng
Kod kombiniranja Tekst polja od kojih je jedno ili oba prazno koristi & operator umjesto + operator za udruivanje vrijednosti.Operator & e kombinirati polja i onda kad su prazna dok e + operator vratiti nulu ako je jedno od polja prazno. Primjer:
SELECT ime,prezime, [prezime] & " " & [ime] as FROM Radnici;
PunoIme
PunoIme
Kada sortiramo uzlazno(ascending) podatak koji ima Null value e biti prvi na listi ,zatim e se listati zero-length strings pa tek onda pune vrijednosti.
CREATE TABLE Primjer (osobaID INTEGER NOT NULL, prezime CHAR(40) NOT NULL);
Stvorili smo novu tablicu:
Naredba CREATE kreira novu tablicu ,daje ime tablici i odreuje tip svakog stupca u novoj tablici. Ova naredba koristi generike tipove podatka (generic data types) Primjer kreiranja tablice sa kojoj emo odrediti Primarni klju:
CREATE TABLE Primjer (osobaID INTEGER PRIMARY KEY, prezime CHAR(40) NOT NULL);
Napomena: NOT NULL znai da polje mora imati upisanu vrijednost u svakom polju,ne moe biti prazno. NULL znai da polje ne mora imati upisanu vrijednost u svakom polju,moe biti prazno.
36
ei generiki tipovi podataka su: Char(x) , String(x),Text(x) Longtext(x), Memo(x) Integer Long Single Double Currency Autoincrement, Counter Date Time DateTime Logical , YESNO, LOGICAL1 Binary ,VarBinary maksimalni broj znakova se odreuje (x) (Size) osobinom,ako je Size = 0 maksimalni broj znakova je 255 maksimalni broj znakova je 64 000 cijeli broj pozitivan ili negativan 32768 do +32767 cijeli broj pozitivan ili negativan 2147483648 do +2147483647 decimalni broj pozitivan ili negativan vei decimalni broj pozitivan ili negativan valuta 8 bytova broja datum vrijeme datum/vrijeme ima samo dvije vrijednosti ( 1) za true 0 za false pohranjuje binarne podatke maksimalni broj znakova je 255 pohranjuje objekte kreirane u drugim aplikacijama koji mogu biti povezani(linked) ili nepovezani (embedded) u Microsoft Jet databaseNpr. Moete koristiti OLE Object polje za pohranu kolekcije slika.
LongBinary, OLEobject
2.. CREATE INDEX kreiiranjje iindeksa 2 CREATE INDEX kre ran e ndeksa
Indeksi omoguavaju DBMS-u bri pristup eljenim podatcima.Indeksiranjem polja sistem stvara interni registar podataka (internal data structure),koji ubrzava proces selektiranja eljenih redaka kada koristimo indeksirana polja. Indeks govori sistemu gdje se tono nalazi odreeni redak u tablici preko indksiranog polja.Slino kao kazalo u knjizi koje govori na kojoj stranici moemo nai eljeni podatak Stvaranje indeksa za polje vlasnikID u tablici Vlasnici:
CREATE VIEW Prodavac_VIEW SELECT prodavacID FROM Prodano,Ant_VIEW WHERE predmet = narucio;
View tablice se mogu koristiti za ograniavanje pristupa podatcima u bazi.
4.. DROP briisanjje ttablliice,,procedure,,poglleda((viiew)),,iindeksa 4 DROP br san e ab ce procedure pog eda v ew ndeksa
Brie postojeu tablicu,proceduru,view iz baze ili brie postojei indeks u tablici. Brisanje indeksa naredbom DROP:
DROP
TABLE ImeTablice;
ALTER TABLE Primjer ADD placa CURRENCY NULL, koeficjent SINGLE NULL;
Tablica e dobiti dva nova polja:
VALUES (21,'Majeti',7000.00,2.7);
Ova tvrdnja e umetnuti podatke u tablicu,kao novi redak polje za poljem u predefiniranom redoslijedu:
38
2.. DELETE briisanjje podattaka iiz ttablliice 2 DELETE br san e poda aka z ab ce
Obriimo zadani redak iz tablice Primjer
Da bi se izbor eljenih redaka u tablici vie ograniio moramo navesti vie WHERE uvjeta koristei AND operator.
UPDATE NaruceniPredmeti SET cijena = 250.00 WHERE zeljeni_predmet = 'stolica' AND kupacID = 21
Za auriranje podataka vie stupaca u nekom retku moramo postaviti vie jednako je izjava u naredbi SET , dodatni stupci se navode tako da ih odvojimo zarezom:
UPDATE NaruceniPredmeti SET cijena = 250.00 ,kolicina = 7 WHERE zeljeni_predmet = 'stolica' AND kupacID = 21;
39
Kada elimo radnika koji vie nije na spisku,ne briui njegov ID zamijeniti novim:
UPDATE radnici SET prezime = 'Serti',ime = 'Stipe' WHERE prezime = 'Majeti' and ime = 'Katarina';
Sloenije akcije,zahtjevaju sloenije SQL izjave, iako se grade istim jednostavnim izrazima. Pogledajmo tablicu u bazu Poduzee koja koristi polje Yes/No:
UPDATE Statistika SET placa = placa + 2000 WHERE radnikID IN (SELECT radnikID FROM povisica WHERE povisica = yes);
SELECT kupacID,cijena FROM Prodano WHERE cijena > (SELECT AVG(cijena)+100 FROM Prodano);
40
Podupit kalkulira prosjenu cijenu plus 100, koristei dobiveni rezultat lista kupacID za svaki predmet skuplji od tog iznosa.Izlistajmo prezimena samo onih vlasnika iz tablice Vlasnici koji su kupili neki predmet:
SELECT prezime FROM Vlasnici WHERE vlasnikID IN (SELECT DISTINCT kupacID FROM Prodano);
Prikazuje samo ona prezimena koja se pojavljuju u listi IN podupita (tzv. candidate list). Napomena: u nekim DBMS, umjesto IN moe se koristiti jednako je (=) ,ali zbog jasnoe izraza tj. zato to se lista vraa iz podupita IN je bolji izbor.Pogledajmo primjer podupita u UPDATE naredbi: Doznali smo da vlasnik koji je kupio policu ima krivo upisano ime u bazi ,ime mora biti Pero.
UPDATE Vlasnici SET ime = 'Pero' WHERE vlasnikID = (SELECT kupacID FROM Prodano WHERE predmet = 'polica');
Podupit prvo pronalazi kupacID svih osoba koje su kupile policu zatim im postavlja ime Pero. Da bi bio precizniji upitu treba dati vie uvjeta,npr:
UPDATE Vlasnici SET ime = 'Pero' WHERE vlasnikID = (SELECT kupacID FROM Antikviteti WHERE predmet = 'polica') AND prezime ='Jusufovi';
Kod izraza "WHERE ImePolja = (SELECT...);"pravilo je da SELECT naredba u podupitu mora imati navedeno samo jedno polje, koje odgovara ImenuPolja ispred operatora u WHERE naredbi te oba polja moraju biti istog tipa (brojani,tekst,datum itd.).
N.. NEKE NAREDBE SQL-A KOJE SE NE KORISTE ESTO N NEKE NAREDBE SQL-A KOJE SE NE KORISTE ESTO
1.. EXISTS & ALL 1 EXISTS & ALL
EXISTS je naredba koja koristi podupit kao uvjet.Podupit je istinit (True) ako nae bar jedan redak koji odgovara uvjetu i neistinit (False) ako ne nae nijedan redak. Slijedei primjer vratie listu svih Vlasnika bez obzira jesu li ba oni kupili stolicu,samo ako bilo kojem polju ili retku tablice Prodano nae rije stolica:
ALL je jo jedna rijetko koritena naredba, ALL upiti se obino mogu postaviti drukijim, moda jednostavnijim metodama; pogledajmo primjer upita:
SELECT kupacID,predmet FROM Prodano WHERE cijena >= ALL (SELECT cijena FROM Prodano);
41
Ova izjava e prikazati jedan predmet koji ima najviu cijenu ili vie njih ako je najvia cijena jednaka za vie predmeta, i njegovog kupca.Isti rezultat dobiemo naredbom:
SELECT kupacID,predmet FROM Prodano WHERE cijena = (SELECT MAX(cijena) FROM Prodano);
UNION emo upotrijebiti kada ete elimo vidjeti nekoliko upita zajedno,kombinirajui njihov izlazni rezultat.Radi jasnoe primjera dodaemo vlasnikID 70 u tablicu Narueno i KupacID 80 u tablicu Prodano. Da bi spojili izlazni rezultat slijedea dva upita i prikazali ID svih kupaca plus svih onih koji su naruili predmet napisat emo slijedeu SQL izjavu:
U naredbi UNION polja navedena SELECT-om moraju biti istog tipa,polja kupacID su isti tip podatka zvan integer.Pogledajmo primjer upita Outer join:
SELECT Prodano.kupacID FROM Prodano, Naruceno WHERE Prodano.kupacID = Naruceno.kupacID UNION SELECT Prodano.kupacID FROM Prodano WHERE Prodano.kupacID NOT IN (SELECT Naruceno.kupacID FROM Naruceno);
Prikazae sve vrijednosti iz tablice Prodano i samo jednake iz tablice Naruceno. Dok e slijedei upit prikazati sve vrijednosti iz tablice Naruceno. i samo jednake iz tablice Prodano:
SELECT Naruceno.kupacID FROM Prodano, Naruceno WHERE Prodano.kupacID = Naruceno.kupacID UNION SELECT Naruceno.kupacID FROM Naruceno WHERE Naruceno.kupacID NOT IN (SELECT Prodano.kupacID FROM Prodano);
42
Rastavimo ovaj upit na dijelove : Prvi dio upita udruuje listu kupaca Naruceno sa listom kupaca Prodano:
SELECT Naruceno.kupacID FROM Naruceno WHERE Naruceno.kupacID NOT IN (SELECT Prodano.kupacID FROM Prodano);
UNIQUE
CHECK
NULL ili NOT NULL odreuje da li polje moe imati prazne elije ili ne smije biti prazno
43
NAREDBA
SINTAKSA
OPIS
ALTER TABLE
CREATE TABLE
ALTER TABLE ImeTablice ADD ili DROP ili MODIFY (ImePolja TIP POLJA(X) pa ATRIBUTI POLJA, ImePolja TIP POLJA(X) pa ATRIBUTI POLJA itd. CREATE TABLE ImeTablice (ImePolja TIP POLJA veliina polja (X) pa ATRIBUTI POLJA: PRIMARY KEY ili UNIQUE ili CHECK operator pa vrijednost ili DEFAULT operator pa vrijednost ili FOREIGN KEY REFERENCES ImeTablice (ImePolja) pa NULL ili NOT NULL, ImePolja TIP POLJA(X) ATRIBUTI POLJA ,itd..) CREATE VIEW ImeTablice AS SELECT upit; DELETE FROM ImeTablice WHERE uvjet;
dodavanje ili brisanje postojeeg stupca u tablici u jednoj izjavi moe se navesti samo jedna opcija ili ADD ili DROP
stvara novu tablicu , navedeno vrijedi i za ALTER TABLE, veliina polja se koristi samo kod odreenih tipova podataka
INSERT
INSERT INTO ImeTablice (ImePolja 1, ImePolja 2, ImePolja 3...) VALUES ('vrijednost tipa ubacuje retke u tablicu tekst za polje1', #vrijednost tipa datum za polje2#,vrijednost tipa broj za polje3); SELECT DISTINCT ili ALL Lista polja, funkcija, konstanti, itd. FROM Lista tablica ili pogleda(u Accessu Qurey) WHERE uvjeti GROUP BY polje po kojem se vri grupiranje HAVING uvjet izdvaja eljena polja iz tablice , naredbe se upisuju ORDER BY polja po kojima se navedenim redoslijedom. vri sortiranje ASC ili DESC ili UPDATE ImeTablice SET ImePolja = NovaVrijednost WHERE uvjet(ako se izostavi uvjet sva polja se auriraju prema SET naredbi)
SELECT
44
Kratice na tipkovnici u Accessu: Akcija Kopiraj Pokai database window Find and replace Ubaci prijelaz u novi redak kod tekst polja Ubaci trenutno vrijeme Ubaci podatak iz prethodnog retka istog polja Ubaci dananji datum Otvori novu bazu Otvori postojeu bazu Zalijepi Print Sauvaj Prebacivanje iz VB editora u aktivni prozor baze i obratno Poniti zadnje promjene Poniti promjene u trenutnom polju Poniti promjene u trenutnom retku Kratice za specijalne znakove: Kratica CTRL + C F11 CTRL + F CTRL + ENTER CTRL + : CTRL + ' CTRL + ; CTRL + N CTRL + O CTRL + V CTRL + P CTRL + S ALT + F11 CTRL + Z ESC ESC ESC (dvaput ESC)
Forma je komponenta baze podataka ija je funkcija interakcija sa korisnikom. Da bi podatke iz tablica(upita) pregledavali ili aurirali i odjednom mogli pregledati povezane podatke iz vie tablica na pregledniji nain moramo stvoriti forme.Korisnik ne vidi i nema pristup bazi podataka nego komunicira bazom preko forme.Forma je suelje odnosno veza izmeu korisnika i baze podataka.Tako se smanjuje mogunost greke u manipulaciji bazom. Forme koristimo za: prikaz podataka iz jedne ili vie tablica ili izvjetaja na jednostavniji nain ,u grafikom obliku,prikazane podatke moemo sortirati i filtrirati po potrebi manipulaciju podacima iz tabele ili upita (unos, brisanje i promjene podataka) stvaranje switchboarda tj. forme iz koje se otvaraju druge forme, pokreu upiti i tablice stvaranje dijaloga (upitnika) za primanje korisnikog unosa stvaranje proraunskih polja ispisivanje forme na pisau kreiranje aplikacije Forma moe sadravati podatke iz vie tabela ili upita, mogua je kombinacija forma-podforma (istovremeni prikaz dviju formi), a mogue je imati vie formi unutar jedne forme. Forma moe sadravati i tzv. OLE objekt (objekt iz drugih Windows aplikacija s kojima Access moe razmjenjivati podatke, npr. slika iz CorelDraw-a). Mogue je vriti i razna izraunavanja unutar forme. Osnovne vrste Formi Bound (vezane)forme koje se temelje na nekoj tablici,upitu itd. Unbound (nevezane) forme 45
Sve forme Bound i Unbound mogu biti modal ili nemodal. Modal forma se razlikuje od nemodal po tome to ne doputa nikakvu akciju u aplikaciji dok se ne uini akcija (klik na OK,Yes i sl.) na aktivnoj modal formi.Svaki pokuaj prebacivanja u drugi prozor bie bezuspjean dok je otvorena modal forma.Nemodal forma doputa koritenje aplikacije dok je otvorena. Forme se dijele i po nainu prikaza podataka na: Jednostavne forme (Single) koje prikazuju odjednom samo jedan zapis Kontinuirane forme (Continuous) prikazuju vie zapisa odjednom Forma u obliku tablice (Datasheet) izgleda i ponaa se kao tablica koristi se uglavnom za podforme Podforme (Subforms) koje se ugnjeuju na glavnu formu da bi na jednoj formi mogli raditi sa vie tablica,broj podformi na glavnoj formi nije ogranien. Jedna forma se moe temeljiti na samo jednom upitu ili tablici. Da bi mogli kombinirati sadraje vie tablica u jednoj formi, na njoj moramo napraviti podforme. Za prikaz vie zapisa istovremeno potrebno je da tablice budu u relacijskoj vezi.
Stvaramo formu od praznog prozora forme, sve kontrole na radnu povrinu moramo dodavati runo.Kao pomo u izradi kontrola sa alatne trake (ispod izbornika) moemo otvoriti tri prozora: 1.Properties (svojstva objekta) 2.Prikaz polja tablice ili upita na kom se temelji forma
Prikazana polja moemo odvui miem na formu gdje e se automatski kreirati vezane tekst kontrole sa naslovima. 3.Toolbox (prikaz dostupnih kontrola)
2.. Sttvaranjje fformii pomou Form Wiizard--a:: 2 S varan e orm pomou Form W zard a
Form wizard moe izgraditi osnovne tipove formi ukljuujui i subforme . Moemo odmah izabrati tablicu za koju elimo izgraditi formu ili sa OK prei na idui korak. Iz kuice Tables/Query odabiremo tablicu ili upit iz kojih emo birati polja. Moemo izabrati polja iz vie tablica i upita samo treba paziti da se polja ne ponavljaju (npr. prikazivati ifru kupca iz tablice kupaca i iz tablice detaljnih narudbi, korist emo polje samo iz jedne tablice). Polja odabiremo tako da dva puta kliknemo na ime polja iz liste polja iz odreene tablice ili stisnemo gumb za prebacivanje. Za sljedei korak stisnemo gumb Next. Ukoliko smo odabrali polja iz vie tablica u ovom koraku moemo birati po kojoj tablici emo gledati podatke u formi tj. iz koje tablice e se polja nalaziti u glavnoj fromi. elimo li pregledavati podatke tako da vidimo koje su sve narudbe, proizvodi i kupci vezani uz jednog od zaposlenika tu odabiremo by Radnici (Radnici su ime tablice po kojoj gledamo podatke). U donjem desnom kutu odabiremo nain prikazivanja vie formi : Kao Suboforms podforme su forme unutar glavne forme. Kao Linked forms to znai da se na glavnoj formi kreira kontrola koja nakon klika na nju otvara novi prozor tj. forma u kojoj su prikazani podaci povezani za trenutani rekord u glavnoj formi. U slijedeem koraku odabiremo grafiki izgled forme, moemo izabrati jedan od ponuenih stilova. To kasnije moemo sami promijeniti ako nam se ne svia. AUTOFORMAT slui za brzo oblikovanje i ureivanje forme pomou unaprijed pripremljenih formata.Moemo izabrati da se na odreeni nain formatiraju samo elementi : Font,Color,Border ili cijela forma. 46
U zadnjem koraku dajemo imena svakoj formi posebno i odabiremo elimo li pokrenuti formu ili je elimo jo malo dotjerati.
Najjednostavniji nain kreiranje forme je odabirom autoform opcije. Forma se na taj nain kreira iz prethodno izabrane tabele ili upita.Takva e forma sadravati sva polja koje sadrava i objekt iz kojeg je kreirana.Kao pomo u kreiranju formi Access nudi na izbor tri razliite vrste formi i to: Auto form : Columnar jednostupana automatski stvara formu, svaki podatak prikazuje u jednom stupcu Auto form : Tabular tabelarna automatski stvara formu, svaki podatak prikazuje u jednom retku Auto form : Datasheet automatski stvara formu u obliku tablice
Kao izvor podataka (Record Source) za formu moemo napisati SQL naredbu,odrediti tabelu ili upit. Svojstvom Default Editing je mogue izabrati nain obrade podataka u forme unos, izmjenu ili samo itanje podataka Svojstvo Default view odreuje broja vidljivih zapisa na zaslonu() ,mogue je odabrati: jednostupanu formu ( prikazuje podatke jednog zapisa ) neprekidnu formu ( prikazuje podatke vie zapisa ) tabelarnu formu ( prikazuje podatke u obliku tabele ) izbornik koji e se pojaviti aktiviranjem forme ( Menu Bar ) Postoje jo brojna svojstva kao inicijalna (Default) vrijednost, naslov forme (Caption),oblik pisma u kojem e se podaci ispisivati na monitoru ili pisau, podeavanje boja ili zakljuavanje zapisa ako se radi u mrenom okruenju i dr. Ako se na naprijed navedene naine jo uvijek ne mogu postii eljeni rezultati mogu se koristiti izrazi. Izraz nam moe posluiti za bilo kakvo izraunavanje, postavljanje broja stranice, datuma itd. Svaki se izraz sastoji od polja tebele ili upita iz kojeg je forma kreirana i neke funkcije (ve ugraene funkcije ili korisniki definirane funkcije u VBA) i pohranjuje se kao dio baze podataka. Budui da je forma podijeljena na vie dijelova svaki od tih dijelova ima svoje karakteristike preko kojih je njima mogue upravljati. Pri tome detaljni red, zaglavlje i podnoje forme imaju iste karakteristike dok zaglavlje i podnoje stranice imaju podskup karakteristika prije navedenih dijelova forme. 47
Forma je podijeljena na dijelove(sekcije) koje je mogue kontrolirati npr. zaglavlje stranice (forma moe biti na vie stranica) zaglavlje forme detaljni red (u njemu su prikazani podaci iz tabele ili upita) podnoje forme podnoje stranice Svaki dio forme ima svojstva koja se mogu podeavati.
48
1.. Opiis osnovniih konttrolla u Toollbox iizborniiku:: 1 Op s osnovn h kon ro a u Too box zborn ku
Select objects Odabir,premjetanje i promjena veliine objekata,inicijalno je ukljuen Control wizard arobnjak za pomo kod kreiranja kontrola,inicijalno je ukljuen Labels Opisni tekst, nevezana i potpuno neovisna kontrola, koristi se za naslove i imena ostalih kontrola Tekst box Okvir za upisivanje i ispisivanje podataka na formi. Uglavnom je vezan za polje u tablici ili upitu, ali moe biti i nevezan te tako sluiti kao mjesto u koje upisujemo sume, prosjeke ili nekakve druge vrijednosti. Veemo ih tako da u Properties Data Control source upiemo ime polja sa kojim emo ga vezati (iz njega e vaditi podatke za prikaz i u njega e se spremati podaci koje unesemo u njega).Da bi text box mogli vezati uz neko polje,prvo moramo vezati formu uz eljenu tablicu (upit).Umjesto da ga samo poveemo sa nekim poljem moemo izgraditi izraz za izraunavanje vrijednosti pomou Expression Buildera. Primjer kreiranja kalkulirane kontrole na formi pomou DateAdd funkcije (u ovom sluaju 30 dana nakon zadanog datuma). Recimo da je forma bazirana na tablici koja ima polje Datum. Kreiramo textbox unosei slijedei izraz u ControlSource property = DateAdd("d", 30, [Datum]) Okvir,Option group Stvaranje grupe opcija ,grupe komandi itd. Togle button ,Option button , Check box Samopostojee kontrole obino vezane za Yes/No polje u tablici. Moemo ih koristiti kao nevezane kontrole za primanje unosa korisnika Combo box Koristi se zbog praktinosti. Sa desne strane ima strelicu za otvaranje liste iz koje odabiremo neku vrijednost.U Combo box moemo i upisati neku vrijednost ako nije ponuena. Veemo ih tako da pod Properties, Data, Row Source Type i Row Source svojstva poveemo kontrolu sa tablicom (upitom) i u Control source odaberemo polje iz kog elimo povui vrijednosti.Moemo sami upisati listu vrijednosti ako pod Row Source Type odaberemo Value list i pod Row Source upiemo elemente liste odvajajui ih znakom ; (npr. 1;2;3). Dalje moemo podesiti svojstva: Bound column redni broj vezanog stupca u tablici iz koje elimo podatke Column count broj stupaca koji elimo vidjeti Column heads ako elimo vidjeti imena stupaca u combo boxu Column widhts eljena irina stupaca u jedinici mjere, razdvaja se znakom toka-zarez; List Rows koliko redova elimo vidjeti odjednom List Width ukupna irina liste Limit to list ograniava upisivanje na samo one podatke koji ve postoje u listi itd. 49
List box Kontrola sa istim svojstvima kao i Combo box sa razlikom to se iz nje mogu samo izabirati podaci a ne i upisivati. Command button Kontrola koja slui za pokretanje akcija tj. operacija. Za uspjeno postavljanje komande dobro je imati ukljuen Control wizard koji e nam ponuditi izbor iz nekoliko predefiniranih Command buttona. Nakon to kreiramo komandu na formi automatski se ukljui arobnjak. Stvaranje command button-a: Odaberemo Command button i nacrtamo komandu na povrini forme. Nakon toga se automatski otvori arobnjak za izradu komandi. U njemu imamo izbor vie kategorija tj. podruja rada komande (rad nad podatcima , formama itd.) te mogue akcije nad odreenom kategorijom (otvori formu, zatvori formu, pokreni upit itd.). U sljedeem koraku biramo izgled same komande hoe li imati sliku na sebi ili tekst. I na kraju joj dajemo ime po kojem e je baza raspoznavati(uobiajeno je dati ime po akciji koju vri) Image Umee sliku koja je stacionarna , umetnutu sliku vie ne moemo editirati(moemo ju samo premjetati) Unbound object frame Umetanje razliitih OLE objekata (slika,zvuk,tekst dokument itd.) u formu.Nakon kreiranja na formi automatski se javlja prozor koji nas pita kakav tip objekta elimo.Tako stvoren objekt se ne mijenja nego ostaje isti za svaki rekord jer se ne nalazi se u tablici. Bound object frame Postavlja okvir za OLE objekt koji se nalazi u tablici, mijenja se za svaki record. Page Break Postavlja prijelom stranice na formu Tab Control Kreiranje kartica na formi Subform Postavlja podformu na formu,kada na formi elimo prikazati ili aurirati podatke iz vie tablica. Line ,Rectangle Crtanje linija i pravokutnika More Controls Odabir raznih ActiveX kontrola
Kada zavrimo sa kreiranjem kontrola moramo provjeriti TAB poredak kontrola,tako da bi kontrole prebacivale fokus sa jedne na drugu loginim redom pritiskom na tipku TAB. Prozor za ureivanje TAB poretka pozivamo iz izbornika View Tab Order .
U dijelu prozora Custom Order nalaze se sve kontrole na maski koje mogu dobiti fokus,sloiemo ih eljenim redom Kada elimo potpuno izbjei aktiviranje neke kontrole moramo svojstvo TabStop te kontrole postaviti na No 50
SWITCHBOARD se sastoji od dvije komponente: Prva je tablica u kojoj se nalaze podaci potrebni za organizaciju svih switchboarda koji su kreirani.Podaci govore Accessu kako e organizirati koji switchboard, tj. poloaj komandi unutar switchboarda ,tekstove komandi ,i slino.Iako se moe mijenjati sadraj te tablice najbolje je ostaviti sve kako je pripremljeno. Drugo je forma koju koristi switchboard ,dio koji vidimo i koristimo.Izgled ove forme moete mijenjati.
Baza mora biti kreirana i otvorena.U alatnoj traci pod Tools - Database utilities izaberemo Switchboard manager. Nakon odabira e se pojaviti prozor koji pita elimo li kreirati gore spomenutu tablicu i formu, ukoliko ve ne postoji. Odaberemo Yes.
Sada se nalazimo u dijalogu u kojem kreiramo switchboarde. Moemo imati vie od jednog switchboarda.Ukoliko imamo vie od jednog moemo "skakati" izmeu njih meusobnim linkanjem. Ime switchboarda kraj kojeg se nalazi (Default) je glavni switchboard tj. onaj koji se otvara pokretanjem switchboarda.Inicijalni (Default) switchboard se odreuje tako da oznaimo jedan od kreiranih switchboarda i kliknemo na default gumb. Odabiranjem Edit gumba otvara se dialog za ureivanje odabranog switchboarda i to je slijedei korak.
U ovom dijalogu imenujemo switchboard. Ime upisujete pod Switchboard name: Tu se takoer nalaze popisani elementi switchboarda (ukoliko koji postoji). Odabirom jednog od njih te klikom na Edit gumb moemo ga prepraviti. Ukoliko ne postoji niti jedan element, ili elimo kreirati novi element odabiremo New gumb. To pokree novi dijalog. 51
U ovom dijalogu ureujemo elemente switchboarda tj. stvaramo naredbe switchboarda.U Text polje upisujemo tekst koji predstavlja naredbu koju emo kreirati.Moemo odabrati jednu od osam postojeih komandi:
Go to switchboard (linkanje) - otvara jedan od postojeih switchboarda, dolazi sa drop down izbornikom u kojem biramo jedan od postojeih switchboarda Open form in Add mode - otvara odabranu formu na taj nain da ne prikazuje postojee podatke ve eka unos novih podataka ,dolazi sa drop down izbornikom sa postojeim formama.Treba paziti da se ne odabere switchboard forma jer za to postoji posebna komanda. Open form in Edit mode - klasino otvaranje formi. Moemo unositi i ispisivati podatke,takoer dolazi sa drop down izbornikom postojeih formi. Open report - otvara izvjetaj, dolazi sa drop down izbornikom postojeih izvjetaja Design aplication - otvara dialog za ureivanje switchboarda. (2. Korak) Exit aplication - zatvara bazu podataka Run macro - pokree odabrani Makro-program Run code - pokree odabranu funkciju
Ako elimo da nam se pri otvaranju baze podataka umjesto standardnog prozora otvori switchboard koji smo upravo kreirali to radimo na slijedei nain: U alatnoj traci odberemo Tools - start up i pojavi se ovaj prozor:
U njemu pod Display Form/Page odaberete Switchboard (ili bilo koju od formi) on e se otvoriti pri pokretanju baze podataka.
52
Grupiranje se izvodi po odreenom polju,a aktivira se prikazom Headera i Footera grupe.Da bi runo izvrili grupiranje moramo otvoriti prozor za sortiranje i grupiranje koji moemo pozvati iz pop-up izbornika koji se pojavi kada desnim gumbom mia kliknemo na Header ili Footer grupe,ili iz izbornika odaberemo View Sorting and Grouping:
Da bi stvorili izraunato polje moramo unutar Detail sekcije stvoriti tekst box i u njegov Control Source stvoriti pomou Expression buildera ili runo upisati izraz koji elimo.Ako na kraju izvjetaja na Report Footer ubacimo neku funkciju,ona se odnosi na sve sekcije u izvjetaju,kada se funkcija ubaci u podnoje neke grupe tada se odnosi samo na tu grupu.Funkcije sumiranja nee raditi ako ih ubacimo u Page Footer.
c)) Najjee koriittenii iizrazii ii ffunkciijje kojje moemo koriisttiittii u Desiign viiew:: c Na ee kor en zraz unkc e ko e moemo kor s u Des gn v ew
((1)) 1 Kombiiniirranjje vrriijjednossttii Komb n an e v edno Unutar jednog okvira moemo prikazati i vie polja kombiniranih sa proizvoljnim tekstom. Kada u Control Source svojstvo upiemo :
Unutar svakog okvira za unos teksta moemo slobodno koristiti bilo koji SQL izraz ,matematike operacije itd.
="Direktor " & [ime] & " " & [prezime] & " , " & [adresa] & " , " & [grad]
dobiemo sve podatke u jednom tekst polju:
((2)) 2
= = = =
Date() vraa dananji datum Now() vraa trenutno vrijeme i datum [Page] ispisuje broj stranice [Pages] ispisuje ukupni broj stranica
53
Kada hoemo u tekst polju ispisati broj trenutne stranice od ukupnog broja u Control Source moemo pisati:
=[Page] & ". stranica od ukupno " & [Pages] & " stranica."
((3)) 3 Mattemattiike operraciijje Ma ema ke ope ac e Na poljima moemo izvoditi sve klasine matematike operacije ,ako su isti tip podatka. Kada elimo polju cijena dodati iznos poreza od 22% u Control Source emo pisati:
=[cijena]+([cijena]*0,22)
((4)) 4 IIsspiiss diijjella polljja p d e a po a Kada elimo ispisati inicijale imena i puno prezime piemo:
Primjeri i objanjenja Left,Right i Mid funkcija: =Left(Majeti;2) vraa prva dva slova sa lijeva na desno Ma =Right(Majeti;2) vraa prva dva slova sa desna na lijevo i =Mid(Majeti;2;4) vraa etiri slova poinjui od drugog slova po redu ajet ((5)) 5 IIzzrraunavanjje zzbrrojja pomou agrregattniih ffunkciijja aunavan e b o a pomou ag ega n h u nkc a Ovisno o tome to elimo zbrojiti ili prebrojiti izraz emo ubaciti u podnije grupe,stranice ili izvjetaja. =Sum([kolicina]) ili =Count([kolicina]) itd. ((6)) 6 Korriittenjje IIIIff ffunkciijje Ko en e u n kc e Funkcija se koristi u formatu: IIf(ispitivanje polja uvjetom;vrijednost ako je rezultat istinit;vrijednost ako rezultat nije istinit) to zani da e se ako je uvjet istinit u tekst polju ispisati dio izraza koji se nalazi u dijelu TRUE,u protivnom e se upisati FALSE dio izraza.
IIf funkciju moemo koristiti za uvjetno ispisivanje polja.Pretpostavimo da bi polje koje smo naveli u izvjeu moglo imati praznih vrijednosti. Svojstvo Can Shrink sekcije Detal,i svih tekst kontrola postavimo na Yes,kad izvjetaj naie na prazno polje tekst okvir e nestati:
Vidimo da su prazne vrijednosti u polju cijena nestale, ali su ostale pripadajue vrijednosti u polju predmet. Da bi nam se cijeli redak pomaknuo prema gore moramo sprijeiti ispisivanje vrijednosti polja predmet u redovima gdje polje cijena nema upisanu vrijednost .Zato emo u Control Source polja predmet ubaciti izraz:
=IIf([cijena] Is Null;"";[predmet])
Sada e izvjetaj izgledati ovako:
Da bi izvjetaj mogli uvjetno ispisati naslove polja ne smijemo staviti na Detail i Group Header ,nego na Report ili Page Header.
54
Izvjetaj s grupama i totalima kreira se na isti nain kao i zbirni izvjetaj.Kod izvjetaja s grupama i totalima podaci se grupiraju po nekom polju (atributu tabele ili upita), a nakon toga zbrajaju.Kod tog izvjetaja prikazuju se podaci iz svakog zapisa i to je osnovna razlika tog oblika od zbirnog izvjetaja koji prikazuje samo zbrojene podatke, a ne sve podatke iz nekog zapisa. Osnovno je da se grupiranje vri po zadanom polju tabele ili upita Podaci se iz zapisa mogu grupirati kroz do tri razliita polja tabele.Grupa je dio izvjetaja koji ukljuuje podatke iz svih zapisa koji imaju jednake vrijednosti u polju po kojima se vri grupiranje.Unutar ve postojeih grupa mogue je ugnijezditi podgrupe. Osim grupiranja podataka po poljima, podatke je mogue grupirati i po dijelovima polja. Kako e se to grupiranje izvesti ovisi o tipu polja. Tako se tekst polja mogu grupirati po cijelom polju (svim znakovima), po slovima (od prvog do petog slova), a numerika polja po jedinstvenosti (ne mogu biti dva ista broja), po deseticama, stoticama itd., datum po godinama, mjesecima ,tromjesejima, po danima. Nakon to se podaci grupiraju odabere se polje po kojem e se podaci sortirati unutar grupe.Ako izvjetaj sadri totale (ukupnu vrijednost nekog polja) Access moe automatski izraunati postotak za svako polje od ukupne vrijednosti polja. ((1)) 1 Prredlloenii oblliicii iizzvjjettajja:: P ed o en o b c v e a a Stepped:
Block:
55
Outline1:
Outline2
Align Left1
Align Left2
4.. Chartt ii Labell Wiizard ((za adrese ii sll..)):: 4 Char Labe W zard za adrese s 5.. Spojjenii iizvjjettajjii:: 5 Spo en zv e a
U Database window toolbar odaberemo New.U New Report dijalogu kliknemo na Chart ili Label Wizard i slijedimo upute.
Ispisuje se iz Word for Windows programa. Spojeni izvjetaj koristi se samo ako imamo Word for Windows. Dio dokumenta obradi se u samom Wordu, a dio se preuzima iz Access-a. Ovo je vrlo interesantna mogunost ako isti tekst treba poslati na vie razliitih adresa(npr.razne obavijesti,elektroprivredna naknada itd.) U tom sluaju adrese pohranimo u Access bazu, a ostatak dokumenta napiemo u Wordu i izvjetaj za sve te adrese je gotov.
Izvjetajem je mogue upravljati pomou njegovih svojstava (properties): Njima se odreuje: naslov izvjetaja ( Caption ) izvor podataka ( Record Source ) zakljuavanje zapisa za vrijeme tampanja ( Record Locks ) izbornik koji e biti na raspolaganju ( Menu Bar ) zaglavlje i podnoje stranice ( Page header i footer ) irina izvjetaja ( Width ) itd. Navedeni izvjetaji mogu biti u tri razliita oblika: oblik prezentacije izvrni oblik tabelaran oblik (slino kao i poslovne knjige)
56
VIII.. VIII
Makronaredbe su niz predefiniranih akcija koje nudi Access.Korisnik ih ne moe mijenjati jer se pretpostavlja da na raspolaganju stoji dovoljno osnovnih akcija za izradu aplikacije,no ako ipak zatreba neka akcija koja ne postoji,na raspolaganju je VBA.Svaka makronaredba ima svoje ime. Akcija ili makronaredba je zapravo instrukcija (ali ne instrukcija VBA-a!) za npr. otvaranje tabele, zatvaranje nekog prozora itd. koja se pokree izvoenjem odreenog dogaaja. Makronaredbe se mogu grupirati ,odnosno mogue je napraviti skup makronaredbi za formu ili izvetaj i kasnije ih koristiti u drugim formama ili aplikacijama.Udruivanjem u cjelinu jedne ili vie makronaredbi stvaramo Makroprogram koji se aktiviranjem ponaa kao jedna makronaredba.Dozvoljeno je izvoenje Makro-programa unutar drugog Makro-programa, moe se koristiti petlja za ponavljanje izvoenja. Makro-programi se koriste da bi se automatizirali pojedini zadaci.Da niz opcija ne bi uvijek ponovo iz izbornika morali birati miem za neki zadatak ,napravit emo jednostavni Makro-program koji e to uiniti za nas.Svaki Makro-program ima svoje ime. Postoje odreeni zadaci koje nije mogue drugaije izvesti osim preko Makro-programa. Pomou Makro-programa mogue je sve objekte neke baze podataka spojiti u jednu zajedniku aplikaciju. Makro-programi koji se koriste unutar forme ili izvjetaja bazirani su na tzv. dogaajima (events). Dogaaj (event) je definirani korak u izvoenju forme ili izvjetaja za kojeg Access provjerava treba li izvesti kakvu radnju (makronaredbu).Event forme i event izvjetaja se razlikuju te ih ne treba poistovjeivati. Napredniji se Makro-programi kreiraju zadavanjem uvjeta od kojeg ovisi to e Makro-program raditi. Za najjednostavnije kreiranje uvjeta mogue se je posluiti vodiem za kreiranje uvjeta.Uvjet moe sadravati operatore, identifikatore, funkcije, literale i konstante. Operatori se koriste za izvoenje raznih operacija nad podacima. Mogu se primijeniti sve prije navedene grupe operatora kao operatori usporeivanja,aritmetiki,logiki itd. Identifikatori oznaavaju formu,izvjetaj,polja tabele, kontrolu ili osobinu polja nad kojim se obavlja neka od operacija. Funkcije se koriste kada je potrebno vratiti neku vrijednost.Funkcija pribavlja neku vrijednost koju e koristiti neka druga funkcija, makronaredba itd.Moe se birati izmeu onih koje nudi Access ili se mogu kreirati vlastite funkcije u VBA. Literali mogu biti brojke,tekst (pod navodnicima) ili datum (omeen ogradom #). Konstante su vrijednosti koje se u toku izvoenja uvjeta ne mijenjaju.
Klikom na prvi red stupca Action otvara se Combo Box sa popisom dostupnih makronaredbi.Za primjer emo odabrati makronaredbu MsgBox.U donjem dijelu prozora vidjeemo dostupne argumente za odabranu makronaredbu koje moemo odrediti prema potrebama aplikacije. Argumenti za MsgBox su : 57
Message poruka koja e se ispisati Beep da li elimo zvunu najavu poruke Type vrsta poruke (none,Critical,Question,Information) Title naslov poruka Sauvamo Makro-program pod eljenim imenom. Svaki put kad napravimo promjenu u Makro-programu moramo je sauvati prije pokretanja. Makro-programi koje nazovemo AUTOEXEC e se izvriti prilikom svakog pokretanja baze,osim ako prilikom pokretanja ne drimo stisnutu tipku Shift. Da bi Makro-program mogli koristiti moramo ga pridruiti nekom objektu ili dogaaju koji e ga pokrenuti.
1.. Priidruiivanjje Makro--programa konttrollii na fformii:: 1 Pr dru van e Makro programa kon ro na orm
Na postojeoj ili novoj formi nacrtamo kontrolu,otvorimo prozor Properties za Kontrolu i u kartici Event izaberemo dogaaj kom elimo pridruiti postojei ili izgraditi novi Makro-program:
2.. Sttvaranjje vllasttiittog iizborniika pomou Makro--programa:: 2 S varan e v as og zborn ka pomou Makro programa
Iz izbornika odaberemo View Toolbars Customize to nam otvara prozor Customize gdje moemo prilagoditi postojee ili izgraditi vlastiti toolbar sa izbornicima i komandama kojima moemo pridruiti vlastite Makro-programe. Ukoliko elimo zamijeniti Accessov izbornik sa vlastitim odabraemo iz izbornika Tools- Startup gdje pod Menu Bar izberemo svoj izbornik.
3.. Konverttiiranjje glloballne makronaredbe u modull:: 3 Konver ran e g oba ne makronaredbe u modu 4.. Popiis Makronaredbii po kattegoriijjama 4 Pop s Makronaredb po ka egor ama
Postoji nekoliko razliitih kategorija makronaredbi:
U Database window pod objektima odeberemo Macros.Kliknemo na makro koji elimo konvertirati.U File meniju odaberemo Save As i u dijalogu Save As,odaberemo Modul.
58
59
Programski moduli sadre funkcije, potprograme ili pojedinane instrukcije napisane u VBA, programskom jeziku za programiranje unutar Accessa. Programski modul kreiramo pozivanjem prozora Database window ,izborom grupe objekata Modules pa klikom na New to otvara prozor VBA editora gdje piemo module VBA jezikom. Po svojoj sintaksi VBA je vrlo slian Visual Basicu,no podrava i neke posebne mogunosti rada sa objektima (kreiranje, promjenu,brisanje pojedinog objekta baze).Preko VBA se obavlja i razmjena podataka s drugim aplikacijama tzv. DDE Dynamic Data Excange . Programski moduli se koriste kod izrade aplikacija kojima elimo dodati nove opcije ili poboljati neke opcije Access-a. VBA podrava slijedee tipove podataka: TIP Integer Long Single ZNAK % & ! TIP Double Currency String ZNAK # @ $
Variant
(datum/vrijeme, realni broj, string) upotrebljava se za nepoznat tip podatka, usporava izvoenje programa
Korisniki tip podataka Varijable u Access-u mogu uvati vrijednosti nekih tipova podataka ili pak oznaavati objekte (npr. kontrole u formi). Objektne varijable mogu pokazivati na bazu podataka, formu, izvjetaj, kontrolu, tabelu itd.
Echo(osvjei) Metoda osvjei koristi se za odreivanje vremena u kojem e se osvjeiti zaslon. Moe se iskoristiti kad se obavlja neki zadatak npr. upit u udaljenu bazu podataka da se za to vrijeme ogranii osvjeavanje zaslona jer to ionako ne bi imalo smisla jer e se upit ipak izvriti. Getoption(dobavi opciju) Dobavi opciju vraa sadanje stanje neke opcije iz liste opcija koje su podijeljene na devet skupina kao i kod podeavanja Access-a (openito, tipkovnica, ispis na pisau itd.). Ako se eli saznati trenutno stanje opcije potrebno ju je navesti punim imenom (npr. ako se eli saznati po kojem e se jeziku sortirati podaci potrebno je navesti opciju " new Database sort order" ). Setoption(postavi opciju) Postavi opciju metoda postavlja neku od opcija Access-a na odreenu vrijednost. Kod koritenja neke opcije vrijedi isto pravilo kao i kod prethodne metode. Quit(kraj) Kraj cjelokupne Access aplikacije.
Izbornik Izbornik svojstvo koristi se za odreivanje makro programa koji e se koristiti za prikaz korisnikog izbornika za bazu podataka, formu ili izvjetaj. Naravno, makro program koji pokree izbornik mora pod prije biti kreiran.
Oznaava formu, izvjetaj ili kontrolu u njima Koritenjem ovog objekta s formom, izvjetajem ili kontrolom nee ih uiniti aktivnim. Zapravo, na temelju ovog objekta mogue je saznati koji je trenutno aktivan objekt pa te informacije iskoristiti za druge zadatke u Access VBA.Treba napomenuti da je koritenje ovog objekta mogue samo u VBA ili pomou Makroa.
Odnosi se na kontrole postavljene u formu ili izvjetaj. Koristi se za odreivanje brojnih svojstava kontrola u navedenim objektima.
ItemData(podaci) Metoda podaci vraa podatke zapisane u nekom retku kontrole kombiniranog unosa ili liste. Na taj se nain moe provjeriti to pojedina kontrola sadri. ReQuery(auriraj) Auriraj metoda se koristi za auriranje podataka forme ili kontrole. SetFocus(usmjeri panju) Metoda usmjeri panju stavlja u prvi plan formu ili polje u tabeli, formi ili upitu. Ovo se moe iskoristiti kod pretraivanja objekata ( tabele itd. ) po nekom polju. Prvo se odabere polje po kojem se eli pretraivati, a nakon toga se pronalazi eljena vrijednost odnosno sva e se pretraivanja vriti po tom polju sve dok se ne odabere neko drugo polje tom metodom.
Oznaava sva svojstva nekog objekta (korisniki definirana ili pak ve ugraena ) naziv tip vrijednost svojstva podaci o tome je li to svojstvo naslijeeno od drugog objekta ili ne
Oznaava parametre upita koji ih koristi tzv. parametarskog upita i to: naziv vrijednost tip parametra Ti se parametri ne mogu mijenjati ili brisati ve samo itati.
Oznaava tablicu ili neku povezanu tablicu iz drugog SUBP-a.Preko tog objekta mogue je mijenjati definiciju tabele kreiranje polja, indeksa ili korisnikog svojstva objekta otvaranje tabele koja se moe ili ne moe mijenjati auriranje veza s povezanim tabela drugih SUBP-a
ovlatenja za promjenu pojedinih polja relacijski odnosi odnosno veze referencijalni integritet podataka povezanost tabele preko ODBC-a ili ne ovlatenja za promjenu strukture upita ili tabele te promjene njihovih podataka 61
Koristei ovim objektom mogue je kreirati korisniku okolinu zatienu ifrom korisnika: CreateDatabase (kreiraj bazu podataka) CreateGroup (kreiraj grupu) CreateUser (kreiraj pojedinanog korisnika) Otvoriti i zatvoriti jednu ili vie baza podataka: OpenDatabase metoda Close (zatvori aktivan objekt) Upravljati transakcijama transaction metodama koje se koriste se meu Connection objektima: BeginTrans(poni transakciju ) object.BeginTrans CommitTrans(zatvori transakciju) te pri tome snima efekte transakcije object.CommitTrans RollbackTrans(vrati u prijanje stanje) - vraa podatke u stanje prije pokretanja transakcije, posebno je pogodno ako je transakcija pokrenuta nekom pogrekom. object.RollbackTrans
Naziv objekta ifra Naziv korisnika Broj objekata - vraa broj objekata u nekom skupu Vano je napomenuti da svi skupovi zapoinju od nule te ako za konani broj lanova skupa uzmemo n tada skup sadri zapravo n-1 objekata.
62
Kada se koristi opcija ulaganja objekata, objekt koji se ulae pohranjuje se u Access bazu podataka, ali u formatu aplikacije u kojoj je i kreiran ( tako e se npr. slika iz Paintbrush-a pohraniti u .BMP formatu ). Ako se uloeni objekt eli promijeniti u Access-u pokrenut e se aplikacija iz koje objekt potjee.
Objekt koji se povezuje ostaje u aplikaciji u kojoj je i kreiran tako da ga mogu koristiti ( povezivati ) i druge aplikacije. Kod povezivanja valja biti oprezan jer e svaka promjena na objektu ( u izvornoj aplikaciji ) rezultirati promjenom u aplikaciji s kojom je povezan. Razlika izmeu povezivanja i ulaganja objekata prikazana je na slici:
63
VBA kao klijent.Instrukcijom DDEExecute izvodi se komanda aplikacije s kojom se obavlja dinamika razmjena podataka (npr. komanda Excela) Kao parametri navode se: broj kanala (taj broj Windows-i pridruuju aplikaciji s kojom se vri DDE ) komanda ( komanda iz nekog izbornika i dr. ).
Preko instrukcije DDEPoke alju se podaci posluiocu. Kao parametri navode se: broj kanala kao i kod prethodne instrukcije podruje aplikacije ( npr. u Excel-u oznake za kolone npr. A1,B1 ) podatak koji e se upisati u tu aplikaciju ( kolonu u Excel-u ). Mogue je prenositi samo tekstualne podatke.
DDESend alje odreen dio podataka posluiocu. Moe se koristiti za odreivanja karakteristika ( properties ) kod nekih kontrola ( liste, kombiniranog unosa i dr. ).
Koristi se za dobivanje podataka od posluioca DDE alje zahtjev za podacima drugoj aplikaciji. Kao parametri navode se: aplikacija podruje aplikacije dio tog podruja
Koristi se za dobivanje podataka od posluioca DDERequest alje zahtjev za dijelom podataka koristei kao parametre:
Instrukcijama DDETerminate te DDETerminateALL prekida se dinamika razmjena podataka odnosno zatvaraju se svi kanali preko kojih se vrio DDE.
64
XII.. RAZMJENA PODATAKA (IMPORT ,, LINK) XII RAZMJENA PODATAKA (IMPORT LINK)
Pod razmjenom se podrazumijeva prenoenje podataka u drugi program i obrnuto. Access moe razmjenjivati podatke sa slijedeim sustavima za upravljanje bazama podataka: FoxPro, dBase Paradox Btrieve SQL, Oracle Lotus HTML,Tekst itd. te s programskim paketom Microsoft Office koji ukljuuje: Word for Windows Excel Powerpoint Microsoft Mail Razmjena podataka s drugim sustavima za za upravljanje bazama podataka ima viestruke prednosti. Nekada se i nije razmiljalo o prijelazu na sustav (u ono vrijeme programski jezik ) koji bi bio bolji odnosno koji bi efikasnije ispunio nae zahtjeve (potrebe), ve se uporno ostajalo na starom sustavu koji se povremeno nadograivao. Primjer za to je programski jezik COBOL koji je jo i danas prisutan ( mada je moderniziran ) i kojeg nije nadrasla ni pojava modernih sustava koji mogu ispuniti veinu naih zahtjeva (smatra se da je pola programa uope ikada napisanih napisano u COBOL-u). Jedan od razloga bio je i taj da je svaki sustav razvio razliite formate datoteka za pohranjivanje podataka.Prijelaz na novi odnosno drugi sustav znailo bi odbacivanje svega do tad uinjenog jer se podaci iz starog sustava nisu mogli upotrijebiti. Tada su se poeli pojavljivati sustavi koji su mogli prebaciti podatke iz starog formata u novi.No, to ipak zahtijeva odreen posao, a rezultati su ponekad nezadovoljavajui (novi sustav koristi vea polja od starog te se tako nepotrebno troi prostor, a time i brzina ). Da bi se takvi problemi izbjegli nastali su sustavi kakav je i Access ,koji mogu prebaciti podatke u svoj format i to je jo vanije mogu raditi sa formatima datoteka naprijed navedenih sustava tj. obraivati podatke u kao da su to datoteke (tabele) u Accessu. To znai da npr. datoteku iz dBase-a moemo aurirati te iz nje izvui izvjetaj u Accessu ije su mogunosti na tom polju svakako vee.
65
Kada se radi o mrenom okruenju svi korisnici moraju imati isti ParadoxNetPath parametar u dijelu .INI datoteke pod naslovom Paradox ISAM .Da bi se podaci iz Paradox-a mogli koristiti, posebice ako e se koristiti vie tabela s vie indeksa potrebno je napraviti neke preinake u CONFIG.SYS datoteci (parametar FILES ne smije biti manji od 40 ). Kod koritenja mree podaci koje dodaju drugi korisnici ( ako jedni koriste Paradox, a drugi Access ) u Paradox-u nee biti vidljivi za korisnike Access-a sve dok se aktivna tabela ne zatvori i ponovo otvori. Ako se podaci ele razmjenjivati u mrenom okruenju mora se u datoteci MSACC20.INI pod naslovom Paradox ISAM odrediti ime korisnika ( Paradox User Name). Btrieve - prebacivanje podataka iz ovog programa odnosno programa koji koriste ovaj format datoteka razlikuje se od naprijed navedenih naina. Btrieve sadri rjenik podataka pa je za njgovo prebacivanje potrebno imati WBTRCALL.DLL datoteku. Kao i kod drugih sustava podatke iz Btrieve-a je mogue prebaciti u Access format ili samo povezati s Access-om. SQL - tabele se mogu povezati ili prebaciti u Access ali je potrebno je imati ODBC pogonitelj(drajver) za izvjesni SQL sustav. Access ukljuuje ODBC pogonitelje za Microsoft SQL posluilac te Sybase SQL posluilac.Za ostale drajvere potrebno je kontaktirati s proizvoaem Access-a.Da bi se povezivanje ili prebacivanje moglo obaviti potrebno je instalirati ODBC drajver.Da li ODBC drajver postoji ili ne moe se vidjeti u kontrolnoj ploi (Control Panel) Windowsa jer su tamo pogonitelji prikazani ikonom . I tu se prevoenje ili povezivanje razlikuje od drugih sustava jer je potrebno uspostaviti vezu sa SQL-om koji se koristi u mrei. Dakle, potrebno je u uobiajenom postupku naznaiti ime korisnika te ifru korisnika to ujedno predstavlja i zatitu od neovlatenog pristupa. Tekst datoteke - te se datoteke mogu prebaciti u Access samo ako su zapisi fiksnog formata ( fiksne duine ) ili su podaci u zapisu odvojeni nekim znakom interpunkcije npr. dvotokom . Potrebno je napomenuti da se svaki red tekst datoteke tretira kao zapis pa nee imati smisla prebacivati podatke ako "kolone" tekst datoteke nisu istoga tipa ( npr. jedna kolona sadri brojeve, a u drugom redu na istome mjestu neki dui tekst ). Kod prebacivanja tekst datoteke fiksne duine zapisa potrebno je naznaiti operativni sistem gdje je ona kreirana ( Windows,DOS,OS/2 ), znak kojim je odvojen tekst, znak kojim su odvojena polja zapisa te formate polja (ime polja, tip, poetak, zavretak ).Format polja nije potrebno zadavati ako postoji tabela u koju e se ti podaci prebaciti (ta se tabela moe kreirati ba za tu namjenu). Tablini kalkulatori - u Access je mogue prevesti podatke iz Excela ili Lotus 1-2-3 tablinog kalkulatora. Ovo je vrlo korisna mogunost, ako se zna snaga ovih programa i visok postotak njihove poslovne primjene (razne analize, statistika ...)
1.. Moguii probllemii kod uvoenjja podattaka:: 1 Mogu prob em kod uvoen a poda aka
Kod prevoenja podataka u Access mogu se pojaviti razni problemi pa ako se to dogodi Access kreira tabelu u kojoj svaki red oznaava opis jedne greke. Kada uvozimo Excel podatke u Access tablicu, ponekad moemo izgubiti dio podataka.To se obino deava kad umjesto statinih podataka pokuamo uvesti elije sa formulama koje e biti uvezene kao prazne elije. Rjeenje je sauvati Excel worksheet koji ima podatke koje elimo uvesti u novi workbook.Otvorimo original i novi workbook ,u originalu oznaimo cijeli workbook (Edit,Select All) pa ga kopiramo u novi sa Ctrl+C pomou opcije (Edit, Paste Special ).Novi workbook e biti identian originalu ali vie nee sadravati formule ve samo statine podatke.Tada se umjesto orirginala novi file uveze u Acces Kod prevoenja podataka iz tablinog kalkulatora pojavljuje se greka ako postoji oznaka N/A to u tab. kalkulatoru znai da nema podataka. Access e to protumaiti kao pogrean tip podataka. Problem rijeiti na taj nain da se uklone te oznake pa ako su ba potrebne mogu se naknadno dodati u Access-u. Neprepoznavanje pravog tipa podataka.Moe se probati jo jednom ili promjenom tipa podataka. Tabela u koju se prenose podaci ima manje polja od izvorne tabele. Potrebno je samo prebrojati polja te prema tome i postupiti odnosno nadopisati polja koja nedostaju. Polja izvorne tabele dua su od odredine. Potrebno je uskladiti veliinu polja
66
C.. RAZLIKE IZMEU UVOZA (IMPORT) I POVEZIVANJA C RAZLIKE IZMEU UVOZA (IMPORT) I POVEZIVANJA (LINK): (LINK):
Uvezene tablice postaju dio Access baze podataka ,imaju istu ikonu kao i tablice kreirane u Accessu ,dok pridruene tablice zadre ikonu programa kojem pripadaju. Kada obriemo uvezenu tablicu ona e sasvim nestati,dok se brisanjem uvezene tablice brie samo veza prema programu kojem tablica pripada. Podatke u pridruenim tablicama moemo mijenjati,ali postoje ogranienja u izmjeni dizajna.Uvezenim tablicama moemo mijenjati dizajn i podatke isto kao da smo ih kreirali u Accessu. Izvorna aplikacija nema pristup uvezenoj tablici,dok pridruenoj tablici moe pristupati i Access i izvorna aplikacija.
XIII.. XIII
Baza podataka koju e koristiti vie korisnika mora se otvoriti drugaije nego za samo jednog korisnika. Kod koritenja u viekorisnikom okruenju baza se podataka mora otvoriti iz mrene jedinice, dozvoliti koritenje baze istovremeno za vie od jednog korisnika te dozvoliti ili ne promjenu podataka. Access se moe koristiti u slijedeim mrenim okruenjima: - Novell netware - Windows for workgroups - Windows NT
A.. PROBLEMI KOD INSTALIRANJA ACCESS-A NA NEKA A PROBLEMI KOD INSTALIRANJA ACCESS-A NA NEKA OKRUENJA: OKRUENJA:
Kod instaliranja Access-a na Novell mreu mogu se pojaviti problemi sa setup.ini ( potrebno je podesiti datoteke shell.cfg te net.cfg ). Ako se Access instalira na Windows for workgroups najbolje je to uiniti nakon instalacije WfW jer se inae mogu pojaviti problemi kod detekcije pogonitelja. Nakon toga potrebno je instalirati pogonitelj koji se brine o auriranju podataka, inae ako pogonitelj nije instaliran koritenjem opcije za mreno povezivanje ( ikona network connection ) moglo bi doi do gubitka podataka (pogonitelj za auriranje se instalira programom decompress te ga je potrebno instalirati u system direktorij, a to je program wfwnet.dr_ ) U Windows NT okruenju potrebno je obratiti panju na tzv. service pack ( mora biti inaice 2 ili kasnije ). Ako ne postoji odgovarajui program on se moe dohvatiti sa Interneta preko FTP-a. Takoer se treba instalirati ODBC administrator ( program se zove odbcadm.ex_ , a postupak instaliranja je isti kao i kod WfW ).
Nije mogue mijenjati strukturu tabele dok je koristi drugi korisnik, ali je mogue pogledati strukturu. Zbog toga treba biti na oprezu prilikom promjene strukture tabele jer se za to vrijeme nee moi koristiti od strane drugih korisnika. Takve bi se radnje trebale poduzimati ako je to mogue u vrijeme kad se baza podataka najmanje koristi ili se uope ne koristi (nakon radnog vremena, neradnim danom i sl. ). Osim promjene strukture tabele treba biti na oprezu prilikom promjene drugih objekata. Tako npr. kod promjene makronaredbe koju koristi istovremeno neki drugi korisnik moe doi do neeljenih rezultata ili ak posljedica. Kod promjene tih objekata valja ih zatvoriti i ponovo otvoriti da bi se vidio efekat promjene inae e se oni ponaati kao da nisu promijenjeni.Ako se mijenja izvjetaj treba prije pogledati objekat iz kojeg je on kreiran pa tek onda mijenjati izvjetaj jer je taj objekat mogao biti promijenjen od strane drugih korisnika to bi moglo dovesti do neeljenih rezultata. No, ako e se koristiti neki objekt kojeg je promijenio drugi korisnik pojavit e se poruka da je on promijenjen to omoguava da se odmah uoi promjena bez stalnog pregledavanja da li su objekti mijenjani ili nisu.
67
Da bi se odredio eljeni nain rada na mrei mogue je promijeniti neke parametre: nain otvaranja baze podataka nain auriranja podataka (broj pokuaja ( do deset ) te razmak izmeu tih pokuaja odrediti da se baza podataka odnosno objekti ne zakljuavaju te ih na taj nain moe istovremeno koristiti vie od jednog korisnika to moe proizvesti zbunjujue rezultate promjena zapisa (zakljuanih ) - podatke moe mijenjati istovremeno samo jedan korisnik, ako to ele uiniti i drugi korisnici na mrei morat e saekati dok taj korisnik ne zavri s promjenom odnosno dok se ponovo ne zakljua zapis (slog )
zakljuavanje svih zapisa nekog objekta ( forme ili tabele ) - u tom sluaju podaci iz tih objekata e biti na raspolaganju samo jednom korisniku u jedno vrijeme osvjeavanje zaslona odnosno vrijeme ponovnog prikazivanja podataka na zaslonu - ako su se desile bilo kakve izmjene nad podacima u viekorisnikom okruenju on e se prikazati u vremenu od jedne minute (to se vrijeme ponovnog prikazivanja moe izmijeniti (moe biti u rasponu od 1 sekunde do 32 766 sekundi )
XIV.. XIV
Sigurnost korisnikih podataka je jedan od vrlo vanih kriterija pri odabiru SUBP, a za neke korisnike i najvanija. Bez obzira na mjere koje se poduzimaju radi zatite podataka apsolutno sigurna aplikacija odnosno aplikacija koja prua potpunu zatitu korisnikih podataka danas jo uvijek ne postoji. Za poduzea gdje pristup neovlatenim osobama nije dozvoljen moe se preporuiti Access koji ima svoje mehanizme zatite podataka ostvarene kroz provjere pristupa ifrom. Ve je otprije poznato da sama mrea (koja je vrlo esta u poduzeima - LAN ) ima ugraene mehanizme za zatitu podataka od neovlatenog pristupa, no da bi se sigurnost podataka poveala danas se ve standardno ti mehanizmi ugrauju i u SUBP. Ugradnja tih mehanizama znai da se podaci mogu zatititi na nivou samog SUBP-a bez koritenja mree ,da bi bili zatieni na raunalu koje nije povezano u mreu. Zatita podataka u Access-u se provodi preko radnih grupa, korisnika te ovlatenja. Radna grupa obuhvaa jednu ili vie baza podataka koje imaju isti stupanj zatite. Svaka radna grupa ima svoju ifru koju je potrebno znati da bi se moglo koristiti baze podataka koje ova sadri. Na temelju ifre dobiva se korisniki broj u okviru kojeg su ovlatenja za koritenje podataka. Svaki korisnik moe imati razliita ovlatenja i ta se ovlatenje mogu razlikovati od ovlatenja radnih grupa kojima pripada. Svaki korisnik mora pripadati najmanje jednoj radnoj grupi.
68
administratori korisnici gosti i dva definirana korisnika i to: admins iz grupe administratora te gost iz grupe gostiju Ostale se radne grupe i korisnici definiraju po potrebi. Admins korisnik je rezerviran za mrenog administratora i on ima sva ovlatenja odnosno moe mijenjati svaki objekt bez obzira koja ga je radna grupa ili korisnik definirala. Znai ako elimo da neki od korisnika ima sva ovlatenja ( promjena, upisivanje i brisanje podataka ) treba ga staviti u grupu administratora. Za svaki se objekt mora dati posebno ovlatenje ili ogranienje. Nakon instaliranja Access-a svi novi korisnici imaju sva ovlatenja pa je nekim korisnicima ili grupama korisnika potrebno ograniiti ta ovlatenja. To moe uiniti (dati ovlatenje) vlasnik objekta(neki korisnik) ili pak mreni administrator dok ovlatenje,moe primiti neki korisnik ili grupa korisnika. Ovlatenja se zadaju vrlo jednostavno ,no upravo zbog te jednostavnosti moemo brzopleto zadati mreu ovlatenja koja nee odgovarati naim potrebama.
Da bi SUBP postizao optimalne rezultate , posebice ako se koristi u mrenom okruenju valja ga podesiti prema vlastitim potrebama. Postoji devet razliitih polja na kojima se moe Access podesiti i to: Standardne opcije: Openito: Podeavanje opcija koje se odnose na openite karakteristike Access-a koje se ne mogu svesti ni pod jednu od navedenih grupa. Tu se podeava: - prikaz statusne linije ( ona sadri informacije o komandama ) - alati koji stoje na raspolaganju - odreivanje vremenskog intervala ponovnog izvoenja OLE i DDE-a - traenje potvrde prije brisanja objekata i izvoenja akcijskih upita - jezik po kojem e se sortirati podaci - omoguavanje drugim aplikacijama da vre DDE s Access-om itd. Tipkovnica: Odreuje se ponaanje tipkovnice i to: - koritenje strelica ( da li e to biti prelazak na novo polje ) - to e se izvoditi nakon tipke < Enter > - dodjeljivanje tipki makronaredbama Podeavanje ispisa na pisau: Odnosi se na odreivanje margina unutar kojih e se podaci ispisivati. Koji e se pisa koristiti odreuje se preko Windows-a i kako je poznato na to ne utjeu pojedini programi pa tako ni SUBP-a. Nain kreiranja forme i izvjetaja Podeavanjem opcija koje se odnose na kreiranje objekata odreuje se predloak po kojem e se objekt kreirati i kojeg moemo koristiti u vie sluajeva. Kreiranje upita Kreiranje makronaredbe Pregled podataka - kod pregleda podataka u obliku tabele odreuje se ponaanje odreenih tipki ( strelice, tipke < Enter >, tipke koje pokreu makronaredbe ). Podeavanje opcija kod pisanja koda ( VBA ) odnosi se na podeavanje provjere sintakse odnosno ispravnosti napisane naredbe te postavljanje tabulatora kod pisanja razliitih nivoa naredbi radi preglednosti koda. Opcije za viekorisniko okruenje i ODBC su: 1.Odreivanje zakljuavanja zapisa 2.Otvaranje tabela ( za jednokorisniki ili viekorisniki rad ) 3.Interval ponovnog pokuaja uspostavljanja ODBC-a 4.Interval osvjeavanja zaslona itd.
70