VII.

Baze podataka

7. Baze podataka

Baza podataka je organizirani skup informacija ili podataka u kompjutorski čitljivom obliku. Općenito je pristup takvim bazama moguć putem različitih online servisa za pretraživanje koje nazivamo i online sustavima odnosno informacijskim sustavima. Takvi servisi za pretraživanje imaju kompjutore i programe (software) koji omogućuju vanjskim korisnicima da pretražuju jednu ili više baza podataka kako bi mogli pronaći informaciju ili podatak gdje se ta informacija (referenca) nalazi. Danas je broj vrsta različitih informacija u bazama podataka toliko velik da bi bilo lakše navesti kojih vrsta informacija u bazama podataka nema nego kojih ima.

U današnje i buduće korisnike baza podataka možemo svrstati sve one kojima treba informacija iz neke od postojećih baza podataka. Među profesionalnim korisnicima tih skupova informacija nalaze se advokati, sveučilišni istraživači, bibliotekari, službenici, ekonomisti, znanstvenici i drugi stručnjaci informacijskih znanosti. Mnoge baze podataka i servisi za pretraživanje danas su dostupni i pojedincima koji kod kuće imaju odgovarajuću opremu potrebnu za komuniciranje s bazama podataka.

 

Ponavljanje iz prethodne školske godine

Program (često se naziva i aplikacijski program, aplikacija, software ili softver) jest niz uputa (instrukcija) pisanih programskim jezikom. Te upute spremljene su u datotekama i naređuju računalu da izvrši neki zadatak. Program, na primjer, može omogućiti popis imena po abecedi (sortiranje po abecedi).

Datoteka (engl. file, čitaj: 'fajl') je skup podataka pohranjen na disku pod nekim imenom. Datoteke mogu sadržavati programe, podatke, tekstove, baze podataka. Svaka datoteka ima svoje ime po kojemu je pronalazimo na disku i koje nam obično kazuje kakav je sadržaj datoteke.

Baza podataka označava skup međusobno povezanih podataka (na primjer adresar, telefonski imenik, kartoteka) koji se mogu pretraživati i iz kojih se mogu dobiti različiti izvještaji, statistički podaci, pregledi i sl.

Baza podataka je, u smislu kompjutorske obrade podataka, datoteka ili grupa datoteka koje sadrže skupove (slogove) međusobno povezanih podataka. Baza podataka može sadržavati i različite pomoćne datoteke, na primjer indeksne datoteke, zatim datoteke s uputama o tome kako dobivati izvještaje o podacima u bazi, datoteke s unaprijed definiranim upitima i sl.

Osnovna oprema za rad s nekom vanjskom bazom podataka jest kompjutorski terminal (uređaj za komunikaciju s drugim kompjutorskim sustavom putem telefonske linije) i telefon. Kao kompjutorski terminal može služiti i osobni kompjutor (mikrokompjutor) s odgovarajući softverom (programom) te s modemom, koji može biti ugrađen u kompjutor ili biti zaseban uređaj.

Korisnik koji ima takvu opremu obično nazove telefonski broj servisa za pretraživanje kako bi s njim povezao svoj terminal odnosno osobni kompjutor te tada upiše odgovarajuće naredbe da bi se predstavio (mora imati svoj korisnički broj i lozinku), odabrao bazu podataka koju želi pretraživati te postavio upite za pretraživanje. Sustav tada pretražuje bazu podataka i podatke prikazuje na ekranu ili ih ispisuje na odgovarajućem štampaču. Više o bazama podataka (odnosno komercijalnim bazama podataka) te ostalim (kako ih nazivamo) informacijskim proizvodima i uslugama pročitajte u poglavlju: Razvitak informacijske djelatnosti.

Baze podataka mogu se općenito podijeliti prema vrsti podataka koje sadrže (tj. po tome sadrže li tekstualne ili numeričke podatke) ili prema svom sadržaju. One koje sadrže potpune stvarne podatke ili informaciju i iz kojih se izravno mogu dobivati odgovori nazivaju se izvornim bazama podataka, a one koje sadrže podatke o tome gdje se traženi podaci nalaze, nazivaju se referentnim bazama podataka.

 

Ponavljanje iz prethodne godine

Osnovna jedinica baze podataka jest slog (engl. record), koji sadrži sve podatke definirane u bazi podataka. Na primjer, slog je i jedna adresa u adresaru ili kartica u kartoteci. Slog se dijeli na polja (engl. field). Pojedino polje unutar sloga nekog adresara može, na primjer, biti prezime i ime, zatim ulica i broj, zatim grad itd.

Struktura baze određena je poljima pojedinog sloga i veličinom svakoga pojedinog polja. Na poseban način (koji ne pripada sadržaju ovih uputa) može se logički povezati više datoteka (od kojih svaka može imati tako definiranu strukturu), čime se dobiva relacijska baza podataka.

Postoje baze s promjenjivom (varijabilnom) veličinom sloga, u kojima se u datotekama zauzima prostor ovisan o stvarnoj veličini upisanih podataka, i baze sa stalnom (nepromjenjivom, fiksnom) duljinom sloga, u kojima se unaprijed određuje koliko znakova zauzima određeno polje u slogu. Ako je podatak koji želimo upisati dulji od predviđenog prostora, on se automatski skraćuje na određenu duljinu, a ako je kraći, dopunjuje se razmacima. Osobna računala uglavnom upotrebljavaju baze stalne duljine sloga jer je njihovo održavanje lakše, a pristup podacima jednostavniji. Dok takva baza ne prijeđe neku razumnu veličinu, takve su strukture pogodnije i jednostavnije za rad. U programske pakete koji imaju stalnu duljinu sloga pripada i programski paket dBASE III Plus, koji je opisan u ovim uputama. On omogućuje i povezivanje više osnovnih baza podataka u relacijsku bazu podataka.

