Sunteți pe pagina 1din 161

UNIVERSITATEA ”LUCIAN BLAGA” DIN SIBIU

FACULTATEA DE TIIN E ECONOMICE

INFORMATICĂ

MANAGERIALĂ

- Note de curs - (format ID)

SIBIU - 2009

INFORMATICĂ MANAGERIALĂ

1. BAZE DE DATE – BAZE DE DATE RELAłIONALE

CONCEPTE DE BAZĂ:

1. Fişier, Bază de date

2. Sistem de gestiune a bazelor de date (SGBD), dicŃionar de date

 

3. Model entitate-relaŃie, atribut, constrângere

4. Modelele intern, extern şi conceptual şi tipurile de independenŃă

5. RelaŃie şi tabel.

OBIECTIVE:

1. Crearea unei perspective clare asupra bazelor de date.

2. Familiarizarea cu elementele legate de baze de date şi modelele bazelor de date.

3. Crearea unor deprinderi referitoare la proiectarea bazelor de date.

RECOMANDĂRI

Pentru parcurgerea prezentului material se recomandă parcurgerea atentă a bibliografiei, precum şi studierea atentă a materialului aferent în cadrul ActivităŃilor Asistate (AA).

PRIVIND

STUDIUL:

REZULTATE

1. Clarificarea noŃiunilor legate de baze de date şi modele de date.

AŞTEPTATE:

2. Clarificarea noŃiunilor legate de proiectarea şi normalizarea bazelor de date.

1.1. CONCEPTE GENERALE REFERITOARE LA BAZE DE DATE

OBIECTIVE

1. Clarificarea noŃiunilor referitoare la conceptele generale legate de baze de date şi nivelele de organizare ale acestora. 2. Clarificarea elementelor referitoare la modelele de date şi tipurile de independenŃă.

NOłIUNI CHEIE

Fişiere, baze de date, arhitectura unei baze de date, nivele de organizare, entitate relaŃie, atribut, nivel conceptual, intern sau extern.

1.1.1. Conceptul de "Bază de date"

După cum s-a menŃionat în capitolul precedent, la baza prelucrării datelor stau fişierele. Odată cu dezvoltarea informaticii, numărul acestora a crescut, ajungându-se ca într-o firmă să existe mai multe zeci sau sute de fişiere permanente şi temporare legate de gestiunea personalului, materialelor, producŃiei, vânzărilor etc. Această creştere a avut o serie de dezavantaje, dintre care amintim [NiŃchi90]:

redundanŃa – este proprietatea unei informaŃii de a se repeta nejustificat; de exemplu codul materialelor, care poate ajunge la 20-30 de cifre, se repetă în majoritatea acestor fişiere, mărind nejustificat spaŃiul fizic ocupat;

inconsistenŃa – este legată de apariŃia distorsionată a unor informaŃii în diferite contexte; una dintre cauzele inconsistenŃei este redundanŃa deoarece este suficient ca la o apariŃie (copie) a informaŃiei redundante, aceasta să fie introdusă greşit şi informaŃia poate deveni inconsistentă;

validarea datelor – este clar că diferite aplicaŃii care gestionează fişiere disparate pot valida datele diferit; nevalidarea uniformă a datelor poate duce la compromiterea întregului sistem de fişiere;

disponibilitatea şi securitatea datelor – reprezintă o problemă de

asemenea foarte spinosă. Datele aflându-se în fişiere disparate, acestea pot fi reŃinute de proprietari nefiind disponibile şi comunităŃii utilizatorilor. De asemenea, neexistând un control centralizat asupra lor nu se poate asigura securitatea acestora. Pornind de la toate acestea şi multe altele, cum ar fi dezvoltarea tehnicii de calcul, s-a ajuns la ideea bazelor de date.

INFORMATICĂ MANAGERIALĂ

O primă definiŃie a bazelor de date este [NiŃchi&RacoviŃan96]: baza de date este un sistem integrat, coerent şi partajat de fişiere. Pentru a asigura folosirea în comun a aceloraşi date de către mai mulŃi utilizatori era necesară asigurarea independenŃei aplicaŃiilor faŃă de structura logică a datelor. Din acest motiv, era necesară desprinderea din cadrul programelor de aplicaŃie a descrierii structurii datelor. Acest lucru a fost posibil prin definirea unui fişier de descriere globală a bazei de date, denumit dicŃionar de date. Bazele de date au apărut în anii ’60, odată cu lansarea programului Apollo, în 1964, pronind de la ceea ce formau sistemele de fişiere înlănŃuite, introduse de IBM pentru gestionarea lansării şi urmăririi producŃiei. Astfel au apărut aşa zisele baze de date arborescente sau de ganeraŃia 1-a. Conceptul de bază de date, sub această denumire, a apărut pentru prima dată în anul 1969, an în care CODASYL a publicat, în cadrul unei conferinŃe dedicate limbajelor de gestiune a datelor, un raport tehnic despre acest concept. FaŃă de modelul bazat pe fişiere clasice (file-based), noul model de organizare a datelor în baze de date include un fişier de descriere globală a bazei de date (dicŃionar de date) care să poată asigura independenŃa programelor faŃă de structura datelor. Pornind de la aceste considerente, se pot da şi alte definiŃii bazelor de date, cum ar fi [Fotache01]:

O bază de date reprezintă o colecŃie de date, organizate într-o structură descrisă printr-un model conceptual sau colecŃie de date aflate în interdependenŃă, împreună cu descrierea datelor şi a relaŃiilor dintre ele. Totalitatea informaŃiilor stocate în baza de date la un moment dat reprezintă conŃinutul bazei de date. ConŃinutul are un caracter volatil, în sensul că se modifică permanent în funcŃie de volumul şi complexitatea proceselor şi fenomenelor economice la care se referă. Structura datelor împreună cu legăturile dintre entităŃi şi restricŃiile de integritate formează schema bazei de date, care, de obicei, rămâne constantă pe durata utilizării bazei de date. Gestionarea datelor dintr-o bază de date este asigurată de un sistem de gestiune a bazelor de date sau SGBD (în limba engleză DBMS - Data Base Management System). Un SGBD reprezintă un ansamblu de programe pentru gestiunea datelor sau un mediu de programare destinat gestiunii datelor din baza de date. Prin urmare, el este cel care asigură încărcarea bazei de date, actualizarea şi interogarea acesteia, cât şi interfaŃa cu sistemul de operare în vederea simplificării accesului la date. In general SGBD-urile au implementate limbaje gazdă, care conŃin atât instrucŃiuni specifice exploatării datelor din bazele de date, cât şi unele instrucŃiuni din limbajele de programare clasice.

Un SGBD include, în general, o serie de componente [Date2000] grupate în jurul dicŃionarului de date, dintre care amintim:

sistemul de gestiune a fişierelor şi suporturilor la nivel fizic;

sistemul de gestiune a fişierelor la nivel logic;

limbajul de manipulare a datelor (LMD) şi translatorul aferent;

limbajul de descriere a datelor (LDD) şi translatorul aferent;

limbajul de consultare sau interogare (Query Language) şi procesorul aferent, care traduce instrucŃiunile limbajului de consultare în instrucŃiuni inteligibile pentru sistemul de gestiune la nivel logic;

componente de interfaŃă cu programele de aplicaŃii;

componente de serviciu, legate de jurnalizări, securitate etc.

Trebuie să specificăm, însă, că în majoritatea SGBD-urilor, cum este şi cazul xBase sau Visual FoxPro, mai multe componente, cum ar fi de exemplu cele trei limbaje şi translatoarele lor, sunt integrate, formând o singură componentă. Principalele funcŃii ale unui SGBD sunt următoarele:

FuncŃia de descriere date

FuncŃia de manipulare date

FuncŃia de utilizare

1.1.2. Arhitectura unei baze de date

Asigurarea independenŃei logice şi fizice a datelor impune adoptarea unei arhitecturi a bazei de date pe trei nivele astfel:

1. nivelul intern

2. nivelul conceptual

3. nivelul extern

Nivelul intern (baza de date fizică), defineşte baza de date ca fiind o

colecŃie de fişiere, conŃinând datele din cadrul bazei de date, la care se adaugă şi alte structuri auxiliare de date şi un set de programe, care interacŃionează cu sistemul de operare pentru îmbunătăŃirea managementului bazei de date. La acest nivel structura bazei de date se concretizează în schema internă. Aici apare independenŃa faŃă de căile de acces, adică utilizatorul nu trebuie să fie preocupat de organizarea şi modul de acces la date la nivel fizic. Nivelul conceptual, este nivelul imediat superior celui fizic, datele fiind privite prin prisma semanticii lor, respectiv a conŃinutului şi relaŃiilor cu alte date. Acesta este şi primul nivel de abstractizare a lumii reale, având ca obiectiv principal modelarea realităŃii existente prin definirea şi descrierea unităŃilor logice cu care se lucrează şi a legăturilor dintre acestea. Această schemă este descrisă în general de administratorul

INFORMATICĂ MANAGERIALĂ

bazei de date, el fiind singurul care cunoaşte şi manipulează schema conceptuală a bazei de date, degrevând utilizatorii de cunoaşterea întregii structuri a bazei de date. Nivelul conceptual se defineşte cu ajutorul schemei entitate-relaŃie (E- R)[Gardarin86] sau obiect-entitate-relaŃie (OLE) [Miranda&Busta86]. Prin entităŃi se înŃeleg concepte cu care operează utilizatorii şi prin care aceştia îşi modelează aplicaŃiile, cum ar fi: PRODUSE, BENEFICIARI, FACTURI (în cazul unei firme productive) sau PROFESORI, STUDENTI, SALI, MATERII (în cadrul unei facultăŃi). Fiecare entitate poate avea una sau mai multe atribute. De exemplu, un STUDENT are MATRICOLA, NUME, DATA-NAŞTERII, etc. Constrângerile reprezintă proprietăŃi ale datelor şi se referă la restricŃii privind valorile pe care le pot lua aceste date sau la restricŃii privind legăturile dintre diferite entităŃi. În cadrul oricărei operaŃii de actualizare a datelor din baza de date sau de încărcare a acesteia cu date, se verifică aceste constrângeri, pentru a asigura integritatea bazei de date. Ca urmare, orice modificare în structura de memorare a datelor sau schimbarea suportului magnetic, va afecta doar interfaŃa dintre nivelul conceptual şi cel fizic fără a modifica nivelul conceptual. Rezultatul imediat al independenŃei fizice a datelor îl reprezintă imunitatea aplicaŃiilor faŃă de structura fizică de memorare a datelor. La acest nivel structura bazei de date se concretizează în schema conceptuală. Nivelul extern este ultimul nivel de abstractizare la care se poate descrie o bază de date. Nivelul extern conŃine, deci, o parte din unităŃile logice descrise la nivel conceptual, dar poate include şi unităŃi logice care nu apar la nivel conceptual şi care nu au corespondent direct în baza de date fizică, obŃinute de exemplu prin calcule. Ca urmare, nivelul extern este derivat din nivelul conceptual şi reprezintă ceea ce vede utilizatorul din baza de date. Fiecărui utilizator îi va corespunde un model extern propriu, în funcŃie de cerinŃele informaŃionale ale acestuia. UnităŃile logice folosite la nivel extern se numesc numite unităŃi logice virtuale, imagini sau vederi şi formează o bază de date virtuală. Aceste vederi se pot obŃine în unul din următoarele moduri:

1. prin modificarea unor unităŃi logice reale;

2. prin combinarea a două sau mai multe unităŃi logice reale.

Vederile asigură, printre altele, următoarele funcŃii în cadrul unei baze de

date:

1. securitatea bazei de date

2. definirea modului de acces la date;

3.

oferă utilizatorului o viziune simplificată şi personalizată asupra bazei

de date. Prin nivelul extern se realizează independenŃa logică a datelor din baza de

date.

InterfaŃa dintre utilizator şi SGBD se poate realiza în mai multe moduri, dintre care amintim :

- printr-un mecanism de apel (cuvânt cheie urmat eventual de parametrii) inserat în programele scrise într-un limbaj tradiŃional (C, COBOL, etc), numit limbaj gazdă;

- prin comenzi speciale utilizate autonom (specifice SGBD-urilor, în afara limbajelor tradiŃionale), în cazul SGBD-urilor autonome.

1.1.3. Modele de organizare a datelor

Analiza, proiectarea şi implementarea structurii bazei de date se realizează utilizând un anumit model de date. Un asemenea model reprezintă un ansamblu de instrumente

conceptuale, care permit descrierea datelor, a relaŃiilor dintre ele, a semanticii lor, cât şi a restricŃiilor la care sunt supuse aceste date [Fotache02, Popescu02]. Un model de date reprezintă, deci, un instrument teoretic care ne ajută să identificăm semnificaŃia sau conŃinutul unei colecŃii de date (structura de organizare a acestora) cât şi modul de utilizare a acestora, prin intermediul operaŃiilor permise asupra datelor respective. Modelul de organizare a datelor este deci o reprezentare a obiectelor lumii reale şi a evenimentelor asociate lor, având rolul de a pune la dispoziŃia utilizatorilor conceptele de bază şi notaŃiile, care să le permită acestora să comunice clar şi rapid informaŃiile despre datele firmei [Selinger98]. Ca urmare, un model de date include următoarele componente

[Selinger98]:

1. un set de reguli de structurare a datelor prin limbajul de descriere date (LDD).

2. un set de reguli de manipulare a datelor prin limbajul de manipulare

date (LMD). Modelele utilizate de bazele de date se pot grupa în trei categorii [Fotache98]: modele bazate pe obiect, modele bazate pe înregistrare şi modele fizice.

Modelele bazate pe obiect permit descrierea datelor la nivel conceptual şi extern. Din această categorie fac parte:

a) modelele entitate-asociaŃii (E-A), entitate-relaŃie (E-R) sau obiect- entitate-relaŃie (OLE)

b) modelul semantic

c) modelul funcŃional

INFORMATICĂ MANAGERIALĂ

d) modelul orientat pe obiecte.

Din categoria modelelor orientate pe înregistrări fac parte:

a) modelul ierarhic

b) modelul reŃea

c) modelul relaŃional.

Această din urmă orientare a dat naştere şi clasificării bazelor de date pe generaŃii [Miranda&Busta86, Gardarin86]. Astfel, prima generaŃie de baze de date a fost cea bazată pe structuri arborescente, adică relaŃii de tip 1:n. Dintre SGBD-urile cele mai cunoscute din domeniu amintim: IMS al IBM (utilizat şi azi), Total, System2000, Nomad etc. A doua generaŃie de baze de date a fost cea bazată pe reŃele sau relaŃii de tip n:m. Aceste baze de date au fost denumite şi baze de date de tip CODASYL, deoarece această organizaŃie a încercat să dezvolte un standard pentru ele şi să le introducă în standardul COBOL 81. Dintre SGBD-urile cele mai utilizate în România, din această categorie, amintim SGBD-urile de tip Socrate, dezvoltate de firma franceză CII după proiectul profesorului M.Abrial de la Universitatea din Grenoble şi DBMS-11, al firmei DEC. In prezent, cel mai răspândit dintre modelele de baze de date este cel relaŃional, adică de tip n:1, dezvoltat de E.F.Codd de la IBM, al cărui obiectiv este acela de simplificare a accesului la date de către utilizatorii finali. Aceasta reprezintă a treia etapă sau generaŃie în evoluŃia SGBD-urilor.

