Sunteți pe pagina 1din 65

KRAMP Search

CUPRINS

1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. O incursiune lumea bazelor de date . . . . . . . . n 2.1 Notiuni fundamentale privind bazele de date . . 2.1.1 Concepte fundamentale . . . . . . . . . . 2.2 Modele de date . . . . . . . . . . . . . . . . . . 2.2.1 Modelarea datelor . . . . . . . . . . . . . 2.2.2 Entiti, legturi at a ntre entiti . . . . . . at 2.2.3 Chei, chei strine, integritate referential a a 2.3 Proiectarea bazelor de date relationale . . . . . 2.3.1 Normalizarea relatiilor . . . . . . . . . . 2.3.2 Metode de proiectare a bazelor de date . 2.4 Interogarea bazelor de date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 4 4 4 17 17 20 21 23 23 29 30 32 32 32 34 34 34 35 37 38 39 41 42 42 44 61 64 65

3. FileMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Sistemul de gestiune al bazelor de date - FileMaker . . . . . . . . . . . . . 3.1.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Crearea bazei de date, introducerea de date i modelarea layout-urilor s 3.1.3 Aarea informatiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . s 3.1.4 Regsirea informatiei . . . . . . . . . . . . . . . . . . . . . . . . . . . a 3.1.5 Simplicarea introducerii de date . . . . . . . . . . . . . . . . . . . . 3.1.6 Automatizare cu ajutorul butoanelor i a scripturilor . . . . . . . . . s 3.1.7 Baze de date relationale . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 FileMaker vs Microsoft Access . . . . . . . . . . . . . . . . . . . . . . . 3.3 Avantaje i dezavantaje FileMaker . . . . . . . . . . . . . . . . . . . . . . . s 4. Kramp Search - Aplicatie demonstrativ . . . a 4.1 Cine este i ce face Kramp . . . . . . . . s 4.2 Modul de functionare Kramp Search . . 4.3 Consideratii generale privind layout-urile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5. Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. Bibliograe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1. INTRODUCERE
Lucrarea de fat este structurat pe trei prti importante. Tema central a a a a a lucrrii este cea a bazelor de date, cu precdere a bazelor de date relationale, ca a a dovad st i aplicatia demonostrativ din nalul lucrrii. a as a a Prima parte se dorete a o incursiune lumea bazelor de date tratnd s n a aceast tem pornind de la termeni precum dat, informatie i sfrind cu notiuni a a a s as precum normalizarea bazelor de date, proiectare .a.m.d. La rndul su aceasta s a a parte are patru directii de exploare a subiectului enuntat anterior, i anume: s notiuni fundamentale privind bazele de date, modele de date, proiectarea bazelor de date relationale i interogarea bazelor de date. s Partea a doua a lucrrii prezint programul cu ajutorul cruia s-a realizat a a a aplicatia demonstrativ din partea nal a lucrrii. Directiile de interes aceast a a a n a parte sunt trei, i anume: sistemul de gestiune a bazelor de date - FileMaker, s comparatia dintre FileMaker i Microsoft Access i nu ultimul rnd avan s s n a tajele i dezavantajele utilizrii FileMaker. s a Lucrarea se ncheie cu aplicatia demonostrativ denumit Kramp Search, aplicatie a a dezvoltat scopul de folosit ca un instrument complex de cutare a artia n a a colelor comercializate de ctre compania Kramp. a

2. O INCURSIUNE LUMEA BAZELOR DE DATE IN 2.1 Notiuni fundamentale privind bazele de date
2.1.1 Concepte fundamentale Preocuparea oamenilor de a nregistra fapte i aspecte din viata cu zi de zi este s veche de mii de ani. Astfel, cea mai veche form de scriere cunoscut de istorici a a descrie, pe lnga faptele de arme ale eroilor vremii, o serie de aspecte, mult mai a comune, legate de existenta de zi cu zi a acelei societi: taxe i impoxite pltite de at s a ceteni regilor locali, procese verbale ce consemneaz deciziile judectorilor din at a a tribunale etc. Necesitatea de a organiza i gestiona aceste s nregistri este la fel de a veche i a condus, de-a lungul istoriei, la dezvoltarea a numeroase tehnici acest s n sens. Un bun exemplu este aparitia bibliotecilor, iar cel mai celebru este biblioteca din Alexandria. Aparitia i dezvoltarea tehnicii de calcul a adugat noi dimensiuni s a acestei activitti i, treptat, a condus nu numai la transpunerea pe calculator a s a tuturor tehnicilor manuale dezvoltate de-a lungul timpului, ci a permis un salt calitatibar precedent organizarea i gestionarea datelor. Astzi, bazele f a n s a de date moderne nregistreaz aspecte din cele mai diverse domenii: economie, a tiint, social, art i cultur etc. Formele de s a a s a nregistrare a informatiei sunt variate: text, numere, hrti, imagini, sunet, video .a. La ora actual sistemele a s a de gestiune a bazelor de date (SGBD) asigur accesul automat, rapid i sigur la a s volume imense de date care pot dispersate lumea n ntreag. a Notiunile de dat i informatie as activitatea de zi cu zi suntem permanent confruntati cu necesitatea de a In lua decizii. Luarea oricrei decizii este conditionat de existenta de informatii a a referitoare la situatia concret asupra creia trebuie s decidem. O decizie care a a a nu se bazeaz pe informatii clare, complete i la zi este fr nici o valoare sau, a s aa chiar mai ru, poate duntoare. a a a Datele sunt fapte culese din lumea real pe baz de observatii i msurtori. a a s a a Informatia este rezultatul interpertrii datelor de ctre un anumit subiect i a a s confer acestuia capacitatea de a lua decizii. a Aadar, datele devin informatii numai momentul interactiunii lor cu un s n sistem capabil s le interpreteze, i a crui evolutie ulterioar, poate , eventual a s a a inuentat de aceast interactiune. acest context, trebuie precizat faptul c a a In a sistemele de calcul nu prelucreaz informatii, ci date.Vorbim despre sisteme de a prelucrare a datelor nu despre sisteme de prelucrare a informatiilor, folosim baze de date i nu baze de informatii. s

2. O incursiune lumea bazelor de date n

Datele au un caracter obiectiv timp ce informatia este subiectiv. n a lumea modern informatia a devenit o component esential desfurarea In a a a n as oricrei activiti. Informatia are valoare doar dac ea inuenteaz procesul de a at a a luare a deciziilor i determin luarea unor decizii mai bune dect cele care ar s a a luate lipsa informatiei. Din acest motiv informatia trebuie s e disponibil n a a timnp util, s e corect, necontradictorie, neredondant i, general, s n a a a s n a aib o form adecvat necesitilor factorului de decizie. Aceste cerinte sunt a a a at realzabile prin existenta unui volum imens de date care trebuie culese, memorate, organizate, regsite i prelucrate mod corespunztor vederea utilizrii lor ca a s n a n a informatie. O astfel de activitate institutionalizat este legat, informatic, de a a n a notiunea de baz de date. a Baze de date - evolutie, caracteristici Activitatea de organizare i prelucrare a datelor a avut ultimii ani o evolutie s n determinat de doi factori esentiali i contadictorii care ar putea determinati a s prin urmtorii termeni: necesiti i posibiliti. a at s at Necesitile au fost mereu cretere, ce prive manipularea datelor fcnduat n s n s a a se simtit nevoia de a avea acces la date tot mai rapid, mai operativ i volum a s n din ce ce mai mare. Pe msura dezvoltrii echipamentelor de calcul i a disn a a s pozitivelor de memorare, precum i a perfectionrii tehnicilor de organizare i s a s prelucrare a datelor, posibilitile devin din ce ce mai largi, msur s satat n n a a a isfac din ce ce mai bine necesitile. Concomitent, aparitia de noi posibiliti a n at at stimuleaz formularea de noi cerinte relativ la serviciile pe care le-ar putea oferi a o baz de date. a cadrul acestei evolutii timp se disting mai multe etape dup cum urmeaz: In n a a Prima etap a evolutiei tehnicilor de organizare i prelucrare a datelor se a s caracterizeaz prin adaptarea tipurilor de organizare a datelor existente a n sistemele de prelucrare manual la conditiile tehnice impuse de utilizarea a calculatoarelor electronice Principalul tip de organizare a datelor utilizat n aceast etap este ierul. aceast etap se folosete exclusivitate a a s In a a s n prelucrarea pe loturi (batch processing) Etapa a doua- este marcat de separarea dintre structura logic de date a a i structura zic, separate prin care se realizeaz independenta zic a s a a a datelor.Se utilizeaz pe scar tot mai larg ierele secvential-indexate i cele a a a s s acces direct avnd ca suport extern de memorare discul magnetic. Prin n a separarea structurii logice de cea zic se asigur independenta aplicatiilor a a att fat de modicrile echipamentelor hardware (band magnetic, disc a a a a a magnetic,etc), ct i fat de modul de organizare al ierelor (secventiale,secventiala s a s indexate,aleatoare). aceast etap apar primele faciliti simple de protectie In a a at a datelor. Etapa a treia - este denit de aparitia ierelor integrate. Acestea permit a s realizarea a mai multe iere logice pe baza acelorai date zice. Se res s duce astfel redondanta datelor, ind posibil utilizarea comun a acelorai a n s

2. O incursiune lumea bazelor de date n

date zice de ctre mai multe aplicatii. Prin integrarea ierelor rezult a s a o structur logic unitar care urmrete s rspund cerintelor tuturor a a a a s a a a aplicatiilor. Aceste structuri integrate constituie originea notiunii de model conceptual din cadrul bazelor de date actuale, model ce contine descrierile tuturor datelor i legturilor dintre ele. s a Etapa a patra - este etapa bazelor de date propriu - zise. Trecerea la utilizarea ierelor integrate, care a oferit posibilitatea exploatrii comun s a n a acelorai date de ctre mai multe aplicatii, a fcut tot mai imperioas s a a a necesitatea realizrii independentei aplicatiilor fat de structura logic a a a a datelor. Aceasta deoarece orice modicare structura datelor, pentru a n satisface, de exemplu, cerintele unei noi aplicatii, putea atrage dup sine a modicri ale tuturor aplicatiilor care exploatau structura de date respeca tiv. Din acest motiv era necesar desprinderea din cadrul programelor a a de aplicatii a descrierii structurilor de date. Aceste descrieri care se refer a strict la datele unei aplicatii poart numele de model extern. Prin aparitia a modelelor externe, la independenta zic a datelor se adug i independenta a as logic. Aceasta a nseamn c sunt posibile modicri structura logic a a a a n a bazei de date fr ca acestea s afecteze aplicatiile. aa a aceast etap se concretizeaz modelul conceptual ca nivel virtual de In a a a organizare a datelor la care se adaug modelele externe asociate ecrui a a utilizator. Tot aceast etap apar tehnici i proceduri speciale pentru protectia i sen a a s s curitatea datelor, ct i functia de administrare a bazei de date. Redondanta a s datelor este redus la minimum. a Utilitatea i avantajele bazelor de date s Caracteristica principal a aplicatiilor de baze de date const faptul c a a n a accentul este pus pe operatiile de memorare c si regsire, efectuate asupra unor a volume mari de date, i mai putin asupra operatiilor de prelucrare a acestora aa s s cum este cazul alte domenii de aplicare a informaticii. Principala operatie care n apare orice aplicatie de baze de date este cea de regsire a datelor, scopul n a n obtinerii de informatii din baza de date. O baz de date este creat pentru a a a putea interogat! Alturi de operatiile de regsire apar mai mult sau mai a a a putin frecvent operatii de memorare, pentru introducerea de noi date baz, n a operatii de tergere pentru datele devenite inutile, ct i operatii de actualizare a s a s unor date existente deja baz. n a Organizarea datelor baze de date constituie o form de centralizare a acesn a tora, ind un echivalent informatic al bibliotecilor traditionale. Aceasta implic a existenta unui ,,bibliotecar care cazul bazelor de date poart numele de ad n a ministrator al bazei de date (ABD) - este vorba de o persoan sau un grup a de persoane, avnd atributii bine denite organizarea i a n s ntretinerea bazei de date. Centralizarea datelor prezint o serie de avantaje cum ar : a

2. O incursiune lumea bazelor de date n

1. reducerea redondantei datelor memorate; 2. evitarea inconsistentei datelor memorate; 3. posibilitatea partajrii datelor; a 4. ncurajarea introducerii standardelor; 5. posibilitatea aplicrii restrictiilor de securitate; a 6. mentinerea integritii datelor. at Arhitectura unei baze de date Intre calculatorul care opereaz asupra datelor care se prezint sub form de a a a biti i utilizatorul unei baze de date care manipuleaz concepte, mai mult sau mai s a putin abstracte, de genul ntreprindere, furnizori, angajati, conturi, etc. se inter pun mai multe nivele de abstractizare a datelor. Asigurarea independentei zice i logice a datelor impune adoptarea unor arhitecturi de baze de date organizate s pe cel putin trei nivele: nivelul intern (baza de date zic); a nivelul conceputal (modelul conceptual, schema conceptual); a nivelul extern (modelul extern, subschema, vedere). Schema general a unei baze de date care respect o asemenea organizare este a a prezentat gura 1.1. a n Nivelul intern Poart i numele de baz de date zic, este o colectie de iere, continnd as a a s a datele zice, la care se adaug diverse structuri auxiliare menite s asigure accea a sul optim la aceste date. Structurile auxiliare pot : directoare, indeci, pointeri, s tabele de dispersie .a.m.d. Baza de date zic este rezident memoria ses a a n cundar a calculatorului, general pe discuri magnetice sau, mai recent, pe a n discuri optice. Modul de organizare al bazei de date zice este mare msur n a a inuentat de conguratia echipamentelor hardware care suport baza de date a i de sistemul de operare. Schimbarea sistemului de operare sau modicri s a n conguratia echipamentelor hardware pot atrage modicri ale bazei de date z a ice. Totui, dac este satisfcut conditia de independenta zic a datelor, aceste s a a a a modicri nivelul intern al bazei de date nu vor afecta nivelele superioare ale a n acesteia.

2. O incursiune lumea bazelor de date n

Fig. 2.1:

Schema general a unei baze de date a

Modelul conceptual Este o abstractizare a unei prti din lumea real i cont din descrierea struca as a turii logice a datelor dintr-o baz de date. Fiecare baz de date are un model a a conceptual propriu prin care sunt numite i descrise toate unitile logice din baza s at de date, mpreun cu legturile dintre acestea. Prin unitile logice elegem aici a a at nt concepte de tipul celor cu care opereaz utilizatorii bazei de date, concepte prin a care acetia si modeleaz aplicatiile. s a Modelul conceptual integreaz viziunile tuturor utilizatorilor asupra bazei de a date, ind rezultatul unui compromis ntre cerintele, adesea conictuale, ale di verselor categorii de utilizatori. Realizarea unui asemenea compromis este absolut necesar pentru a posibil folosirea comun a datelor. a a n Modelul conceptual specic ce anume poate face parte din baza de date, rea spectiv ce anume nu poate face parte din baza de date, iar aceasta rezult din a

2. O incursiune lumea bazelor de date n

specicarea unor constrngeri explicite asupra datelor. Constrngerile reprezint a a a proprieti ale datelor care nu pot exprimate prin descrieri de structur. Aceste at a proprieti se refer la restrictii asupra valorilor pe care le pot lua datele sau la at a restrictii privind legturile dintre diferite uniti logice. Constrngerile pot a at a declarate de ctre proiectantul bazei de date i integrate modelul conceptual al a s n acesteia. Inaintea oricrei operatii de actualizare a bazei de date sunt vericate a mod automat constrngerile aferente. Dac actualizarea conduce la violarea n a a vreuneia din constrngeri, atunci executia acesteia este interzis. Tot modelul a a n conceptual sunt specicate anumite msuri de securitate i integritate, cu caracter a s general, referitoare la anumite uniti logice. at Trebuie subliniat faptul c modelul conceptual este o descriere a continutului a de informatie al bazei de date i nu cuprinde nici un fel de referire la modul s de memorare al datelor sau la strategia de acces. Prin modelul conceptual se realizeaz o gestiune independent a structurii logice generale a bazei de date, a a gestiune care cade sarcina administratorului bazei de date, utilizatorul ind n astfel degrevat de necesitatea de a cunoate s ntreaga structur a bazei de date. a Prin modelul conceptual este realizat independenta zic a datelor. Moda a elului conceptual i se asociaz o transformare care denete modul care struca s n tura logic de date este transpus structura zic de memorare. Aceasta este a a n a interfata dintre modelul intern i cel conceptual. La nivelul acestei interfete se spe s cic structurile zice de date folosite pentru implementarea structurilor logice, a strategiile de acces la aceste structuri zice, organizarea pe suportul de memorare, indexrile folosite .a.m.d. Modicri structura de memorare sau schimbarea a s a n suportului magnetic pot afecta doar interfata model conceptual - model intern implicnd de exemplu modicarea strategiilor de acces, dar nu afecteaz modelul a a conceptual. Acesta este mecanismul de realizare al independentei zice a datelor. Modelul extern Poate privit ca o descriere a unei ,,baze de date virtuale corespunztoare a unui utilizator sau grup de utilizatori. Aceast descriere este fcut termenii a a a n unitilor logice din modelul conceptual. De regul, un model extern curpinde o at a parte a unitilor logice dintr-un model conceptual, dar poate contine i uniti at s at logice care nu exist modelul conceptual i care nu au corespondent direct a n s baza de date zic. Acestea din urm sunt uniti logice virtuale i pot n a a at s obtinute prin modicarea unor uniti logice reale sau prin combinarea a dou at a sau mai multe uniti logice reale. at Modelul extern este nivelul cel mai apropiat de utilizator. Fiecrui utilizator a sau grup de utilizatori corespunde un model extern propriu, individualizat i n raport cu cerintele sale specice. Modelul extern corespunztor unui utilizator a este ceea ce vede acesta din baza de date sau modul care vede acesta baza n de date. Modelul extern este derivat din modelul conceptual, dar poate prezenta deosebiri substantiale fat de acesta. Prin folosirea modelelor externe se realizeaz a a o relaxare a situatiei de conict care apare atunci cnd se dorete integrarea a s punctelor de vedere ale diverilor utilizatori s ntr-un model conceptual unic. Termenul tehnic adesea folosit pentru modelul extern este acela de vedere.

2. O incursiune lumea bazelor de date n

10

Prin modelul extern se realizeaz independenta logic a datelor. Fiecrei a a a vedri corespunde o descriere termenii unitilor logice din modelul concepi n at tual. Aceast descriere denete transformrile prin care din structura logic a s a a de la nivelul modelului conceptual rezult modelul extern. Aceste transformri a a denesc interfata dintre modelul conceptual i modelul extern. Modicrile mod s a elului conceptual pot determina modicri ale acestei interfete, deci modicri a a ale descrierii vederii, dar nu pot afecta vederea sine aa cum este ea perceput n s a de utilizator. Acesta este mecanismul de realizare al independentei datelor. Utilizatorii bazelor de date O baz de date poate avea unul sau mai multi utilizatori. functie de rolul a In acestora se disting trei clase de utilizatori ai bazelor de date: 1. Programatorii de aplicatii, sunt cei care scriu programele ce utilizeaz a bazele de date. Indiferent de limbajul de programare utilizat, aceste programe asigur accesul la datele stocate baza de date, adgarea de noi a n a date, tergerea sau modicarea datelor existente. Aceste functii se execut s a printr-o interogare adresat SGBD-ului. a 2. Utilizatorii nali, cuprind dou categorii de utilizatori: a Utilizatorul expert, informatician, cunoscnd limbaje de programare i a s limbajele bazelor de date. Utilizatorul neinformatician sau utilizatorul ,,naiv, care nu este specilist baze de date. n Utilizatorii nali, interactioneaz cu baza de date de la o statie de lucru a sau de la un terminal, utiliznd e una din aplicatiile mentionate la punctul a precedent, e o interfat care face parte integrant din SGBD. a a 3. Administratorul BD, care asigur administrarea unitar a datelor din a a baza de date. Functiile asigurate de ctre administratorul bazei de date a sunt: denirea schemei conceptuale ( care sunt incluse i regulile care s n s a asigure integritatea datelor); denirea schemei interne; denirea schemei externe (sau sprijinirea utilizatorului nal denirea n acestora); denirea procedurilor de salvare i restaurare; s denirea utilizatorilor bazei de date i a drepturilor de acces (la baza de s date sau la anumite obiecte ale bazei de date); supervizarea performantelor i asigurarea evolutiei bazei de date; s etc.

2. O incursiune lumea bazelor de date n

11

Tipologia bazelor de date Bazele de date s-au impus rapid ca solutie ecace i ecient de gestiune a s a colectiilor de date structurate i voluminioase din organizatii. Exitinderea uti s lizrii tehnologiilor informationale procese operationale, informationale i de a n s decizie a dus la tipizarea bazelor de date functie de rolul lor. n J. A. OBrein1 consider c organizatiile informatizate pot utilizate urmtoarele a a n a tipuri de baze de date: baze de date operationale, stocheaz datele cu privire la sistemele operationale a (SO) din organizatii. Ele mai sunt cunoscute i sub numele de baze de s date de domeniu ntruct stocheaz date privind tranzactiile dintr-un anumit a a domeniu de activitate. Este cazul bazelor de date de gestiune a productiei, aceeai categorie a bazelor de date de gestiune a resurselor umane, etc. In s sunt incluse i bazele de date suport pentru sistemele de schimb informas tizat de date. Bazele de date operationale constituie nucleul sistemelor informationale din organizatii. baze de date de informare a executivului, stocheaz, de regul, rezula a tate ale prelucrrii datelor din bazele de date operationale i/sau din bazele a s externe (bnci de date). Aceste baze de date suport sistemele informationale a a pentru executive. baze de date multidimensionale sunt baze de date integrate, nevolatile i istorizate, organizate pentru a ajuta procesul de management. Ele se s n grupeaz i integreaz date: as a din surse diferite: interne (baze de date operationale pe domenii de activitate) sau externe (baze de date on-line sau baze de date ale unor organsime specializate cum ar directia de statistic, camera de comert a i industrie). s din perioade diferite: timpul reprezint o dimensiune de baz analiza a a n datelor. Evolutia timp este esential. n a nevolatile, care este o consecint a istorizrii. Datele nu fac obieca a tul actualizrii. O explorare anume (o interogare) efectuat la moa a mente diferite trebuie s duc la obtinerea aceluiai rezultat la momente a a s diferite. de detalii sau agregate. Datele de detaliu sunt deduse din sistemele tranzactionale prin procese de extragere i de transformare. Datele s agregate se materializeaz a ndeosebi structuri multidimensionale care n permit utilizatorilor s efectueze intersectii de date. a baze de date externe pot contine date comerciale sau date statistice i s pot accesate on-line liber sau mijlocind un anumit tarif. Astfel de baze de date pot puse la dispozitia organizatiilor e de ctre alte organizatii, e a de ctre organisme functionale. a
1 James A. OBrein, les systems dinformation de gestion: la perspective du gestionnaire utilisateur, ERPI, Montreal, Canada, 1995

2. O incursiune lumea bazelor de date n

12

Dup modul de accesare bazele de date pot : a colective, accesate de ctre mai multi utilizatori. Majoritatea bazelor de a date din organizatii sunt colective. individuale, accesate exclusiv de ctre cel care le gestioneaz. Ele se a a alnesc mai rar organizatii i in mai mult de practica unor cadre de connt n s t ducere de a-i dezvolta baze de date cu informatii personale. Distribuirea s informaticii birouri i convivialitatea unor aplicatii orientate utilizator n s nal fac posibil o asemenea orientare. a Dup modul de localizare (stocare) al datelor, bazele de date pot : a locale, stocate de regul pe server-ul unei retele locale de calculatoare i a s utilizate de pe mai multe calculatoare client. distribuite, stocate partial sau total diferite puncte ale unei retele dis n tribuite de calculatoare (folosite, de regul, institutiile bancare). a n Dup tipul datelor gestionate i specicitatea lor, bazele de date pot : a s conventionale, ce contin date alfanumerice clasice. multimedia, ce contin dare multimedia (imagini, sunete, etc.). textuale, ce contin documente Sisteme de gestiune a bazelor de date - SGBD Arhitectura general a unui SGBD a Un SGBD (Fig. 1.2) constituie o interfat a ntre utilizatori i BD, care permite s

Fig. 2.2:

Schema general a unui SGBD a

principal crearea, actualizarea i consultarea acesteia. acest context putem n s In

2. O incursiune lumea bazelor de date n

13

deni SGBD-ul ca un instrument de asamblare, codicare, aranjare, protectie i s regsire a datelor BD. a n Functiile generale pe care le ndeplinete un SGBD sunt: s memorarea datelor pe suportul extern prin sistemul de gestiune a ierelor; s gestiunea datelor i a legturilor dintre ele vederea regsirii rapide prin s a n a itermediul sistemului de acces (SGBD intern); introducerea i extragerea datelor dinspre exterior forma cerut de utilizas n a tor prin intermediul SGBD-ului extern. Obiectivele unui SGBD Obiectivul principal al unei BD este de a separa descrierea datelor fat de a programele de aplicatii, idee care a fost exprimat pentru prima dat anul a a n 1965. Pentru atingerea acestui obiectiv este necesar o abstractizare a datelor a memorate BD. Astfel s-a ajuns ca astzi s existe 3 niveluri de reprezentare i n a a s perceptie a unei BD: extern, conceptual i intern. s Pornind de la obiectivul principal putem spune c principalele obiective ale a SGBD-ului sunt: independenta zic a datelor; a independenta logic a datelor; a manipularea datelor prin limbaje declarative (neprocedurale); administrarea ntr-o manier ct mai simpl a datelor; a a a ecacitatea accesului la date; partajarea datelor. Independenta zic a datelor a Modelul intern a BD descrie modul care datele sunt organizate pe suportul n zic (iere, s nregistrri) precum i metodele de acces, criteriile de ordonare i a s s regsire ale acestora, astfel at s se asigure un grad de performanti suplete a nc a as ct mai ridicat. a Independenta zic a datelor conts posibiliatea de a schimba organizarea a a n intern a datelor i structurile de a s nregistrare, fr a modica programele care aa le folosesc (programe utilizator). Raportndu-ne la structura celor 3 niveluri, a aceasta nseamn independenta modelului intern de cel conceptual, care descrie a aceleai date, dar pe niveluri diferite. Spre exemplu, pe baza unor criterii de s performant i exibilitate a accesului la date, se pot adga indeci noi, se pot a s a s reorganiza anumite iere, fr a afecta modelul conceptual. s aa Independenta logic a datelor a Modelul conceptual a BD se obtine printr-o sintez i integrare a modelelor as externe, care reprezint interese informationale de grup sau individuale. aceste a In conditii, este normal ca ecare grup de utilizatori s aib posibilitatea s-i mod a a as ice timp cerintele informationale fr a afecta modelul conceptual al BD. n aa

2. O incursiune lumea bazelor de date n

14

Independenta logic a datelor const posibiliatea de a modica modelele ex a a n terne fr a modica modelul conceptual. Principalele avantaje ale independentei aa logice a datelor sunt urmtoarele: a permite oricrui grup de utilizatori s vizualizeze datele aa cum si doresc; a a s permite evolutia timp a modelelor externe ale ecrui grup de utilizatori n a fr a afecta modelul conceptual; aa permite evolutia unui anumit model extern fr a afecta celelalte modele ex aa terne. Manipularea datelor prin limbaje declarative(neprocedurale) general, exist dou categorii de utilizatori care manipuleaz datele dintr-o In a a a BD: utilizatorii interactivi care, de regul, nu sunt informaticienii i programaa s torii. Prima categorie, are nevoie de limbaje de interogare foarte simple, apropiate de limbajul natural, care s le permit a a ntr-o manier foarte simpl s-i obtin a a as a informatiile de care au nevoie. Un exemplu de astfel de limbaj, care estei stan s dardizat, este SQL (Structured Query Language). Cea de-a doua categorie de utilizatori (programatorii de aplicatii) folosesc de regul limbaje procedurale cum a sunt cele traditionale, limbaje orientate obiect sau limbaje din generatia a 4-a orientate pe descrierea specicatiilor la nivel utilizator nal. Administrarea ct mai simpl a datelor a a Un SGBD trebuie s furnizeze instrumente adecvate pentru descrierea datelor, a att din punct de vedere al schemei externe, ct i al schemei interne. a a s Operatiile de descriere i de modicare a descrierii datelor sunt cunoscute sub s numele de administrarea datelor. Pentru a permite un control ecient asupra datelor i a rezolva diferite conicte care pot aprea cu ocazia denirii acestora, s a aceast operatie cade sarcina unui grup restrns de persoane numite adminisa n a tratori de date. Administrarea centralizat a datelor, nu conduce totdeauna la a realizarea unor BD performante, capabile s multumeasc categorii de utilizatori a a diferiti. Pentru a atura acest impediment, SGBD-urile actuale ofer instru nl a mente adecvate care permit o descentralizare a descrierii datelor, asigurnd a n acelai timp coerenta necesar s a ntre diversele descrieri partiale. Ecacitatea accesului la date Fiecare utilizator dorete ca interogrile sale asupra BD s furnizeze informatiile s a a necesare acestuia ntr-un timp ct mai scurt. Exist doi parametri care msora a a a a performantele accesului la date: numrul de tranzactii pe secund i timpul de a as rspuns. Dimensiunile celor 2 parametri sunt dependente i de modul care a s n sistemul de operare al calculatorului, sub care functioneaz SGBD-ul, aloc i a a s partajeaz resursele zice. a Un element foarte important care inuenteaz aceti parametri constituie a s l operatiile de intrare/ieire pe disc. Pentru a optimiza aceste operatii, majoritatea s SGBD-urilor actuale folosesc memorii cache, unde se depoziteaz datele cele a mai frecvent utilizate pe parcursul executiei unei aplicatii. Partajarea datelor Aceasta se realizeaz prin controlul accesului concurent la BD. Mai multi a utilizatori vor s acceseze simultan aceeai a s nregistrare din BD. Fizic, acest lucru

2. O incursiune lumea bazelor de date n

15

nu este posibil deoarece mecanismul de acces la disc i la memoria intern este s a unic. Prin urmare cererile de acces simultane, sunt nregistrate ntr-un r de ateptare i sunt deservite s s ntr-o anumit ordine. a Coerenta datelor Const respectarea unor dependente care pot exista a n ntre datele din BD. Regulile explicite sau implicite pe care datele trebuie s le respecte de-a lungul a evolutiei lor BD, se numesc restrictii de integritate. SGBD-ul trebuie s e ca n a pabil s pstreze coerenta datelor prin vericarea acestor restrictii de integritate. a a Redundanta controlat a Se refer la posibilitatea de a a nregistra unele date, eliminnd astfel situatiile a de nregistrare multiple. Cu ct redundanta este mai mic cu att performantele a a a BD cresc. Securitatea datelor se refer la dou aspecte: a a accesul controlat al utilizatorilor la BD (condentialitate); refacerea BD urma unor avarii. n Condentialitatea datelor este asigurat prin proceduri de: a identicare a utilizatorilor prin nume sau cod; autenticarea prin parole; autorizare a accesului diferentiat prin drepturi de creare, consultare, modi care sau tergere pentru anumite segmente de date. s Baza de date trebuie s e protejat a a mpotriva unor distrugeri logice (anomalie de actualizare) sau zice. Pentru acestea SGBD-ul trebuie s ofere instrumente a pentru: crearea unor puncte de reluare; altfel spus, salvarea din timp timp a unor n copii curente ale BD; gestiunea unui jurnal de tranzactii; lista operatiilor realizate asupra BD dup a primul punct de repriz. a Dac apare o anomalie, care ar putea distruge BD, pe baza copiei de la ula tima repriz i a jurnalului de tranzac ctii, se poate reface baza de date forma as n initial. Protectia a mpotriva unei distrugeri zice se face prin realizarea unor copii a BD. Functiile unui SGBD Principalele functiuni ale unui SGBD sunt: descrierea datelor, actualizarea i s interogarea BD, conversia datelor dintr-un format altul, asigurarea controlului n integritii, concurentei i securitii datelor. at s at Descrierea datelor SGBD-ul trebuie s e capabil s deneasc datele (schemele: extern, concepa a a a tual, intern i legturile corespondente) prin intermediul unui limbaj specializat a as a DDL (Description Data Language), ntr-o form unicat numit schem surs a a a a a i apoi s compileze aceast schem s a a a ntr-o form intern numit schem obiect. a a a a

2. O incursiune lumea bazelor de date n

16

Intr-un SGBD care suport cele 3 niveluri de descriere a datelor exist 3 a a administratori de date: administratorul bazei de date, care are rolul de a deni schema intern i a s regulile de trecere de la schema conceptual la cea intern; a a administratorul organizatiei, care denete schema conceptual; s a administratorul aplicatiei, care denete schema extern i regulile de corespondent s as a cu schema conceptual. a Cele 3 scheme i procedurile de trecere dintr-una alta sunt s n nregistrate n dictionarul de date, care poate divizat dou: dictionarul organizatiei, n a care va contine schema conceptual cu procedurile aferente acesteia i dictionarul a s bazei de date, care contine schemele intern i extern, cu procedurile de tre as a cere aferente. aceste dictionare, informatiile sunt memorate format surs In n a i obiect. Un dictionar de date organizat sub forma de baze de date se numete s s metabaz. Un SGBD furnizeaz comenzi pentru a deni schemele intern, cona a a ceptual i extern. as a Interogarea bazei de date Se obinuiete s se includ functia de interogare att cutarea i extragerea s s a a n a a s datelor ct i actualizarea bazei de date (adugare, modicare, tergere). a s a s Cel mai utilizat limbaj de interogare a BD este limbajul SQL. O cerere de interogare se deruleaz 4 etape: formulare folosind limbajul de manipulare a a n datelor (DML: Data Manipulation Language, care este un subset al limbajului SQL), compilare, optimizare i executie. s SGBD-urile trebuie s posede un compilator (analizator) al cererilor de ina terogare, care s permit analiza sintactic i evaluarea acestora. Pentru a valida a a as cererile de interogare, compilatorul utilizeaz dictionarul de date i le descoma s pune operatori relationali, pe care-i structureaz sub forma unui arbore, n a n care nodurile reprezint operatorii, iar elementele de pe ultiumul nivel reprezint a a relatiile. O cerere de interogare compilat este transmis etapa urmtoare de a a n a optimizare, care caut strategia cea mai rapid pentru executia acesteia. a a urma optimizrii, cererile de interogare sunt transformate tranzactii. O In a n tranzactie este format din una sau mai multe cereri de interogare, care se vor a executa, din punct de vedere logic mpreun (ca entitate functional). a a Executia unei tranzactii implic doua operatii principale: gestiunea tranzactiilor a concurente i executia propriu-zis. s a Conversia (transformarea) datelor Const posibilitiile pe care SGBD-ul le ofer pentru trecerea datelor a n at a ntre cele 3 niveluri: extern, conceptual i intern. Pentru aceasta SGBD-ul trebuie s s a cunoasc corespondentele existente a ntre niveluri. Controlul integritii datelor at SGBD-ul trebuie s asigure coerenta datelor. Toate regulile implicite sau a explicite care trebuie s asigure integritatea datelor cunoscute sub numele de a restrictii de integritate: integritatea cheii primare, potrivit creia, valorile cheii primare nu trebuie s a a e nule;

2. O incursiune lumea bazelor de date n

17

integritatea referirii, potrivit creia valorile cheii externe trebuie srefere oblia a gatoriu valorile cheii primare corespondente; integritatea de domeniu, prin care valorile unui atribut trebuie s apartin a a domeniului denit de utilizator; etc. Gestiunea tranzactiilor Este important ca un SGBD s asigure gestiunea tranzactiilor. O tranzactie a este o functie care face ca baza de date s treac dintr-o stare BD1 a a ntr-o stare BD2. Totul este ca aceast trecere s lase baza de date a a ntr-o stare coerent. Se a opereaz cu concepte precum: a atomicitatea tranzactiilor (Transaction Atomicity) - o tranzactie este total executat sau nu este executat deloc; a a corectia tranzactiilor (Transaction Correctness) - semnic respectarea coerentei a bazei de date dup executarea tranzactiilor; a izolarea tranzactiilor - modicrile produse de ecare tranzactie sunt vizibile a la sfritul tranzactiei. as Securitatea datelor Un SGBD trebuie s garanteze securitatea datelor. Acest deziderat se reala izeaz prin intermediul unui mecanism de control al drepturilor de acces la date a i de restaurare a BD cazul unor pene sau erori. s n Foarte multe SGBD-uri noi posed o serie de functii noi cum sunt: a posibilitatea de a declana anumite proceduri atunci cnd sunt s a ndeplinite anumite conditii asupra datelor din BD; introducerea unor reguli de inferente, care permit deducerea unor date noi pe baza celor existente; posibilitatea de a gestiona obiecte complexe (hrti, grace, lme), ceea ce a a condus la baze de date multimedia.

2.2 Modele de date


2.2.1 Modelarea datelor Un model este o abstractizare a unui sistem, care capteaz cele mai importante a trsturi caracteristice ale sistemului (concepte), relevante din punct de vedere aa al scopului pentru care se dinete modelul respectiv. Tehnica de identicare a s trsturilor caracteristice esentiale ale unui sistem se numete abstractizare. aa s Un model de date stabilete regulile de organizare i interpretare a unei colectii s proiectarea bazelor de date se folosesc, de regul, mai multe modele de date. In a de date, care se pot clasica dou categorii: modele conceptuale de nivel n a nalti s modele de specialitate. Un model conceptual de nivel nalt al datelor contine o descriere concis a a colectiilor de date care modeleaz activitatea dorit, fr s detalieze modul de a a aa a reprezentare sau de prelucrare a datelor.

2. O incursiune lumea bazelor de date n

18