Tekstualne baze podataka sadrže riječi ili tekst kao glavne podatke, a numeričke baze podataka (često ih nazivamo i bankama podataka) sadrže brojeve, simbole, nizove brojeva, grafikone i tablice. Ta je podjela učinjena zbog praktičnih razloga jer se so[tver ili kompjutorski programi koji se upotrebljavaju za pretraživanje numeričkih i tekstualnih baza podataka međusobno bitno razlikuju. Programi za tekstualne baze podataka ponajprije služe za obradu nizova znakova i usporedbu nizova znakova (riječi, upita) koje korisnik zadaje s podacima iz baze, a programi za numeričke baze podataka zahtijevaju više računskih mogućnosti nego mogućnosti uspoređivanja i sravnjivanja nizova znakova.

Pri upotrebi online baza podataka sve se više javljaju različiti problemi. Na primjer, ne postoje standardi koji bi se mogli primijeniti na sve baze podataka. Za pretraživanje baza podataka potrebno je gotovo za svaku različitu bazu naučiti poseban (iako svuda sličan) jezik za pretraživanje. Također postoji sve veći broj višejezičnih baza podataka, pa je i pretraživanje podataka upisanih različitim jezicima sve složenije. Pritom se javljaju i poteškoće vezane za baze pisane jezicima malih naroda (kao što je hrvatski), koje gotovo nitko nije imao na umu pri pisanju programa za održavanje baza podataka. Više o tom problemu i o tome kako se rješavaju neke uobičajene poteškoće naučit ćemo u ovom poglavlju.

Osim toga, korisnici često imaju potrebu da i sami stvaraju vlastite baze podataka, a ne samo da se koriste već gotovim vanjskim bazama podataka. Vrlo je često potrebno i da podatke koje su pronašli u nekoj bazi podataka, a koje je moguće preko modema prenijeti u vlastiti kompjutor, smjeste u svoju bazu podataka i dalje obraduju.

Stoga je potrebno da svaki korisnik ne samo poznaje pretraživanje baza podataka putem informacijskih servisa, nego i da sam poznaje osnove organiziranja i primjene baza podataka. Za to mu je potreban program za upravljanje bazama podataka koji će moći upotrebljavati na svom kompjutoru.

Program za upravljanje bazom podataka (engl. data base management system - skraćeno dbms) jest program (programski paket, softver) koji pomaže u organiziranju podataka tako da se do njih može što brže i lakše doći. Pomoću programa za bazu podataka (vrlo se često u govoru DBMS program naziva programom za bazu podataka ili samo: bazom podataka) podaci se mogu upisivati, mijenjati, pohranjivati i pronalaziti na više različitih načina. Prednosti programa za upravljanje bazama podataka jesu:

- povezivanje datoteka. Pomoću programa za bazu podataka mogu se međusobno povezati zasebne datoteke. Na primjer, ako u biblioteci imamo dvije kartoteke, kartoteku knjiga i kartoteku korisnika, a želimo pronaći adresu korisnika koji je posljednji čitao neku određenu knjigu, najprije bismo morali u kartoteci knjiga pronaći gdje se knjiga nalazi na polici, pronaći knjigu, pogledati u njoj (ako je postupak posuđivanja tako organiziran) broj (šifru) korisnika koji je posljednji zapisan u knjizi, te tada u kartoteci korisnika pronaći njegovu adresu. Program za bazu podataka nevjerojatno olakšava takve vrste pretraživanja na taj način da zapamti veze između podataka pohranjenih u različitim datotekama na disku;

- smanjeno ponavljanje podataka u datotekama (smanjena redundancija odnosno zalihost). Vrlo često su u kartotekama isti podaci smješteni na više različitih mjesta. U bazi podataka jedan je podatak većinom pohranjen na samo jednome mjestu. To smanjuje količinu ponovljenih podataka u sustavu (smanjuje zalihost, redundanciju). Osim toga, promjena tih podataka može se načiniti brzo i jednostavno - na samo jednome mjestu te se pritom ne mora pamtiti gdje se sve još nalaze isti podaci;

- zajednička upotreba podataka. Podatke u datotekama mogu istovremeno čitati i pretraživati različiti ljudi. Posebne datoteke (ili kartoteke) za različite odjele nisu više potrebne. Podaci se pohranjuju jedanput, i do njih pomoću kompjutora mogu doći samo ovlaštene osobe;

- centralizirano osiguranje podataka. Kada se podaci nalaze na jednome mjestu, lakše je osigurati uvid i kontrolu pristupa tim podacima. Kartoteke raspršene na više različitih mjesta teško je kontrolirati. Sigurnost podataka posebno je važna ako je riječ o osobnim podacima korisnika, poslovnim planovima i sl.

 

7.1 Programi za rad s bazama podataka

Danas na tržištu postoji mnoštvo programa za rad s bazama (DBMS programa). Opisivanje svih vrsta operacija, karakteristika i funkcija svakoga posebnog paketa bilo bi nemoguće. Stoga ćemo u ovom poglavlju (kao i u prethodnom razredu) opisati karakteristike i obilježja jednog od najpopularnijih programa za rad s bazama podataka dBASE III PLUS. Taj program ima mnoge zajedničke karakteristike i mogućnosti s ostalim programskim paketima za rad s bazama podataka. O nekim osnovnim karakteristikama programa dBASE III PLUS podsjetite se prema uokvirenom tekstu za ponavljanje preuzetom iz prethodne školske godine.

 

Programski paket dBASE III Plus

Programski paket dBASE III Plus omogućuje određivanje strukture baze podataka, upis, promjenu, brisanje, pretraživanje i pronalaženje podataka, pisanje izvještaja, prihvaćanje podataka iz drugih programskih paketa te pripremu vlastitih podataka za ulaz u druge programske pakete (na primjer u tekstprocesor).

Slogovi u bazi poredani su u načelu onim redom kojim su i upisivani, pri čemu je svakom slogu pridružen njegov redni broj (engl. record number). Taj program omogućuje da se slogovima u bazi pristupa i bilo kojim drugim redoslijedom koji odgovara korisniku. Ako želimo promijeniti redoslijed pristupa podacima, a da ih fizički ne preslagujemo, poslužit ćemo se pomoćnom datotekom koja određuje redoslijed čitanja slogova u bazi. Takva datoteka naziva se indeksna datoteka i sadrži brojeve slogova zapisane redoslijedom kojim želimo pristupati slogovima u datoteci. Postupak stvaranja indeksne datoteke naziva se indeksiranjem. Drugi način promjene redoslijeda pristupa slogovima jest fizičko preslagivanje slogova prema zadanom ključu (na primjer, prezimenu i imenu, datumu unosa i sl.) koje se naziva sortiranje. Nakon sortiranja dobiva se nova datoteka baze podataka u kojoj se nalaze svi (ili, ako tako želimo, samo neki) slogovi iz izvorne datoteke, ali složeni drugim redoslijedom.

Pri radu s bazom u načelu radimo uvijek samo na jednom slogu (mijenjamo ga, upisujemo, brišemo), pri čemu se obično pozivamo na redni broj sloga. Prvi slog u bazi ima broj 1, a ostali redom kako slijede. Operacije pretraživanja mogu teći ili od početka ili od tekućeg sloga (sloga na kojemu se trenutno nalazimo).

U bazu se može upisivati više različitih vrsta podataka, čime je omogućena i formalna provjera podataka. Svakom polju u slogu mora se pri definiranju strukture baze odrediti i vrsta polja. Postoje znakovna polja (oznaka C - engl. character=znak) koja mogu sadržavati bilo kakav niz znakova, numerička polja (oznaka N - engl. numeric), zatim datumska polja, s datumom (oznaka D) te logička polja (oznaka L) koja mogu sadržavati samo jedan znak - oznaku vrijednosti istinito/neistinito. Istinito se može označiti slovima T,t (od true=istina) ili Y,y (od yes=da), a neistinito slovima F,f (od false=neistinito) ili N,n (od no=ne). Osim navedenih vrsta, postoji i tzv. memo polje (oznaka M), u kojemu se mogu čuvati tekstualni podaci varijabilne duljine. Ti podaci čuvaju se u posebnoj datoteci, a u osnovnoj se pamti samo mjesto gdje se nalaze podaci memo polja za taj slog. Podaci u memo poljima ne mogu se pretraživati nego samo ispisivati.

Pojedina datoteka baze podataka može sadržavati do milijardu slogova i može biti velika najviše 2 000 MB (2 milijarde znakova), pri čemu pojedini slog može imati najviše 4 000 znakova (okteta), a ukupna duljina svih memo polja u slogu 512 KB. Jedan slog može imati najviše 128 polja. Znakovno polje može biti dugo najviše 254 znaka, numeričko najviše 19 znakova, datumsko polje ima uvijek 8 znakova, a logičko 1. Pojedino memo-polje može imati najviše 5 000 znakova. Memo-polje zauzima samo 10 znakova, a podaci se čuvaju u posebnoj datoteci.

dBASE III Plus čuva podatke u različitim datotekama. Imena datoteka mogu biti proizvoljna (prema pravilima DOS-a) s time da se za različite vrste datoteka upotrebljavaju sufiksi koji za taj program imaju točno određeno značenje. Ovdje su navedeni sufiksi koji se upotrebljavaju u programu dBASE III Plus za najvažnije vrste datoteka, uz objašnjenje upotrebe. Naredbe spomenute u pojedinim opisima datoteka objašnjene su dalje u tekstu.

 

7.1.1. Organizacija baza podataka

Baza podataka može sadržavati i podatke o tome kako su međusobno povezani podaci pohranjeni u različitim datotekama, a podaci u tako povezanim datotekama mogu se kombinirati. Način na koji su organizirani podaci u bazi podataka ovisi o vrsti ili modelu baze podataka.

Postoje tri modela baza podataka - hijerarhijski, mrežni i relacijski. Svaki od ta tri modela na različit način organizira i upotrebljava podatke. Hijerarhijske i mrežne baze najčešće se koriste na velikim kompjutorskim sustavima i na minikompjutorima te ih nećemo opisivati. Na osobnim računalima obično se upotrebljavaju relacijske baze podataka.

Relacijska baza podataka organizira podatke u obliku tablice koja se sastoji od redaka i stupaca. Na slici 7.1.a) prikazan je popis adresa. Na slici 7. Lb) ti su podaci složeni u tablicu. U relacijskom sustavu podaci iz jedne datoteke mogu se povezati s podacima u drugoj, omogućujući spajanje podataka iz više različitih datoteka.

 

