Documente Academic
Documente Profesional
Documente Cultură
Fox
Fox
Se studiaz: 1.1. Noiuni, concepte i modele utilizate n organizarea datelor Fiiere, baze de date i Sisteme de Gestiune a Bazelor de Date Banca de date, sistemul informaional, sistemul informatic cu baze de date 1.2. Organizarea datelor n baza de date Entitate, obiect (atribut), legturi (asocieri) ntre entiti Modele conceptuale pentru Sisteme de Gestiune a Bazelor de Date 1.3. Baze de date relaionale i S.G.B.D.R. Relaii (Tabele) Tipuri de chei i identificarea nregistrrilor prin chei Scrierea relaiilor bazei de date sub forma canonic Anomalii ntlnite n proiectarea relaiilor 1.4 - Etape de realizare a aplicaiilor informatice cu baze de date
Cuvinte cheie : date. infonnaii, fiier, baza de date, schema bazei de date. subschema bazei de date. nivel conceptual, nivel intern, nivel extern, bnci de date, sistem informaional, sistem informatic cu baze de date. Sistem de Gestiune a Bazelor de Date (SGBD), utilizatorii bazei de date (administratorul bazei de date. programatorii de aplicaii, utilizatorii finali), nregistrare, cmp. entitate, obiect (atribut), legturi (asocieri) ntre entiti, modelul entitate legtur, modele conceptuale pentru organizarea datelor, modelul ierarhic, modelul reea, modelul relaional. In informatica de gestiune sunt preferate bazele de date relaionale, datorit performanelor oferite de acest tip de organizare. Prin utilizarea pe scar larg a calculatoarelor personale (PC) utilizatorii au posibilitatea de a realiza rapid operaiile de ntreinere i regsire a datelor coninute n acest tip
de baze de date. Pentru a putea utiliza i mai ales pentru a putea proiecta astfel de baze de date relaionale este necesar s ne nsuim mai nti o serie de termeni i concepte.
fenomenelor, imaginilor, sunetelor, textelor. Aceste observaii (constatri) se nregistreaz de regul ntr-un cod convenional prin care se asigur comunicarea, interpretarea i prelucrarea datelor rezultate n urma acestor constatri. Asupra datelor, reprezentate ntr-un cod convenional, se pot face operaii de stocare, prelucrare, transmitere fie prin mijloace manuale, fie prin mijloacele informatice. Informaiile rezult din semnificaiile i legturile ce se pot deduce din ansamblul de date. n terminologia curent, prin conceptul de dat se nelege cuplul atribut-valoare (A,V), cu elemente selectate dintr-o mulime de atribute A i o mulime de valori V. Orice dat se identific prin atributul ei. Valoarea concret pe care o ia acest atribut constituie o reprezentare a sa. S urmrim n acest sens modul de constituire al datelor i informaiilor pentru o anchet social efectuat printr-un sondaj n urma cruia s-au obinut, printre altele, urmtoarele nregistrri: Atribute meserie meserie meserie meserie Valori strungar lctu magazioner macaragiu
data naterii 12.02.1935 data naterii 25.12.1937 data naterii 05.07.1934 data naterii 18.02.1929 In urma acestui sondaj au fost nregistrate datele de mai sus. Prin analiza semnificaiilor i a legturilor acestui eantion de date rezult informaiile extrase din sondaj: a) categoria socio-profesionala: muncitori; b) persoane n vrst. Un alt exemplu l constituie temperaturile zilnice. Termometrul arat temperaturi de 36C, 38C, 39C etc, adic se nregistreaz date care arat temperatura zilnic. Informaia ce rezult din aceste date const n faptul c se traverseaz o perioad de canicul. Desigur c exemplele pe aceast tem sunt 12 deosebit de numeroase, important este faptul c se face distincie net ntre date i informaii. 1.1.1. Fiiere, baze de date i Sisteme de Gestiune a Bazelor de Date Un fiier este un ansamblu de date ce poate fi manipulat de un mare numr de utilizatori ntr-o viziune unic asupra datelor. Datele memorate ntr-un fiier sunt structurate n nregistrri, o nregistrare se compune din mai multe cmpuri, un cmp are o lungime de unul sau mai multe caractere (octei), un caracter (byte sau octet) se memoreaz n opt bii. Un fiier se identific, de regul, de ctre sistemul de operare, printr-un nume i o extensie. O baz de date este un ansamblu de date ce poate fi manipulat de mai muli utilizatori n viziuni diferite asupra datelor. Baza de date este o colecie de date i informaii necesar i suficient pentru a satisface cerinele informaionale ale conducerii unei uniti economico-sociale (agent economic, instituii publice
eto). Din punct de vedere tehnic o baz de date este format din unul sau mai multe fiiere n care datele sunt memorate ntr-o structur de date specific software-ului utilizat la crearea bazei de date. 0 baz de date grupeaz un ansamblu de fiiere corelate. Structura acestui ansamblu de date se realizeaz prin schema bazei de date. Schema bazei de date, n sens CODASYL, descrie toate datele i structurile luate n eviden n cadrul unei baze de date. Ea reprezint punctul de vedere cel mai general care sintetizeaz cerinele tuturor utilizatorilor individuali i deci schema bazei de date reprezint structura global a bazei de date (unii autori o numesc structur global, alii structur virtual). n exploatarea bazei de date fiecare utilizator are propria viziune asupra structurrii datelor relevante pentru el. De fapt fiecare utilizator va avea acces la o baz de date particular, n realitate fictiv, iar descrierea acestei baze de date particulare se numete subschema bazei de date. Constituirea SCHEMEI CONCEPTUALE se realizeaz n patru etape dup cum urmeaz: Etapa 1: Identificarea mulimilor de entiti din cadrul sistemului Etapa 2: Identificarea asocierilor (legturilor) care exist ntre mulimile de entiti Etapa 3: Determinarea condiiilor care se impun asocierilor identificate Etapa 4: Determinarea caracteristicilor (atributelor) entitilor i asocierilor care au rezultat n urma etapelor precedente. n bazele de date are loc o integrare a datelor, n sensul c mai multe fiiere sunt privite ca un ansamblu, elimmndu-se datele redondante. Baza de
date permite accesul simultan la aceleai date, situate n acelai loc sau
distribuite, a mai multor persoane de pregtiri diferite , fiecare avnd stilul personal de lucru. Sistemul de programe care permite construirea unor baze de date, ncrcarea datelor i dezvoltarea de aplicaii privind valorificarea datelor memorate n bazele de date se numete Sistemul de Gestiune a Bazelor de date (SGBD). SGBD-ul este n fond o interfa ntre utilizatori i sistemul de oparare. APentru ca un sistem software sa fie un SGBD, el trebuie sa gestioneze baza de date prin patru funcii: de definire a datelor, de manipulare a datelor, de utilizare a datelor i de administrare a datelor. a) Funcia de definire a datelor permite descrierea structurii bazei de date cu ajutorul Limbajului de Definire a Datelor (LDD). Cu ajutorul LDD se descriu entitaile(coleciile), caracteristicile (cmpurile) acestora, precum i legturile dintre entiti. b) Funcia de manipulare a datelor permite ncrcarea/validarea datelor, actualizarea datelor i interogarea (regsirea datelor). Toate aceste operaii se realizeaz cu ajutorul Limbajului de Manipulare a Datelor (LMD); c) Funcia de utilizare a datelor asigur interfeele necesare comunicrii utilizatorului cu baza de date. Categoriile de utilizatori sunt: programatorii de aplicaii (SGBD le ofer limbaje de programare i interfee), administratorul bazei de date (SGBD i ofer instrumente specializate), alte categorii de utilizatori (SGBD le ofer instrumente i interfee specifice).
d) Funcia de administrare a bazei de date permite gestionarea corect a bazei de date, att n procesul de realizare a bazei, ct i n procesul de exploatare a bazei. SGBD ofer instrumente utile pentru: ncrcarea structurii bazei de date, reorganizarea bazei de date, jumalizarea i refacerea bazei de date n caz de incidente, analiza statistic asupra bazei de date. Studiind impactul Sistemelor de Gestiune a Bazelor de Date (S.G.B.D.) cu sistemele informaionale, grupul de lucru ANSI (SUA) "Standard Planning And Requirement Committee" (SPARC) propune o arhitectur de baz de date multinivel, fiecare nivel avnd asociat un model i o schem^Conform acestei metodologii fiecrei baze de date 1 se asociaz trei nivele funcionale i anume: nivelul conceptual care este depozitarul semantic al bazei de date. Acest nivel reprezint o abstracie a sistemului modelat i servete ca referire global pentru viziunile particulare ale utilizatorilor (schema bazei de date); nivelul extern (logic) cuprinde viziunile specifice definite pentru manipularea (prelucrarea) datelor. Necesitile de date ale
14
utilizatorilor sunt exprimate la acest nivel. O viziune extern a bazei de date reprezint, ntr-o manier ct mai aproape de realitate, un tip de utilizator al bazei de date (subschemele bazei de date); nivelul intern (fizic), corespunde reprezentrii datelor pe suporturile de date. Acest nivel contribuie la eficacitatea transpunerii i implementrii sistemului conceptual.
1.1.2. Banca de date, sistemul informaional, sistemul informatic cu baze de date Banca de date reprezint un sistem de organizare, prelucrare i teletransmisie de date i informaii, care este format dintr-o baza de date, un sistem de programe pentru gestiunea fiierelor bazei de date, echipamentele de calcul implicate i procedurile de lucru utilizate. Sistemul de programe destinat gestiunii datelor coninute n baza de date poart numele de Sistem de Gestiune a Bazei de Date (S.G.B.D.) i este un sistem de programe, care asigur independena programelor aplicative fa de modul de structurare a datelor. Sistemul informaional este sistemul de culegere, prelucrare, transmitere i stocare a datelor i informaiilor care circul n cadrul unei uniti economico-sociale. Sistemul informaional face legtura ntre sistemul condus i sistemul de conducere fiind subordonat acestora. Sistemul informatic este un ansamblu structurat de elemente intercorelate funcional pentru automatizarea procesului de obinere a informaiilor i fundamentarea deciziilor. Sistemul informatic este inclus n sistemul informaional i conine procesul de culegere, verificare, transmitere, stocare i prelucrare automat a datelor. Sistemul informatic se compune din baza de date, echipamente de calcul i transmisie de date, software-ul i utilizatorii. SISTEM INFORMATION A T
SISTEM INFORMATIC Subsistem BANCA DE DATE Baza de date SGBD Echip. Proceduri de calcul
Schema nr. 1 - Relaiile dintre sistemul informaional sistemul informatic i banca de date 15
Sistemul de gestiune ai bazelor de date (SGBD) este un software cunoscut n literatura de specialitate n limba englez sub terminologia de DBMS (Data Base Management System), iar n literatura francez SGBD (Sistem de Gestion de Base de Donnees). SGBD-ul este un sistem de programe de gestiune i de aplicaii, care asigur descrierea structurii bazei de date, manipularea datelor (creare, actualizare, interogare, listare i ntreinere), controlul i autorizarea accesului la baza de date i asigurarea integritii i securitii bazei de date. n schema nr. 1 sunt reprezentate grafic relaiile stabilite ntre aceste concepte. Deoarece datele dintr-o unitate economico-social sunt ntr-o permanent schimbare, atunci i asupra datelor memorate n baza de date asociat sistemului informatic al unitii economico-sociale se efectueaz operaii de creare, modificare, adugare, tergere, prelucrare (interogare, listare, transfer) etc. Utilizatorii bazei de date se mpart n urmtoarele categorii: Administratorul bazei de date, care este gestionarul responsabil cu buna funcionare a SGBD i cu meninerea n permanen n stare de funcionare a bazei de date. Administratorul bazei de date ( o persoan sau un grup) are urmtoarele responsabiliti: proiectarea bazei de date (definirea schemei i a subschemelor); asigurarea securitii datelor; ameliorarea performanelor bazei de date; asigurarea integritii i extinderii bazei de date. Programatorii de aplicaii - specialitii care realizeaz programe in LC, acestea fiind apoi compilate i memorate n fiiere ce pot fi lansate n execuie de ctre utilizatori prin apelarea numelui asociat de utilizator i efectueaz unele prelucrri specifice de date; Utilizatorii finali - persoane care exploateaz baza de date si ruleaz inclusiv programele elaborate de programatorii de aplicaii. Aceti utilizatori pot s obin informaiile memorate n baza de date fr s aib cunotine de programare. Ei obin informaiile dorite prin comenzi cunoscute i eventual rspunznd la diferite opiuni pe care le indic sistemul la un moment dat. DE REINUT: Pentru a lucra cu baze de date i cu SGBD trebuie s reinem urmtoarele definiii de lucra: 1. Baza de date: Un ansamblu de colecii de date :
organizat pe niveluri de organizare a datelor n memoria extern; coerent, conform unor restricii de integritate; structurat conform unui model de date; 16
cu o redundana minima si controlata, asigurata prmtr-o tehnica de proiectare; accesibil mai multor utilizatori n timp util. 2. nregistrare: Totalitatea informaiilor referitoare la un articol coninut n baza de date; 3. Cmp: Unitatea de informaie din interiorul unei nregistrri. 4. Sistem de Gestiune a Bazelor de Date (SGBDV. Produs software destinat gestionrii datelor i informaiilor coninute ntr-o baza de date. SGBD-ul asigur operaii de creare (generare), actualizare, interogare, listare i ntreinere pentru bazele de date. SGBD-ul conme de regul un limbaj de definire a datelor (DDL) si un limbaj de prelucrare a datelor (DML). 5. Administratorul bazei de date: Persoana care are responsabilitatea gestionrii coninutului bazei de date. Asigur n principal operaiile de ntreinere i are n responsabilitate suporii fizicii pe care se afl baza de date. Observaii: 1. Numele atribuit cmpurilor unei nregistrri dmtr-o baza de date rmn neschimbate pentru toate nregistrrile coninute n baza de date; 2. Datele originale coninute n baza de date rmn nemodificate chiar dac n urma prelucrrilor s-au obinut diverse liste cu informaii coninute n baza de date; ntrebri recapitulative: 1. Care este diferena dintre data i informaie9 2. Ce este o baza de date0 Care este diferena dintre un fiier i o baz de date? 3. Ce se nelege prin conceptul de subschem a bazei de date0 Care este relaia dintre subschem bazei de date i utilizatorii bazei de date0 4. Ce se nelege prin conceptul de schem a bazei de date0 Ce relaie exist ntre schema bazei de date i administratorul bazei de date ? 5. Definii termenii de banc de date. S.G.B.D., echipamente. Ce legtur exist ntre aceti termeni0 6. Definii conceptele de sistem informaional i sistem informatic0 Ce legtur exist ntre aceste concepte0 7. Definii termenii: nregistrare, cmp, lungimea cmpului. Exist vreo legtur ntre aceti termeni? 8. Definii termenul de cmp a unei nregistrri i termenul de valoare al cmpului unei nregistrri. 17 9. Ce diferen exist ntre structura unei nregistrri i coninutul unei
nregistrri 10. Utilizatorul final ai bazei de date lucreaz cu schema bazei de date sau cu subschema bazei de date?
1.2.2. Modele conceptuale pentru Sisteme de Gestiune a Bazelor de Date Modelul conceptual pentru un Sistem de Gestiune al Bazei de Date este modelul utilizat pentru descrierea structurii conceptuale (schemei) i structurii logice (subschemei) a datelor, precum i a legturilor dintre acestea existente ntr-o baz de date, El se particularizeaz prin modul de definire al entitilor, cmpurilor, tipurilor de nregistrri, legturilor dintre coleciile de date i prin terminologia utilizat. Modelul conceptual nu trebuie confundat cu structura de reprezentare a datelor, deoarece pentru aceeai structur de reprezentare pot exista mai multe modele conceptuale i desigur c pentru diferite structuri de reprezentare, se poate elabora un singur model conceptual. In practica prelucrrii automate a datelor, s-au consacrat urmtoarele modele conceptuale: modelul conceptual "ierarhic", modelul conceptual,.reea", modelul conceptual relaional". Modelul conceptual "ierarhic" se bazeaz pe structuri de reprezentare "arborescente" i tipuri de legturi 1:1, l:n. Cu ajutorul modelului conceptual "ierarhic", schema bazei de date poate fi reprezentat sub forma unui graf arborescent (cu un nod rdcin) n care nodurile exprim coleciile de date, iar 19
arcele reflect legturile de asociere ntre nregistrrile coleciilor de date superioare i inferioare. Caracteristicile acestui model sunt: accesul direct este posibil numai la nregistrrile din colecia de date rdcin; accesul la nregistrrile coleciilor de date inferioare se face prin specificarea tuturor coleciilor, care se gsesc pe drumul de acces (toate coleciile care se afl n subordonare ierarhic ntre colecia rdcin i colecia cercetat). toate nregistrrile din colecia bazei de date, cu excepia coleciei de date rdcin, au cte o nregistrare superioar. n prezent se afl n exploatare mai multe SGBD-uri , fundamentate pe modelul ierarhic ntre care menionm: GIS (IBM), IMS (IBM), IDMS(UNIVAC), etc. Modelul conceptual "reea" se bazeaz pe structura de reprezentare "reea" i pe tipurile de legturi 1:1, 1 :n i m:n. Prin acest model schema bazei de date poate fi reprezentat sub forma unui graf general, fr limite, n care nodurile exprim colecii de date, iar arcele reflect relaiile de asociere. Caracteristica principal este aceea c accept ca orice colecie de date s se situeze la nivelul 1, prin indicarea explicit a relaiilor dintre acestea. n plus accept existena temporar a nregistrrilor fr legaturi cu alte nregistrri i permite nregistrarea unic a nregistrrilor n baza de date. Potrivit acestui model, legturile fizice pe suport se fac prin intermediul unor caracteristici distincte ale structurilor sale (pointeri), a cror nregistrare exprim adresa pe suport a nregistrrii superioare sau a nregistrrii inferioare. Acest model conceptual st la baza SGBD-unlor TOTAL(UNIVAC), DBMS(DEC) i SOCRATE. Modelul conceptual relaional a fost elaborat de matematicianul C F.Codd de la firma IBM. In acest model, conceperea schemei depinde exclusiv de legturile dintre obiecte. Modelul relaional permite o descriere simpl a bazei de date sub forma unor tabele n care actualizarea datelor n tabele se face fr anomalii de stocare. n modelul relaional o colecie de atribute (cmpuri) formeaz o relaie (numit i tabel). O relaie poate fi reprezentat printr-o tabel, n care fiecare rnd reprezint un tuplu (o nregistrare) distinct, iar fiecare coloan reprezint un cmp al nregistrrii, cmp ce ia valori ntr-un anumit domeniu. Cu ajutorul modelului relaional structura conceptual a bazei de date poate fi reprezentat sub forma unei mulimi de tabele, care se asociaz ntre ele prin intermediul unor chei. Modelul conceptual relaional prezint o serie de avantaje:
20
este uor accesibil pentru utilizatorii mai puin iniiai n informatic, prin faptul c baza de date este reprezentat ca o colecie de tabele; este un model omogen de reprezentare a legturilor dintre coleciile de date (prin relaii); asigur independena programelor fa de structura datelor; permite proiectarea unei structuri conceptuale optime a datelor, cu ajutorul operaiei de normalizare;
admite satisfacerea cerinelor ntmpltoare ale utilizatorilor, prin intermediul unor limbaje bazate pe algebra relaiilor sau a unor limbaje neprocedurale bazate pe teoria predicatelor. Din aceast categorie a SGBD relaionale menionm: dBASE, produs elaborat de firma Ashton Tate (n prezent dezvoltat de firma Borland), implementat pe microcalculatoare compatibile IBM sub sistemul de operare DOS i UNIX ; FoxPro, implementat pe microcalculatoare PC compatibile IBM sub sistemul de operare DOS. WINDOWS, MAC i UNIX; ORACLE: operaional pe IBM-PC sub sistemele DOS, WINDOWS i UNIX precum i pe calculatoare de mare capacitate; SQLServer, produs de firma Microsoft: INGRES, conceput de Universitatea Berkeley, instalat pe mmicalculatoare sub sistemul de operare UNIX i lucreaz n regim de multiutilizator; INFORMIX, operaional sub sistemul de operare SOLARIS. - DB2, operaional pe microcalculatoare IBM, etc. ntrebri recapitulative: 1. 2. 3. 4. Definii termenii: entitate, obiect, atribut, legtur ntre entiti. Ce tipuri de legturi exista ntre entiti? Ce modele conceptuale de organizare a datelor cunoatei0 Dai exemple de SGBD-un care gestioneaz baze de date: ierarhice, reea, relaionale. 5. Ce legtur exist ntre conceptul de tabel i conceptul de entitate n modelul relaional1?
CLIENI: Cod client Nume client 2121 Ion Popescu 3456 Gergeta Pana 4612 Ana Grigore 7562 Victor Avram Fig. nr. 3 - Fragment din tabela CLIENI
Tabela CLIENI include numai caracteristicile unui client, alte tabele din baza de date conin alte entiti, de exemplu tabela COMENZI, tabela PERSONAL etc. n acest context putem defini baza de date relaional ca o colecie de relaii.
JUDEE: Codjude AB AG BV CJ HD
.. . - >-.-
Nrjude 01 02 06 12 23
Fig. nr. 4 - Relaia JUDEE Un atribut sau o colecie de atribute, care poate seni ca i cheie primar se numete cheie candidat. De exemplu, atributele Codjude i Nrjude sunt chei candidate. n proiectarea bazei de date relaionale se poate alege una din cheile candidate, ca i cheie primar, iar celelalte candidate ca i chei alternante. Un atribut multiplu folosit ca i cheie primar se mai numete i cheie compus (concatenat sau compozit). Cheia extern este un atribut sau o colecie de atribute a unei relaii a crui valoare trebuie s fie valoare pereche a cheii primare din cadrul relaiei primare. Spre exemplu, dac avem dou tabele: LOCALITI i JUDEE, n care un atribut apare n ambele tabele. Atributul Codjude n tabela JUDEE este cheie primar, iar n tabela LOCALITI este cheie extern.
PRODUCIE ( Cod tar. Nume cultur. Producie) Cheie extern: Cod_ar, pentru legtura cu tabela RI Cheie extern: Nume_cultur, pentru legtura cu tabela CULTURI TRANSPORT (Cod tar. Litoral, Export, Import) Cheie extern: Cod_tar, pentru legtura cu tabela RI
volumul mare al datelor, ana geografic de rspndire a utilizatorilor, timpul de rspuns la cererile utilizatorilor, modul de actualizare a datelor, ridic o serie de aspecte privind organizarea datelor n baza de date. n scopul obinerii unor performane n exploatarea acestei aplicaii. In procesul de elaborare a unei aplicaii informatice cu baze de date se parcurg urmtoarele etape:
a) Analiza cerinelor aplicaiei Orice aplicaie informatic se proiecteaz pentru a rspunde cerinelor unui beneficiar. Procesul de analiz a cerinelor ncepe cu nelegerea corect i complet a solicitrilor beneficiarului i continu cu analiza detaliat a funciunilor sistemului analizat i a modului de structurare a datelor. In urma acestui proces rezult punctele critice (problemele i deficienele) ale sistemului existent, generate de regul de redundana datelor, duplicarea proceselor de prelucrare i de timpul mare de rspuns datorat prelucrrilor manuale. Aceste puncte critice ale sistemului existent trebuie s fie nlturate prin realizarea de aplicaii informatice cu baze de date. In urma acestei etape rezult specificarea n detaliu a cerinelor funcionale i a restriciilor de realizare a aplicaiei informatice cu baza de date. Din activitatea de analiza rezult modelul conceptual al aplicaiei cu baze de date. b) Proiectarea aplicaiei In aceast etap se specific componentele aplicaiei: ieiri, intrri, baza de date, fluxul de informaii, modulele aplicaiei, proceduri de ncrcare, actualizare i exploatare a bazei de date. In cadrul acestei etape accentul cade pe proiectarea structurii bazei de date n scopul asigurrii eficienei aplicaiei, eficien raportat la criteriul cost-performane. Din diagramele construite n etapa de analiza se alege SGBD-ul i se proiecteaz schema conceptuala, schema logica i schema fizica a bazei de date. Proiectarea schemei conceptuale a bazei de date se realizeaz, utiliznd tehnica normalizm pentru eliminarea anomaliilor care pot s apar m exploatarea bazei de date. De un interes deosebit pentru eliminarea anomaliilor de inserare, tergere sau modificare a datelor sunt primele trei forme de normalizare notate cu FN1, FN2, FN3. Forma normala 1 (FN1). O tabel este n FN1, dac toate cmpurile sunt la nivel elementar i nu exist cmpuri repetitive. Forma normala 2 (FN2): O tabel este n FN2, dac este n FN1 i toate atributele non-cheie depind funcional complet de cmpul cheie (nu
conine dependene pariale) 25 Forma normala 3 (FN3): O tabel este n FN3, dac este n FNz i exist dependee tranzitive.
Ameliorarea succesiva a schemei conceptuale a bazei de date se asigura n urma trecerii schemei conceptuale prin cele trei forme de normalizare.
Proiectarea schemei logice a bazei de date , consta n definirea structurii tabelelor componente sub forma: Structura losica a tabelei STUDENI: NrMatricol N 4 (numrul matricol al studentului) Nume C 15 (nume student) Prenume C 15 (prenume student) DataN D 8 (data naterii) Loc C 20 (Localitatea naterii) AnUniv C 7 (An universitar sub forma 2004/05) AnStudii N 1 (Anul de studii) Grupa N 3(Nr. Grupei) Proiectarea .schemei fizice a unei baze de date evideniaz organizarea datelor pe suport fizic extern de memorare a datelor, adic precizeaz dispunerea datelor n memoria extern. Fiecrei tabele (relaii), din schema logic a bazei de date, i va corespunde o reprezentare fizic (fiier). Rezultatul proiectrii schemei fizice este stabilirea structurii de memorare fizic a datelor i definirea cilor de acces la date. Operaiile care se fac la proiectarea schemei fizice sunt: estimarea spaiului fizic necesar pentru memorarea bazei de date i definirea unui model fizic de alocare; - definirea indecilor pentru accesul direct la date; construirea de clustere" pentru a optimiza accesul la anumite date de ctre anumii utilizatori. c) Elaborarea aplicaiei Modulele aplicaiei informatice cu baza de date, definit n etapa de proiectare, urmeaz s fie testate i integrate n ansamblul aplicaiei. Dezvoltarea acestor module se face de regul folosind fie limbajul de programare oferit de SGBD-ul ales, fie utiliznd generatoarele de aplicaii puse la dispoziie de acest SGBD. d) Implementarea i exploatarea aplicaiei informatice n cadrul etapei de implementare a aplicaiei informatice cu baze de date se disting urmtoarele faze: 26 punerea n funciune a aplicaiei, faz n care trebuie s se asigure resursele hardware i software necesare rulrii aplicaiei; ncrcarea bazei de date i testarea aplicaiei n ansamblul ei; asigurarea condiiilor de exploatare curent a aplicaiei la parametrii
prevzui; adaptarea structurii bazei de date i a aplicaiei la dinamica cerinelor utilizatorilor, la schimbrile tehnice i organizatorice care pot interveni.
pentru un trimestru dat; 8) S se proiecteze un raport privind Costurile pentru produsele finite, pentru un trimestru dat;
FOXPRO este un Sistem de Gestiune a Bazelor de Date (SGBD) de tip relaionala El este un instrument performant pentru toate aplicaiile de gestiune cu baze de date. Pentru a marca cteva date semnificative din evoluia sistemului FOXPRO amintim ca la sfritul anilor :70 firma Asthon-Tate a realizat produi dBASE II care a constituit punctul de plecare al SGBD-urilor din gama xBASE. In anii '80 se dezvolta produsul FOX , produs pseudorelational dar deosebit de rapid, dezvoltat de ctre firma Fox Software. In anul 1991 apare FoxPro 2.0 care devine lider autoritar al produselor de acest gen. In anul 1992, firma Fox Software este preluata de ctre Microsoft, care a dezvoltat versiunile 2.5 si 2.6 ale produsului FoxPro sub MS-DOS, Windows, Mac si UNIX, utilizate pe microcalculatoare ca staii de lucru individuale sau in reea locala LAN. In anul 1995, Microsoft lanseaz versiunea Visual Foxpro 3. care a fost urmata in 1997 de versiunea 5 si m anul 1998 apare versiunea Visual FoxPro 6 ca parte componenta a pachetului Visual Studio 6.0, alturi de alte produse de tip Visual ca: Basic, C++, Java++, InterDev. Toate aceste produse ofer compilri rapide, depanare eficienta si interactiva, HTML ca interfaa pentru aplicaii tip multimedia si compatibilitate cu toate produsele din pachetele VISUAL STUDIO si OFFICE precum si dezvoltarea aplicaiilor in reea structurata pe trei nivele (date, procese, interfaa utilizator).
29
Principalele componente funcionale ale sistemului Foxpro sunt urmtoarele: Nucleul Foxpro, care conine cele dou limbaje ; de descriere a datelor (DDL); de manipulare a datelor (DML). Pentru manipularea datelor FOXPRO pune la dispoziia utilizatorilor: Comenzi pentru crearea, actualizarea, interogarea, listarea i ntreinerea bazelor de date ; Meniuri pentru gestionarea bazelor de date ; Limbajul de programare FoxPro, un limbaj procedural care permite crearea, actualizarea, interogarea, listarea i exploatarea bazelor de date; Limbajul SQL, un limbaj neprocedural, care este standardul pentru clasa limbajelor relaionale i care permite , de asemenea, crearea, actualizarea i interogarea bazelor de date. Generatoarele sistemului, care permit, printr-un dialog interactiv cu utilizatorul i un efort minim de programare, realizarea unor module sau aplicaii complexe, cum sunt: Generatorul de Rapoarte (REPORT WRITER); Generatorul de Ecrane ( SCREEN BUILDER); Generatorul de meniuri (MENU BU1LDER); Generatorul de Aplicaii (Foxpro APPLICATION) Generatorul de etichete (LABEL DESIGNER) Generatorul de Proiecte (PROJECT MANAGER) Generatorul de Interogri (RQBE/SQL) FOXPRO dispune de un set de Instrumente pentru instruirea i asistarea utilizatorului (programul Tutorial al lui Foxpro, sistemul Help, facilitile de lucru cu programele tip Wizard, etc); Utilitarele sistemului Foxpro, care sunt specializate pentru realizarea unor anumite funcii, cum sunt: TEXT EDITOR),' Utilitarul pentru gestionarea fiierelor, Utilitarul pentru formatarea programelor surs; Utilitarul pentru generarea documentaiei. FOXPRO are urmtoarele tipuri de Kituri: Distribution Kit, care permite realizarea aplicaiilor Foxpro i livrarea lor n format executabil (fiiere de tip .EXE), n variantele Runtime i Standalone. Coimectivity Kit, care permite realizarea de aplicaii Client-Server prin conectarea la un server Oracle, SQL, Library Construction Kit, care permite utilizarea sau crearea bibliotecilor de finiii C. Trace /Debug, care permite programatorului s urmreasc i s depaneze relativ uor codul programului surs, afind ntr-o fereastr Debug
30
Corespunztor imaginii de pe ecran, Foxpro permite utilizatorului mai multe modaliti de lucru, i anume: Modul de lucru prin Comenzi se desfoar in fereastra de comanda
din ecranul principal. Aici se afla cursorul si utilizatorul poate lucra in stil intrpreter sau in stil compilator. Stilul interpretei-, inseamna ca se tasteaz o comanda FoxPro si apoi se apas tasta Enter. Sistemul preia comanda , o interpreteaz si daca nu sunt erori o lanseaz in execuie. Rezultatul este afiat in aria de ieire din ecranul principal. Daca se detecteaz o eroare la interpretarea comenzii, atunci se afieaz un mesaj explicativ si comanda trebuie corectata corespunztor.
32
Stilul compilator permite dezvoltarea programelor scrise in codul sursa al limbajului FoxPro. Se apeleaz editorul de texte (MODI COMM) care ne plaseaz intr-o fereastra specifica, unde se tasteaz codul sursa al aplicatioei, iar la ieire (prin apsarea tastei CTRL/W) rezulat un fiier cu extensia .PRG. In continuare se apleaza programul sursa ( DO nume) care este compilat, link-editat si rulat. Pentru a obine un fiier executabil (de tip .EXE) este nevoie de componenta RUN TTME . Progamul executabil poate fi rulat pe orice tip de calculator, sub sistemul de operare Windows, fara a mai fi nevoie de sistemul FoxPro. Acest mod de lucru este dedicat ndeosebi specialitilor, programatorilor de aplicaii Foxpro, care cunosc facilitile i performanele limbajului de programare Foxpro.
Modul de lucru meniu sistem - permite utilizatorului sa apeleze toate instrumentele si mtrfetele sistemului FoxPro. Acest mod de lucru se recomanda utilizatorilor care prefera dezvoltarea aplicaiilor cu ajutorul generatoarelor. Efortul depus pe aceasta cale este redus si nu se programeaz in cod sursa. Opiunile de lucru sunt dispuse intrun meniu principal orizontal si fiecare genereaz un submeniu vertical, rezultnd astfel un sistem de meniuri. Observaii: 1. Trecerea de la modul de lucru comanda la cel lip meniu este cu trecerea controlului de la fereastra de comenzi la meniul principal i invers. Acest lucru se realizeaz uor prin intermediul tastei FIO sau efectund un cick mouse pe meniu sau n fereastra de comenzi. Saltul de pe bara de meniu n fereastra de comenzi se poate face astfel: apsnd tasta FIO sau ci ick mouse n fereastra de comenzi sau apsnd tasta Fsc sau Alt Saltul din ferestra de comenzi pe bara meniului principal se poate face astfel: apsnd tasta F10 sau click mouse pe opiunea dorit din meniu (sau pe oricare dintre ele) sau apsnd tasta Alt sau apsnd tasta Alt i litera "ficrbinte,r din opiunea dorit 2. Ferestrele Foxpro pot fi deschise. nchise, ascunse, mrite sau micorate (redimensionate). mutate, activate sau inhibate^, dotate cu posibilitatea de defilare a imaginii n interiorul lor, colorate sau desenate dup imaginaia i personalitatea programatorilor de aplicaii sub Foxpro. Pentru
toate aceste operaii, Foxpro pune la dispoziia utilizatorilor o serie de comenzi "de lucru cu ferestre". 2.3. Tipuri de fiiere n FOXPRO FOXPRO lucreaz cu un mare numr de tipuri de fiiere dintre care trebuie s reinem pe cele mai importante: Baze de date (DBF); Fiier index multiplu (.MDX); Fiier index simplu (.NDX); Fiier catalog (.CAT); Fiier cu viziuni (.VUE); Fiier ecran (. SCR); Program sau fiier de comenzi (.PRG); Fiier de tip memo (.DBT); Fiier format de raport (.FRM); Fiier format de etichet (.LBL); Fiier de extracie (.QBE); Fiier de salvare (.BAK). Pentru baza de date propriu zis, cu extensia .DBF se va utiliza noiunea de baz de date , celelalte vor fi denumite fiiere.
Cuvintele cheie ale comenzilor Foxpro pot fi abreviate (prescurtate) la cel puin primele 4 caractere. Dac se scriu mai multe caractere. acestea trebuie s fie corecte. Cuvintele sunt separate prin unul sau mai multe spaii. Foxpro dispune de o memorie tampon (numit i istoricul comenzilor), unde se pstreaz ultimele comenzi transmise. Vizualizarea comenzilor memorate n istoric se realizeaz prin comenzile DISPLAY fflSTORY i LIST HISTORY. Prin utilizarea tastelor direcionale (cu sgei) se pot apela comenzile anterioare. Astfel, fr a mai tasta din nou o linie de comand anterioar, o cutm n fereastra de comenzi i ne poziionm pe ea cu ajutorul tastelor cu sgei, apoi apsam Enter. - Fiecare comand Foxpro prelucreaz n mod implicit un anumit tip de fiier (Ex. Use , Copy - fiiere tip .DBF, Report form ... - fiier tip .FRM, Modify command - fiier .PRG, etc). De aceea, n mod normal, utilizatorul va specifica, atunci cnd se cere, doar numele fiierului, tipul acestuia fiind automat gestionat de sistem. Dac ns utilizatorul va specifica nume.tip pentru fiierul cerut, atunci acesta va fi luat n considerare i va trebui precizat de fiecare dat cnd se face referire la fiierul respectiv. Domeniul de aciune al comenzilor Foxpro
Comenzile Foxpro de prelucrare a datelor au cte un domeniu de aciune implicit, care poate fi: fie nregistrarea curent, fie toate nregistrrile tabelei active. Acest domeniu poate fi modificat, astfel nct comanda s acioneze asupra domeniului dorit de utilizator, prin 2 metode: a) Prin specificarea expres a domeniului dorit, cu ajutorul urmtoarelor cuvinte cheie: Cuvinte cheie ALL NEXTn RECORD n REST Semnificaie Comanda acioneaz asupra tuturor nregistrrilor din tabela activ Comanda acioneaz asupra urmtoarelor n nregistrri, ncepnd cu cea curent, din tabela activ Comanda acioneaz asupra nregistrrii cu numrul n (specificat) din tabela activ Comanda acioneaz asupra tuturor nregistrrilor rmase, de la cea curent i pn la sfrit, din tabela activ
Se impun urmtoarele precizri: Pentru a avea acces la datele dintr-o tabel, ea trebuie s fie mai nti deschis. O tabele deschis se numete activ, Se numete nregistrare curent - nregistrarea supusa prelucrrii la un moment dat i pe care se afl pointerul tabelei.
b) Prin introducerea, n cadrul comenzii Foxpro, a unei expresii condiionale, cu ajutorul cuvintelor cheie FOR sau VVH1LE. Comanda va putea avea astfel formatul: - <comand> FOR <condiie> In acest caz, comanda va aciona asupra acelor nregistrri din tabela activ (sau numai din domeniul specificat) pentru care condiia specificat este adevrat (are valoarea logic TRUE-adevrat). - <comand> \VHILE <condiie> In acest caz, comanda va aciona asupra nregistrrilor, atta timp ct condiia specificat rmne adevrat. Se observ c o astfel de cerin poate fi util doar dac nregistrrile tabelei active sunt grupate, ordonate dup criteriul specificat n condiie.
2.5.1. Constante
Constantele sunt entiti cu valoare invariabil, autodefinit. Foxpro utilizeaz urmtoarele tipuri de constante: constante numerice ( ex. numere 7 5.4 -452.85); constante de tip ir de caractere, cuprise ntre ghilimele, apostroafe sau paranteze drepte, ca delimitatori (exemplu: 'PROGRAM DE GESTIUNE A STOCURILOR') constante logice cu valorile logice: .T. (True), .. (Yes) - pentru Adevrat .F. (False), .N. (No) - pentru Fals. constante de tip dat calendaristic, cuprinse ntre paranteze de tip acolad ca delimitatori (ex i 10/30/99 f")
2.5.2. Variabile
Sub SGBD-ul Foxpro, variabilele de memorie sunt de 2 tipuri: variabile de memorie create de utilizator - variabile de memorie sistem Variabilele create de utilizator pot fi: cmpuri de date din nregistrrile tabelelor active (create odat cu tabelele i descrise n structura acestora) variabile de memorie (independente) Variabilele de memorie sunt entiti a cror valoare poate fi
modificat, servind pentru memorarea temporar a datelor. Spre deosebire de cmpurile de date, care sunt descrise de utilizator la crearea tabelei, variabilele de memorie se aloc i se elibereaz n mod dinamic, funcie de natura i lungimea datelor memorate n ele. Asemenea cmpurilor de date, variabilele se caracterizeaz prin cele 3 elemente de descriere: - nume - tip lungime Numele variabilei servete pentru identificarea sa i respect regula numelui de cmp de date. adic este un cuvnt alfanumeric, format din cel mult 10 caractere i avnd primul caracter o liter. De regul el sugereaz coninutul informaional al variabilei. Tipul variabilei definete tipul datei memorate temporar. Ca i constantele i cmpurile de date, ele pot fi de tip:
37
numeric - memoreaz o dat numeric; ir de caractere - memoreaz orice combinaie de caractere; logic - memoreaz o valoare logic de Adevrat sau Fals; dat calendaristic - memoreaz o dat calendaristic, sub formatul standard american de LL/ZZ/AA; masiv - memoreaz date structurate sub forma unui tablou (definite sub forma unui vector sau matrice). Lungimea variabilei este dat de mrimea locaiei de memorie alocat, exprimat n numr de caractere. Spre deosebire de cmpurile de date din tabele, a cror lungime este definit de proiectant, lungimea variabilelor de memorie de tip numeric sau caracter este alocat automat, funcie de lungimea datei nscrise n ea. O variabil de tip logic are automat lungimea =1, iar cea de tip dat calendaristic lungimea =8. Aceste variabile pot fi create cu comenzile ACCEPT, INPUT, WAIT, STORE, COUNT, SUM, AVERAGE, CALCULATE, DECLARE, PRIVATE, PUBLIC etc.i pot fi salvate n fiiere de tip .MEM cu comanda SAVE . Readucerea lor n memorie se face cu comanda RESTORE. Pentru crearea structurilor de date de tip masiv pot fi folosite comenzile DECLARE, DIMENSION, SCATTER. tergerea sau eliberarea variabilelor de memorie se poate face atunci cnd datele respective nu mai sunt necesare, cu comenzile CLEAR MEMORY , RELEASE.
2.5.3. Operatori
Principalele tipuri de operaii efectuate sub Foxpro sunt: matematice de comparare logice
pe iruri de caractere fiecrui tip corespunzndu-i operatori specifici. Astfel, operatorii matematici sunt: + adunare scdere * nmulire / mprire ** ridicare la putere gruparea operaiilor, dac este cazul. 0
38
Ordinea de prioritate a acestor operatori n expresii este: ridicarea la putere, nmulirea i mprirea, adunarea i scderea. Operatorii de comparare sunt utilizai pentru compararea expresiilor de tip logic, caracter, numeric sau dat calendaristic. Cele dou expresii trebuie s fie de acelai tip, iar rezultatul va fi de tip logic, adevrat (.T) sau fals (.F). operator de subir, cu urmtoarea definire: Dac A i B sunt de tip caracter, A$B este adevrat, dac A este identic cu B sau A este inclus n B. Operatorii logici sunt: AND. i logic .OR. Sau logic .NOT. Negare () pentru gruparea operaiilor n cadrul expresiilor Ordinea de prioritate la evaluarea expresiilor este: .NOT., .AND., .OR., iar rezultatul este de tip logic. Operatori pentru iruri de caractere se utilizeaz pentru concatenarea mai multor iruri de caractere ntr- unul singur, astfel: pentru concatenare cu meninerea spaiilor de la sfritul fiecrui ir pentru concatenare cu liminarea spaiilor de ia sfritul primului ir,dac exist i plasarea lor la sfritul irului rezultat.
2.5.4. Expresii
O expresie se constituie din combinaii de elemente din urmtoarea list: nume de cmpuri din structura nregistrrilor de date din tabela activ, variabile de memorie, elemente de tablou, constante, funcii, operatori, variabile de sistem. O expresie poate fi simpl sau complex (compus). Expresia complex este format din mai multe expresii simple, legate ntre ele prin operatorii logici AND, OR sau NOT. Funciile sunt prelucrri predefinite, care pot fi utilizate n expresii, asemntor operatorilor. O funcie returneaz ntotdeauna o valoare, care reprezint rezultatul ei. Dup natura acestui rezultat, funciile pot fi de tip:
numeric ir de caractere gic dat calendaristic. Funciile cele mai utilizate sub Foxpro se pot grupa dup cum urmeaz: 2.5.5.1. Funcii destinate lucrului cu baze de date i fiiere asociate: ALLIASO sau ALLIAS(expN) Are ca rezultat alias-ul bazei de date deschise n zona de lucru specificat sau, dac expN lipsete , alias-ul zonei de lucru curente. DBF() sau DBF( <ahas> ) Returneaz numele tabelei de date deschis n zona de lucru specificat. Dac nu exist nici o tabel de date deschis, funcia ntoarce fiierul nul. EOFQ sau EOF ( <ahas> ) Returneaz valoarea logic True dac este ntlnit sfritul de fiier i False n caz contrar. Ea este poziionat pe valoarea logic de True dac n urma unei comenzi de cutare a unei anumite nregistrri (Locate, Find, Continue sau Seek) nregistrarea cutat nu a fost gsit i False n caz contrar. De aceea, aceast funcie se folosete n programe pentru a asigura utilizatorul dac nregistrarea cutat a fost gsit sau nu i de asemenea pentru a controla ciclul de parcurgere a unei ntregi tabele de date. FOUND() sau FOUND( <alias> ) Returneaz valoarea logic True dac ultima comand CONTINUE, FIND, LOCATE sau SEEK s-a ncheiat cu succes, adic nregistrarea cutat a fost gsit, iar n caz contrar ntoarce valoarea False. ORDER() sau ORDER( <alias> ) Returneaz numele fiierului index activ din zona de lucru curent. Pentru a se obine numele fiierului index mater dintr-o zon de lucru se folosete opiunea <alias>. RECNOO sau RECNO( <alias>) Returneaz numrul nregistrrii curente din tabela activ. Pentru a obine numrul nregistrrii curente dm tabela deschis n alt zon de lucru se utilizeaz opiunea <alias>. SEEKQ sau SEEK( exp,alias) Returneaz valoarea logic True dac expresia cutat este gsit n indexul activ. Dac expresia cutat este gsit, pomterul nregistrrii este poziionat pe nregistrarea gsit, iar n caz contrar funcia ntoarce valoarea logic False i pointerul este plasat la sfritul fiierului. Opiunea <alias> permite cutarea expresiei ntr-o tabel deschis n zona de lucru specificat. DELETEDO sau DELETED( <alias> ) Returneaz valoarea logic True dac nregistrarea curent din zona selectat sau din cea precizat cu <alias> este marcat pentru tergere i False n caz contrar.
2.5.5.2. Funcii destinate prelucrrii datelor numerice: CHR() sau CHR( <expN> ) Returneaz caracterul al crui cod zecimal este echivalent cu expN. DMT() sauINT(expN) Returneaz partea ntreag a exp N prin ignorarea prii zecimale (trunchiere). ROUND() sau ROUND(expL exp2) Rotunjete numrul specificat sau rezultat din evaluarea expresiei expl la un numr de zecimale specificat n exp2. Dac exp2 este negativ, numrul rotunjit va fi un numr ntreg. STR() sau STR(expNl, expN2, expN3 ) Convertete o expresie numeric, specificat prin expNl ntr-un ir de caractere. Valoarea lui expN2 specific lungimea irului rezultat, iar expN3 specific numrul poziiilor zecimale (dac este cazul). Aceast funcie se folosete ori de cte ori avem nevoie ca un cmp de date sau variabil de memorie de tip numeric s fie folosit n expresii de tip ir de caractere (cum ar fi la formarea unei chei multiple de indexare sau la concatenarea mai multor cmpuri pentru afiare, etc.) 2.5.5.3. Funcii destinate prelucrrii irurilor de caractere CTOD()sauCTOD(expC) Returneaz valoarea datei care corespunde argumentului de tip caracter, n formatul dat calendaristic MM/DD/YY (Luna/Zi/An). LOWERO sau LOWER(expC) Convertete toate literele mari din expC n litere mici corespunztoare (dac exist). Caracterele nealfabetice nu sunt afectate. UPPER()sauUPPER(expC) Convertete toate caracterele alfabetice mici din expC n majuscule (dac exist). Caracterele nealfabetice nu sunt afectate. VALO sau VAL(expC) Convertete o expresie de tip caracter care conine cifre ntr-o valoare numeric corespunztoare. Practic, ea extrage primele caractere numerice din expC , pn la primul caracter nenumeric sau punct zecimal i le transform n valoare numeric corespunztoare. Dac primul caracter al expC nu este cifr, Val returneaz valoarea 0. SUBSTR( expC, Poz, Lungime) Extrage dm irul specificat sau rezultat din evaluarea expC un subir, ncepnd cu poziia indicat prin Poz i de lungime egal cu cea specificat prin Lungime. LTRIM (expC)
Returneaz irul de caractere specificat sau rezultat din evaluarea expresiei date cu toate spaiile din stnga terse.( elimin spaiile din stnga irului). RTRIM (expC) Returneaz irul de caractere specificat sau rezultat din evaluarea expresiei date cu toate spaiile din dreapta terse.( elimin spaiile din dreapta
irului).
42 2.5.5.4. Funcii de tip dat calendaristic CDOW(<expD>) Returneaz numele zilei sptmnii pentru expresia dat. DATE() Returneaz data sistemului. DTOC(<expD>[,l]) Returneaz un ir coninnd data care corespunde argumentului, sub formatul standard american LL/ZZ/AA (dac nu au fost selectate alte opium prin comenzile Set Date i Set Century). Transform deci o dat calendaristic ntr-un ir de caractere corespunztor. Clauza opional 1 cere returnarea datei n formatul AAAA/LL/ZZ, pentru a putea ordona nregistrrile funcie de dat. DTOS(<expD>) Returneaz un ir coninnd data care corespunde argumentului, sub forma aaaa/11/zz. .Aceast funcie este util pentru indexarea tabelelor dup un cmp de tip dat calendaristic i este echivalent cu funcia DTOC cu argumentul opional i. DMY (<expD>) Returneaz data calendaristic n formatul european zz/ll/aa. MDY (<expD>) Returneaz data calendaristic n formatul standard american 11/zz/aa. YEAR(<expD>) Returneaz anul din data specificat ca un numr de 4 cifre. TIMEO Returneaz ora curent din sistem n formatul hh:mm:ss.
2.5.5.5. Funcii financiare FV(<depunere>,<dobnd>,<penoad>) Calculeaz valoarea viitoare a unei investiii. PAYMENT(expN 1 ,expN2,expN3) Calculeaz plata regulat cerut pentru amortizarea unui credit, unde expNl este valoarea imial a creditului, expN2 este dobnda iar expN3 este numrul perioadelor.
43
PV(<expN 1 ,expN2,expN3) Returneaz valoarea prezent a unei investiii sau suma care trebuie nvestit pentru a atinge o anumit valoare viitoare. ExpNl este plata fcut n fiecare perioad, expN2 este dobnda, iar expN3 este numrul de perioade. 2.5.5.6. Funcii cu caracter general & Macrosubstituia Funcia de macrosubstituie este utilizat pentru specificarea unei variabile de memorie n locul unei valori concrete ateptate . Se utilizeaz n comenzile FIND, USE, GO i n alte comenzi care cer precizat o valoare. Funcia servete pentru a da un grad mai mare de generalizare a problemei rezolvate (parametrizarea unor informaii).
.
TRANSFORM(expr, expC) Formeaz iruri de caractere sau numere cu opiuni PICTURE fr folosirea comenzii @...SAY. Variabila sau cmpul care va fi formatat se declar prin expr, iar expresia care conine clauza PICTURE prin exprC. TYPE (<exp>) Returneaz unul din caracterele N,C,L,D corespunztor tipului rezultatului evalurii expresiei specificate. USERQ Afiaz numele utilizatorului conectat la sistemul protejat. 2.5.5.7. Funcii utilizator SGBD Foxpro permite utilizatorului s-i defineasc funcii proprii. O funcie const dintr-o procedur care ncepe cu comanda FUNCTION i care returneaz o valoare.
CREATE DATABASE [ <nume_ baza_ de_ date>] | ? unde: . nume_ baza_ de_ date specifica numele bazei de date care va fi creata. Fiierul bazei de date are extensia .DEC; . ? afieaz o fereastra de dialog in care se specifica numele bazei de date care
va fi creata. In fiierul baza de date se vor memora obiectele (tabele/ videoformate/interogari/rapoarte etc.) ale bazei de date. La crearea bazei de date se face automat si deschiderea ei.
memoreaz ca fiiere separate, asociate nregistrrilor de date din tabel. nc hiderea ferestrei i salvarea coninutului cmpului memo se face tastnd simultan Ctrl/W. Dac n comanda Create nu se precizeaz numele tabelei care se creaz, ea va fi salvat ca un fier cu numele Untitled.dbf, iar dac exist semnul ? acesta va avea ca efect, dup descrierea structurii, apariia pe ecran a unei ferestre de salvare de tip SAVE AS. Ieirea din descrierea structurii se poate face deci, fie cu ajutorul tastelor Ctrl/W, fie activnd opiunea SAVE din fereastra de dialog, Imediat, sistemul va afia pe ecran un mesaj prin care va ntreba utilizatorul dac introduce i date, cu posibilitile de rspuns: Yes, No. La rspunsul No tabela va rmne creat pe disc doar cu structura, n timp ce la Yes sistemul va afia pe ecran o machet corespunztoare descrierii i va pennite utilizatorului s introduc date. Precizm c, pe msura scrierii lor n tabel, nregistrrile de date primesc un numr de ordine, numr gestionat automat de sistem i care poate servi drept adres fizic de identificare a nregistrrii. b) CREATE TABLE nume_tabel[.DBF] (nume_cmpl,tip(lungime, [,nume_cmp2, tip(lungime),...] [FROM ARRAY nume_masiv ]FROMmime_tabel] Comanda permite crearea structurii tabelei cu numele specificat direct prin program, avnd descrierea cmpurilor de date specificat chiar prin comand. Dac se precizeaz clauza FROM ARRAY, atunci descrierea cmpurilor se preia din masivul cu numele respectiv, iar dac se folosete clauza FROM nume_tabel atunci tabela care se creaz va avea aceeai structur cu cea existent n tabela cu numele specificat dup FROM. COPY STRUCTURE TO <nume_tabela> [FIELDS <lista_campuri> [WITH ] CDX [WTTH] PRODUCTTON ]DATABASES <nume_baza_de_date>[NUME <nume_tabel a>] Unde: . <nume-tabela> este numele tabelei nou create <lista_campuri> specifica cmpurile din noua tabela ; <nume_baza_de_date> este numele bazei de date; <NAME <nume_tabela>] este numele tabelei. Crearea unei tabele prin intermediul meniului se face selectnd din meniul principal opiunea FILE, i de aici opiunea NEW. Pe ecran apare o fereastr de dialog care va permite utilizatorului s aleag tipul fiierului nou se va crea, dup care o nou fereastr de dialog i va cere s realizeze descrierea structurii i apoi salvarea acesteia ntr-un fiier de tip DBF al crui nume se va introduce de la tastatur. Observaii: . O tabel, mai poate fi creat i ca rezultat al unor operaii efectuate asupra altei/altor tabele, cum ar fi: copiere, sortare, jonciune, selecie etc. 2. Pentru crearea unei tabele se poate- utiliza si comanda CREATE
numejs] [NO CONSOLE] LIST STRUCTURE [IN nr zon] [TO PRINTER | TO FILE nume_fis] [NO CONSOLE] unde: Nr_zon specific numrul zonei de lucru n care se afl tabela dorit To Printer solicit afiarea la imprimant, iar To File precizeaz numele fiierului de tip text n care s fie memorat structura tabelei, n vederea afirii ei ulterioare sau a prelucrrii ei cu un editor de texte. No Console inhib afiarea structurii la ecran 3.2.2. Comenzi pentru actualizarea coninutului bazei de date Actualizarea datelor unei tabele presupune operaii de : 1. Adugare de noi nregistrri 2. Modificarea unora dintre datele existente 3. tergerea nregistrrilor care nu mai sunt necesare
50
3.2.2.1. Comenzi pentru adugare de noi nregistrri Adugarea se poate face n orice moment pentru o tabel care a fost creat, deci care conine cel puin structura definit. Adugarea de noi date se poate face: fie dup ultima nregistrare existent n tabel - fie prin inserarea lor ntre nregistrrile deja existente Celor dou posibiliti le corespund comenzile APPEND i INSERT. Comanda APPEND are urmtoarele formate: a) APPEND Permite adugarea de noi nregistrri la sfritul tabelei deschis n zona selectat, prin intermediul unei machete afiat pe ecran. Utilizatorul poate aduga una sau mai multe nregistrri, terminnd precesul de adgare fie cu Ctrl/W, fie activnd butonul Save. b) APPEND BLANK Adaug automat, la sfritul tabelei active, o nou nregistrare, vid, care va putea fi ulterior completat cu date prin comenzi de modificare, calcul sau afiare formatat (Change, Browse, @ cu Say i Get, Replace, etc). Comanda se utilizeaz n programe pentru a realiza machete, videoformate de introducere sau afiare a datelor la cererea i posibilitile de exploatare ale utilizatorului.
51 c) APPEND FROM nume_fiier[.ext] [FIELDS <list cmpuri>]FOR <exp logic>] [TYPE] [DELIMITED [WITH TAB | WITH <delimitator> | WITH BLANK | DIF | FW21 MOD | WKS | SDF | WK11WK3 | XLS] Comanda adaug, la sfritul tabelei active, nregistrri de date preluate n mod automat din fiierul cu numele specificat. Dac se dorete preluarea datelor doar din anumite cmpuri, atunci acestea vor fi precizate prin clauza FIELDS. Cluaza FOR permite selectarea i deci preluarea din fiierul specificat doar a acelor nregistrri care satisfac condiia pus. Clauza TYPE definete tipul fiierului, dac acesta nu este .DBF , ceea ce nseamn c este posibil preluarea datelor ntr-o tabel Foxpro din fiiere create sub alte sisteme de gestiune sau limbaje de programare. Astfel, opiunea Delimited specific delimitatorul dintre cmpurile nregistrrii, tiind c cel implicit este virgula. Tipurile specificate semnific: SDF - fiier format ASCII, cu nregistrri de lungime fix i terminate prin CR i LF. WK1, WK3 - fiier format Lotus FW2 - Frame Work II MOD - MicroSoft Multiplan WKS - foaie de calcul Lotus 1-2-3 XLS - Foaie de calcul MicroSoft Excel d) APPEND FROM ARRAY <nume_tabIou> [FOR <exp_logic>] [FIELDS <list cmpuri>] Permite copierea, la sfritul tabelei active, a valorilor nscrise ntr-un tablou cu numele specificat, n totalitate sau numai a acelora care ndeplinesc condiia pus. Dac sursa este un vector, se va aduga o singur nregistrare, iar dac este o matrice, se vor aduga attea nregistrri cte linii are matricea. Dac numrul de elemente ale vectorului sau numrul de coloane ale matricei este mai mare dect numrul de cmpuri din structura tabelei, atunci cele n plus vor fi ignorate, iar dac este mai mic, cmpurile rmase vor fi vide. Comanda TNSERT are formatul:
Prin intermediul meniului principal, comanda APPEND se selecteaz n submeniul RECORD iar efectul este acelai de la modul de lucru comand. Comanda APPEND FROM o gsim selectnd din meniul principal xaunea DATABASE. Va fi afiat pe ecran o fereastr de dialog n care vor arebui precizate opiunile necesare definirii adugrii ( de unde se iau datele, rsentual cmpurile dorite sau condiia de selectare a nregistrrilor, tipul :-'..!ui sau delimitatorul etc). 5.2.2.2. Comenzi pentru modificarea datelor dintr-o tabel
Modificarea datelor se poate face n regim interactiv, de la tastatur, afind cte o nregistrare pe ecran, cu ajutorul comenzilor : EDIT CHANGE sau afind un grup de mai multe nregistrri, cu comanda: - BROWSE sau, n mod automat, fr intervenia utilizatorului, prin specificarea unei valori sau reguli de calcul cu ajutorul comenzii :
53
- REPLACE. Comenzile EDIT i CHANGE au format i aciune asemntoare, astfel c le vom trata mpreun; ele se prezint astfel: EDIT [FIELDS <Iist cmpuri>] [ scope] [FOR <exp_logic>] [WH1LE <exp_logic>] [FREEZE cmp] [NOAPPEND] [NOMODIFY] [NOCLEAR] [NODELETE] [NOOPTIMIZE] [NOWAIT] [ REST] [SAVE] [TITLE nume_fer] [VALID exp] [ERROR exp C] [WIDTH exp_N] [ WINDOWS nume_fer | IN SCREEN] [COLOR SCHEME exp_C] CHANGE [FIELDS <list cmpuri>] [ scope] [FOR <exp_logic>] [WHILE <exp_logic>] [FREEZE cmp] [NOAPPEND] [NOMODIFY] [NOCLEAR] [NODELETE] [NOOPTIMIZE] [NOWAIT] [ REST] [SAVE] [TITLE nume_fer] [VALID exp] [ERROR exp C] [WIDTH exp_N] [ WINDOWS nume_fer | IN SCREEN] [COLOR SCHEME exp_C] domeniul implicit de aciune este nregistrarea curent, pe care o afieaz pe ecran, pemind utilizatorului s modifice valorile din cmpurile dorite. Semnificaia clauzelor ce pot apare n formatul comenzii este urmtoarea: FIELDS specific numele cmpurilor care s fie afiate i deci disponibile pentru a fi modificate, dac se dorete acest lucru; Scope - precizeaz domeniul de aciune dorit, altul dect nregistrarea curent; FOR specific condiia de selectare a nregistrrilor la care se dorete accesul pentru modificare, dac este cazul; WHILE introduce condiia ca aceast comand s acioneze doar atta timp ct ea este ndeplinit; FREEZE precizeaz cmpul unic care s poat fi modificat; NOAPPEND nu permite adugarea de noi nregistrri cu ajutorul acestei comenzi; NOMODIFY nu permite efectuarea de modificri n tabela activ i afiat; NOCLEAR nu permite marcarea nregistrrilor din tabel pentru tergere; NOOPTIMIZE inhib tehnologia Rushmore
NOWAIT este folosit doar n programe, pentru a cere continuarea execuiei programului dup ce fereastra de editare a fost deschis; REST nu permite poziionarea cursorului n tabela activ la nceputul acesteia; SAVE cere meninerea ferestrei de editare pe ecran chiar dup ieirea din editare; TITLE nume_fer specific un titlu pentru fereastra de editare, dac se dorete acest lucru; VALID exp [ERROR exp_C] face controlul condiiei specificate prin exp i, dac rezultatul este valoarea logic de True, atunci se poate trece la o alt nregistrare, altfel se afieaz mesajul specificat prin clauza ERROR i se ateapt corectarea valorii introduse; WIDTH exp_N stabilete numrul limit de caractere cu care s fie afiate cmpurile; WINDOWS nume_fer | IN SCREEN face ca ferestra de editare s fie deschis ntr-o alt fereastr definit anterior cu numele specificat sau direct pe ecran; Ecranul reprezint valoarea implicit. COLOR SCHEME exp_C definete lista de culori pentru fereastra de editare; Valoarea ei implicit este schema cu numrul 10.
Comanda BROWSE are formatul general: BROWSE [FIELDS <list empuri>] [ scope] [FOR <exp_Iogic>] [WHDLE <exp_logic>] [FREEZE cmp] [NOAPPEND] [NOMODIFY] 55 [NOCLEAR] [NODELETE] [NOOPTIMIZE] [NOWAIT] f REST] [SAVE] [TITLE nume_fer] [VALID exp] [ERROR exp_C] [WIDTH exp_N] [ WINDOWS nume_fer | IN SCREEN] [COLOR SCHEME exp_C] Trebuie menionat faptul c, spre deosebire de Edit i Change, comanda BROWSE afieaz pe ecran un grup de mai multe nregistrri, sub form tabelar. De aceea , ea se folosete adeseori i ca o comand de afiare a datelor, avnd facilitile de actualizare inhibate. Comenzile CHANGE i BROWSE pot fi activate i prin intermediul meniului principal, submemul DATABASE sau din submeniul WTNDOW. Ferestrele de dialog ateapt precizarea tuturor acestor opiuni, lund n considerare, n lips, valorile implicite. Comanda REPLACE permite modificarea valorilor din cmpurile specificate n mod automat prin precizarea valorii concrete sau a formulei de calcul necesar, fr ca utilizatorul s mai introduc valori de la tastatur. Este practic comanda care permite efectuarea de calcule n mod automat, n tabela activ.
Formatul general al comenzii este: REPLACE <cmpl> WITH <exprl> [ADDITIVE] [,<cmp2> WITH <expr2> [ADDITIVE]]... [Scope] [FOR <exp_logicl>] [WHILE <exp_logic2>] [NOOPTIMIZE]
56
Domeniul de aciune implicit este nregistrarea curent. Scope precizeaz domeniul dorit pentru comanda Replace. Practic , comanda nlocuiete valoarea din cmpl cu cea obinut din evaluarea expresiei exprl, valoarea din cmp2 cu cea din evaluarea expresiei exp2, etc. Clauza ADDITIVE acioneaz doar asupra cmpurilor de date de tip Memo, indicnd adugarea valorii expresiei la coninutul curent al cmpului. Clauza FOR introduce condiia de selectare a nregistrrilor ce vor fi modificate, iar WHILE cere execuia comenzii doar atta timp ct condiia este ndeplinit. Comanda REPLACE poate fi accesat i din meniul principal, activnd submeniul RECORD i preciznd opiunile de lucru dorite. 3.2.2.3. Comenzi pentru tergerea datelor dintr-o tabel tergerea nregistrrilor dintr-o tabel se face sub Foxpro n dou etape, i anume: - tergerea logic , care presupune doar marcarea n vederea tergerii a nregistrrilor dorite. Acest lucru nseamn c nregistrrile marcate continu s existe n tabel, atta timp ct nu au fost eliminate fizic i deci mai pot fi recuperate, dac este cazul. tergerea logic se face cu comanda DELETE, iar anularea marcajului de tergere se poate face cu comanda RECALL. tergerea fizic nseamn practic eliminarea din tabel a nregistrrilor care au fost marcate. nregistrrile terse fizic nu mai pot fi recuperate. tergerea fizic se face cu comanda PACK. Comanda DELETE are formatul general:
57 DELETE |Scope] [FOR <cxp_logicl>] |WH1LE <exp_logic2>] [NOOPTIMIZE| Domeniul implicit de aciune este nregistrarea curent. Clauza Scope poate preciza domeniul dorit, iar FOR i WHILE introduc condiii de selectare a nregistrrilor ce trabuie terse. Marcarea pentru tergere nseamn practic plasarea unui * n dreptul nregistrrilor de ters. Comanda RECALL are un format asemntor, dar are ca efect anularea marcajului de tergere, dac exist. Ea poate fi folosit pentru
nregistrri care nu au fost nc terse fizic. RECALL [Scope] [FOR <exp_logicl>] [WHILE <exp_logic2>] [NOOPTIMIZE] Comanda PACK are formatul: PACK [MEMO] Comanda Pack elimin, din tabela activ, la o singur trecere, toate nregistrrile pe care le gsete marcate pentru tergere. Dac se precizeaz opiunea MEMO, atunci se va terge fiierul memo asociat tabelei (care are acelai nume cu tabela, dar este de tip .FPT), dar nu i nregistrrile din tabela curent marcate pentru tergere. Alte comenzi de tergere Comanda ZAP, al crei format este acesta simplu, fr opiuni, realizeaz tergerea fizic a tuturor nregistrrilor din tabela activ. Ea este echivalent succesiunii de comenzi: DELETE ALL PACK dar este mai rapid i, n acelai timp mai riscant (cere mai mult precauie). Trebuie s remarcm ns, c, dup tergerea fizic a nregistrrilor (cu Zap sau Pack) tabela continu s existe pe disc, coninnd numai structura sa. Comanda DELETE FILE permite tergerea, de sub sistemul Foxpro, a unui fiier de orice tip existent pe disc. Formatul general al comenzii: DELETE FILE [<nume_fiierLDBF]> | ?] Comanda terge fiierul cu numele specificat sau pe cel ales din fereastra de fiiere, dac a fost folosit clauza ?. Tipul implicit de fiiere terse este tipul DBF, celelalte fiind necesar s fie precizate. Comenzile de tergere DELETE, PACK, RECALL pot fi activate i prin intermediul meniului principal, submeniul RECORD sau DATABASE. n acest caz dialogul sistemului cu utilizatorul are loc prin intermediul ferestrelor de dialog de mai jos. Fereastra pentru comanda RECALL: Observaii: 1. Se poate utiliza si comanda SET DELETED ON/OFF care specifica daca nregistrrile marcate pentru tergere vor fi luate n considerare (valoarea implicita este OFF). 2. Se mai poate utiliza si comanda DELETE din nucleul SQL.
58
Interogarea bazei de date implic realizarea succesiv a dou operaii i anume: regsirea nregistrrii sau nregistrrilor dorite; afiarea lor pe ecran i/sau imprimant
Regsirea unei/unor nregistrri ntr-o tabel presupune cutarea, n tabel, a unei/unor anumite nregistrri, pentru care se cunoate: a) fie numrul ei de ordine (pointerul) b) fie valoarea unui cmp sau grup de mai multe cmpuri de date a) Regsirea unei nregistrri pentru care se cunoate numrul de ordine n tabel const n simpla poziionare pe nregistrarea dorit, cu comanda GO sau GOTO. Comanda GO (GOTO) are urmtoarele formate: GO [RECORD] <exp_Nl> [IN <exp_N2> | <exp_C>] Ca efect, se realizeaz poziionarea pe nregistrarea cu numrul specificat sau rezultat din evaluarea expresiei exp_Nl, din tabela deschis n zona curent sau n cea specificat prin exp_N2 sau exp_C ( exp_N2 indic zona, iar exp_C indic alias-ul tabelei deschis). GO TOP [IN <exp N2> | <exp_C>] Comanda realizeaz poziionarea pe prima nregistrare (logic) din tabela deschis n zona curent sau n cea precizat prin exp_N 1 sau exp_C. GO BOTTOM [IN <exp N2> | <exp_C>] Comanda realizeaz poziionarea pe ultima nregistrare (logic) din tabela deschis n zona curent sau n cea precizat prin exp_Nl sau exp_C. De la nregistrarea astfel localizat , deplasarea relativ spre nainte sau napoi se poate face cu comanda SKIP, al crei format este: SKIP [ <exp_NT>] [ES <exp_N2> | <exp C>] unde exp_Nl specific poziia relativ n raport cu cea curent, printr-un numr sau o expresie numeric din evaluarea creia se determin saltul. Valoarea implicit este 1, indicnd salt la nregistrarea urmtoare. b). Regsirea unei nregistrri pentru care se cunoate valoarea unui/unor cmpuri de date se poate face n dou moduri: prin consultare n acces secvenial prin consultare n acces direct, dac tabela este indexat Consultarea n acces secvenial const n parcurgerea secvenial a tabelei active i poziionarea pe prima nregistrare care ndeplinete criteriul
cerut. Ea se realizeaz cu comanda LOCATE, al crei format este: LOCATE FOR <exp_Ll> [Scope] [WHILE <exp_L2>] [NOOPTIMIZE] ExpJLl este o expresie de tip logic, simpl sau compus prin care se precizeaz cmpul sau cmpurile cu valorile cerute. Scope specific, opional, dac s se restrng cutarea la un anume domeniu, iar WHILe poate cere s continue cutarea ct timp este ndeplinit condiia pus. Trebuie precizat c, dac nregistrarea cutat nu a fost gsit, funcia EOF() este poziionat pe valoarea logic de True, iar FOUNDQ pe valoarea False i invers. Aceste funcii ne vor permite n programe s ne asigurm de existena nregistrrilor cutate. Dac se dorete continuarea cutrii unei eventuale urmtoare nregistrri care ndeplinete aceeai condiie, atunci se poate utiliza comanda CONTINUE. Ea funcioneaz ns numai asociat cu LOCATE, pentru a continua cutarea iniiat de aceasta. Apelat prin intermediul meniului, comanda LOCATE afieaz o fereastr de dialog prin care se precizeaz opiunile dorite, de forma: Consultarea n acces direct se poate face numai pentru tabele indexate dup cmpul sau combinaia de cmpuri dup care se dorete cutarea. Ea se face cu comenzile FIND i SEEK , al cror format este : FIND <expC> SEEK <varC> Comanda FIND caut n indexul tabelei active prima nregistrare cu cheia specificat prin expC, n timp ce Seek ateapt s fie precizat numele variabilei n care se afl memorat valoarea cheii dorite. Cutarea se realizeaz prin intermediul indexului i este foarte rapid. Dac nregistrarea cutat a fost gsit, funcia EOFQ este poziionat pe False, iar FOUND() pe True i invers. Saltul la o eventual urmtoare nregistrare care ndeplinete aceeai condiie se poate face de data aceasta cu comanda SKIP (salt la urmtoarea nregistrare). Cele dou comenzi pot fi utilizate numai dac tabela a fost deschis mpreun cu un index. Comanda SEEK poate fi apelat i prin intermediul meniului Foxpro, opiunea RECORD i de acolo Seek. Comand fuvafent
calea curent, discul implicit valorile parametrilor stabilii prin comanda SET; - setrile ecranului,etc LIST MEMORY [LIKE <specif_fis>] [NOCONSOLE] [TO PRINTER | TO FILE <nume_fis>] DISPLAY MEMORY [LDKE <specif_fis>] [NOCONSOLE] [TO PRINTER | TO FILE <mime_fis>] Afieaz pe ecran, la imprimant sau ntr-un fiier, numele , tipul i valoarea tuturor variabilelor de memorie curente, lungimea lor n bytes, numrul de bytes rmai disponibili. LIST STRUCTURE [NOCONSOLE] [TO PRINTER |TO FILE <nume_fis>] DISPLAY STRUCTURE [NOCONSOLE] [TO PRINTER |TO FILE <nume fs>] Acest format al comenzilor servete pentru afiarea structurii tabelei active. Comanda ? afieaz, n mod normal la ecran, valoarea obinut din evaluarea expresiei specificate, cu salt la rnd nou. . Formatul general este: ? <expresie> Comanda ?? are format i aciune asemntoare, numai c produce afiarea n continuare, fr salt la rnd nou. Formatul este: ?? <expresie> Dac se dorete direcionarea afirii ctre imprimant, atunci aceasta trebuie s fie mai nainte activat, printr-o comand de forma: 64 SET PRINTER ON Cnd se dorete revenirea la ecran pentru comanda ? sau ??, se va specifica o comand de forma: SET PRLNTER OFF
Exemple: Fiind dat tabela STUDENT, s se scrie secvenele de comenzi prin care se satisfac urmtoarele cerine: 1. S se afieze studenii de la facultatea de Informatic. USE STUDENT LIST FOR FACULT=TNF' sau, pentru a ne asigura c identificarea se face corect, indiferent de modul n care au fost introduse datele n tabel: USE STUDENT LIST FOR UPPER(FACULT)= 'INF' 2. S se afieze studenii dm facultatea de Informatic, anul II, grupa 620. USE STUDENT
LIST FOR UPPER(FACULT)= TNFr AND AN1=1 AND GRUPA 1=601 3. S se afieze la imprimant studenii nscui n 30 noiembrie 1979. USE STUDENT LIST FOR DATAN={ 11/30/79} TO PRIN 4. S se afieze studenii nscui n anul 1980 (condiie compus). USE STUDENT LIST FOR DATAN>={01/01/80} AND DATAN<={ 12/31/80} sau, utiliznd funciile Foxpro: USE STUDENT LIST FOR SUBSTR(DTOC(DATAN),7,2))='80" sau LIST FOR val(SUBSTR(DTOC(DATAN),7,2)))=80 5. S se identifice, pentru a fi corectat, nregistrarea corespunztoare studentului ZVOI. USE STUDENT LOCATE FOR UPPER(NUME)='ZAVOi" EDIT sau, n programe USE STUDENT LOCATE FOR UPPER(NUME)='ZAVOr 65 IF NOT EOF() EDIT ELSE ? 'nregistrarea cu studentul dorit nu exist' ENDIF 6. S se tearg din tabela STUDENT toi studenii de la Informatic i s se creeze cu ei o tabel separat numit INFORM. USE STUDENT COPY TO INFORM STRUCTURE &Se copiaz structura pentru INFORM USE INFORM &Se deschide noua tabel INFORM APPE FROM STUDENT FOR UPPER(FACULT)= TNF' &Se preiau datele din STUDENT USE STUDENT &Se deschide tabela STUDENT DELETE FOR UPPER(FACULT)= TNF' &Se marcheaz pentru tergere nreg.din STUDENT PACK &Se terg fizic nregistrrile dm STUDENT CLOSE ALL &Se nchid toate fiierele 7. S se afieze toate nregistrrile marcate pentru tergere din tabela STUDENT. USE STUDENT
LIST FOR DELETEDO 8. S se afieze, pentru corecii, toi studenii (biei) de la facultatea de TURISM. Ne intereseaz n mod deosebit numele, marca, data naterii i media. USE STUDENT EDIT FOR UPPER(FACULT)= 'TURISM' AND UPPER(SEX)= 'B' sau USE STUDENT EDIT FOR UPPER(FACULT)= 'TURISM' AND UPPER(SEX)= 'B' FIELDS MARCA, NUME, PRENUME, DATAN, MEDIA &Se afieaz doar cmpurile cerute 9. S se recalculeze media de absolvire a studenilor, tiind c media existent se mrete cu 0.50 pentru toi cei care au media peste 5 i devine 10 pentru cei care aveau ntre 9 i 10. USE STUDENT REPLACE MEDIA WITH 10 FOR (MED1A>=9 AND MED1A<=10) REPLACE MEDIA WITH MEDIA+0.50 FOR MEDIA>5 AND MEDIA #10 10. tiind c avem o tabel PERS cu cmpul SAL pentru salariul cuvenit, s se calculeze noul salariu cuvenit dup o indexare de 50%. (o mrire cu 50%) USE PERS REPL ALL SAL WITH SAL* 1.5 sau REPL ALL SAL WITH SAL+SAL*50/100
[FOR <expr_L>] unde: nume_cmpl, nume_cmp2... reprezint , n ordine, numele cmpurilor dup valorile crora se dorete ordonarea; - /A cere ca ordonarea s fie Ascending (cresctoare); Ea este implicit. /D cere ca ordonarea s fie Descending (descresctoare); 67 /C cere s nu se fac difereniere la sortare ntre literele mici i cele mari (pentru cmpuri de tip caracter); nume_tabel_sortat este numele tabelei noi, de tip .DBF care se va crea i va conine nregistrrile ordonate. FIELDS precizeaz, dac se dorete acest lucru, lista cmpurilor de date care s fie preluate n structura noii tabele, FOR introduce, opional, condiia de selectare a nregistrrilor ce se vor sorta i prelua n noua tabel. Pentru a avea acces la nregistrrile ordonate, va trebui deschis noua tabel creat. Atunci cnd se cere ordonarea dup mai multe cmpuri (chei de sortare) trebuie s avem grij, deoarece ea se justific numai dac exist mai multe nregistrri cu valori identice dup prima cheie, eventual i dup a doua, etc. Comanda SORT poate fi activat i din meniul principal, submeniul DATABASE. Apare o fereastr de dialog de forma: Se selecteaz cmpul sau cmpurile cheie de sortare i apoi se activeaz butonul MOVE, pentru a fi preluate. La renunarea unui cmp din cheie se apas butonul REMOVE. Se precizeaz tipul sortrii (implicit este Ascending), se introduce eventual domeniul de aciune al comenzii (Scope) i/sau condiiile de selectare (cu FOR sau WHILE) i se indic numele noii tabele sortate la Save as: