11. USPOREDBA ACCESS-a I FOXPRO-a


Prije svega Access i FoxPro sustavi za upravljanje bazama podataka proizvod su istoga proizviđača, Microsoft-a. FoxPro SUBP stariji je od Access-a što se primjećuje promatrajući način na koji je on zamišljen. FoxPro je prvotno napravljen za operacijski sustav DOS te je kasnije "prebačen" u Windows okruženje kako bi se mogle iskoristiti prednosti tog okruženja. Logika funkcioniranja sustava za DOS i Windows okruženje se nije znatno promijenila.

Način rada FoxPro-a:

Za razliku od Access-a FoxPro ne rabi termin baze podataka za smještaj dijelova aplikacije već oni mogu biti zasebno smješteni na disku ili pak biti uključeni u neki projekat. Projekat predstavlja skup dijelova iz kojih kasnije prevođenjem nastaje aplikacija. Projekat je sličan bazi podataka u Access-u, ali ne treba ovdje shvaćati bazu podataka po definiciji već po tome što i projekat i baza podataka ( kao termini ) sadrže dijelove potrebne za aplikaciju te oboje to čine na isti način tj. ti su dijelovi u njihovim prozorima ( izgled baze podataka u Access-u prikazan je na slici u opisu Access-a ).

Treba napomenuti da su dijelovi aplikacije u prozoru projekta u FoxPro-u jednostavno porazbacani pa to izgleda nepregledno dok su dijelovi baze podataka složeni svaki u svojem prozoru. Kad smo već kod aplikacije možemo kao neznatnu prednost FoxPro-a navesti mogućnost kreiranja izvršnog modula aplikacije ( .EXE ) koja se može koristiti u Windows okruženju bez da se posjeduje i SUBP dok to kod Access-a nije moguće odnosno ta se mogućnost kupuje posebno što naravno predstavlja dodatan trošak u vremenima kada se to izbjegava. Također, aplikaciju u FoxPro-u je moguće dokumentirati programom koji je standardno uključen u taj sustav ( FoxDoc ) što je od velike pomoći kod pisanja, a posebno kod održavanja programa ( posebice ako se treba održavati program napisan od strane nekog drugog programera ).

Dijelovi aplikacije u FoxPro-u su slijedeći:

- tabela

- program

- tekstualna datoteka

- izvještaj

- naljepnica

- zaslon ( kao forma u Access-u )

- izbornik

- upit

Tabela kao i u Access-u sadrži podatke nad kojima će se vršiti neka obrada. Dobra je strana FoxPro-a da se kod kreiranja tabele može odrediti bilo koje polje tabele po kojem će se poredati podaci ( indeksirati ) i svi se ti indeksi pohranjuju u jednu jedinu datoteku ( tzv. compound indeks s sufiksom .CDX ). No, kod kreiranja tabele u Access-u određuje se format polja ( kako će se polje prikazivati na zaslonu ), format kod unosa, inicijalna vrijednost, pravilo validacije tj. pravilo koje se treba poštivati kod unosa vrijednosti u polje da bi se ta vrijednost pohranila u tabelu, tekst koji će se pritom ispisati kao poruka itd. Kod kreiranja tabele u FoxPro-u te mogućnosti jednostavno ne postoje. To ne znači da se to ne može ostvariti, ali je ovaj način ( sve na jednom mjestu ) puno jednostavniji, a i brži.

U FoxPro-u ove se mogućnosti ostvaruju programski i to svaki put kada se ta tabela koristi pa to može predstavljati dodatno opterećenje. Isto tako programski se mora odrediti radno podrućje u kojem će se koristiti tabela te pripadajući indeks. U jednom radnom podrućju može biti otvorena samo jedna tabela, a istovremeno može biti otvoreno najviše do 225 tabela. Ovakav rad može biti zamoran zato Access pošteđuje korisnika u tom pogledu i čini rad s tabelom puno elegantnijim.

Spominjući tabelu možemo se osvrnuti i na relacije u FoxPro-u. Dakle, FoxPro podržava iste relacijske odnose kao i Access ( 1:1, 1:M, M:N ), ali ih ostvaruje na različite načine tj. kreiraju se na različite načine. Relacijski odnos se u FoxPro-u može ostvariti na tri načina:

- preko komandi programskog jezika FoxPro-a odnosno programiranjem. Ovakav način kreiranja relacijskih odnosa Access ne podržava niti ga treba podržavati jer je bi to bilo samo nepotrebno gubljenje vremena tj. gubi se vrijeme učeći način na koji se to ostvaruje ( potrebno je voditi računa koja će se tabela otvoriti prva, polja koja će se povezivati te sintaksa jezika ).