1.1.4. EntităŃi şi tipuri de entităŃi

O entitate este o realitate obiectivă care există prin ea însăşi. Orice entitate, aşa după cum s-a mai arătat, se caracterizează prin anumite proprietăŃi, care în cadrul modelului de date sunt reprezentate prin atribute. EntităŃile la rândul lor sunt reprezentate prin tipuri de entităŃi. MulŃimea entităŃilor descrise prin tipul de entitate dat reprezintă extensiunea tipului de entitate respectiv, atributele unei instanŃe ale entităŃii fiind proprietăŃile particulare sau extensionale ale acesteia.

REZUMAT

O primă definiŃie a bazelor de date este [NiŃchi&RacoviŃan96]: baza de date este un sistem integrat, coerent şi partajat de fişiere.

O

bază de date reprezintă o colecŃie de date, organizate într-

o

structură descrisă printr-un model conceptual sau colecŃie

de date aflate în interdependenŃă, împreună cu descrierea datelor şi a relaŃiilor dintre ele. Un SGBD reprezintă un ansamblu de programe pentru gestiunea datelor sau un mediu de programare destinat

gestiunii datelor din baza de date. Principalele funcŃii ale unui SGBD sunt următoarele:

 

FuncŃia de descriere date

FuncŃia de manipulare date

FuncŃia de utilizare

Asigurarea independenŃei logice şi fizice a datelor impune

adoptarea unei arhitecturi a bazei de date pe trei nivele astfel:

 

1. nivelul intern

2. nivelul conceptual

3. nivelul extern

Din categoria modelelor orientate pe înregistrări fac parte:

 

d) modelul ierarhic

e) modelul reŃea

f) modelul relaŃional.

TESTE DE AUTOEVALUARE

Recomandăm parcurgerea testelor din Îndrumarul de laborator

BIBLIOGRAFIE

1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St., Tomai N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj- Napoca, 2003. 2. Marian Cristescu, Baze de date utilizate în mediul economic, Editura ”ALMA MATER”, Sibiu, 2007. 3. Gabriel Dima ,Mihai Dima, Bazele Visual Foxpro 5.0, Editura Teora, Bucuresti, 1999. 4. Marin Fotache, Ioan Brava, Cătălin Strâmbei, Liviu

CreŃu, Visual FoxPro; Ghidul dezvoltării aplicaŃiilor

profesionale, Editura Polirom Iaşi, 2002.

5. Nicolae Ghişoiu, Visual FoxPro; ExerciŃii şi programe, Editura Risoprint Cluj, 2003.

INFORMATICĂ MANAGERIALĂ

1.2. MODELUL RELAłIONAL

OBIECTIVE

1. Clarificarea noŃiunilor referitoare la conceptele generale legate de relaŃie, atribut, domeniu 2. Clarificarea elementelor referitoare la chei şi legături între tabele. 3. Familiarizarea cu formele normale şi normalizarea relaŃiilor.

NOłIUNI CHEIE

Atribut, tabel, domeniu, relaŃie, cheie candidat, cheoe primară, cheie străină, cele trei forme normale de bază

1.2.1. Modelul de date relaŃional

1.2.1.1. Caracteristici generale

Primul model de date relaŃional, aşa după cum s-a amintit, a fost propus de către cercetătorul american E.F. Codd de la laboratorul din Palo Alto, al IBM. Principiile matematice care stau la baza acestui model pornesc de la teoria matematică a relaŃiilor, extinsă la cerinŃele de gestiune a datelor. O bază de date relaŃională este definită ca fiind un ansamblu de tabele sau relaŃii între care există anumite legături, fiecare tabelă fiind alcătuită din coloane, denumite atribute şi linii, denumite şi tuple.

1.2.1.2. Definirea entităŃilor şi structurii acestora

Reamintim că în cadrul modelului relaŃional entităŃile se reprezintă prin

intermediul relaŃiilor statice, sau tabelelor, precum şi a legăturilor dintre ele, sau a relaŃiilor dinamice. Conceptele cu care se operează în cadrul modelului relaŃional în vederea definirii entităŃilor şi structurii acestora sunt următoarele:

1. linia sau tuplul

2. atributul sau caracteristica

3. domeniul

4. înregistrarea logică

5. cardinalitatea relaŃiei

6. rangul relaŃiei

7. cheia relaŃiei

Pentru exemplificarea conceptelor anterior prezentate se consideră relaŃia sau tabelul FACULTẶłI având următoarea structură:

FACULTẶłI

Ặł I având urm ă toarea structur ă : FACULT Ặł I atribut Cod facultate Denumire

atribut

Cod facultate

Denumire facultate

Adresă

STE

ŞT. ECONOMICE

MIHALI FN

FIL

FILOLOGIE

HOREA 5

BIO

BIOLOGIE

HAJDEU 10

MED

MEDICIN

E. ISAC 20

linie

(tuplu)