7.1.2. Primjer relacijske baze podataka

Kao primjer relacijske baze podataka mogao bi poslužiti način posuđivanja knjiga u nekoj biblioteci. Da bismo razumjeli kako organizirati takvu bazu podataka, moramo razumjeti i kako se posuđuju knjige u biblioteci. Pri tome moramo imati na umu sljedeće:

1. potrebno je imati popis (katalog) knjiga,

2. potrebno je imati imati popis korisnika,

3. svaki korisnik može posuditi najviše pet (ili točno određeni broj knjiga). Kasnije ćemo razmotriti što bi se dogodilo ako bismo dozvolili da korisnik posudi neograničen ili veći broj knjiga,

Datoteka baze podataka (.dbf) sadrži slogove i polja. Ako gledamo na bazu podataka kao na tablicu, svaki slog predočuje redak tablice, a svako polje označava stupac. Struktura sloga u bazi početno se određuje naredbom CREATE, a mijenja se naredbom MODIFT STRUCTURE.

Datoteka memo-polja baze podataka (.dbt) sadrži podatke iz memo-polja. Sva memo polja datoteke baze podataka (.dbf) pohranjena su istu datoteku memo polja (.dbt). Datoteka .dbt stvara se u isto vrijeme kada i datoteka .dbf.

Datoteka formata (.fmt). U datoteci formata nalaze se obrasci prema kojima se podaci pojedinog sloga mogu upisivati na ekranu, ali i prikazivati na štampaču. Datoteka formata automatski se stvara iz datoteke za definiranje ekrana (.scr). Datoteka za definiranje ekrana upotrebljava se u naredbi CREATE/MODIFT SCREEN

Datoteka formata za izvještaje (.frm) sadrži podatke potrebne za naredbu REPORT kojom se ispisuju izvještaji i određuje način prikaza podataka pojedinog sloga na stranici i uobičajeni izgled i veličina pojedine stranice izvještaja. Ta se datoteka stvara i mijenja pomoću naredbe CREATE/MODIFY REPORT.

Osim tih datoteka postoji još nekoliko vrsta datoteka koje se upotrebljavaju u ovom programskom paketu, pa će njihova upotreba biti (ako bude potrebno) objašnjena u samom opisu rada s bazom.

 

Slika 7.1. Relacijska baza podataka. U ovom je primjeru popis adresa na slici (a) organiziran kao baza podataka na slici (b). Podaci su raspoređeni u retke i stupce. Polje je ekvivalentno stupcu, a slog retku.

4. treba postojati mogućnost da se utvrdi koje je knjige korisnik posudio, te koji su korisnici posudili određene knjige.

Jedno od mogućih rješenja vidi se na slici 7.2. Prikazane su strukture dviju datoteka - jedna sadrži bazu knjiga, a druga bazu korisnika. Popis (baza) knjiga, osim standardnih (uobičajenih) polja pojedinog sloga kao što su naslov, ime autora, inventarski broj (broj koji je jedinstven za svaki primjerak knjige), sadrži i polje posudilaca, koje ostaje prazno ako knjiga nije posuđena, odnosno ako je posuđena, u to se polje upisuje broj (šifra) korisnika koji ju je posudio. Usto, popis (baza) korisnika, osim standardnih podataka u slogu kao što su prezime i ime, ulica, grad, poštanski broj i korisnički broj (broj koji se jednoznačno dodjeljuje svakom korisniku/posudiocu), sadrži i pet polja pod nazivom KNJIGA_1, KNJIGA_2, KNJIGA_3, KNJIGA_4 i KNJIGA_5, u koja se upisuju inventarski brojevi knjiga što ih je korisnik posudio. Ako je pojedino polje prazno, znači da korisnik nije posudio knjigu. Na taj je način uvijek moguće vidjeti koje je knjige posudio pojedini korisnik, i obratno, koji su korisnici posudili pojedine knjige.

Tako se uz relativno malo ponavljanje pojedinih podataka uvijek mogu dobiti željeni izvještaji.

Ako bi korisnik mogao posuditi više ili neograničen broj knjiga, morali bismo uvesti posebnu datoteku u kojoj bi pojedini slog sadržavao broj korisnika i inventarski broj knjige. Na taj bismo način u tu treću datoteku mogli

 

Slika 7.1. Relacijska baza podataka. U ovom je primjeru popis adresa na slici (a) organiziran kao baza podataka na slici (b). Podaci su raspoređeni u retke i stupce. Polje je ekvivalentno stupcu, a slog retku.

4. treba postojati mogućnost da se utvrdi koje je knjige korisnik posudio, te koji su korisnici posudili određene knjige.

Jedno od mogućih rješenja vidi se na slici 7.2. Prikazane su strukture dviju datoteka - jedna sadrži bazu knjiga, a druga bazu korisnika. Popis (baza) knjiga, osim standardnih (uobičajenih) polja pojedinog sloga kao što su naslov, ime autora, inventarski broj (broj koji je jedinstven za svaki primjerak knjige), sadrži i polje posudilaca, koje ostaje prazno ako knjiga nije posuđena, odnosno ako je posuđena, u to se polje upisuje broj (šifra) korisnika koji ju je posudio. Usto, popis (baza) korisnika, osim standardnih podataka u slogu kao što su prezime i ime, ulica, grad, poštanski broj i korisnički broj (broj koji se jednoznačno dodjeljuje svakom korisniku/posudiocu), sadrži i pet polja pod nazivom KNJIGA_1, KNJIGA_2, KNJIGA_3, KNJIGA_4 i KNJIGA_5, u koja se upisuju inventarski brojevi knjiga što ih je korisnik posudio. Ako je pojedino polje prazno, znači da korisnik nije posudio knjigu. Na taj je način uvijek moguće vidjeti koje je knjige posudio pojedini korisnik, i obratno, koji su korisnici posudili pojedine knjige.

