Documente Academic
Documente Profesional
Documente Cultură
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
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
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
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.
Fig. 2.1:
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
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.
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.
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
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:
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
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
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
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;
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.
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
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
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
21
Fig. 2.3:
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
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.
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
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
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
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
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
28
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
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
30
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
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
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).
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
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.
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
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.
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.
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
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.
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
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
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.
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
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
44
45
start a aplicatiei Kramp Search, actiune controlat de ctre optiunea Switch to a a 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
46
global este legat un script care face interogarea respectiv i returneaz rezultatul. as a
Scriptul care realizeaz cutarea este search by text1 i are urmtoarea struca a s a tur: a
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.
47
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
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
48
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
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
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.
50
Expert Search O alt metod de cutare a articolelor catalogul de produse este denumit a a a n a Expert Search.
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
51
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
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
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.
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).
53
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
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
54
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.
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
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.
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
56
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
57
Your Account Aceast ,,pagin ofer informatii despre utilizatorul aplicatiei i evident dea a a s spre potentialul client al companiei Kramp.
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
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
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
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
59
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.
Butonul Print are rolul de a apela executia unui script i anume a script-ului s
60
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
61
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
62
Dou dintre cele mai puternice unelte FileMaker, care ajut la aranjarea a n a pagin sunt: T-Square i Object Size. n a s
63
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.