HAJDEU 10 MED MEDICIN Ặ E. ISAC 20 linie (tuplu) domeniu înregistrare logic ă (antet rela

domeniu

MED MEDICIN Ặ E. ISAC 20 linie (tuplu) domeniu înregistrare logic ă (antet rela Ń ie)
MED MEDICIN Ặ E. ISAC 20 linie (tuplu) domeniu înregistrare logic ă (antet rela Ń ie)

înregistrare logică (antet relaŃie)

Putem considera că un atribut reprezintă o utilizare sub un anumit nume a unui domeniu. Din acelaşi domeniu pot deriva mai multe atribute, fiecare cu nume diferite la nivelul unui tabel. Astfel, dacă considerăm domeniul numerelor întregi sau reale, din acest domeniu pot deriva atribute cum ar fi: SALAR, IMPOZIT, VALOARE, PRET, CANTITATE etc.

1.2.1.3.

Fundamentul

atribut

matematic

al

conceptului

de

relaŃie

şi

Din punct de vedere matematic, prin relaŃie se înŃelege o submulŃime a produsului cartezian al Unor domenii. Având domeniile D1, D2,…, D n , produsul lor cartezian se defineşte

astfel:

V=D 1 x D 2 x …. x D n ={ (d 1 , d 2 ,….,d n )}

şi reprezintă o asociere între elementele fiecărui domeniu, sau mai exact, este

mulŃimea tuturor combinaŃiilor sau tuplelor de forma {d 1 , d 2 ,….,d n }, unde d i

D i .

Deci, relaŃia se defineşte astfel:

R

D 1 x D 2 x ……x D n

unde D 1 , D 2 ,…,D n reprezintă domeniile relaŃiei R comparabile între ele, iar "n" reprezintă rangul relaŃiei. După rang, relaŃia poate fi: primară, binară, ternară sau, în general, n-ară. Desigur că definiŃia anterioară dată relaŃiei nu este unica posibilă. Astfel, C.J.Date [Date2000] defineşte o relaŃie ca fiind compusă din două părŃi:

1. Antetul relaŃiei, ca fiind o mulŃime de atribute, definite pe câte un domeniu (nu neapărat distinct), astfel:

{A 1 : D 1 , A 2 : D 2 ,….A n :Dm}

INFORMATICĂ MANAGERIALĂ

2. Corpul relaŃiei, ca fiind o mulŃime de tuple, fiecare tuplu conŃinând o mulŃime de valori aferente atributelor definite în antetul relaŃiei, astfel:

{t 1 , t 2 ,…t k …….t n } mulŃime de tuple t i = {d i1 ,d i2 ………d in } mulŃime de valori aferente unei tuple

Ilustrarea acestui mod de abordare rezultă din figura următoare:

acestui mod de abordare rezult ă din figura urm ă toare: Antetul rela Ń iei Corpul

Antetul relaŃiei

Corpul relaŃiei

 

A

1

A

2

…………

A

n

 

d

11

d

12

 

d

1n

t

1

d

21

d

22

 

d

2n

t

2

     
 

.

 

d

k1

d

k2

 

d

kn

t

k

.

     
 

.

 

t

d

m1

d

m2

 

d

mn

 

m

 

Deci, o relaŃie poate fi simbolizată prin mulŃimea atributelor sale astfel:

R(A 1 ,A 2 … ,A

n )

sau

(A 1 :D 1 ,A 2 :D 2 ,….,A n :D n )

Din definiŃiile noŃiunii de relaŃie, rezultă următoarele proprietăŃi ale acesteia:

1. Ordinea atributelor în cadrul unei relaŃii este nesemnificativă (atributele

nu sunt ordonate).

2. Atributele unei relaŃii trebuie să fie distincte, chiar dacă pe acelaşi domeniu sunt definite mai multe atribute.

3. Orice atribut are valori atomice, adică la intersecŃia dintre o linie şi o coloană se află o singură valoare şi nu o colecŃie de valori sau grupuri repetitive. In acest caz, se consideră că relaŃia se află în forma întâia normală.

4. In cadrul corpului relaŃiei, tuplele nu sunt ordonate în mod obligatoriu.

5. Intr-o relaŃie nu există tuple duplicate.

1.2.2. Legături între relaŃii

1.2.2.1. Definirea cheilor unei relaŃii

Dacă într-o relaŃie există mai multe atribute sau combinaŃii de atribute care permit identificarea unică a tuplelor, acestea sunt denumite chei candidat. O astfel de cheie reprezintă un atribut sau o mulŃime de atribute (K) cu următoarele proprietăŃi [Gardarin86] :

1. identificare unică;

2.

ireductibilitate;

3. valorile atributului.

O entitate poate conŃine mai multe chei candidat, dar numai una dintre ele se alege pentru a fi folosită la identificarea tuplelor. Această cheie se numeşte

cheie primară. O cheie candidat care nu este desemnată ca şi cheie primară se numeşte cheie alternativă. Pe lângă noŃiunile de cheie candidat şi cheie primară, în cadrul modelului relaŃional se mai foloseşte şi noŃiunea de cheie străină. Ea se utilizează la stabilirea legăturilor dintre două tabele, numite tabela principală sau părinte şi tabela secundară sau copil. Prin definiŃie, valoarea cheii străine trebuie să se regăsească în mulŃimea cheilor primare ale tabelei principale. Ea reprezintă deci

o referinŃă către un tuplu din tabela părinte care are aceeaşi valoare a cheii primare.

1.2.2.2. Tipuri de legături între relaŃii

Una din componentele modelului relaŃional se referă la legăturile dintre

relaŃii sau tabele. O legătură (relaŃie dinamică) se defineşte ca fiind o asociere între mai multe tipuri sau clase de entităŃi. Cea mai frecventă legătură întâlnită

în practică este cea dintre două tipuri de entităŃi, numită şi legătură binară.

Legăturile binare, aşa cum s-a amintit, după cardinalitatea lor (numărul entităŃilor din fiecare clasă de entităŃi care intră în cadrul legăturii) se pot clasifica astfel:

1. legături de tip 1-1, prin care unei entităŃi din mulŃimea sau clasa M1 îi corespunde o singură entitate în mulŃimea sau clasa M2;

2. legături de tip 1-n, prin care unei entităŃi din mulŃimea M1 sau din tabelul M1 îi corespund mai multe entităŃi în mulŃimea sau tabelul M2, iar unei entităŃi din M2 îi corespunde o singură entitate în M1;

3. legături de tip m-n, prin care unei entităŃi din M1 îi corespund mai multe entităŃi în M2 şi reciproc.

1.2.3. Definirea restricŃiilor pentru datele dintr-o bază de date

Pentru datele dintr-o bază de date pot fi definite mai multe tipuri de restricŃii, cum ar fi: restricŃia de domeniu, de atomicitate, referenŃială şi restricŃii utilizator. Dintre acestea, ne vom referi în continuare la restricŃia referenŃială sau integritatea referenŃială, pe care se bazează stabilirea legăturilor dintre două tabele. Integritatea referenŃială, denumită în unele sisteme (ca de exemplu în SQL Server), integritate referenŃială statică deoarece se păstrează în dicŃionarul de date, se defineşte ca fiind un ansamblu de reguli impuse tabelelor între care s-au stabilit anumite legături. Astfel, pentru a asigura integritatea referenŃială

INFORMATICĂ MANAGERIALĂ

trebuie ca atunci când se fac modificări ale valorii unui câmp de tip cheie primară sau străină dintr-un tabel, să nu fie afectată relaŃia dintre cele două tabele, adică să se modifice automat valorile cheii în toate tuplele corespunzătoare. Integritatea referenŃială cere ca valorile cheii străine să se regăsească printre valorile cheii primare. Această condiŃie introduce în baza de date constrângeri numite constrângeri referenŃiale. OperaŃiile de adăugare, modificare şi ştergere pot afecta integritatea referenŃială astfel:

1) In tabela principală (tabela referită sau părinte):

a. operaŃia de adăugare se va face fără nici un fel de restricŃii din punct de vedere al condiŃiilor de integritate referenŃială;

b. operaŃia de ştergere - deoarece prin ştergerea unui tuplu din relaŃia sau tabela principală, în relaŃia secundară pot rămâne tuple care fac referire la tuplul şters, pentru a menŃine integritatea referenŃială se poate introduce ştergerea restricŃionată sau în cascadă;

- în primul caz, nu se poate şterge un tuplu din tabela principală dacă acesta are corespondent tuple în tabela secundară, deoarece tuplele din tabela secundară rămân orfane, adică vor avea referinŃe nesatisfăcute;

- în al doilea caz, ştergerea unui tuplu din tabela principală va fi urmată de ştergerea tuturor tuplelor din relaŃia secundară care fac referire la tuplul şters;

c. operaŃia de modificare poate fi privită ca şi în cazul operaŃiei de ştergere, iar restricŃiile referenŃiale sunt cele folosite la operaŃia de ştergere; 2) In tabela secundară (de referinŃă sau tabela copil):

a. operaŃia de adăugare se poate face numai dacă valorile cheii străine pentru articolele adăugate se regăsesc printre valorile cheii primare din tabela principală, altfel operaŃia de adăugare este interzisă;

b. operaŃia de ştergere se poate realiza fără nici o restricŃie din punct de vedere al condiŃiilor de integritate referenŃială;

c. operaŃia de modificare se poate realiza cu condiŃia să nu apară înregistrări fără corespondent în tabela principală.

1.2.4. Schema şi conŃinutul unei baze de date relaŃionale

Există două modalităŃi de abordare a bazelor de date relaŃionale şi anume

[Fotache2001]:

- schema relaŃională (intensia sau structura bazei de date);

- conŃinutul unei relaŃii (extensia bazei de date).

1.

Schema relaŃională sau intensia unei baze de date poate fi definită ca un ansamblu de relaŃii asociate semantic prin domeniul de definiŃie şi prin restricŃii de integritate. Ea conŃine:

a. una sau mai multe scheme de relaŃie, unde fiecare schemă de relaŃie include numele relaŃiei şi atributele aferente;