Tako se uz relativno malo ponavljanje pojedinih podataka uvijek mogu dobiti željeni izvještaji.

Ako bi korisnik mogao posuditi više ili neograničen broj knjiga, morali bismo uvesti posebnu datoteku u kojoj bi pojedini slog sadržavao broj korisnika i inventarski broj knjige. Na taj bismo način u tu treću datoteku mogli dopisivati koliko god želimo knjiga za pojedinog korisnika. Taj primjer prikazanje na slici 7.3.

Slika 7.2. Relacijska baza na primjeru posudbe knjiga (korisnik smije posuditi najviše pet knjiga)

 

Sada je trenutak da naučimo još nekoliko definicija koje smo, zapravo, već upoznali u prethodnom primjeru.

U relacijskoj se bazi tablica s organiziranim podacima naziva relacijom. Ako se vratimo na sliku 7.1.b), uočit ćemo da svaka kućica u tablici sadrži neki podatak. Svaki stupac u tablici naziva se poljem (engleski field) ili atributom. Pojedini podaci u polju mogu se mijenjati, ali svako polje sadrži istovrsne podatke, na primjer prezime i ime ili poštanski broj. U danoj relaciji postoji točno određen i stalan broj polja. Svi podaci u pojedinom retku zovu se slog (engl. record) ili n-torka (čitaj: entorka). Svaki slog sadrži stalan broj polja, ali u danoj relaciji može biti promjenljiv broj slogova. Slika 7.1.b) prikazuje tri sloga - po jedan za svaku osobu. Relacija odnosno tablica naziva se također i datotekom. Nadalje, kao što smo već naučili, datoteka baze podataka može se smatrati i skupom slogova. Iako smo uveli formalne nazive atribut, n-torka i relacija, dalje ćemo upotrebljavati njihova obična imena: polje, slog i datoteka.

Program dBASE omogućuje prilično jednostavan rad s bazama podataka strukturno sličnih onima na slici 7.2. Međutim, da bi se moglo raditi s bazama strukturno sličnim onoj na slici 7.3, potrebno je načiniti poseban program pisan programskim jezikom koji je također dio programa dBASE III plus i čije su osnove prikazane u tekstu s naslovom OSNOVE PROGRAMIRANJA u ovom poglavlju. Tehnike programiranja i sam program koji bi omogućavao rad sa složenijom relacijskom bazom podataka nisu sasvim jednostavni te je za pisanje takvog programa potrebno više iskustva i znanja. Svi koji bi željeli bolje upoznati mogućnosti programa dBASE III plus mogu svoja znanja produbiti iz više različitih priručnika i udžbenika, od kojih preporučujemo knjigu: dBASE III - organizacija i korištenje informacijskih baza, autora A. Pulića i D. Dragičevića (vidjeti popis literature).

 

Slika 7.3. Relacijska baza na primjeru posudbe knjiga. (korisnik smije posuditi neograničen broj knjiga)

 

7.2. Rad s programom dBASE III Plus

U prethodnoj godini upoznali smo osnovne karakteristike i rad s programskim paketom dBASE III PLUS (od sada ćemo ga nazivati programom dBASE). Taj program ima dvije mogućnosti zadavanja naredaba: mogu se zadavati pomoću posebnog menija (izbora) koji se zove Assistant menu (taj smo način gotovo isključivo upotrebljavali prošle godine), ili pisanjem naredaba izravno, upotrebljavajući tzv. command mode (način rada s izravnim pisanjem naredaba). Oba načina omogućuju rad s bazom te ćemo ih ponovo ukratko opisati.

 

7.2.1. Rad s pomoćnim programom ASSIST

Pri pozivanju programa dBASE na ekranu kompjutora pojavljuje se izbor (meni) pomoćnog programa ASSIST. Taj meni omogućuje odabiranje različi­tih funkcija. Kursorom je moguće odabrati bilo koji izbor ponuđen u gor­njem retku ekrana, pri čemu se pri dolasku kursora na pojedini izbor on osvijetli, a na ekranu se otvori prozor s odgovarajućim mogućnostima izbo­ra. Pojedine mogućnosti iz gornjeg retka biramo tipkama za pomicanje kursora lijevo i desno, a izbore u otvorenim prozorima kursorskim tipkama za gore i dolje. Kad osvijetlimo odgovarajući izbor, aktiviramo ga pritiskom na tipku "Enter".

 

Uključivanje u rad i pokretanje programa dBASE III Plus

Programski paket dBASE III Plus nalazi se najčešće na popisu DBASE na čvrstom disku (obično C:) vašeg kompjutora. Moguće je da se programski paket nalazi i na nekom drugom popisu (na primjer. ĐDBĐDB2), pa je to potrebno ustanoviti prije nego poželimo raditi s tim paketom. U ovim uputama pretpostavit ćemo da se radi s popisom DBASE na čvrstom disku C:.

Naredbom CD DBASE i pritiskom tipke Return ili Enter, ulazite u popis koji se zove DBASE, a naredbom DBASE <Enter>, ulazite u sam program dBASE III Plus, koji omogućuje rad s bazom podataka.

Kroz program dBASE III Plus vodi vas pomoćni program ASSIST. On na ekranu kompju­tora prikazuje različite izbore ("menije") koji pomažu u zadavanju i izvršavanju različitih naredaba programskog paketa dBASE III Plus te korisnik stoga ne mora poznavati sintak­tičku strukturu tih naredaba nego je potrebno da samo razumije kako pojedine naredbe djeluju. Assist pomaže pri stvaranju i pripremi novih i promjeni postojećih datoteka, kao i u izvođenju osnovnih operacija organiziranja, pretraživanja i ispisivanja podataka. U ovim uputama objašnjen je rad samo uz pomoć programa ASSIST jer je za samostalan rad i davanje naredaba programskog paketa potrebno više iskustva i konkretnog rada s bazom. Kad svladate osnove rada prema ovim uputama i steknete potrebno iskustvo, a time i bolje razumijevanje rada s bazom, moći ćete napustiti rad s pomoćnim programom ASSIST i uz pomoć nekog od objavljenih udžbenika za izravan rad s bazom proširiti mogućnosti upotrebe baze.

Nakon ulaska u pomoćni program ASSIST, na ekranu se, u njegovu gornjem dijelu, pojavljuje sljedeći popis mogućih izbora koji pomažu u zadavanju različitih naredaba programskog paketa dBASE III Plus:

SET UP, CREATE, UPDATE, POSITION, RETRIEVE, ORGANIZE, MODIFT i TOOLS

Iz jednog u drugi izbor prelazi se tipkama sa strelicama lijevo/desno, a na ekranu se to očituje osvjetljenjem odabranog izbora.

