|
|
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.
|