b. restricŃii de integritate, care pot fi:

- restricŃia cheilor primare, adică fiecare cheie primară trebuie să fie unică, nenulă şi cu compoziŃie minimală;

- restricŃii referenŃiale, care decurg din existenŃa cheilor străine;

- alte restricŃii, cum ar fi cele definite de utilizator (dependenŃe

între atribute, valori limită, unicitate, caracter nenul, etc.). Schema relaŃională descrie întotdeauna modelul conceptual din cadrul unei baze de date. RelaŃiile dintre relaŃie şi tabelă sunt date de următoarele:

1. în timp ce relaŃia este o mulŃime teoretică, tabela este un obiect concret cu o anumită reprezentare (tablou bidimensional);

2. în timp ce într-o relaŃie ordinea atributelor sau tuplelor nu este semnificativă, într-o tabelă există o ordonare atât a coloanelor, dată de ordinea acestora la creare, cât şi a înregistrărilor, dată de ordinea în care au fost introduse în tabelă sau ca urmare a indexării tabelei;

3. în timp ce o relaŃie teoretică este formată întotdeauna din tuple distincte, în practică o tabelă poate conŃine şi linii duplicat, aşa după cum s-a mai menŃionat în cazul SQL Server.

In acest context, noŃiunea de relaŃie se identifică cu cea de tabelă sau fişier, atributele cu denumirea coloanelor unei tabele sau cu câmpurile unui fişier, iar tuplele cu liniile tabelei sau cu articolele (respectiv înregistrările) unui fişier. Cele de mai sus justifică faptul subliniat la definiŃia bazelor de date, că baza de date este o colecŃie de fişiere. În unele SGBD-uri, cum este cazul Visual FoxPro, fiecare fişier are articole de lungime fixă, în timp ce la altele, cum este cazul SQL Server, articolele pot fi de lungime variabilă. Spre deosebire însă de fişierele obişnuite, fişierele bazei de date prezintă o serie de particularităŃi, dintre care amintim:

1. fiecare fişier are asociată o înregistrare de structură sau un antet, care include informaŃii despre conŃinutul fişierului şi se memorează în dicŃionarul de date;

2. dacă fişierul are articole de lungime fixă, articolele sau înregistrările de date conŃin un număr de ordine, folosit la identificarea unei înregistrări în baza de date, numit şi indicatorul sau pointer-ul articolului respectiv; în Visual FoxPro acest pointer poate fi obŃinut prin funcŃia RECNO();

3. de regulă unul dintre articolele bazei de date este cel tratat curent; pointer-ul acestui articol se numeşte pointer-ul sau indicatorul bazei de date;

INFORMATICĂ MANAGERIALĂ

4. fişierele din baza de date sunt interconectate între ele prin legături de tip 1-1, 1-n sau m-n.

REZUMAT

O bază de date relaŃională este definită ca fiind un ansamblu de tabele sau relaŃii între care există anumite legături, fiecare tabelă fiind alcătuită din coloane, denumite atribute şi linii, denumite şi tuple. Din punct de vedere matematic, prin relaŃie se înŃelege o submulŃime a produsului cartezian al domeniilor. Dacă într-o relaŃie există mai multe atribute sau combinaŃii de atribute care permit identificarea unică a tuplelor, acestea sunt denumite chei candidat

TESTE DE AUTOEVALUARE

Recomandăm parcurgerea testelor din Îndrumarul de laborator

BIBLIOGRAFIE

1.

Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St.,

Tomai N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj-

Napoca, 2003.

2.

Marian Cristescu, Baze de date utilizate în mediul

economic, Editura ”ALMA MATER”, Sibiu, 2007. 3. Gabriel Dima ,Mihai Dima, Bazele Visual Foxpro 5.0,

Editura Teora, Bucuresti, 1999.

4.

Marin Fotache, Ioan Brava, Cătălin Strâmbei, Liviu

CreŃu, Visual FoxPro; Ghidul dezvoltării aplicaŃiilor

profesionale, Editura Polirom Iaşi, 2002.

5. Nicolae Ghişoiu, Visual FoxPro; ExerciŃii şi programe, Editura Risoprint Cluj, 2003.

2. ELEMENTE DE LIMBAJ VISUAL FOXPRO

CONCEPTE

1.

Obiecte cu care operează VFP

DE BAZA

2. Metalimbajul utilizat

3. Sintaxa comenzilor VFP

4. Familiarizarea cu mediul Visual FoxPro

OBIECTIVE

1. Cunoaşterea elementelor lexicale şi sintactice ale limbajului VFP.

2. Prezentarea obiectivelor de date şi a tipurilor de date utilizate în cadrul programelor Fox.

3. Prezentarea sintaxei comenzilor FoxPro şi a elementelor de metalimbaj.

4. Descrierea principalelor caracteristici ale Visual FoxPro, ca mediu integrat, obiectual şi vizual de dezvoltare de aplicaŃii.

5. Familiarizarea cu mediul Visual FoxPro, precum şi a primelor operaŃii cu mediul.

6. Familiarizarea cu opŃiunile din meniul principal, caseta de control, opŃiunile acestora, precum şi cu gestiunea ferestrelor şi a obiectelor de control.

RECOMANDĂRI

1. Se va studia mai întâi modul de formă şi utilizare a construcŃiilor simple ale limbajului (cuvinte, literale, simboluri speciale) şi apoi a celor compuse (instrucŃiuni, funcŃii şi expresii). 2. Se va pune în continuare accent pe formarea şi utilizarea obiectivelor date folosite în cadrul limbajului:

constante, câmpuri, variabile. 3. Se va studia tipurile de date utilizate în cadrul limbajului şi conversia între tipuri. 4. În finalul studiului privind elementele limbajului se pune accent pe modul de definire a sintaxei unei comenzi în Visual FoxPro.

PRIVIND

STUDIUL

REZULTATE

După parcurgerea acestui modul utilizatorul trebuie să fie în măsură să definească şi folosească corect construcŃiile limbajului la nivelul unui program şi să înŃeleagă modul de utilizare al clauzelor din sintaxa comenzilor FoxPro. Se aşteaptă. De asemenea:

1. Familiarizarea cu mediul de dezvoltare Visual FoxPro.

ASTEPTATE

2. Crearea unor deprinderi de utilizare a mediului;

INFORMATICĂ MANAGERIALĂ

2.1. ELEMENTELE LEXICALE ŞI SINTACTICE ALE LIMBAJULUI VISUAL FOXPRO

OBIECTIVE

Cunoaşterea modului de formare şi utilizare a construcŃiilor simple şi compuse ale limbajului

NOłIUNI

- Cuvinte

CHEIE

- Literale

- InstrucŃiuni

- FuncŃii

- Expresii

2.1.1. Setul de caractere Foxpro

Majoritatea limbajelor de programare, printre care şi limbajul FoxPro, au alfabetul format din următoarele caractere:

- literele alfabetului limbii engleze;

- cifrele arabe (0-9);

- caractere speciale;

2.1.2. Elementele lexicale şi sintactice ale limbajului FoxPro

Un program FoxPro este alcătuit din şiruri de caractere sau construcŃii şi separatori. ConstrucŃiile limbajului se pot împărŃi în două categorii:

- construcŃii simple;

- construcŃii compuse.

ConstrucŃiile simple, reprezintă cea mai mică unitate lexicală cu înŃeles de sine stătător, numite şi atomi lexicale. Există următoarele categorii de atomi lexicali

sau de construcŃii simple:

1. identificatori (cuvinte);

2. literali;

3. simboluri speciale.

care formează împreună vocabularul sau lexicul limbajului. 1. Identificatorii, reprezintă o secvenŃă arbitrară de caractere alfabetice, cifre

sau liniuŃa de subliniere, din care primul caracter este o literă sau liniuŃa de subliniere. Există două categorii de identificatori sau cuvinte:

a) cuvinte predefinite;

b) cuvinte utilizator.

Cuvinte predefinite; sunt precizate la definirea limbajului. Cu ajutorul lor se

construiesc instrucŃiunile limbajului. Ele se împart la rândul lor în:

- cuvinte cheie;

- cuvinte rezervate.

INFORMATICĂ MANAGERIALĂ

Cuvintele utilizator; sunt cuvinte definite de utilizator, fiind folosite în diferite contexte.

2. Literali; reprezintă o valoare constantă, de tip numeric sau caracter. Termenul de literal provine de la cuvântul "ad-literam" şi are semnificaŃia unei valori precizate explicit. 3. Simboluri speciale; la fel ca şi cuvintele rezervate, simbolurile speciale numite şi semne de punctuaŃie, operatori, delimitatori, au o semnificaŃie bine definită fiind utilizate conform destinaŃiei lor.

2.1.3. ConstrucŃii compuse

A doua grupă de construcŃii, alături de construcŃiile simple, o reprezintă construcŃiile compuse, numite şi categorii sintactice de bază obŃinute prin agregarea succesivă a construcŃiilor simple conform unor reguli sintactice. La nivelul limbajului FoxPro din această grupă fac parte următoarele categorii sintactice:

1. instrucŃiuni;

2. funcŃii;

3. expresii.

1. InstrucŃiunile limbajului FoxPro se numesc comenzi şi constituie ca în orice limbaj de programare categoria sintactică fundamentală. 2. FuncŃiile; reprezintă a doua categorie sintactică de bază, utilizate în majoritatea prelucrărilor asupra datelor din baza de date. Spre deosebire de comenzi, funcŃiile returnează o valoare. Expresii FoxPro - reprezintă elemente sintactice de bază prin care se evaluează rezultatul unor operaŃii. Ele conŃin şiruri de operanzi legate între ele prin intermediul unor operatori. Expresiile rezultate în funcŃie de tipul operanzilor pot fi de tip:

numeric, caracter, dată calendaristică, logic, relaŃional. Operanzii din cadrul unei expresii pot fi: variabile (câmpuri, variabile de memorie), constante şi funcŃii. Operatorii sunt caractere speciale (+, -, *, /, >, < …) sau cuvinte cheie rezervate (AND, OR, NOT) prin care se specifică acŃiunile

ce trebuie executate asupra operanzilor (obiectelor de date). Operatorii utilizaŃi în cadrul expresiilor FoxPro, se pot grupa după tipul acestora astfel:

- operatori aritmetici;

- operatori relaŃionali (de comparaŃie);

- operatori logici;

- operatori de concatenare;

- operatori pentru date de tip gestiune timp.

Separatori: aceştia se împart în două categorii distincte astfel:

1) separatori uzuali; care servesc la separarea a doi atomi lexicali şi pot fi: spaŃiu, tab, retur de car şi avans de rând.

2) comentariile; aceştia nu influenŃează execuŃia programului şi permit o înŃelegere mai bună a textului sursă.

2.1.4. Structura unui program FoxPro Structura unui program FoxPro se poate descrie astfel:

PROGRAM::=<text ASCII> ( 0 sau mai multe linii logice sau fizice) LINIE LOGICĂ::={linie fizică} (două sau mai multe)

2.2. OBIECTE DE DATE ŞI TIPURI DE DATE FOLOSITE IN VISUAL FOXPRO

OBIECTIVE

1.Cunoaşterea principalelor obiecte de date oferite utilizatorilor de limbaj (constante, câmpuri, variabile de memorie); 2.Cunoaşterea tipurilor de date folosite în cadrul limbajului

NOłIUNI

- constante

CHEIE

- câmpuri

- variabile de memorie

- tip numeric, alfanumeric, logic, gestiune timp, special

2.2.1. Obiecte de date

Limbajul FoxPro pune la dispoziŃia utilizatorilor următoarele obiecte de date:

constante, variabile şi matrice de variabile.

a)

CONSTANTE; sunt date definite de utilizator care nu-şi schimbă valoarea în timpul execuŃiei comenzilor.

b)

CÂMPURI; reprezintă componentele principale ale înregistrărilor de date sau blocurile constructive ale fişierelor .DBF. Ele stochează datele de prelucrat şi au caracter de permanenŃă, deci supravieŃuiesc pe durata execuŃiei oricărui program care se referă la fişierul respectiv. Acest obiect de date se caracterizează prin următoarele atribute:

-

Nume (identificatorul obiectului).

-

Tip;

-

Valoare;

-

Lungime;

c)

Variabile de memorie. se caracterizează prin următoarele atribute:

-

Nume;

-

Tip;

-

Lungimea;

-

Durata de viaŃă;

-

Domeniul de vizibilitate;

In raport cu acest atribut variabilele de memorie pot fi de două feluri:

INFORMATICĂ MANAGERIALĂ

1. publice sau globale;

2. private sau locale.

2.2.2.Tipuri de date folosite în Visual FoxPro In Visual FoxPro sunt implementate următoarele tipuri de date:

d) tipul numeric;

e) tipul alfanumeric;

f) tipul logic;

g) tipul pentru gestiune timp;

h) tipul special.

2.3. SINTAXA COMENZILOR VISUAL FOXPRO

OBIECTIVE

1. Inserarea modului de folosire a clauzelor de domeniu şi a opŃiunilor de tip filtru din structura comenzilor FoxPro

2. Cunoaşterea metalimbajului folosit la definiŃia formatului general al unei comenzi

NOłIUNI

- clauze domeniu

CHEIE

- filtru global

- filtru local

2.3.1. Elemente de metalimbaj

Regulile sintactice prin care se stabileşte dacă o anumită construcŃie este corect alcătuită se descriu printr-un limbaj mai simplificat numit metalimbaj. Acest limbaj apare în teoria limbajelor de programare sub denumirea de BNF (Bakus- Naum Form) respectiv EBNF reprezentând o formă extinsă a limbajului BNF.

Metalimbajul conŃine un ansamblu de simboluri (metasimboluri) şi de reguli de descriere. Forma în care se prezintă o construcŃie de bază (instrucŃiune), utilizând metasimboluri, elemente terminale şi neterminale, reprezintă formatul general sau sintaxa generală a construcŃiei respective.

2.3.2. Sintaxa comenzilor Visual FoxPro

2.3.2.1. Structura şi caracteristicile comenzilor FoxPro

Comenzile FoxPro au ca rezultat imediat o acŃiune. Ele pot acŃiona asupra: unui fişier sau unui câmp dintr-un fişier al bazei de date, asupra unei variabile de memorie sau element dintr-un masiv, asupra unei ferestre sau meniu, etc. Cele patru clauze-domeniu din sintaxa unei comenzi au următoarea semnificaŃie:

1.

RECORD<expN>; indică faptul că respectiva comandă acŃionează asupra articolului (înregistrării) cu numărul de secvenŃă definit de valoarea lui <expN>.

2. NEXT<expN>; indică faptul că respectiva comandă acŃionează asupra următoarelor articole începând cu articolul curent, în ordinea dată de index şi respectând filtrul curent, până la un număr total de înregistrări egal cu valoarea <expN>.

3. ALL; indică faptul că respectiva comandă acŃionează asupra tuturor înregistrărilor din fişierul curent, respectând filtrele în curs. Ea reprezintă pentru majoritatea comenzilor clauza implicită.

4. REST; indică faptul că respectiva comandă acŃionează asupra înregistrărilor cuprinse între înregistrarea curentă şi sfârşitul fişierului activ.

OpŃiunile FOR şi WHILE au următoarea semnificaŃie:

FOR<expL>; este un filtru global, adică se aplică tuturor articolelor din domeniul selectat, tratându-le pe cele pentru care condiŃia specificată prin <expL> este adevărată. WHILE<expL>; este un filtru local, adică se aplică numai articolelor succesive din domeniul selectat, începând cu articolul curent, cât timp condiŃia specificată prin <expL> este adevărată.

REZUMAT

- Un program FoxPro este alcătuit din şiruri de

caractere sau construcŃii şi separatori. limbajului se pot împărŃi în două categorii:

ConstrucŃiile

- construcŃii simple;

- construcŃii compuse.

ConstrucŃiile simple, reprezintă cea mai mică unitate lexicală cu înŃeles de sine stătător, numite şi atomi lexicale. Există următoarele categorii de atomi lexicali sau de construcŃii simple:

1. identificatori (cuvinte);

2. literali;

3. simboluri speciale.

care formează împreună vocabularul sau lexicul limbajului. A doua grupă de construcŃii, alături de construcŃiile simple, o

reprezintă construcŃiile compuse, numite şi categorii sintactice de bază obŃinute prin agregarea succesivă a construcŃiilor simple conform unor reguli sintactice. La nivelul limbajului FoxPro din această grupă fac parte următoarele categorii sintactice:

INFORMATICĂ MANAGERIALĂ

   

1.

instrucŃiuni;

2. funcŃii;

3.

expresii.

Limbajul FoxPro pune la dispoziŃia utilizatorilor următoarele

obiecte de date: constante, variabile şi matrice de variabile. Variabilele la rândul lor sunt de două tipuri şi anume: câmpuri din fişiere .DBF şi variabile de memorie (memory variables sau memvars).

 

i)

tipul special.

Cele patru clauze-domeniu au următoarea semnificaŃie:

 

RECORD<expN>; indică faptul că respectiva comandă acŃionează asupra articolului (înregistrării) cu numărul de secvenŃă definit de valoarea lui <expN>.

NEXT<expN>; indică faptul că respectiva comandă acŃionează asupra următoarelor articole începând cu articolul curent, în ordinea dată de index şi respectând filtrul curent, până la un număr total de înregistrări egal cu valoarea <expN>.

ALL; indică faptul că respectiva comandă acŃionează asupra tuturor înregistrărilor din fişierul curent, respectând filtrele în curs. Ea reprezintă pentru majoritatea comenzilor clauza implicită.

REST; indică faptul că respectiva comandă acŃionează asupra înregistrărilor cuprinse între înregistrarea curentă şi sfârşitul fişierului activ.

TEME DE

1.

Să se dea exemplu de: cuvinte utilizator şi literale

CONTROL

numerice şi alfanumerice 2. Să se construiască expresii FoxPro folosind toate tipurile de operatori (aritmetici, relaŃionali şi logici)

BIBLIOGRAFIE

1. Avram-NiŃchi R., Ghişoiu N., Goron S., NiŃchi St.,

Tomai N. Baze de date şi programarea calculatoarelor utilizând limbajul Visual FoxPro, Ed. Risoprint, Cluj- Napoca, 2003, pg. 91-110.

2.

Marian Cristescu, Baze de date utilizate în mediul

economic, Editura ”ALMA MATER”, Sibiu, 2007, pg. 143-

159.

 

3.Gabriel Dima, Mihai Dima, Bazele Visual Foxpro 5.0, Editura Teora ,Bucuresti,1999,pag . 51-155 4.Marin Fotache, Ioan Brava, Cătălin Strâmbei, Liviu CreŃu, Visual FoxPro; Ghidul dezvoltării aplicaŃiilor profesionale,

Editura Polirom Ia ş i, 2002, pag. 19-48. 5. Manole Velicanu, Ioan Lungu, Mihaela Muntean,

Editura Polirom Iaşi, 2002, pag. 19-48. 5. Manole Velicanu, Ioan Lungu, Mihaela Muntean, Dezvoltarea aplicaŃiilor cu baze de date în Visual FoxPro, Editura All, Bucureşti, 2001, pag. 35-36.

INFORMATICĂ MANAGERIALĂ

2.4. INTRODUCERE ÎN VISUAL FOX PRO

OBIECTIVE

1.Descrierea principalelor caracteristici ale Visual FoxPro, ca mediu integrat, obiectual şi vizual de dezvoltare de aplicaŃii; 2.Însuşirea lansării şi terminării unei sesiuni Visual FoxPro; 3.Familiarizarea cu mediul FoxPro; 4.Principalele moduri de lucru în Visual FoxPro; 1. Familiarizarea cu opŃiunile din meniul principal sau caseta de control şi rolurile acestor opŃiuni 2. Familiarizarea cu gestiunea ferestrelor şi a obiectelor de control;

NOłIUNI CHEIE

Visual FoxPro, mediu de dezvoltare; Sesiune Visual FoxPro; moduri de lansare şi terminare; Componentele mediului; Modurile de lucru în mediu; OpŃiunile meniului principal; OpŃiunile casetei de control; Tipuri de ferestre şi caracteristicile lor; Obiecte de control;

2.4.1. Perspectiva cronologică şi caracteristici generale ale SGBD Visual FoxPro

Visual FoxPro este continuatoare FoxPro care derivǎ din dBase şi clonele

acesteia xBase.

A apărut în 1995 sub denumirea Visual FoxPro 3.0, şi a evoluat către un

limbaj mediu de dezvoltare vizual, orientat pe obiecte, aducând SGBD FoxPro

la nivelul celor mai moderne medii de dezvoltare.

1. Se bazează pe modelul programării orientate pe obiecte (POO - Programming Oriented Object) şi a programării conduse de evenimente. Ca urmare, elementul de bază cu care lucrează este obiectul (fereastră, buton de comandă, relaŃie între tabele etc.). In acest context, un program în Visual FoxPro include o serie de definiŃii de date (proprietăŃi) şi de algoritmi de prelucrare a acestora (metode, proceduri). Metodele asociate unui obiect sunt executate fie printr-o comandă explicită a utilizatorului, fie la apariŃia unor evenimente.

2. Ca tehnici sau instrumente de programare, mediul Visual FoxPro foloseşte programarea vizuală şi tehnici de proiectare vizuală. Aceasta permite utilizatorului ca, prin folosirea unor obiecte vizuale sau a unor asistenŃi de tipul Form Wizard, Graph Wizard, Report Wizard etc., să selecteze în mod interactiv opŃiuni din program şi să fie generate automat programele corespunzătoare.

3. Este un mediu integrat de programare sub Windows. Ca urmare, el include un gestionar al aplicaŃiilor create în FoxPro, numit PROJECT MANAGER, care urmăreşte activitatea de elaborare a aplicaŃiilor şi pune la dispoziŃia utilizatorilor uneltele necesare efectuării acestor operaŃii, cum ar fi: generatoare (Designers), constructori (Builders) şi asistenŃi speciali (Wizards), fiecare având un anumit domeniu de utilizare.

4. Este un sistem relaŃional de gestiune a bazelor de date, asigurând

crearea de relaŃii statice între tabelele din baza de date. 5. Permite interogări şi vizualizări ale datelor aflate pe un server la distanŃă, asigurând astfel crearea aplicaŃiilor client-server, precum şi

trecerea la sistemele tranzacŃionale reale.

În 2003 a apărut pe piaŃă Visual FoxPro 8.0. Extensiile acestei versiuni sunt multiple şi pot fi urmărite în Help-ul sistemului la marcatorul What’s New in Visual FoxPro 8.0. Sunt modificări esenŃiale:

legate de IDE asigurând, printre altele, accesul la serviciile XML;

modificări în limbaj prin extinderea accesului la date la distanŃă şi alte îmbunătăŃiri referitoare la date, legate de SQL şi motorul de baze de date, precum şi un număr considerabil de cuvinte rezervate noi;

extensii ale editoarelor, etc.

2.4.2. Lansarea în execuŃie şi terminarea unei sesiuni Visual FoxPro

Lansarea sistemului Visual FoxPro din acest director se poate face analog

cu lansarea oricărui program în Windows, în unul dintre următoarele moduri:

1. prin selectarea opŃiunii PROGRAMS din meniul START şi apoi a opŃiunii Microsoft Visual FoxPro 8.0;

2. prin efectuarea unui dublu clic pe pictograma aferentă programului

Visual FoxPro 8.0,

dacă pictograma este vizibilă pe ecran;

3. prin selectarea din fereastra Explorer a directorului care conŃine Microsoft Visual FoxPro 8 (de regulă Program Files) şi apoi, din lista apărută sau din fereastră se selectează opŃiunea sau pictograma Launch Microsoft Visual Foxpro 8.0;

4. prin introducerea în caseta de dialog Run din meniul Start a cǎii complete a programului Visual FoxPro 8.

INFORMATICĂ MANAGERIALĂ

Terminarea unei sesiuni de lucru în Visual FoxPro se poate realiza în unul

din următoarele moduri:

prin tastarea comenzii QUIT în fereastra de comandă;

prin selectarea opŃiunii EXIT (ALT+F4) din meniul FILE;

prin selectarea opŃiunii CLOSE din caseta meniului de control a ferestrei principale Visual FoxPro 8;

prin folosirea butonului CLOSE din meniul principal.

2.4.3. Mediul Visual FoxPro 8.0

2.4.3.1. Fereastra principală (iniŃială)

După lansarea Visual FoxPro, pe ecran este afişată fereastra principală.

1. Bara de titlu (Title Bar); conŃine numele aplicaŃiei, respectiv Microsoft Visual FoxPro, aliniat la stânga, având în faŃă un buton cu pictograma FoxPro (cap de vulpe). Aceasta este caseta de control a ferestrei principale. Dacă se execută pe ea un click cu unul dintre butoanele mouse, sau se tastează Alt+Bara SpaŃiu, apare meniul de control vertical, uzual pentru aplicaŃiile Windows. De asemenea, în dreapta apar cele 3 butoane uzuale (de minimizare, zoom şi închidere a ferestrei).

2. Bara meniului principal (Menu bar), include la lansare următoarele opŃiuni: File, Edit, View, Format, Tools, Program, Window şi Help. Fiecare opŃiune din bara meniului principal (sistem) afişează un submeniu vertical atunci când se execută un click pe opŃiunea respectivă

3. Bara cu instrumente standard (Standard Toolbar). Ea conŃine 20

butoane (casete cu pictograme) şi o casetă derulantă. Trebuie să subliniem că ultimele două butoane au fost introduse în versiunea 8.0 şi nu existau în 7.0. Prin poziŃionarea mouse-ului pe orice pictogramă din bara cu instrumente, sub pictograma selectată apare afişat (într-o casetă) numele opŃiunii aferente pictogramei respective. După cum este cunoscut în Windows pot fi folosite meniuri rapide. Meniul rapid pentru Visual FoxPro 8.0 se poate lansa simplu prin executarea unui click cu butonul din dreapta pe bara de instrumente. Va apare meniul în care se regăsesc câte o opŃiune pentru principalele programe de proiectare automată a tabelelor, formelor, rapoartelor etc., dar şi alte opŃiuni.

4. Fereastra de comandă - este porŃiunea de pe ecran încadrată de un dreptunghi, având numele COMMAND şi permite introducerea directă de comenzi prin tastare. Este prevăzută cu butonul de close cu barele de derulare orizontală şi verticală.

5.

SuprafaŃa de lucru - reprezintă zona din cadrul ferestrei principale în care se afişează rezultatul execuŃiei comenzilor introduse de utilizator. O parte din ea este acoperită de fereastra de comandă.

6. Cursorul – este un simbol grafic, care pâlpâie şi indică poziŃia de pe ecran în care se poate introduce următorul caracter. La lansarea sistemului, cursorul apare în fereastra de comandă, pe prima linie.

7. Bara de stare (Status Bar) - indică contextul în care ne găsim la un moment dat, afişând o serie de informaŃii utile. Zona de mesaje din bara de stare este vidă dacă nu este deschisă nici o tabelă în zona de lucru curentă. In schimb, dacă este deschisă o tabelă, în cadrul zonei se afişează următoarele informaŃii:

numele tabelei;

numele bazei de date din care face parte tabela, inclusă în paranteze;

numărul înregistrării curente a tabelei;

numărul total de înregistrări a tabelei;

starea curentă de partajare a fişierului deschis (a tabelei), prin una din următoarele opŃiuni: Exclusive, Record Unlocked, Record Locked, File Locked.

Zona casetelor indicatoare conŃine trei sau patru casete indicatoare cu următoarea semnificaŃie:

prima casetă indică starea tastei INS. Ea este goală, atunci când editorul Fox se află în mod inserare, sau conŃine literele OVR, indicând modul de suprascriere;

este

următoarea

casetă

afişează

NUM

dacă

tasta

NumLock

activă;

a treia casetă afişează CAPS dacă tasta CapsLock este activă;

ultima casetă (opŃional) conŃine ora curentă.

2.4.3.2. Moduri de lucru

Utilizatorul are la dispoziŃie mai multe moduri de lucru, în funcŃie de nivelul său, scopul urmărit etc.

1.

Modul de lucru interactiv prin comenzi (imediat, conversaŃional sau direct);

2.

Modul de lucru asistat (interactiv pe bază de meniuri şi butoane).

3.

Modul de lucru programat.

După intrarea în mediul Visual FoxPro, este selectat implicit primul mod de lucru, fapt semnalat prin prezenŃa cursorului în fereastra de comandă, ceea ce înseamnă că utilizatorul poate introduce comanda dorită.

Trecerea la modul de lucru asistat se face fie printr-un click cu mouse-ul pe una dintre opŃiunile meniului principal, fie cu tastatura, prin acŃionarea tastei F10 sau ALT prin care se selectează prima opŃiune din meniul sistem (File). Revenirea în fereastra de comandă se face prin acŃionarea tastelor F10, ALT sau ESC, având ca efect deselectarea opŃiunii active din meniul sistem şi apariŃia

INFORMATICĂ MANAGERIALĂ

cursorului în fereastra de comandă. Dacă se utilizează mouse-ul, se poziŃionează cursorul acestuia în fereastra de comandă şi se execută un click.

2.4.3.3. Meniul sistem şi submeniuri

Meniul sistem sau bara meniului principal se afişează în fereastra principală a

mediului Visual FoxPro, sub bara de titlu şi se compune din următoarele

elemente:

1. bara de meniuri (menu bar);

2. opŃiuni din bară (menu pads);

3. meniuri derulante (submeniuri verticale - menu popups);

4. opŃiuni din meniu (menu options).

2.4.3.3.1. Rolul opŃiunilor din meniul principal

Principalele meniuri şi submeniurile lor sunt:

1. Meniul FILE - Acest meniu conŃine comenzi pentru operaŃii cu fişiere, cum ar fi: creare, deschidere, salvare, tipărire etc., cât şi

comanda de ieşire (părăsire) din sistemul Visual FoxPro. Cele mai multe din aceste opŃiuni se regă