Svaki put kada počnete raditi s programom dBASE III Plus na ekranu će se pojaviti pomoćni program ASSIST sa svojim izborima. Ako korisnik želi vidjeti dodatne pomoćne informacije, treba pritisnuti tipku Fl. U donjem dijelu ekrana istovremeno se nalazi osvijetljeno polje s informacijama o tome da se nalazite u ASSIST-u, da radite s diskom C: te da se nalazite na prvoj od šest ponuđenih mogućnosti (opcija) izbora pod nazivom 'SET UP'. Ispod osvijetljenog polja nalaze se pomoćne informacije (da iz jednoga u drugi izbor možete prelaziti strelicama lijevo/desno, da unutar svakog izbora strelicama gore/dolje odabirete željenu mogućnost, da tipka Fl daje pomoćne informacije te da tipkom ESC možete napustiti pomoćni program ASSIST i vratiti se direktnom radu s programskim paketom dBASE III Plus (to znači da se tada on javlja s točkom "." kao znakom javljanja, engl. prompt, te da naredbe treba znati upisivati bez pomoćnog programa ASSIST). Ispod toga stoji informacija: SELECT A DATABASE FILE = odaberite datoteku baze podataka (podaci su u dBASE III Plus organizirani/smješteni u datotekama).

Ako se dogodi da pritiskom na tipku ESC izađete iz pomoćnog programa ASSIST, potrebno je pritisnuti tipku F2 ili napisati naredbu ASSIST i pritisnuti tipku <Enter>. Na taj se način vraćate u pomoćni program ASSIST.

Još jedna važna pogodnost u bazi podataka jest mogućnost da iz programa dobijete objašnjenje o svim funkcijama u sustavu. Ta pomoćna objašnjenja pisana su engleskim jezikom, a mogu se dobiti tako da pritiskom tipke ESC izađete iz ASSIST-a i zatim, kada se kao znak javljanja pojavi točka (.) napišete naredbu HELP (pomoć) te pritisnete tipku <Enter>. Isto se može postići pritiskom funkcijske tipke Fl. Sva detaljna objašnjenja o tome kako se primjenjuje naredba HELP opisana su u uvodnom izboru te naredbe. Iz naredbe HELP i čitanja objašnjenja možete izići pritiskom tipke ESC, a tada se u pomoćni program ASSIST možete vratiti na već opisani način.

Izbori se, dakle, biraju (osvjetljuju) strelicama lijevo/desno ili pritiskom tipke koja označava prvo slovo imena pojedinog izbora (slova S, C, U, P, R, O, M i T). Pojedina mogućnost bira se tada strelicama gore/dolje i tada odabire pritiskom tipke <Enter>.

Definiranje strukture baze

Baza se sastoji od skupova međusobno povezanih podataka koji se upisuju u tablicu na ekranu, koja se sastoji od određenog broja polja. U polja se upisuju pojedini podaci, pri čemu sva međusobno povezana polja čine jedan slog (zapis, engl. record).

Takva baza može biti npr. adresar, tj. popis adresa. Svaka će adresa biti jedan slog u vašoj datoteci ADRESAR.DBF. Svaka se adresa sastoji od nekoliko dijelova koji se upisuju u prazna polja tablice. Na primjer:

1. polje - prezime,

2. polje - ime,

3. polje - ulica,

4. polje - grad,

5. polje - broj telefona.

 

7.2.2. Rad s izravnim zadavanjem naredaba (COMMAND Mode)

Ako želimo izravno zadavati naredbe programu dBASE, moramo prvo isključiti pomoćni program ASSIST. To se postiže pritiskom na tipku Esc. Izbor (meni) programa ASSIST nestaje, a u lijevom donjem kutu ekrana pojavljuje se točka. Ona ima isto značenje kao i znak javljanja (C>) u DOS-u koji kazuje da možemo upisivati pojedine naredbe. Pošto upišemo naredbu, da bismo je izvršili potrebno je pritisnuti tipku Enter. Ako želimo, možemo se uvijek vratiti u pomoćni program ASSIST, tako da upišemo naredbu "ASSIST11 i pritisnemo tipku Enter. Iz programa ASSIST opet se vraćamo na izravno zadavanje naredaba pritiskom na tipku Esc. Na taj način nam oba načina rada uvijek stoje na raspolaganju.

 

7.3. Osnove programiranja

7.3.1. Naredbe programa dBASE III plus

U prethodnoj školskoj godini upoznali smo više različitih naredaba programa dBASE III plus, od kojih su najvažnije naredbe za definiranje strukture baze podataka CREATE, naredba za dodavanje podataka APPEND, naredba za promjenu podataka EDIT i naredbe za ispisivanje podataka LIST i DISPLAY, te naredba za pregledavanje i ispravljanje podataka BROWSE. Postoji još mnoštvo naredaba koje nećemo opisivati, ali se njihov kratki opis na engleskom jeziku može dobiti naredbom HELP (ili pritiskom tipke Fl). Svakako je najvažnije znati da se većina tih naredaba može uključiti u posebne programe (koji se spremaju u datoteke sa sufiksom .PRG) i tada automatski izvršavati. Ako pažljivije pregledamo sintaksu naredaba i funkcija, vidjet ćemo da je ona vrlo slična naredbama jezika BASIC. Jednako mu je slična i logika programiranja, tako da pritom nećemo imati teškoća. Kako se programira, razmotrit ćemo na primjeru programa koji će omogućiti sortiranje podataka prema hrvatskoj (a ne međunarodnoj) abecedi.

 

Nakon što ste upisali ispravno ime datoteke, pojavljuje se "formular" za definiranje polja, npr.:

ime polja vrsta širina broj decimala FIELDNAME TYPE WIDTH DEC 1__________ ____ _____ ___

Obratite pažnju na osvijetljeno polje u donjem dijelu ekrana; ono nas obavještava da radimo u izboru CREATE, na disku C:, s datotekom koja se zove ADRESAR.DBF.

Kursor se nalazi na početku polja koje treba definirati. Upišite najprije ime polja (do 10 znakova). Ako ste ispunili sav prostor, kursor će se sam prebaciti udesno na sljedeći element strukture polja, a ako niste, pritisnite Enter. Kursor se nalazi na mjestu gdje trebate upisati oznaku za vrstu polja. To može biti: C (=znakovno polje), N (=numeričko polje), D (=datumsko polje), L (=logičko polje), M (=memo polje). Upišite jednu od ponuđenih oznaka i kursor se automatski prebacuje na sljedeći element. Duljina polja je maksimalan broj znakova dozvoljen u polju (najveća duljina polja koja se može zadati jest 254); upišite željeni broj znakova i pritisnite Enter. Kada ste definirali jedno polje, kursor prelazi u 2. red odnosno 2. polje, koje definirate na isti način. Broj polja u slogu ograničen je na 128. Uočite pomoćne informacije u gornjem dijelu ekrana. Kada definirate sva polja, završite pritiskom na CTRL-END (tipku Ctrl držite pritisnutom i tada pritisnete tipku End) te pritisnite Enter. Struktura baze bit će sačuvana a na ekranu će se pojaviti pitanje:

INPUT DATA RECORDS NOW (Y/N) = želite li sada upisivati podatke?

Odgovorite li sa Y (=yes), na ekranu će se pojaviti struktura za upisivanje podataka, a iznad nje će se nalaziti pomoćne informacije.

Kursor pomičite strelicama gore/dolje, lijevo/desno, a tipkama Page Up i Page Down možete "listati" odnosno ići iz jednog "formulara" u drugi.

Postavljanjem kursora u željeno polje možete upisati podatak u prostor koji je za to predviđen. Kada je polje puno, kursor sam prelazi u novo polje, a ako nije, pritisnite Enter pošto upišete podatak. Kada popunite posljednje polje, pojavit će se novi formular za sljedeći podatak. Kada upišete sve podatke, naredbom CTRL-END podaci će biti spremljeni i program vas vraća u ASSIST.

 

7.3.2. Primjer rješenja sortiranja prema hrvatskoj abecedi

Program dBASE ima vrlo brz i efikasan program za sortiranje (odnosno indeksiranje) kojim se podaci sortiraju isključivo prema međunarodnoj abecedi, tj. prema redoslijedu znakova u tablici ASCII. Na slici 7.4. prikazan je ekran s objašnjenjem naredbe SORT (dobiva se davanjem naredbe HELP SORT).

 

Dodavanje novih podataka postojećoj datoteci

Nakon što ste kreirali datoteku baze podataka, definirali njezinu strukturu i upisali određen broj podataka, postojećoj datoteci možete dodavati nove podatke.

U ASSIST-u je osvijetljena prva mogućnost u izboru SET UP: DATABASE FILE; pritisnite Enter što znači da želite otvoriti datoteku baze podataka. Slijedi popis jedinica diska, osvijetljen je tekući C: disk, pritisnite Enter. Slijedi popis datoteka. Strelicama gore/dolje "tražite" postojeću datoteku u kojoj želite dodavati podatke i kada je pronađete, pritisnite Enter. Zatim slijedi pitanje: IS THE FILE INDEXED? (Je li datoteka indeksirana?). Upišite slovo Y (=yes) ako jest, odnosno N ako nije. Kursor se ponovo vraća na početnu poziciju. Strelicom udesno dođete na UPDATE i prvu opciju APPEND (dodavanje podataka na kraj datoteke). Pritisnite Enter.

Na ekranu se pojavljuje formular za upis novih podataka, a tipkama Page Up/Page Down možete listati/prelaziti iz jednog sloga u drugi.

U donjem dijelu ekrana u osvijetljenom se polju nalaze informacije o statusu: APPEND = dodajete nove podatke, <C:> = nalazite se na C disku, ime datoteke (npr. ADRESAR), REC:_ = tekući slog.

Kada unesete nove podatke, želite izaći iz APPEND-a; pritisnite tipku <CONTROL-END> i vratit ćete se u ASSIST.

Mijenjanje podataka u postojećoj datoteci

Postupak je jednak kao u prethodnom poglavlju, samo umjesto APPEND naredbe odaberete EDIT <Enter>. Tipkama Page Up/Page down i strelicama tražite slog i polje u kojemu želite ispraviti podatak. Podaci se ispravljaju pomoću tipaka Delete i Insert (vidi informacije u gornjem dijelu ekrana).

Naredbom <CONTROL-END> vraćate se u ASSIST.

Kopiranje datoteke

Pomoću naredbe COPY iz izbora ORGANIZE možete kopirati odabranu datoteku tako da iz postojeće datoteke baze podataka formirate novu datoteku baze. To ćete učiniti umjesto sortiranja onda kada želite da poredak slogova u novoj datoteci bude identičan izvornoj i onda kad novoj datoteci želite dodati nova polja, pri čemu ste kopiranjem uštedili vrijeme jer je osnovna struktura već definirana i samo je proširujete.

Postupak je sličan onome pri sortiranju.

 

 

Naredba SORT

Naredba SORT može sortirati (presložiti) cijelu ili dio baze podataka u bazu podataka s novim imenom i prema zadanom redoslijedu. Može se zahtijevati uzlazni sort (od manjega prema većemu - opcija /A - standardna opcija ako se ne zada ništa drugo) ili silazni sort (od većega prema manjemu - opcija /D)

 

Modificiranje strukture

Ako želite promijeniti (modificirati) strukturu baze podataka ili izvještaja, to možete učiniti iz izbora MODIFY. Postupak je potpuno jednak kao i pri izboru CREATE samo što se MODIFY odnosi na već postojeće datoteke, a naredbom CREATE stvaraju se nove datoteke.

Završavanje rada

Rad s programom dBASE III plus završava se upisivanjem naredbe QUIT i pritiskom tipke <Enter>. Na taj se način opet vraćamo u operativni sustav.

 

Moguće je i sortiranje prema više polja, a može se zadati i to da se mala i velika slova smatraju jednakima (opcija /C). Na prvi pogled sve je vrlo jednostavno, te bismo neku bazu podataka s imenom ADRESARI, koja sadrži adresar i u kojemu na primjer polje IME sadrži prezime i ime, mogli sortirati u novu bazu podataka s imenom ADRESAR2 prema podacima u polju IME na sljedeći način (ako ujedno pretpostavimo da upravo radimo s bazom ADRESARI):

SORT TO ADRESAR2 ON IME

Međutim, pritom nastaju poteškoće zbog naših slova s dijakritičkim znakovima.

Problemi pri upotrebi slova s dijakritičkim znakovima

Prije svega moramo se prisjetiti rasporeda i značenja naših slova u ASCII tablici.

Vidimo da su za naša slova uzeti znakovi s kodovima 64, 91-94, 96 te 123-126. Pri tome smo tim kodovima samo pridijelili različiti grafički oblik. Za računalo ta su slova i dalje neki znakovi, prikazani svojim kodovima, prema kojima ih ono i sortira. Prema tome, nakon sortiranja prema ASCII kodu sve će se riječi sa slovom Ž naći na početku redoslijeda, a riječi koje počinju slovima S,Đ,Ć,Č bit će na kraju redoslijeda. Ako bismo u bazi imali i podatke pisane malim slovima, nakon slova Č slijedili bi podaci koji počinju slovom ž, zatim podaci koji počinju slovima a-z, te na kraju podaci koji počinju slovima š,đ,ć,č. Budući da pri slaganju imena sva slova (i velika i mala) smatramo ravnopravnima, pri sortiranju bi bilo potrebno upotrijebiti opciju /C u naredbi za sortiranje. Tada bi naša naredba za sortiranje izgledala ovako:

SORT TO ADRESAR2 ON IME/C

Pri tome postoji još jedna poteškoća jer se u programu dBASE znakovi s kodovima 64, 91-94, 96 i 123-126 ne smatraju slovima pa se na njih ne mogu primijeniti funkcije pretvaranja malih slova u velika. Znakovi č,ć,d,š,ž ne pretvaraju se automatski u znakove Č,Ć,Đ,Š,Ž, te na njih ne djeluje opcija /C u naredbi za sortiranje.

Prijedlog rješenja

Postoji mnogo dobrih rješenja, međutim, mi ćemo se zadržati na jednome od najjednostavnijih, u kojemu ćemo i dalje upotrebljavati naredbu SORT, samo ćemo malo promijeniti podatke da bi ona djelovala na način koji želimo, tj. da se riječi sortiraju prema našem redoslijedu:

ABCČĆDDŽĐEFGHIJKLUMNNJOPQRSŠTUVWXYZŽ

Pri pronalaženju rješenja pretpostavit ćemo da bazu želimo sortirati prema velikim slovima (tj. da mala slova - na primjer 'a', smatramo velikima, npr. 'A'), te da u bazi medu podacima nigdje ne upotrebljavamo znakove za veće ili jednako (>) i manje ili jednako (<) koji imaju kodove 242 odnosno 243. Isto tako ćemo pretpostaviti da u slogu postoji definirano polje IME prema kojemu želimo sortirati bazu.

Rješenje se sastoji od toga da u sadržaju polja IME posebnom funkcijom sva mala slova osim č,ć,đ,š,ž pretvorimo u velika, zatim slova Č,č,Ć,ć,Đ,đ,Š,š, Ž,ž zamijenimo sa po dva znaka na sljedeći način:

Tako izmijenjene podatke zatim stavimo u posebno polje KLJUČ (ključ) koje prije toga moramo dodati bazi naredbom MODIFY STRUCTURE. To posebno polje mora biti dugačko koliko i polje IME ili malo dulje. Tada ćemo našu bazu sortirati prema tom novom polju KLJUČ na ovakav način:

SORT TO ADRESAR2 ON KLJUČ

Znamo da program za sortiranje radi tako da dva niza znakova koje treba usporediti i odlučiti koji je po abecedi prije na redu, uspoređuje znak po znak sve dok ne dođe do prvog različitog znaka, i tada se prema njemu odlučuje koji je niz znakova prije po redoslijedu. Ako pažljivo pogledamo što se dogodilo s našim podacima, vidjet ćemo da će sve riječi koje na primjer počinju slovom Č, a koje su zapisane kao 'C>' biti iza svih riječi koje počinju kombinacijom znakova CZ (jer je kod znaka > 242 te taj znak dolazi iz svih naših znakova), a prije svih riječi koje počinju slovom D, itd. To vrijedi i za slovo Ć, a isto tako vrijedi i za slova DŽ i Đ (razmislite o tome).

Zadavanje rješenja

Prema navedenome, naš je zadatak da napravimo program koji će u našoj bazi s poljima IME i KLJUČ najprije sva slova u sadržaju polja IME pretvoriti u velika, zatim preostale znakove Č,č,Ć,ć,Đ,đ,Š,š zamijeniti dvoslovima (-kaže se presloviti) na način opisan u prethodnoj tablici i taj rezultat spremiti u polje KLJUČ. Nakon toga baza se može sortirati pomoću naredbe SORT prema sadržaju polja KLJUČ. Pritom sadržaj polja IME ostaje nepromijenjen.

Program i objašnjenja

Prikazanje program koji obavlja zadani zadatak. Program se može napisati unutar programa dBASE pomoću naredbe MODIFY COMMAND. Ako program želimo nazvati PRESLOVI, napisat ćemo naredbu:

MODIFY COMMAND PRESLOVI

Nakon toga možemo prepisati program koristeći se uobičajenim naredbama za pomicanje kursora i brisanje znakova. Kada to obavimo, završavamo upisivanje pritiskom tipke CTRL-END (na isti način kao i pri dodavanju ili mijenjanju sadržaja pojedinih slogova pomoću naredaba APPEND ili EDIT). Tada program možemo usmjeriti na rad s bazom ADRESARI, nakon čega pokrenemo program PRESLOVI. To činimo na ovakav način:

USE ADRESARI (kazuje programu da ćemo upotrijebiti bazu s imenom ADRESARI)

DO PRESLOVI (izvršavamo program PRESLOVI. U popisu programa on se pojavljuje pod nazivom PRESLOVI.PRG)

Evo sada i programa. Naredbe (instrukcije) programa pisane su malim slovima, a varijable (promjenjivice) velikim slovima. Program je pisan tehničkim slovima, a komentari (koji nisu dio programa - sitnim, uobičajenim slovima). Program je najprije prikazan u posebnom okviru, da bi ga mogli vidjeti kao cjelinu, a zatim je svaka instrukcija ponovljena zajedno s komentarom.

PROGRAM ZA PRETVARANJE SLOVA Č,Ž,Š U DVOSLOVE

set talk off

Ta naredba isključuje ispisivanje među rezultata na ekranu, odnosno ispisivanje povratne informacije korisniku na ekranu. Program bi se vrlo sporo izvršavao kada bi se na ekranu ispisivao svaki medurezultat.

goto top

Idi na početak baze podataka.

store "ČčĆ抚ĐđŽž" to NIZ1

U varijablu NIZ1 pohrani (store) sva slova s dijakritičkim znakovima.

store "CCCCSSDDZZ" to NIZ2

U varijablu NIZ2 pohrani sve prve znakove dvosIova kojima zamjenjujemo pojedina slova iz varijable NIZ1.

store ">><<>>>>>>" to NIZ3

U varijablu NIZ3 pohrani sve ostale znakove dvoslova kojima zamjenjujemo pojedina slova iz varijable NIZ1.

do while .not. eof()

Ponavljaj sve naredbe koje se nalaze između te i posljednje naredbe enddo u programu sve dok ne dođeš do kraja baze podataka, tj. ova naredba znači: izvršava sve dok je uvjet .not. eof() istinit, odnosno, sve dok funkcija eof() ne signalizira da smo došli do kraja baze podataka. Sve naredbe između te i posljednje naredbe enddo u programu izvršit će se za svaki slog u bazi podataka. Operator .not. logički invertira značenje funkcije eof ().

store upper(rtrim(IME)) to XX

U privremenu varijablu XX (varijabla XX smatra se privremenom jer slog ne sadrži nijedno polje s imenom XX) pohrani (store) sadržaj polja IME pretvoren u velika slova (funkcija upper) -jasno, osim slova č,ć,đ,š,ž - iz kojeg (sadržaja) smo prethodno izbacili (funkcija rtrim) sve razmake s kraja polja. (Ta i sljedeće naredbe ponavljaju se za svaki slog.)

store 10 to C0UNT1

U varijablu COUNT1 pohrani broj 10 (to je broj znakova u varijabli NIZ1). Treba provjeriti sadrži li polje IME bilo koji od željenih znakova.

do while C0UNTl<>0

Sljedeći dio programa ponavlja se deset puta (koliko ima slova koja želimo zamjenjivati) za svaki slog u bazi (do pretposljednje naredbe enddo u programu).

store substr(NIZl,COUNTl,l) to ZZ

U privremenu varijablu ZZ stavi slovo (koje dolazi po redu prema varijabli COUNT1 iz varijable NIZ1). Funkcijom substr iz varijable NIZ1 vadi se niz znakova koji počinje na mjestu COUNT1 (sadržaja varijable NIZ1) u duljini jednog znaka (dakle, samo jedno slovo) i pohranjuje ga u varijablu ZZ.

store substr(NIZ2,C0UNTl,l)+substr(NIZ3,C0UNTl,l) to WW U privremenu varijablu WW stavi dvoslov kojim se zamjenjuje slovo trenutno pohranjeno u varijabli ZZ.

store at(ZZ,XX) to YY

U numeričku varijablu YY pohranjujemo vrijednost funkcije at(ZZ,XX). Funkcijom at ispitujemo nalazi li se niz znakova ZZ (slovo koje provjeravamo) u nizu znakova XX. Ako se traženi niz nalazi u ispitivanom nizu funkcija at daje mjesto na kojemu počinje traženi niz u ispitivanom nizu (dakle, vrijednost različita od nule), a ako se ne nalazi, daje vrijednost nula.

do while YY<>0

Ponavlja sljedeće dvije naredbe sve dok je vrijednost varijable YY različita od nule, tj. dok u nizu XX postoji traženi znak.

store substr(XX,l,YY-l)+WW+substr(XX,YY+l) to XX Ta naredba mijenja sadržaj niza XX koji preslovljujemo. Naime, svako pronađeno slovo s dijakritičkim znakom odmah zamjenjujemo odgovarajućim dvoslovom. Naredba znači: novi sadržaj varijable XX bit će početni niz znakova (ako postoji), tj. niz od prvog znaka pa do pronađenog slova koje treba zamijeniti - substr(XX,1,YY-1) - kojemu se pripaja (operator + koji za znakovne varijable znači pripajanje) dvoslov kojim zamjenjujemo traženi znak i kojemu se opet pripaja ostatak (još nepromijenjen) niza XX od traženog znaka - substr (XX,YY+1) - . Na taj način u početnom dijelu varijable nema više znakova Č,č,Ć,ć,Đ,đ,Š,š,Ž,ž pa stoga možemo ponovo u sljedećoj programskoj instrukciji:

store at(ZZ,XX) to YY

provjeriti nalazi li se traženi znak u ostatku niza XX (zapravo, opet ispitujemo od početka niza XX, ali u početnom smo dijelu već zamijenili naše znakove). Ako se nalazi, vrijednost varijable YY bit će različita od nule, pa će se ova i prethodne dvije naredbe ponoviti.

enddo

Kraj petlje. Vraća program na naredbu do while YY< >0. Ako vrijednost varijable YY bude jednaka nuli program će se nastaviti sljedećom naredbom iza ove (enddo).

store C0UNT1-1 to C0UNT1

Smanji vrijednost varijable COUNT1 za jedan. Idemo na sljedeće slovo koje treba zamjenjivati.

enddo

Vraća program na naredbu do while COUNT1 < >0. Kad vrijednost varijable COUNT1 postane nula, što znači da je za svih deset slova provjereno da li se nalaze u sadržaju varijable ZZ, petlja će završiti i program će se nastaviti naredbom:

replace KLJUČ with XX

Budući da smo zamijenili sva tražena slova (ako su postojala) željenim dvoslovima, u polje KLJUČ unosimo sadržaj varijable XX. tj. zamjenjujemo sadržaj polja KLJUČ sadržajem varijable XX.

skip

Naredba skip znači prelazak na novi slog u datoteci. Obradivši jedan slog prelazimo na slijedeći. Skip znači "preskoči" (na sljedeći slog).

enddo

Kraj petlje do while .not. eof(). Vraća program na tu naredbu. Kad dođe do kraja baze podataka, program se nastavlja programskom instrukcijom:

set talk on

Ponovo uključi ispisivanje međurezultata i komuniciranje s korisnikom. Budući da nakon te naredbe nema novih naredaba u programu PRESLOVI, on završava, a na ekranu se opet javlja točka kao znak da smo se vratili na način rada s izravnim zadavanjem naredaba (COMMAND mode).

U ovom programu upoznali smo neke osnovne naredbe kojima se služimo u pisanju programa za rad s bazom podataka. Zasada nije važno da znadete upotrebljavati te naredbe, nego samo to da razumijete logiku programa. Ako želite stvarno naučiti programirati, potrebno je proučiti neku od knjiga

0 programu dBASE III plus navedenih u popisu literature.

I na kraju, treba uočiti da je ovaj program samo djelomično rješenje jer ne uzima u obzir da postoje slova LJ i NJ, koja se pišu sa dva znaka i koja dolaze iza slova L odnosno N.

Što se događa sa slovima LJ i NJ

Kao što smo upravo uočili, pri pisanju prethodnog programa nismo ništa rekli o tome što se događa sa slovima NJ i LJ. Očito je da se na njih ovo rješenje ne odnosi jer bi se riječi koje počinju slovima LJ i NJ redale ne nakon slova L (odnosno nakon svih riječi koje bi mogle počinjati nizovima slova LU ili možda LZ) nego unutar slova L (tj. nakon riječi koje počinju slovima LI). Jednako vrijedi i za slovo NJ. Rješenje je jednostavno jer svaki dvoznak LJ odnosno NJ možemo zamijeniti dvoznakom L> odnosno N>. Pokušajte promijeniti program tako da uzmete u obzir i ta dva slova te činjenicu da se tada umjesto jednoga trebaju provjeravati po dva znaka. Ujedno se uočava da to rješenje nije sasvim jednoznačno jer ne uzima u obzir riječi u kojima se javlja dvoznak NJ, a ne znači slovo NJ nego NJ (na primjer injekcija, konjunkcija). Međutim, te dvije riječi (i ostale slične) vrlo su rijetke, pa se ne pojavljuju često u tekstualnim bazama podataka, a nikada se ne pojavljuju u imenima. Prema tome, možemo reci da je navedeno rješenje za LJ i NJ dovoljno dobro za praktične potrebe.

 

7.4. Nov i poboljšan program: dBASE IV

Istražujući mogućnosti programa za upravljanje bazama podataka, korisnici su ustanovili da su im potrebna mnoga poboljšanja. Stoga se nedavno kao nasljednik programa dBASE III Plus pojavio novi DBMS program dBASE IV. Program dBASE IV ima više od 200 novih i poboljšanih funkcija i radi mnogo brže od programa dBASE III Plus. Taj novi program izveden je tako da se korisnici koji poznaju program dBASE III Plus mogu odmah, bez mnogo učenja, služiti programom dBASE IV. Sve naredbe koje smo naučili u ovom poglavlju (kao i prethodne godine) upotrebljavaju se na potpuno jednak način u programu dBASE IV. I podaci iz programa dBASE III Plus mogu se upotrebljavati bez ikakvih izmjena. dBASE IV također ima i poboljšanu funkciju za davanje pomoći (objašnjenja - HELP).

U programu dBASE IV pomoćni program ASSIST zamijenjen je mnogo boljim sustavom izbora (menija) koji se nazivaju radnim površinama (work surfaces). Ti meniji omogućuju ispravljanje, prikazivanje i rukovanje podacima. Najvažniji novi izbor (meni) naziva se upravljačkim centrom (control center). Za razliku od pomoćnog programa ASSIST, upravljački centar omogućuje iskorištavanje gotovo svih mogućnosti programa dBASE IV tako da gotovo uopće nema potrebe za izravnim zadavanjem naredbi. Sve što ste naučili u programu dBASE III Plus moći ćete upotrijebiti i u programu dBASE IV, a za učenje se služite onim koji vam je dostupan.

 

7.5. Zaključak

U ovom smo poglavlju zapravo samo načeli mogućnosti programiranja i primjene programa za rad s bazama podataka. Osim navedenih osnovnih koraka, u uspostavljanju i mijenjanju baze podataka ima još veoma mnogo mogućnosti. Sve su te mogućnosti izvan opsega ovog udžbenika, ali vam preporučujemo da upoznate sve mogućnosti programa za upravljanje bazama podataka koji u budućnosti budete upotrebljavali. Trud i vrijeme uloženi u učenje i uvježbavanje višestruko će vam se vratiti i isplatiti pri daljnjem radu.

 

Pitanja za provjeru i vježbu

1. Što su baze podataka ?

2. Koje su prednosti programa za upravljanje bazama podataka ?

3. Što je relacijska baza podataka ?

4. Kako se može riješiti problem sortiranja u programu dBASE III plus?

5. Koji se problemi javljaju pri upotrebi hrvatskog standarda za raspored slova s dijakritičkim znakovima?


8. Poglavlje 
Sadržaj