Modelele specializate de date impun anumite structuri apeciale de reprezentare a multimilor de entiti i a asocierilor dintre acestea, structuri pe baza crora at s a sunt dezvoltate sistemele de gestiune a bazelor de date. Intr-un astfel de model de date, o baz de date este reprezentat print-o schem conceptual specic. a a a a a Trecerea de la modelul conceptual de nivel nalt la un model de date specic reprezint etapa de proiectare logic a bazei de date care asigur corespondenta a a a dintre schema conceptual de nivel a nalt a bazei de date i schema conceptual s a specic modelului de date respectiv. a Modele conceptuale de nivel nalt Cel mai utilizat model conceptual de nivel nalt este modelul Entitate-Asociere (E-A), care reprezint schema conceptual de nivel a a nalt a bazei de date prin multimi de entiti i asocieri dintre acestea. Dezvoltarea acestui model, astfel at s at s permit extinderea tipurilor de entiti, este cunoscut sub numele de nc a a at a model Entitate-Ascociere Extins (E-AE). Proiectarea modelului E-A sau al modelului E-AE este, de regul, una dintre primele etape proiectarea bazelor de a n date, etap numit proiectarea schemei conceptuale. a a Modelul Entitate-Asociere Modelul Entitate-Asociere (Entity-Relationship Model), introdus 1976 n de P. S. Chen, este un model conceptual de nivel nalt al unei baze de date, care denete multimile de entiti i asocierile dintre ele, dar nu impune nici un mod s at s specic de structurare i prelucrare (gestiune) a datelor. s O entitate (entity) este ,,orice poate identicat mod distinctiv; o enn titate se refer la un aspect al realitii obiective care poate deosebit de restul a at universului i poate reprezenta un obiect zic, o activitate, un concept, etc. Orice s entitate este descris prin atributele sale. a Un atribut (attribute) este o proprietate care descrie un anumit aspect al unei entiti. at O asociere (relationship) este o corespondent a ntre entiti din dou sau mai at a multe multimi de entiti. Gradul unei asocieri este dat de numrul de multimi at a de entiti asociate. Asocierile pot binare sau multiple. at Cardinalitatea (multiplicitatea) unei asocieri fat de o multime de a entiti (cardinality, multiplicity) este numrul maxim de elemente din acea at a multime care pot asociate cu un element din alt multime a asocierii. a Modelul Entitate-Asociere Extins Modelul Entitate-Asociere Extins (Enhanced Entity-Relationship Model) permite denirea de subtipuri ale unui tip de entiti, care motenesc atribute at s de la tipul de entitate pe care extind (i care, acest context, se numete l s n s supertip) i au plus atribute specice semnicatiei lor. Prin denirea tipurilor s n i a subtipurilor de entiti se pot crea ierarhii de tipuri de entiti pe mai multe s at at neveluri. Specializarea (specialization) este un proces de abstractizare a datelor prin

2. O incursiune lumea bazelor de date n

19

care, pornind de la un tip de entitate dat, se denesc unul sau mai multe subtipuri, diferentiate ntre ele functie de rolul specic pe care au modelul de date. n l n Generalizarea (generalization) este procesul de abstractizare invers specializrii, prin care se creeaz un supertip de entitate pornind de la mai multe a a tipuri de entiti. at Motenirea atributelor. Proprietatea principal a ierarhiilor de tipuri s a de entiti create prin specializare sau generalizare este motenirea atributelor: at s atributele tipurilor de entiti de nivel ridicat (supertipuri) sunt motenite de at s tipurile de entiti de nivel sczut (subtipuri). at a Modele de date specializate Modelul de date ierarhic modelul ierarhic (Hierarchical Model) o baz de date se reprezint printr-o In a a legtur ierarhic de a a a nregistrri de date (records) conectate prin legturi (links). a a Modelul de date retea Modelul retea (Network Model) folosete o structur de graf pentru denirea s a schemei conceptuale a bazei de date; nodurile grafului sunt tipuri de entiti at ( nregistrri - records), iar muchiile grafului reprezint mod explicit asocierile a a n (legturile - links) dintre tipurile de entiti. a at Modelul de date relational Modelul relational (Relational Model) se bazez pe notiunea de relatie (re a lation) din matematic, care corespunde unei multimi de entiti de acelai tip a at s i are o reprezentare uor de eles i de manipulat, ce const dintr-un tabel s s nt s a bidimensional, compus din linii i coloane. Fiecare linie din tabel reprezint o s a entitate i este compus din multimea valorilor atributelor entitii respective, s a at ecare atribut corespunznd unei coloane a tabelului. a Modelul de date obiect-orientat Modelul obiect (Object Model) este un concept unicator tiinta calculan s toarelor, ind aplicabil programare, proiectarea hardware-ului, a interfetelor, n n a bazelor de date, etc. Sistemele de baze de date obiect-orientate se bazeaz pe a limbaje de programare obiect-orientate cu capaciti de persistent, care datele at a n sunt independente de timpul de viat al programelor care le creeaz sau acceseaz, a a a prin memorare pe suport magnetic. Modelul de date orientat-relational Modelul obiect-relational (Object-Relational Model) reprezint extinderea mod a elului relational cu caracteristici ale modelului obiect, extindere necesar pentru a realizarea bazelor de date care denesc i prelucreaz tipuri de date complexe. s a

2. O incursiune lumea bazelor de date n

20

2.2.2 Entiti, legturi at a ntre entiti at Un model conceptual cuprinde descrierea tuturor entitilor unei baze de date at mpreun cu toate legturile existente a a ntre ele. O entitate este un continut de sine stttor, o realitate obiectiv care exist prin ea ai. Orice entitate este aa a a nss cadrul modelelor de date aceste procaracterizat prin proprietile sale. In a at prieti sunt reprezentate prin atribute. Entitile, la rndul lor, sunt reprezenat at a tate prin tipuri de entiti. Un tip de entitate este o reprezentare cadrul at n unui model de date care corespunde unei categorii de obiecte din lumea real a i constituie intensiunea acestei categorii. Din punct de vedere tehnic tipul s de entitate corespunde denitiei unei entiti termenii atributelor sale, ind at n rezultatul agregrii acestor atribute. Prin prisma generalizrii, un tip de entitate a a poate considerat rezultatul clasicrii (generalizare tip-obiect) unei multimi a de entiti avnd proprieti comune, ind reprezentarea intensional a grupuat a at a lui de entiti de acelai fel. De asemenea, un tip de entitate poate corespunde at s generalizrii unuia sau mai multor tipuri de entiti. a at Trebuie mentionat faptul c pentru reprezentarea unei multimi de entiti din a at lumea real printr-un tip de entitate se iau considerare doar acele proprieti a n at care sunt relevante pentru baza de date care este inclus tipul de entitate. n Extensiunea unui tip de entitate este format din multimea entitilor, avnd a at a proprieti comune, descrise prin tipul de entitate dat. Fiecare entitate din at aceast multime este o instantiere a tipului de entitate creia apartine. Ena a i titile individuale, apartinnd unui anumit tip de entitate, se deosebesc at a ntre ele prin valorile diferite ale atributelor lor. cadrul diferitelor modele de date intervin dou forme de structurare a In a datelor. Prima form de structurare a datelor se refer la modalitatea de asociere a a a atributelor pentru a forma descrierile tipurilor de entiti crora le apartin. Toate at a modelele de date care vor prezentate continuare reprezint tipurile de enn a titi prin structuri de tip at nregistrare obtinute prin simpla concatenare a valorilor atributelor tipului de entitate, operatie ce corespunde agregrii proprietilor tip a at ului de entitate. Multimile de entiti se modeleaz convenabil prin tabele a at a cror descriere (capul de tabel) este dat de descrierea tipului de entitate, iar a a liniile tabelului constau din reprezentrile entitilor din multime (instantieri). a at Intre multimile de entiti dintr-o baz de date exist diferite legturi (relatii). at a a a Aceste legturi trebuie s e descrise modelul conceptual al bazei de date. a a n A doua form de structurare a datelor se refer la modul care sunt reprezena a n tate legturile existente a ntre diferitele multimi de entiti ale bazei de date. at Modelele de date difer a ntre ele tocmai prin modul care se poate realiza n reprezentarea legturilor dintre multimi de entiti. a at Intre oricare dou multimi de entiti M1 i M2 pot exista trei tipuri de a at s legturi (relatii), gura 3.1: a relatie 1:1, cnd unei etiti din M1 corespunde o singur entitate din M2 a at i a i reciproc; s relatie 1:N, cnd unei entiti din M1 corespunde una sau mai multe a at i

2. O incursiune lumea bazelor de date n

21

Fig. 2.3:

Tipuri de legturi a ntre multimi de entiti at

entiti din M2, dar ecrei entiti din M2, corespunde o singur entitate din at a at i a M1; relatie M:N, cnd unei entiti din M1 corespund una sau mai multe a at i entiti din M2 i reciproc. at s 2.2.3 Chei, chei strine, integritate referential a a Chei Se numete cheie a unei relatii R un subset K al atributelor relatiei R care s satisface proprietiile: at 1. Identicare unic - ecare tupl a relatiei R este identicat mod unic a a a n

2. O incursiune lumea bazelor de date n

22

de valorile atributelor care compun cheia K. 2. Neredondanta - subsetul K este minimal sensul c eliminarea oricrui n a a atribut din K duce la pierderea proprietii 1. at orice relatie exist cu certitudine o cheie, pentru c setul complet al atributelor In a a oricrei relatii satisface proprietatea 1. (deci cel mai defavorabil caz cheia este a n ntreaga n-tupl). consecint, problema gsirii unei chei se reduce la detera In a a minarea setului minimal de atribute care satisface proprietatea 1. Orice atribut al unei relatii R care face parte din cel putin o cheie se numete s atribut prim. Toate celelalte atribute ale relatiei R sunt neprime. Intr-o relatie pot exista mai multe chei. Pentru ecare relatie din cadrul unei baze de date se desemneaz dintre acestea, dup anumite criterii, o cheie privia a legiat numit cheie primar. Distinctia dintr-o cheie primar i celelalte chei a a a as (dac exist), numite i chei candidate, este important numai din punct de a a s a vedere optional, cheia primar avnd un rol important implementarea strate a a n giilor de cutare i regsire a datelor. Cheia primar este acea dintre cheile unei a s a a relatii care este folosit de SGBD identicarea unic a tuplelor. Statutul de a n a cheie primar al unei chei candidate este stabilit de utilizator i comunicat SGBDa s ului prin intermediul LDD (Limbaj de descriere a datelor). Asupra cheii primare SGBD-ul impune o serie de restrictii: nu sunt admise valori nedenite pentru atributele unei chei primare. Orice alt cheie a unei relatii poate avea valori nedenite pentru unele dintre a atributele sale; nici o valoare a unui atribut dintr-o cheie primar nu poate modicat a a n cadrul operatiilor de actualizare. La selectarea unei chei primare din multimea cheilor candidate se va ine t seama de necesitatea ca numrul atributelor cheii primare s e ct mai mic a a a posibil, deci va desemnat drept cheie primar cheia candidat care are denite a a a toate valorile atributelor sale i care are cel mai mic numr de atribute. s a Chei strine, integritate referential a a cadrul modelului de date relational, legturile dintre relatiile ce reprezint In a a tipuri de entiti se realizeaz prin mecanismul de propagare a cheilor, ceea ce at a conduce la conceptul de cheie strin. Traditional, conceptul de cheie strin a a a a a fost legat de cel de cheie primar, majoritatea lucrrilor care prezint modelul a a a relational considernd cheile strine ca ind rezultatul propagrii unor chei pri a a a mare. Acest lucru nu este a necesar, aa cum rezult din Date (1995) unde nc s a sunt aduse argumente favoarea unei denitii mai relaxate a conceptului de n cheie strin. a a Un subset, FK, al atributelor unei relatii R2, este o cheie strin dac: a a a exist o relatie R1 (nu neaprat distinct) avnd o cheie K; a a a a pentru ecare valoare a lui FK din relatia R2 exist o valoare identic a cheii a a K din relatia R1.

2. O incursiune lumea bazelor de date n

23

Din denitia de mai sus rezult c o cheie strin poate rezultatul propagrii a a a a a oricrei chei, e ea cheie primar ori cheie candidat. a a a Valoarea unei chei strine reprezint o referint la tupla a crei cheie are a a a a o valoare identic cu cea a cheii strine. Relatia care contine cheia strin a a a a poart numele de relatie de referint, iar relatia care contine cheia din care a a aceasta s-a propagat poart numele de relatie referit. Conditia de integria a tate referential cere ca toate valorile unei chei strine s se regseasc printre a a a a a valorile cheii corespunztoare din relatia referit. Aceast conditie introduce a a a n baza de date nite constrngeri s a ntre relatii numite constrngeri referentiale. a Constrngerile referentiale pot reprezentate prin diagrame referentiale. a Acestea sunt grafuri ale cror noduri reprezint relatii, iar arcele reprezint cona a a strngeri referentiale. Sensul arcului este de la relatia de referint ctre relatia a a a general, structura diagramelor referentiale este de graf oarecare, deci referit. In a pot exista cicluri numite cicluri referentiale i chiar cicluri de lungime unitar s a caz care relatia de referint i cea referit este una i aceeai. O asemenea n a s a s s relatie poart denumirea de relatie autoreferential. a a

2.3 Proiectarea bazelor de date relationale


2.3.1 Normalizarea relatiilor Normalizarea este o problem care face parte din proiectarea conceptual a a a oricrei baze de date i a bazelor de date relationale special. Pornind de la a s n conceptele de dependent functional i dependent multivaloric sunt prezentate a as a a formele normale ale relatiilor de la forma ai (FN1) pn la a cincea form nt a a a normal (FN5), precum i principiile care stau la baza proiectrii unor scheme a s a relationale avnd anumite proprieti convenabile. a at Introducere Normalizarea relatiilor face parte din problematica mai larg a proiectrii a a bazelor de date relationale i a bazelor de date general. Principalele ele s n mente constitutive ale modelului conceptual al unei baze de date relationale sunt schemele relatiilor care intr componenta bazei de date respective. a n Schema unei relatii descrie structura relatiei respective i cuprinde numele relatiei s procesul de proiectare al unei baze de date mpreun cu atributele asociate. In a relationale care s modeleze un anume segment al lumii reale, suntem confruntati a cu problema alegerii setului de scheme de relatie prin care s modelm acele a a aspecte din lumea real pe care dorim s le cuprindem baza de date. Cu a a n alte cuvinte problema este de a alege schemele de relatie i modul de grupare s al atributelor relatii pentru a reprezenta tipuri de entiti sau legturi n at a ntre tipuri de entiti. De regul, exist mai multe posibiliti efecturarea acestor at a a at n alegeri, iar anumite modele conceptuale (seturi de scheme de relatii) pot mai convenabile dect altele datorit unor proprieti. a a at Ideea central care st la baza criteriilor de proiectare a unei baze de date a a