- preko datoteka upita - jednostavniji način kreiranja relacijskih odnosa

- preko view prozora - ovaj način kreiranja relacija je vrlo vjerojatno preteča načina na koj se one kreiraju u Access-u. Access podržava jedino ovakav oblik kreiranja relacija, ali na puno pregledniji način. Preglednost će sigurno biti važan čimbenik ako se želi napisati neka veća aplikacija ili pak IS koji obuhvaća mnogo tabela koje treba na odgovarajući način povezati da se izbjegne redundancija te da se postigna brža obrada, a samim time i jedan oblik kvalitete informacijskog sustava.

Prva dva načina kreiranja relacijskih odnosa uopće nisu ni potrebna već mogu zbunjivati nove korisnike, a dozvoljeni su dijelom zbog starih korisnika koji na ovaj način navikli na građenje relacijskih odnosa, a dijelom zbog moguće potrebe građenja relacijkog odnosa prilikom programiranja što se danas izbjegava planiranjem informacijskog sustava.

Programi postoje u oba sustava samo su potpuno drugačije zamišljeni. FoxPro SUBP kao programski jezik koristi dBase jezik koji podržava komande formata dBase III te popularnog paketa dBase IV. Udružljivost komandi ranijih sustava s komandama koje se koriste u FoxsPro-u je podržana da bi omogućila što bezbolniji prijelaz starih korisnika odnosno korisnika paketa dBase na FoxPro budući da dBase nije izdan u inačici sličnoj FoxPro-u npr., ali se stanje popravilo izlazom dBase-a inačice 5.0 koji predstavlja vrlo moćan SUBP.Ovaj razlog vrlo je vjerojatan jer u svijetu postoji 15 milijuna dBase korisnika koji su se navikli na taj sustav te ga ne žele potrošiti vrijeme na učenje potpuno novog sustava ( slična je situacija s programskim jezikom COBOL koji se održao nekoliko desetljeća unatoč iole boljim sustavima te se još i danas koristi, a vjerojatno se nije odustalo ni od njegovog razvoja ).

Sam jezik ima preko stotinjak naredbi i funkcija koje je FoxPro obogatio nekom novom komandom ( komande za dinamičku razmjenu podataka, sys komande itd. ) te je ponekoj staroj komandi izmjenio oblik, no suština je ostala ista. Koristeći se ovim sustavom moguće je kompletnu aplikaciju ili informacijski sustav napisati kodiranjem liniju po liniju ( uključujući izbornike, prozore, obrasce, upite i dr. ). No, može se samo pretpostaviti koji bi to napor iziskivalo te su napravljeni sustavi koji su više orjentirani prema generatorima aplikacija nego prema pisanju koda liniju po liniju. FoxPro također ima dijelove aplikacije koji se sami generiraju na temelju korisničkih zahtjeva, ali se to moglo napraviti i bolje jer je uz te generirane dijelove obavezno potrebno napisati i koju liniju koda. Za razliku od toga u Access-u je nemoguće napisati aplikaciju kodiranjem već na principu generatora aplikacija te je to jedna od bitnih prednosti Access-a nad FoxPro-om. Dakle, FoxPro je definitivno orjentiran na pisanje djelova koda dok se u Access-u to htjelo svesti na najmanju moguću mjeru. Osim toga Access Basic nije zamišljen kao jezik kojim će se graditi kompletne aplikacije već samo kao nadopuna drugim generiranim objektima.

Izvještaj je kao i u Access-u podijeljen na više dijelova ( zaglavlje, detaljni red i podnožje ). Da bi se uštedjelo vrijeme kreiranja izvještaja može se koristiti opcija za pomoć pri izradi izvještaja ( Quick Report ), ali će se na taj način dobiti sasvim jednostavan izvještaj koji u večini slučaja neće zadovoljavati potrebe korisnika. Ova je opcija slična opciji automatskog kreiranja izvještaja u Access-u samo što Access pored toga nudi razne druge mogućnosti kreiranja izvještaja. U Access-u izvještaj može sadržavati i oko 15 različitih vrsta grafova ( te razni oblici ) dok se za te svrhe u FoxPro-u isporučuje poseban program ( FoxGraph ) čije su mogućnosti znatno slabije, a i teži je za korištenje. Osim toga u Access-u postoji mogućnost integriranja podataka iz tabele s prirednikom teksta Word fow Windows 6.0 te se izvještaj može kreirati koristeći se velikim mogućnostima prirednika teksta. Takvo što kod FoxPro-a za sada nije moguće.

Zaslon je drugi naziv za obrazac ili formu. Također, kao i kod izvještaja ne postoji mogućnost kreiranja naprednijih obrazaca već za to treba uložiti dosta truda. Ista je stvar s forma-podforma oblikom koji FoxPro podržava, ali ne postoji nikakva pomoć pri njegovom kreiranju. Forma u Access-u osim različitih vrsta formi može poprimiti i različite oblike ( uvučeno, ispupčano, uokvireno itd. ) od kojih neki u FoxPro-u uopće ne postoje. Tome se još može dodati da svaka forma u Access-u sadrži komandu za slijedeći i prethodni slog te početak i kraj tabele dok se u FoxPro-u ovo mora ostvariti programski. Dakle, općenito u Access-u je moguće napraviti zaslon koji će biti puno ugodniji za oči od zaslona u FoxPro-u. U Access-u se kontrola zaslona provodi preko njegovih karakteristika ( properties ) te preko programiranja zasnovanog na događajima dok je u FoxPro-u na raspolaganju samo druga mogućnost.

Makronaredbe u FoxPro-u ne postoje na način na koji postoje u Access-u. FoxPro može kreirati makrodatoteku koja će sadržavati makronaredbe, ali su te makronaredbe zapravo snimljeni postupci u toku rada s FoxPro-om koji ne podržavaju rad s mišem što im je veliki nedostatak. U Access-u se preko makronaredbi ostvaruju npr. izbornici dok FoxPro sadrži izbornik ( ravnopravno kao i tabelu ) kao dio aplikacije ili projekta.

Kod kreiranja upita također se uočavaju prednosti Access-a nad FoxPro-om. No, kako su te prednosti vrlo slične prednostima koje su uočene kod zaslona nije im potrebno posvećivati dodatan prostor. Razlike između tih dviju sustava postoje kod načina realizacije dinamičke razmjene podataka čiji opis slijedi.

Dinamička razmjena podataka u FoxPro-u

FoxPro podržava dinamičku razmjenu podataka kao i Access, ali za to koristi više instrukacija odnosno funkcija. To su:

- DDEInitiate( ) - DDERequest( )

- DDEExecute( ) - DDELastError( )

- DDESetOption( ) - DDESetService( )

- DDESetTopic( ) - DDETerminate( )

- DDEAdvise( ) - DDEEnabled( )

DDEInitiate( ) - uspostavlja vezu s poslužiteljskom aplikacijom ( aplikacijom kojoj je FoxPro klijent ). Kada je veza usppostavljena koristi se funkcija DDERequest( ) za dobivanje podataka od te aplikacije. Ta se funkcija ponavlja dok se ne dobiju željeni podaci te se nakon toga veza prekida funkcijom DDETerminate( ). Ako je FoxPro poslužitelj postupak je slijedeći: Funkcijom DDESetService( ) kreira se usluga i odredi se tip usluge. Funkcijom DDESetTopic( ) odredi se područje usluge i odredi se procedura odnosno što će se dogoditi kada klijent zatraži to područje odnosno uslugu.

 

Dakle, razlika je u proširenom skupu funkcija koje FoxPro koristi za dinamičku razmjenu podataka pa otuda i razlike u realizaciji DDE-a.

Općenito, može se zaključiti da je Access napredniji sustav od FoxPro-a. On za razliku od FoxPro-a koji je još uvijek orjentiran na pisanja poneke linije koda, pruža jedan veći stupanj automatizacije odnosno ima značajke aplikacijskog generatora. Postoje područja gdje je FoxPro potpuno zakazao, a to su:

- sigurnost podataka

- veza prema drugim velikim bazama podataka

No, da i na tom području stvari idu nabolje potvrđuje činjenica da je Microsoft sredinom siječnja ove godine objavio programski proizvod Visual FoxPro 3.0.

Ovaj paket velikih je mogućnosti iz kojih se mogu izdvojiti:

- vizualno stvaranje objekata

- objektna orjentacije (podržan polimorfizam i klase objekata)

- potpuna podrška za poslužilac/klijent arhtekturu

- podržavanje formata baza podataka brojnih produkata (Microsoft SQL, Oracle 6 i 7, dBase III i dBase IV, Paradox 3.x i 4.0, Excel te Access 1.x i 2.0)

- potpuna uskladivost s prijašnjim rješenjima tj. moguće je koristiti rješenja zasnovana na prijašnjim sustavima i to: FoxPro, dBase i Clipper.