2. O incursiune lumea bazelor de date n

24

relationale este aceea de dependent a datelor. Aceasta se refer la faptul c a a a ntre atributele unei relatii sau ntre atribute din relatii diferite pot exista anu mite legturi logice (dependente), iar aceste legturi inuenteaz proprietiile a a a at schemelor de relatie raport cu operatiile curente care intervin timpul ex n n ploatrii bazei de date: adgare, tergere, actualizare. Pn la ora acutal cel mai a a s a a a intens studiate i cu implicatii majore asupra criteriilor de proiectare a schemelor s relationale sunt dependentele functionale i dependentele multivalorice. s E. F. Codd a artat c a a ntr-o anumit form relatiile posed proprieti nea a a at dorite, pe care le-a numit anomalii de actualizare: anomalia de tergere const faptul c anumite date care urmeaz s e s a n a a a terse fac parte din tupluri care se gsesc i alte date care mai sunt necesare s n a s continuare, ori tergerea fndu-se la nivelul tuplului, acestea se pierd; n s aa anomalia de adgare const faptul c anumite date urmeaz s e adgate a a n a a a a fac parte din tupluri incomplete (pentru care nu se cunosc toate datele), ceea ce face ca acestea s nu poat adgate; a a a anomalia de modicare rezult din faptul c este dicil de modicat o valoare a a a unui atribut atunci cnd ea apare mai multe tupluri ale relatiei. a n Pentru a atura aceste anomalii, Codd a stabilit trei forme normale pennl tru relatii i a introdus procesul de normalizare care se bazeaz pe notiunea de s a dependent functional (FD) ca relatie a a ntre atributele unei entiti ce are at un caracter invariant. Dependentele functionale nu sunt singurele tipuri de dependente care apar cadrul relatiilor. Att lumea real, ct i relatiile prin care modelm n a n a a s n a realitatea pot identicate alte tipuri de dependente mai putin restrictive dect a cele functionale. Un asemenea tip de dependente cu implicatii normalizarea n relatiilor sunt dependentele multivalorice. Forme normale Exist anumite dependente cadrul schemelor de relatie ceea ce conduce la a n o serie de anomalii legate de operatiile uzuale de adgare, tergere i actualizare. a s s Aceste anomalii pot evitate dac se a nlocuiesc schemele de relatie date prin altele, echivalente, cadrul crora dependentele sunt supuse anumitor restrictii. n a Aceste scheme de relatii echivalente poart numele de forme normale. a Din punctul de vedere al inuentei asupra performantelor exploatarea n bazei de date, normalizarea afecteaz negativ ecienta cu care sunt rezolvate a interogrile. Aceasta pentru c informatiile care a a ntr-o baza de date nenormalizat ar putea regsite a a ntr-o singur relatie, cazul unei baze normalizate a n necesit, de cele mai multe ori, cuplarea a dou sau mai multe relatii. De a a aceea normalizarea este considerat necesar i util mai mult situatiile care a as a n n operatiile de adgare, tergere i actualizare sunt frecvent utilizate. Normalizarea a s s mbuntete integritatea datelor prin reducerea redondantei i a inconsistentei a at s s detrimentul ecientei unor operatii de regsire a datelor. n a

2. O incursiune lumea bazelor de date n

25

Exist mai multe nivele de normalizare a relatiilor, primele patru nivele sunt a denite termenii dependentelor functionale, i sunt: prima, a doua, a treia n s form normal i forma normal Boyce-Codd (notate FN1, FN2, FN3 a as a i FNBC). A patra form normal (FN4) i a cincea form (FN5 nors a a s a mal sunt denite termenii dependentelor multivalorice, respectiv a dependentelor a n de cuplare. Diferitele nivele de normalizare impun conditii din ce ce mai restric n tive asupra relatiilor. Astfel, o relatie aat pe un anumit nivel de normalizare a satisface toate restrictiile cerute de nivele inferioare de normalizare. Deci, o relatie FN4, este i FN3, FN2 .a.m.d. n s n s Prima form normal (FN1) a a O relatie R este prima form normal (FN1) dac i numai dac toate n a a as a atributele sale iau numai valori atomice. A doua form normal (FN2) a a A doua i a treia form normal rezolv problemele cauzate de existenta s a a a dependentelor functionale dintre atributele prime (care fac parte dintr-o cheie a relatiei) i cele neprime (care nu apartin nici unei chei) din cadrul tuplelor. s Trecerea unei relatii din FN1 FN2 constituie primul pas procesul de n n normalizare a relatiilor i const eliminarea dependentelor functionale partiale s a n ale atributelor neprime fat de orice cheie a relatiei. Existenta unor asemenea a dependente partiale presupune faptul c relatia discutie are cel putin o cheie a n compus din mai multe atribute. a O relatie R este a doua form normal (FN2) dac este FN1 i orice n a a a n s atribut neprim este total dependent fat de orice cheie a relatiei. a A trei form normal (FN3) a a Trecerea unei relatii FN3 are ca scop eliminarea dependentelor functionale n ale atributelor fat de orice alt atribut neprim al relatiei. a O relatie R este a treia form normal (FN3) dac este FN2 i nici n a a a n s un atribut neprim nu este functional dependent fat de un alt atribut neprim al a relatiei. Forma normal Boyce-Codd (FNBC) a Att FN2 ct i FN3 se caracterizeaz prin faptul c izoleaz dependentele a a s a a a functionale ale atributelor neprime, deci ale acelor atribute care nu fac parte din nici o cheie, fr a lua considerare dependentele functionale ale atributelor ce aa n apartin unor chei (atribute prime). Exist o alt form normal care trateaz a a a a a n mod unitar toate atributele unei relatii indiferent de faptul c fac sau nu parte a dintr-o cheie. Aceasta este forma normal Boyce-Codd (NFBC) denumit astfel a a dup numele cercettorilor care au denit prima dat aceast form normal. a a a a a a FNBC stabilete cele mai restrictive conditii care pot impuse unei relatii s n termenii dependentelor functionale. O relatie R este forma normal Boyce-Codd (FNBC) dac pentru orice n a a dependent functional X A din cadrul relatiei R, unde A este un atribut care a a

2. O incursiune lumea bazelor de date n

26

nu face parte din X, atributul (posibil compus) X este o cheie R sau include o n cheie din R. A patra form normal a a A patra form normal vizeaz problemele legate de existent a dependentelor a a a multivalorice. Dependentele multivalorice din cadrul unei relatii pot cauza anomalii de aceeai s natur ca cele cauzate de dependentele functionale. Trecerea unei relatii a paa n tra form normal (FN4) urmrete eliminarea dependentelor multivalorice i a a a a s s anomaliilor cauzate de acestea. FN4 este o generalizare a FNBC pentru a cuprinde i cazul dependentelor multivalorice. s O relatie R este a patra form normal (FN4) dac oricare ar n a a a dependenta multivaloric XY, nu este un subset a lui X i X Y nu contine a s toate atributele lui R, atunci atributul (simplu sau compus) X este o cheie sau contine o cheie a lui R. A cincea form normal a a Pn acum trecerea de la o form normal la alta s-a fcut prin descompunerea a a a a a unei relatii altele dou, urmrindu-se eliminarea dependentelor functionale n a a i multivalorice. O relatie aat form normal patru nu mai poate des a n a a scompus continuare pe baza acestei strategii. Cu toate acestea sunt situatii a n cnd relatii aate FN4 contin redondante i prezint anomalii la operatiile a n s a de adgare, tergere i actualizare. Aceste probleme sunt cauzate de existenta a s s dependentelor de cuplare i pot eliminate prin descompunerea relatiei 3 s n sau mai multe relatii a cror cuplare are ca rezultat relatia initial. Se spune c o a a a relatie este n-decompozabil dac poate descompus fr pierdere de informatie a a a aa n componente, dar nu mai putine. Prin eliminarea dependentelor de cuplare n se obtin relatii aate forma normal cinci (FN5). Trecerea la FN5 este un n a proces de normalizare care se aplic relatiilor n-decompozabile cu n > 2. a Eliminarea dintr-o relatie a dependentelor functionale i multivalorice nu garan s teaz rezolvarea tuturor problemelor legate de redondanta datelor. a A cincea form normal este o generalizare a formei normale patru pornind a a de la conceptul de dependent de cuplare. Procesul de trecere a unei relatii a n FN5 presupune eliminarea dependentelor de cuplare existente cadrul relatiei, n mpreun cu anomaliile pe care acestea le cauzeaz. Totui, nu toate dependentele a a s de cuplare prezint interes din punctul de vedere al procesului de normalizare. a In cadrul unei relatii pot exista dependente de cuplare care nu conduc la redondant a memorarea datelor i nu sunt cauzatoare de anomalii. Acestea sunt dependentele n s de cuplare implicate de o cheie a relatiei. O relatie este forma normal cinci (FN5) dac i numai dac toate n a a s a dependentele de cuplare existente relatie sunt implicate de o cheie a acesteia. n Concluzii Prin procesul de normalizare se realizeaz eliminarea din schemele de relatie a a dependentelor (functionale, multivalorice i de cuplare) cu scopul de a pro s

2. O incursiune lumea bazelor de date n

27

duce o schem relational avnd proprieti mai bune din punctul de vedere al a a a at redondantei datelor i al posibilelor anomalii ce pot apare cazul operatiilor s n de adgare, tergere i acutalizare. De remarcat similaritatea evident ce exist a s s a a ntre denitiile pentru FNBC, FN4 i FN5 care ar putea unicate urmtoarea s n a denitie global: a O relatie R este FNBC (FN4, FN5) dac i numai dac singurele dependente n as a functionale (multivalorice, de cuplare) existente sunt cele implicate de o cheie a relatiei R. Exemplu de normalizare

Fig. 2.4: Forma normal 1 (FN1) a

Fig. 2.5: Forma normal 2 (FN2) a

2. O incursiune lumea bazelor de date n

28

Fig. 2.6: Forma normal 3 (FN3) a

Fig. 2.7: Forma normal 4 (FN4) a

Fig. 2.8: Forma normal 5 (FN5) a

2. O incursiune lumea bazelor de date n

29

2.3.2 Metode de proiectare a bazelor de date genera, metodele traditionale de proiectare a bazelor de date In ncorporeaz a trei faze: analiza cerintelor, modelarea datelor i normalizarea. s Faza de analiz a cerintelor implic o examinare a activitii modelate, intera a at viuri cu utilizatorii i cu personalul de conducere pentru a evalua sistemul curent i s s a analiza necesitile viitoare, precum i o estimare a necesitilor informationale at s at pentru ntreaga companie. Acest proces este relativ simplu. Faza de modelare a datelor implic modelarea structurii bazei de date a folosind o metod de modelare a datelor, cum ar diagarmele entitate-relatie a (ER) (gura 1.9), modelarea semantic-obiect sau modelarea obiect-rol. Fiecare a dintre aceste metode de modelare constituie un mijloc de reprezentare vizual a a diferitelor aspecte ale structurii bazei de date, precum tabelele, relatiile dintre tabele i caracteristicile relatiilor. s

Fig. 2.9: Diagram ER elementar a a

Fiecare metod de modelare a datelor a ncorporeaz un set de simboluri pena tru diagrame folosite pentru reprezentarea structurii i a caracteristicilor unei s bune baze de date. De exemplu, diagrama din gura 1.9 furnizeaz informatii a referitoare la numeroase aspecte ale bazei de date: dreptunghiurile reprezint dou tabele, denumite IMPRESARI i CLIENTI; a a s rombul reprezint o relatie a ntre aceste dou tabele, iar formula ,,1:N din a interiorul acestuia indic faptul c este o relatie de tip ,,unu la mai multi; a a linia vertical situat lng tabelul IMPRESARI indic faptul c un client a a a a a a trebuie s e asociat cu un impresar, iar cercul amplasat lng tabelul a a a CLIENTI arat c nu este obligatoriu ca un impresar s e asociat cu un a a a client. Pe durata fazei de modelare a datelor are loc, de asemenea, denirea i s asocierea cmpurilor cu tabele corespunztoare. Fiecare tabel primete o cheie a a s primar, se identic i se implementeaz diferite niveluri de integritate a datelor, a as a i se stabilesc relatii prin intermediul cheilor externe. O dat structurile tabelelor s a initiale nalizate i relatiile stabilite conformitate cu modelul de date, baza de s n date este pregtit s treac prin faza de normalizare. a a a a Normalizarea reprezint procesul de descompunere a unor tabele de mari a dimensiuni tabele mai mici, vederea eliminrii datelor redundante i a n n a s datelor duplicate, precum i a evitrii problemelor la insertia, actualizarea sau s a tergerea datelor. Pe durata procesului de normalizare, structurile tabelelor sunt s testate prin comparatie cu formele normale i apoi modicate cazul aparitiei s n oricreia dintre problemele mentionate anterior. a

2. O incursiune lumea bazelor de date n

30

2.4 Interogarea bazelor de date


La o prim vedere interogarea bazelor de date pare destul de simpl. Foloseti a a s cteva cuvinte cheie i obtii rezultatele, a adesea aceste rezultate pot contine a s ns i date irelevante de care nu este nevoie, aa c este bine a se ine seama de civa s s a t at pai s nainte de a trece la interogarea propriu-zis: a 1. analiza cutrii urmrite: Asigur-te c pui a a a a a ntrebarea potrivit! a 2. alegerea bazei de date: Alege baza de date potrivit pentru cutarea a a dorit! a 3. interogarea bazei de date: Interogheaz baza de date folosind cuvinte a cheie. Folosete toate uneltele de cutare puse la dispozitie de programul s a sub care ruleaz baza de date pentru a obtine un rezultat ct mai complet a a posibil! 4. evaluarea rezultatului: Uit-te la rezultatele obtinute urma cutrii! a n a a Rezultatele obtinute sunt ceea ce cutai? Ai obtinut prea multe sau prea a putine rezultate? 5. revizuirea cutrii: Dac nu eti multumit cu ceea ce ai obtinut, du-te a a a s napoi i modic interogarea pn ce obtii ceea ce doreti! s a a a s 6. vericarea existentei datelor dorite baza de date: Asigur-te c n a a ceea ce cauti este acolo unde crezi tu c este! a Cutarea se poate face pe baz de: a a cuvinte cheie - ,,keywords, cele mai simple i la s ndemn mijloace de a cutare; a truncherea, ,,amput*, returneaz toate cuvintele care a ncep cu acest grup de cuvinte (amput); wildcards, J@n@s, returneaz toate numele care contin literele mentionate a deja cuvnt alturi de toate celelalte litere continute de numele existente n a a baza de date - Jones, Jonas, Janus, etc. n operatorii logici - AND, OR & NOT, pentru a putea combina diferite cuvinte cheie aceeai cutare. AND - combin cuvinte cheie care refer n s a a a dou concepte diferite (athletesANDcoach), OR - combin dou cuvinte a a a cheie referind acelai concept (childrenORjuvenils), NOT - diferentioaz s a dou elesuri ale aceluiai cuvnt cheie (coldNOTtemperature) a nt s a

2. O incursiune lumea bazelor de date n

31

combinatii de operatori logici, (coach* AND (athlete* OR sportspeople OR sportswomen OR sportsmen) AND (warming-up OR warm-up) restrngerea cutrii, aarea tuturor oamenilor cu numele de Jones, a a a s Jonas, Janus sau Smith, dar care nu au o adres de e-mail ce contine ,,.com a

rezultate obtinute pe baza altei cutri anterioare - ,,query of a a queries, beneciile acestui tip de cutare sunt evidente dintre care ama intim: concatenarea de date din tabele diferite pentru a obtine informatii noi; generarea de sumare, care dac nu ar exista datele deja obtinute urma a n unei interogri, ar generate pentru ecare tabel parte, ,,ascunderea a a n unor informatii care nu se doresc a vizualizate de ctre o parte din utiliza a torii bazei de date.

3. FILEMAKER 3.1 Sistemul de gestiune al bazelor de date - FileMaker


3.1.1 Introducere FileMaker este o aplicatie de gestiune a bazelor de date de tip ,,cross plat form, produs de ctre FileMaker Inc., ind cunoscut pentru puterea i uurinta a a a s s utilizare. FileMaker este, de asemenea, remarcat datorit integrrii unui mon a a tor de baze de date cu interfat GUI (Graphical User Interface), care permite a utilizatorilor s fac modicri asupra bazei de date prin intermediul optiunii a a a dragging layout-uri i formulare. Acest lucru face din FileMaker un mediu n s ,, de dezvoltare ,,cvasi-obiect. FileMaker a aprut jurul anilor 1980 i era o aplicatie destinat utilizatoa n s a rilor Apple Macintosh. Actualmente, FileMaker este disponibil att pentru calculatoarele care ruleaz a a sistemul de operare Macintosh, ct i cele care folosesc Microsoft Windows. Filea s Maker poate , de asemenea, folosit retea simultan att de utilizatorii de n a Windows, ct i de cei de Macintosh. FileMaker este oferit pentru conguratii a s desktop, server, web. Deschiderea aplicatiei FileMaker La deschiderea aplicatiei FileMaker avem trei optiuni: e optm pentru a

3. FileMaker

33

crearea unui ier folosind modele predenite ,,Create a new le using a tems plate, e vom crea un ier nou ,,Create a new empty le, e vom deschide un s ier deja existent ,,Open an existing le. s FileMaker exist patru moduri de lucru. Odat deschis aplicatia se poate In a a a comuta ntre cele patru moduri de lucru e ajutndu-ne de meniul View, e de a butoanele ,,mode, e de meniul pop-up aat partea de jos a ferestrei aplicatiei. n Cele patru moduri de lucru sunt: Browse mode folosit pentru introducerea i vizualizarea s nregistrrilor; a Find mode folosit pentru a returna o nregistrare sau un grup de nregistrri a rapid; Layout mode folosit pentru a specica ce fel informatia va vizualizat n a pe ecran sau trimis spre tiprire; a a Print mode folosit pentru a vizualiza modul care vor arat paginile ce n a urmeaz a tiprite. a a

Fig. 3.1: Browse mode

Fig. 3.2: Find mode

Fig. 3.3: Layout mode

Fig. 3.4: Print mode

3. FileMaker

34

3.1.2 Crearea bazei de date, introducerea de date i modelarea layout-urilor s Crearea unei baze de date se face prin alegerea optiunii ,,New Database din meniul File, dup care sunt dou posibiliti: e se creeaz o baz de date dup a a at a a a un model prestabilit, e se creeaz o baz de date ce urmeaz s e individualizat a a a a a de ctre dezvoltatorul de aplicatie (gura 2.8). a Pentru denirea cmpurilor, tabelelor i relatiilor dintre tabele se alege optiunea a s ,,Dene Database din meniul File (gura 2.9).

Fig. 3.5: Creare BD

Fig. 3.6: Denire BD

Introducerea datelor se face modul Browse prin alegerea optiunii ,,New n Record din meniul Records. Lucru asupra modului care sunt aate datele sau interfata cu utilizatorul n s se stabilete modul Browse. s n 3.1.3 Aarea informatiei s De asemenea, dup deschiderea bazei de date, tabela cu a nregistrri poate a vizualizat trei moduri diferite ca: formualar, lis i tabel. a n a s

Fig. 3.7: Form view

Fig. 3.8: List view

Fig. 3.9: Table view

3.1.4 Regsirea informatiei a Baza de date este o colectie de nregistrri. Uneori se dorete lucru doar cu a s FileMaker procesul de cutare un subset de nregistrri al bazei de date. In a a

3. FileMaker

35

a nregistrrilor care a ndeplinesc un anumit criteriu impus poart denumirea de a a a nregistrrile cutate, acestea se pot reorganiza a a ,,nding records. Odat gsite prin sortare. Inregistrrile pot sortate cresctor i descresctor. a a s a FileMaker pune la dispozitie patru tipuri de cutare, respectiv regsire a a a nregistrrilor: a cutarea a nregistrrilor ce a ndeplinesc criteriul impus asupra unui cmp sau a asupra mai multor cmpuri; a cutarea a nregistrrilor ce a ndeplinesc conditia impus de un domeniu de a date; restrngerea cutrii prin activarea comenzii OMIT; a a a sortarea nregistrrilor mod crestor sau descresctor. a n a a Ceea ce rezult urma unei cutri poart denumirea de ,,found set. Dup a n a a a a ce cutarea s-a efectuat FileMaker se a ntoarce modul Browse. n 3.1.5 Simplicarea introducerii de date Modul de introducere a datelor poate simplicat FileMaker prin utin lizarea de value lists, calculation elds i data auto-entry. s Value lists permite alegerea unor valori ce apar ntr-o list derulant, a a ntr-un meniu pop-up, butoane radio sau cmpuri de bifat. Aceste liste pot contine valori a deja predenite de ctre dezvoltatorul de aplicatie sau pot colectate dinamic la a introducerea lor. Aceasta este o modalitate util i rapid de a introduce date, as a date ce sunt folosite frecvent baza de date. O value list poate denit astfel: n a File Dene Value Lists.

Fig. 3.10: Value list

Calculation elds este unul dintre tipurile de date specice FileMaker. FileMaker poate efectua att calcule simple, ct i calcule complexe. Formula de a a s

3. FileMaker

36

calcul folosete valori preluate e din s nregistrarea curent, e din a nregistrri a relationate. Formula poate folosi valori ce sunt continute de toate tipurile de date. Se poate folosi valori ce sunt continute de toate tipurile de date. Se poate folosi calculations pentru a returna valori de tip text (exemplu: concatenarea numelui i a prenumelui pentru a s nglobat ntr-un singur cmp), dat, timp i a a s date de tip container (folosit pentru inserarea de imagini, grace, iere media). s

Fig. 3.11: Calculation elds

FileMaker permite introducerea automat de date, de exemplu, incrementarea a la ecare nou a nregistrare. Acest lucru se realizeaz astfel: File Dene a Database, iar aici la nivel de cmp exist posibilitatea de a seta ca un anumit a a cmp s e denit auto-enter. Tot de aici se poate alege i dac un cmp s e a a s a a a sau nu indexat.

Fig. 3.12: Auto-enter

3. FileMaker

37

Un cmp specic FileMaker este cmpul global (global eld ) folosit s pstreze a a a a aceeai valoare pentru toate s nregistrrile. Poate folosit calcule care e a n n nevoie de un cmp cu valoare x, cmpuri care nu au nevoie s e updatate a a a a (adresa unei companii care apare pe mai multe layout-uri), cmpuri match n a eld dintr-o relatie. Un cmp global se denete ca orice alt cmp. a s a 3.1.6 Automatizare cu ajutorul butoanelor i a scripturilor s FileMaker ofer posibilitatea de a automatiza diverse task-uri cu ajutorul a butoanelor i a scripturilor. Aceste mijloace puternice de automatizare ajut s a la economisirea de timp prin efectuarea unor serii de actiuni prin intermediul apsrii unui simplu click. aa Un button este un obiect ce apare pe layout-uri, prin apsarea cruia se pot a a executa comenzi FileMaker. Un exemplu de astfel de actiune ar comutarea ntre layout-urile bazei de date. Un buton poate inserat pe un layout, comutnd a layout-ul din modul Browse modul Layout, iar aici se selecteaz semnul grac n a button tool i se plaseaz pe layout oriunde se dorete s apar. De ecare buton s a s a a poate legat e o comand, e un script. Tot modul Layout se pot stabili a a n diverse caracteristici pentru butoane, cum ar : forma, culoarea, textul, etc. Un script permite constructia unor serii de instructiuni pe care s le execute a FileMaker. Un script reprezint, de fapt, o serie de comenzi ordonate intr-o a manier logic, sub forma unui algoritm care nal trebuie s realizeze diverse a a n a task-uri pe care comenzile simple FileMaker nu le-ar putea realiza. Scripturile pot simple (capabile s rezolve task-uri simple, acestea ar putea de cele mai a multe ori eglae cu o comand FileMaker) i scripturi complexe, capabile s coma s a bine elemente folosinf tehnici de programare pentru a crea seturi de instructiuni puternice i dinamice. Scripturile pot create astfel: Scripts ScriptMaker s New.

Fig. 3.13: Script

3. FileMaker

38

3.1.7 Baze de date relationale Bazele de date relationale permit vizualizarea datelor relationale ntr-o manier a facil, i, de asemenea, reprezint un element de economisire a timpului ct a s a a privete introducerea datelor, deoarece o dat introdus s a a ntr-un cmp este vizuala izat toate celelalte cmpuri cu care cmpul respectiv este relationat. a n a a S lum un exemplu: a a

Fig. 3.14: Inainte

Fig. 3.15: Dup a

Tabelele Companies i Members sunt dou tabele relationate. Atunci cnd se s a a introduce numele unei companii ntr-un cmp din tabela Members, FileMaker a identic a nregistrarea pentru acea companie tabela Companies. FileMaker n aeaz atunci adresa companiei relationate cu cea din tabela Members. Cum s a se ampl acest lucru? Tabela Members este relationat cu tabela Companies. nt a a Relatia se bazez pe cmpul Company comun celor dou tabele, astfel cmpul a a a a Company este denumit cu termenul de ,,match eld. Orice layout bazat pe tabela Members aeaz adresa cmpului Company pe baza acestei relatii, adresa s a a constituindu-se acest caz ,,related elds. n n Pentru a aa o lista de s nregistrri relationate FileMaker se folosete a n s ,,portal-ul.

Fig. 3.16: Portal

O relatie trebuie ntotdeauna s e denit a a nainte de a putea aa date s relationate. Pentru a edita o relatie FileMaker trebuie s executm urmtorii n a a a

3. FileMaker

39

pai: File Dene Database Relationships, de unde cu un dublu click se s editeaz relatia dorit, ca gura de mai jos: a a n

Fig. 3.17: Edit Relationships

3.2 FileMaker vs Microsoft Access


S urmrim continuare cteva dintre diferentele majore care separ cele a a n a a dou aplicatii: FileMaker i Microsoft Access a s Compatibilitatea eterogen de platform a a Diversele versiuni de Microsoft Access nu ruleaz pe toate versiunile de a Windows, cu att mai putin pe o platform Mac. FileMaker ruleaz aceeai a a a s aplicatie pe toate versiunile de Windows, ct i pe toate calculatoarele Mac a s intosh. FileMaker nu necesit vreo conversie sau vreun efort suplimentar cnd a a ruleaz pe un alt calculator dect pe cel pe care a fost folosit la executia a a unei aplicatii. Aceasta da posibilitatea oricrui utilizator a bazei de date a s foloseasc cel mai potrivit instrument hardware pentru nevoile sale fr a a aa ca s oblige pe ceilalti utilizatori cu care interactioneaz s foloseasc un a a a a anumit instrument hardware sau software; Interfata grac oferit de FileMaker i Microsoft Access a a s Interfata grac oferita de Microsoft Access este limitat i stngace a as a n comparatie cu cea oferit de FileMaker; a

3. FileMaker

40

Uor de aat i folosit s nvt s Cu toate c expresii precum ,,uor de aat i ,,uor de folosi au un a s nvt s s caracter subiectiv, FileMaker s-a dovedit a un leader pe piat ceea ce a n privete uurinta utilizare, timp necesar dezvoltrii de aplicatii i perioad s n a s a minimal aare. FileMaker a ctigat numeroase premii competitia a n nvt as n sa cu produse similare, precum Microsoft Access, Paradox, Foxbase, etc.; Limitarea dimensiunii ierelor s FileMaker nu este limitat la 1Gb/ier, aa cum este Microsoft Access. s s FileMaker suport un ier de pn la 2Gb; a s a a Orientarea ctre Internet a FileMaker este capabil s-i gestioneze singur bazele de date pe web fr a as aa avea nevoie de un alt web-server sau vreo alt aplicatie software. Suportul a pentru web cazul Microsoft Access este mult mai putin extins i dicil n s de implementat medii care nu au orientare Microsoft; n Suport Client/Server FileMaker este disponibil ntr-o versiune Server (FileMaker Pro Server) ceea ce-i d posibilitatea s suporte pn la 100 de conexiuni simultane, a a a a s a mbunteasc viteza de pn cu 60%, s reduc tracul de retea prin a at a a a a a utilizarea indexrii a nregistrrilor i a altor sarcini apartinnd alte conditii a s a n server-ului i, de asemenea, poate suporta multiple protocoale de comunicatii, s precum TCP/IP i IPX. Microsoft Access dei suport partajarea de s s a iere ,,le-sharing, totui nu este disponibil s s ntr-o conguratie Client/Server. Fiecare utilizator de Microsoft Access cnd deschide un ier primete o a s s parte important a bazei de date pe calculatorul propriu. Acest lucru dea termin o nevoie mai mare de lime de band i trac de retea. Att a at a s a FileMaker, ct i Microsoft Access suport conexiune ODBC (Open a s a Database Connectivity), dar din nou, acest lucru face necesar dezvoltarea a i mentenanta att a clientului, ct i a componentei server de aplicatie s a a s unul pentru a stoca datele, iar cellalt pentru a se conecta la server. Acest a lucru ar complica solutia i nu ar evidentia avantaje functionabilitate. s n Creterea necontrolat a ierului s a s Microsoft Access nu recupereaz spatiul dup tergerea a a s nregistrrilor. a Baza de date Access continu s creasc pn cnd comanda ,,Compact a a a a a a Database este executat. Acest lucru creeaz probleme atunci cnd Mia a a crosoft Access rezid pe un server, iar un numr mare de a a nregistrri sunt a terse. La adugarea de noi s a nregistrri Microsoft Access va crete pn la a s a a limita de 1Gb cnd se va opri de la sine. FileMaker are, de asemenea, coa manda similar ,,Save a Compressed Copy, a permanent recupereaz a ns n a a spatiul la tergerea de s nregistrri. De vreme ce FileMaker si recupereaz a a singur spatiul eliberat nu are nevoie de administrare suplimentar pentru a a nu ajunge la limita maxim a ierelor. a s

3. FileMaker

41

Concluzii Microsoft Access este extrem de util pentru tracul de date prin Microsoft SQL Server, iar prin faptul c suport Visual Basic este extrem de util pentru a a Windows NT Servers care gzduiesc baze de date SQL. a De asemenea, Microsoft Acces te constrnge stii mult mai multe despre a as teoria bazelor de date, dect este nevoie cazul FileMaker. a n FileMaker permite crearea de aplicatii ,,workgroup fr costuri majore (ore aa nesfrite de dezvoltare, up-grade de software). as

3.3 Avantaje i dezavantaje FileMaker s


Ca orice instrument i FileMaker are att puncte tari, ct i puncte slabe. s a a s Trebuie, de asemenea, mentionat c nu este cel mai potrivit instrument pentru a orice fel de aplicatie care face apel la bazele de date. Cu toate acestea, folosit corespunztor este capabil s ofere solutii rapide, economice i elegante acelai a a s n s timp. Iat cteva dintre punctele sale slabe: a a nu are cheie primar (unicitatea unei a nregistrri poate dat prin unul sau a a mai multe cmpuri); a o relatie dintre dou tabele poate fcut printr-un cmp ,,golbal sau a a a a ,,calculation; restrictia ceea ce privete unicitatea cmpului este legat de introduc n s a a erea nregistrrii nu de tabela sine, totui restrictia poate depait prin a n s s a utilizarea de scripturi; nu exist posibilitatea pstrrii unei arhive a evenimentelor derulate asupra a a a unui layout i nici posibilitatea atarii unui cod asociat acestuia. s sa Cteva dintre punctele tari ale FileMaker: a este o aplicatie cu compatibilitate ,,cross platform, adic are versiuni att a a pentru Windows, ct i pentru Mac OS ; a s cutarea este elementul su forte, el prezentndu-se ca un instrument puta a a ernic i exibil. s

4. KRAMP SEARCH - APLICATIE DEMONSTRATIVA 4.1 Cine este i ce face Kramp s


Kramp este o companie nintat anul 1951. Sediul central al ei se a a n a n Olanda, a are liale i alte ri europene, cum ar : Anglia, Irlanda, Franta, ns s n ta Austria, Elvetia i Germania, etc. s Compania se ocup cu producerea i comercializarea de maini, piese i una s s s elte necesare ramuri precum: agricultur, industrie, exploatare forestier i n a a s grdinrit. a a

Fig. 4.1: Prezentare Kramp

Aplicatia demonstrativ Kramp Search, se dorete a un catalog de produse a s a companiei Kramp. Ideea de baz a acestei aplicatii este aceea a unui CD, pe care compania o a ofer clientilor si, ca o alternativ pentru cei care nu au posibilitatea de a face a a a comenzi direct prin internet.

4. Kramp Search - Aplicatie demonstrativ a

43

Aplicatia Kramp Search este gndit sub forma mai multor posibiliti de a a at regsire a aceluiai produs folosind mai multe metode de cutare. a s a

Fig. 4.2: Metod de cutare (I) a a

Fig. 4.3: Metod de cutare (II) a a

Categoriile principale de produse sunt acelea pe care le gsim i pe pagina a s de internet a companiei i care evident le regsim i aplicatia Kramp Search. s a s n Cteva dintre aceste categorii sunt: a Tractor and vehicle parts/Trekker -en voertuigdelen Shop -and Workshop products/Winkel -en werplaatsproducten Transmission/Aandrijftechniek

4. Kramp Search - Aplicatie demonstrativ a

44

Hydraulics/Hydrauliek Pneumatics/Pneumatiek Forest -& Grasscare products/Tuin & Park producten

Fig. 4.4: Categorii de produse

4.2 Modul de functionare Kramp Search


Pentru a elege, de fapt, cum este alctuit i cum functioneaz aplicatia nt a as a Kramp Search, trebuie s-i studiem prtile sale componente. a a Astfel, vom arti studiul ase prti, ecare parte corespunde unui layout: mp n s a Search, Expert Search, Categories, Storage Box, Your Account, Current Order. Inainte de a ncepe efectiv prezentarea functionabilitii aplicatiei Kramp at Search, trebuie s precizm faptul c exist cteva layput-uri create exact pe a a a a a baza tabelelor, iar altele sunt derivate din acestea, bazate pe relatiile dintre ele. Mai trebuie, de asemenea, mentionat c spatele unui layout care se vede la a n exterior pot sta 2, 3 sau chiar 4 layout-uri ajuttoare. Principalele layout-uri pe a care se bazeaz toat aplicatia Kramp Search sunt: ItemData, Item, Item Group, a a Item Group Classication, Item Group Data, Item Group Item, Item Price, Classication, Item Classication, Shopping Basket, Dataeld, Account.

4. Kramp Search - Aplicatie demonstrativ a

45

Search Layout-ul GoToSearch cu denumirea pentru utilizator, Search, este ,,pagina de

Fig. 4.5: Search I

start a aplicatiei Kramp Search, actiune controlat de ctre optiunea Switch to a a layout.

Fig. 4.6: Switch to layout

Pe aceast pagin avem dou tipuri de cutare i anume, search by keyword a a a a s i search by code. s Search by keyword, are un cmp de tip global search by text unde se stocheaz a a informatia de cutat tabela ItemData. De butonul search din dreptul cmpului a n a

4. Kramp Search - Aplicatie demonstrativ a

46

global este legat un script care face interogarea respectiv i returneaz rezultatul. as a

Fig. 4.7: Search by text

Scriptul care realizeaz cutarea este search by text1 i are urmtoarea struca a s a tur: a

Fig. 4.8: Script - search by text1

Actiunea acestui script este urmtoarea: Se interogheaz tabela Item, mai a a exact cmpul Description dac exist vreun articol ce contine denumire literele a a a n introduse cmpul global search by text. Dac nu exist atunci se returneaz n a a a a un mesaj de eroare: ,,No item found! i se revine layout-ul GoToSearch, iar s n dac exist se aeaz articolele gsite layout-ul GoToSearchResult3Design, a a s a a n care are ca suport tabela Item.

4. Kramp Search - Aplicatie demonstrativ a

47

Fig. 4.9: Search II

n ,,Pagina Search Result are background layout-ul GoToSearchResult3Design. Pe aceast ,,pagin se aeaz categoria din care face parte articolul (Main a a s a category), primul articol gsit cu codul i descrierea corespunztoare, un portal a s a ce contine articolele din aceeai categorie. Butoanele din partea de jos au rolul s de a trece de la o nregistrare la alta. Butonul din partea dreapt Details trimite a spre layout-ul ProductDetailsText(a)Design, care are ca suport tabela Item. Acest layout are scopul de a da detalii suplimentare despre articolul respectiv pe lng a a cod i denumire. s spatele lui Main Category se a un portal care este rezultatul unei relatii In a ntre tabela Item i Classication obtinndu-se astfel, printr-o structur arboress a a cent articolele de pe cel mai a nalt nivel, adic cele din ClassicToClassic. a Pentru a aa celelalte articole din aceeai categorie se folosete portalul Items s s GroupItemToItem, rezultat tot al unei relatii ntre Item i Item Group. s

Fig. 4.10: Portal articole asociate

Urmtoarea ,,pagin spre care trimite butonul details este tot Search Rea a sults, dar care are ca suport layout-ul ProductDetailsText(a)Design, bazat pe tabela Item. Pe aceast pagin este aat codul i descrierea articolului selectat a a s s prin butonul details, iar partea de jos apar datele despre articolul respectiv n sub form de portal. Acest portal este bazat pe relatia ItemDataSearchText, a

4. Kramp Search - Aplicatie demonstrativ a

48

Fig. 4.11: Search III

relatia creat a ntre tabelele ItemData i Dataeld. De asemenea, tot pe aceast s a a pagin apare aat i pretul preluat din tabela Item Price care face legtura cu a s s tabela Item prin intermediul cmpului Item ID (Item Price) i PK (Item). Apoi, a s alturat se mai a un buton Buy, prin actionarea cruia se execut un script a a a a denumit ShoppingBasket03(a), cu urmtoare actiune: a

Fig. 4.12: Script - Shopping Basket03(a)

Se preia codul articolului de pe layout-ul ProductDetailsText(a) Design i se s face o interogare tabela Item pe baza acestui cod. Apoi se ia PK -ul articolului n din Item i se intoregheaz tabela Shopping Bascket pe baza acestui PK. De s a aici se preiau datele ce vor aprea portalul ShoppingBasketPortal ce apare pe a n

4. Kramp Search - Aplicatie demonstrativ a

49

a n ,,pagina Shopping Basket, adic layout-ul ShoppingBascketRsultDesign. La actionarea butonului buy aplicatia ne duce pe ,,pagina Shopping Basket, pagin a ce va prezentat ulterior. Ct privete modalitatea de cutare Search by code aceasta este similar cu a s a a a cea folosit cazul cutrii search by text cu precizarea c aici avem de-a face a n a a cu o value list functie de care se face cutarea. Aceast value list sigur c va a a a inuenta i scriptul de cutare, deoarece acesta va gndit s functioneze functie s a a a de toate cele patru conditii (,,is exactly, ,,begins with, ,,contains, ,,ends with) impuse de value list.

Fig. 4.13: Value List

4. Kramp Search - Aplicatie demonstrativ a

50

Expert Search O alt metod de cutare a articolelor catalogul de produse este denumit a a a n a Expert Search.

Fig. 4.14: Metod de cutare (II) a a

a ,,Pagina Expert Search are la baz layout-ul GoToExpertSearchDesign, layout creat avnd ca suport tabela Classication. a Structura acestui tip de cutare este urm torul: trei cmpuri globale (gCat1Description, a a a gCat2Description, gCat3Description), ce pstreaz categoria principal, categoa a a dreptul ecrui dintre ria i subcategoria care se vor cuta articolele dorite. In s n a a aceste trei cmpuri se a cte un buton cu urmtorul rol: primul i al doilea a a a a s buton, go, apeleaz cte un scrip, GoCat1 i GoCat2, cu urmtoarea form: a a s a a

Fig. 4.15: Script - GoCat1

4. Kramp Search - Aplicatie demonstrativ a

51

Fig. 4.16: Script - GoCat2

Amndou script-urile au rol de a seta nite cmpuri globale cu valoarea prea a s a luat dintr-o value list, adic acea valoare aleas de utilizator destinat cutrii. a a a a a a Pe baza acestor cmpuri globale i cu ajutorul relatiilor a s ntre PK i Parent ID s se va face cutarea i se va aa rezultatul pronind de la categoria principal i a s s as ajungnd la articolul din subcategorie. Value list acest caz nu mai este cona n tituit din valori setate de dezvoltator, ci se bazeaz pe un cmp i anume pe a a a s cmpul Description din tabela Classication. a

Fig. 4.17: Value List

Butonul Search trimite spre layout-ul ExpertSearchResultDesign, adic ,,pagin a a Search Results, unde sunt aate cu ajutorul unui portal articolele gsite. Cu s a

4. Kramp Search - Aplicatie demonstrativ a

52

un click pe codul de articol se merge pe o alt ,,pagin de Search Results, a a a ns spatele creia se gsete layout-ul ExpertSearchResultDetailsDesign cu aceeai n a a s s structur i mod de functionare ca i paginile de Search Results din cadrul primei as s metode de cutare, Search. a Categories Layout-ul corespunztor ,,paginii Categories este Classic01Design creat pe a baza tabelei Classication.

Fig. 4.18: Categorii de produse

Acest tip de cutare se altur celorlalte dou, ind destul de asemntor cu a a a a a a metoda II de cutare, doar c aici categoriile principale apar sub form de list, a a a a aate cu ajutorul unui portal i nu a unei value list. s s Pentru a parcurge adncime structura arborescent se vor folosi layoutn a a uri (Classic01Design, Classic02Design, Classic03Design), layout-uri ce sunt create toate avnd ca suport tabela Item. Toate cele trei layout-uri contin cte a a un portal, care reprezint relatia dintre cmpurile Parent ID i gParent ID ale a a s tabelei Classication (rst class, second class, third class).

4. Kramp Search - Aplicatie demonstrativ a

53

Fig. 4.19: Portal

Att pe layout-ul Classic02Design, ct i pe Classic03Design exist dou a a s a a cmpuri globale, aate sub form de buton cu rolul de a duce spre nivelul imediat a s a urmtor, adic de la subcategorie la categorie, i de la categorie la categoria a a s principal. a

Fig. 4.20: Asare subcategorie

Inainte de a aa detaliile pentru articolele din subcategoria selectat mai s a apare un layout denumit Classic04(b)Design, care are ca suport relatia Item Group Classication. Acest layout avnd ca denumire de pagin tot Categories aeaz subcategoria a a s a din care fac parte articolele respective. Butonul de details trimite spre paginile de Search Results similare cu cele de la celelalte tipuri de cutri. a a

4. Kramp Search - Aplicatie demonstrativ a

54

Fig. 4.21: Asare articole din sucategorie

Storage Box Shopping Basket aeaz coul cu articolele ce urmeaz a achizitionate de s a s a ctre utilizator. Layout-ul sub care este aat aceast ,,pagin este Shoppinga s a a a BasketResultDesign, construit pe baza tabelei Shopping Basket.

Fig. 4.22: Shopping Basket

Aarea datelor se face cu ajutorul portalului ShoppingBasketPortal, rezultat s urma relatiei tabelelor Shopping Basket i Item. n s Pe acet portal sunt aate date precum: codul articolului, descrierea, data s cumprrii, pretul, cantitatea, totalul. partea de jos a portalului apare un aa In cmp care returneaz valoarea total a comenzii (Total Value). Dou dintre a a a a

4. Kramp Search - Aplicatie demonstrativ a

55

aceste dou cmpuri prezint un interes special i anume, cmpul Total, care a a a s a este un cmp de tip calculation i cmpul Total Value, care este un cmp de tip a s a a summary.

Fig. 4.23: Cmp de tip calculation a

Fig. 4.24: Cmp de tip summary a

Butonul View request trimite spre layout-ul RequestFormDesign, care aeaz s a att coul de cumprturi, ct i datele despre utilizator. a s aa a s

4. Kramp Search - Aplicatie demonstrativ a

56

Fig. 4.25: Pagina Current Order

Butonul Remove item actioneaz script-ul cu acelai nume i are rolul de a a s s elimina din co articolele nedorite. Script-ul are urmtoarea form: s a a

Fig. 4.26: Script - Remove item

4. Kramp Search - Aplicatie demonstrativ a

57

Your Account Aceast ,,pagin ofer informatii despre utilizatorul aplicatiei i evident dea a a s spre potentialul client al companiei Kramp.

Fig. 4.27: Pagina Your Account

Rolul acestei ,,paginii este acela de a crea, modica i valida contul cliens tului. Pentru ecare dintre aceste operatiunii exista cate un buton specic care actioneaz cte un script. a a Scriptul pentru crearea de cont are urmtoarea form: a a

Fig. 4.28: Script - Create Account

Scriptul de creare face un test initial. Veric s vad dac exist vreo a a a a a nregistrare tabela Account, dac este deja o n a nregistrare atunci aeaz un s a

4. Kramp Search - Aplicatie demonstrativ a

58

mesaj de informare: ,,An account already exists. You can only modify it! caz n care script-ul trimite utilizatorul pe aceeai pagin de start, Your Account, dac s a a a nu gsete nimic tabela Account atunci trimite spre un layout folosit la ns a s n preluarea datelor YourAccountModicationPossibilityDesign dup care apeleaz a a un alt script pentru arcarea nc nregistrrilor din cmpurile de preluare (globale) a a cmpurile tabelei Account. nal, se face din nou transferul spre aceeai n a In s pagin de start Your Account pentru vizualizarea datelor introduse, mai exact a a contului nou creat. Script-ul Modify Account ofer posibilitatea de a face modicri asupra datelor a a de identicare a utilizatorului deja introduse. Acest script are urmtoarea form: a a

Fig. 4.29: Script - Modify Account

Modul de actiune al acestui script este dup cum urmeaz: se merge layout a a n ul Account, creat pe baza tabelei Account i se preiau datele de identicare (rst s name, last name, telephone, fax, e-mail ) i se introduc cmpurile globale afers n a ente. Dup ce cmpurile globale au fost a a ncarcate script-ul face transferul spre layout-ul YourAccountModicationPossibilityDesign, unde utilizatorul are posibilitatea s fac modicrile dorite asupra datelor deja introduse. De remarcat, a a a de asemenea, c pe acest layout accesul la cmpuri este permis spre deosebire de a a layout-ul YourAccountDesign, unde cmpurile sunt blocate la modicare. a Pentru a vedea rezultatul modicrilor fcute asupra datelor de identicare, a a utilizatorul trebuie s actioneze butonul Validate Modication, care la rndul su a a a va face posibil rularea script-ului cu acelai nume. Scriptul Validate Modication a s are urmtoarea form: a a

4. Kramp Search - Aplicatie demonstrativ a

59

Fig. 4.30: Script - Validate Modication

Actiunea acestui script este destul de simpl, i anume: se preiau datele din a s cmpurile globale i se transfer cmpurile corespondente din tabela Account. a s a n a Iar pentru a se face legtura dintre articolele adugate co i utilizator se mai a a n s s seteaz un cmp global (gAccountID) din tabela Shopping Basket cu PK -ul din a a tabela Account. Iar dup ce toate aceste operatii s-au fcut se realizeaz transa a a ferul aplicatiei din nou pe layout-ul YourAccountDesign. Current Order Ultima ,,pagin spre care ne vom a ndrepta atentia este Current Order, care nu este altceva dect un mixaj a ntre ,,pagina Your Account i ,,pagina Storage s Box, cu cteva diferente. a Aceast ,,pagin are ca layout background RequestFormDesign, construit a a n pe baza tabelei Account.

Fig. 4.31: Current Order

Butonul Print are rolul de a apela executia unui script i anume a script-ului s

4. Kramp Search - Aplicatie demonstrativ a

60

PrintRequestOrder. Forma acestui script este urmtoarea: a

Fig. 4.32: Script - Prin Request Order

Actiunea acestui script este aceea de a face o vizualizare a comenzii propuse de utilizator. Dup ce comanda este vizualizat, aplicatia se a a ntoarce iar pe layoutul RequestFormDesign, unde utilizatorul are posibilitatea de a imprima sau nu comanda forma actual. n a Forma comenzii varianta printabil este urmtoarea: n a a

Fig. 4.33: Varianta printabil a comenzii a

4. Kramp Search - Aplicatie demonstrativ a

61

4.3 Consideratii generale privind layout-urile


Inainte de toate trebuie reamintit c toate setrile layout-urilor s-au fcut a a a n modul Layout. Layout-urile au avut nevoie de o atentie deosebit, deoarece aspectul produsu a lui, cazul de fat o aplicatie, este foarte important pentru client. n a Fundalul era, de fapt, un layout standard FileMaker, ins s-a dorit persona alizarea sa cu imagini primite de la client dup un layout propriu al acestuia. a

Fig. 4.34: Elemente componente ale unui layout

De la aceste imagini i butoane s-a pornit constructia acestor ,,pagini. s De asemenea, pe aceste layout-uri s-au aezat butoane i portaluri. Pentru s s evidentierea anumitor informatii s-a folosit culoarea albastr setat foarte uor a a s din optiunile de formatare ale cmpurilor obtinute cu un click dreapta. Tot cu a ajutorul acestor optiuni s-au realizat i setrile pentru butoane, e c de ele s-au s a a ataat layout-uri, e script-uri. s

4. Kramp Search - Aplicatie demonstrativ a

62

Fig. 4.35: Optiuni pentru butoane i cmpuri s a

Setrile cu caracter general asupra layout-urilor se obtin din meniul Layouts. a

Fig. 4.36: Meniul Layouts

Dou dintre cele mai puternice unelte FileMaker, care ajut la aranjarea a n a pagin sunt: T-Square i Object Size. n a s

4. Kramp Search - Aplicatie demonstrativ a

63

Fig. 4.37: T-Square i Object Size s

5. CONCLUZII
Dincolo de argumentul teoretic asupra bazelor de date pe care prezint l a lucrarea de fat, punctul forte constituie aplicatia demonstrativ. a l a Kramp Search este o aplicatia creat FileMaker, constituindu-se nal a n n ntr-o aplicatie stand-alone, ce poate distribuit sub forma unui CD clientilor a companiei Kramp. Ideea aplicatiei este cea a modalitilor ct mai diverse de a ajunge la acelai at a s rezultat, motiv pentru care aplicatia folosete trei metode principale de cutare i a s regsire de articole din baza de date a companiei Kramp. a CD-ul cu aceast aplicatie reprezint o alternativ viabil la comanda simpl a a a a a de articole accesnd pagina de internet a companiei. a Compania a gndit aceast alternativ datorit faptului ca o mare parte a a a a a potentialilor clienti sunt fermieri, locuitori zone care nu exist neaprat i n n a a s posibilitatea conectrii la Internet. a Ca o provocare pentru viitor ceea ce privete n s mbuntirea acestei aplicatii a at este adgarea de functii noi, printre care i aceea de a avea posibilitatea de a a s trimite un e-mail cu comanda dorit, sigur cu conditia de a exista conexiunea la a internet.

6. BIBLIOGRAFIE
1. Dollinger, R., Andron, Luciana, Baze de date i gestiunea tranzactiilor, Editura Als bastr, Cluj-Napoca, 2004. a 2. Grupul BDASEIG, Baze de date - Fundamente teoretice i practice, Editura InfoMega, s Bucureti, 2002. s 3. Hernandez, Michael J., Proiectarea bazelor de date, Editura Teora, Bucureti, 2003. s 4. Ionescu, Felicia, Baze de date relationale i aplicatii, Editura Tehnic, Bucureti, 2004. s a s 5. Nagy, Mariana, Baze de date - exemple i aplicatii gestiunea economic, Editura s n a Mirton, Timioara, 2002. s 6. www.connenctingdata.com - FileMaker vs. Access: A developers comparison. 7. www.dbforums.com - Advantages and disadvantages of FileMaker. 8. www.lemaker.com - FileMaker Pro 7 Tutorial. 9. www.lemaker.com - FileMaker 7 Developers Guide. 10. www.rcconsulting.com - FileMaker Pro 4.x versus Ms Access 97.