Documente Academic
Documente Profesional
Documente Cultură
Visual FoxPro utilizează bazele de date pentru a organiza şi lega între ele tabele şi vederi.
Pe lângă faptul că furnizează o arhitectură pentru memorarea datelor, bazele de date
oferă avantaje suplimentare, precum:
- posibilitatea creării de extensii la nivel de tabel ca: reguli de validare, valori implicite
pentru câmpuri şi declanşatoare;
- se pot crea proceduri specifice şi legături durabile între tabele
- se poate realiza conexiunea la o sursă de date la distanţă;
- se pot crea vederi folosind atât tabele locale cât şi tabele la distanţă.
Observaţie: In Visual FoxPro termenii "bază de date" şi "tabel" nu sunt sinonimi. Baza de
date (fişier .dbc) se referă la o bază de date relaţională care este un container de informaţii
despre una sau mai multe tabele (fişiere .dbf) sau vederi.
Pentru proiectarea bazei de date este necesară înţelegerea exactă a informaţiilor ce se
doresc memorate şi a modului în care un sistem de gestiune a bazelor de date relaţional memorează
datele.
Pentru a furniza eficient informaţii Visual FoxPro necesită organizarea în tabele
separate a evenimentelor legate de diferite subiecte.
Organizarea corespunzătoare a datelor permite flexibilitate în baza de date şi capacităţi
suplimentare de a combina date despre evenimentele respective în diferite moduri.
Când se proiectează o bază de date se descompune informaţia care trebuie păstrată în
subiecte separate (independente) şi se indică legăturile dintre aceste subiecte astfel încât Visual
FoxPro să poată recompune informaţiile după cum este nevoie.
Menţinerea informaţiei în tabele separate uşurează menţinerea şi întreţinerea datelor
precum şi realizarea de aplicaţii cu performanţe sporite.
Procesul de realizare a unei baze de date parcurge următoarele faze:
- analiza sistemului pentru care se construieşte baza de date;
- proiectarea structurii bazei;
- încărcarea datelor în bază;
- exploatarea şi întreţinerea bazei de date;
Faza proiectării structurii bazei de date cuprinde următorii paşi:
- se determină scopul bazei de date;
- se determină ce tabele sunt necesare;
- se determină , pentru fiecare tabel , ce câmpuri sunt necesare;
- se stabilesc legăturile între tabele;
- se rafinează proiectul.
1
Un index care nu permite valori duplicat @n c`mpurile specificate. Sunt de regul[ utilizate @n tabelele
primare sau referite pentru a stabili integritatea referen\ial[ @ntr-o leg[tur[ permanent[. Pentru un tabel se poate crea
numai un singur index primar.
2
Un index care poate deveni cheie primar[ deoarece nu con\ine valori .NULL. sau duplicate.
3
Un index care nu este unic, primar sau candidat. Se utilizeaz[ pentru a ordona sau a c[uta @nregistr[ri, dar
nu pentru a for\a unicitatea datelor @n @nregistr[ri.
Cheia primară a tabelului de joncţiune constă în două câmpuri- chei străine din
tabelele legate. Aceste câmpuri sunt de fapt cheile primare din cele două tabele. Se foloseşte o
cheie compusă deoarece numai combinaţia celor două câmpuri identifică unic o înregistrare.
Tabela de joncţiune nu solicită propria sa cheie primară.
Reprezintă o legătură între tabele în care fiecare înregistrare dintr-un tabel poate fi
asociată numai cu o înregistrare din tabelul legat şi invers.
Este un tip neobişnuit de legătură deoarece în majoritatea cazurilor informaţia din cele două
tabele poate fi combinată simplu într-unul singur.
Este utilizată în situaţia când anumite informaţii au caracter temporar sau când un număr
mare de înregistrări ar avea câmpurile referitoare la o anumită informaţie fără valori. In aceste
cazuri, din considerente legate de dimensiunea tabelelor şi de spaţiul de stocare ocupat, este
recomandabilă folosirea unui tabel separat.
Cănd se detectează necesitatea unei legături unu la unu în baza de date se verifică mai
întâi posibilitatea de a pune informaţia într-un singur tabel, prin adăugarea la structura acestuia a
câmpurilor corespunzătoare. Dacă acest lucru nu este indicat, se va defini o legătură între tabele
astfel:
- dacă cele două tabele se referă la acelaşi subiect se poate folosi un acelaşi câmp cheie
primară în ambele tabele.
- dacă cele două tabele au subiecte diferite cu chei primare diferite se alege unul din
tabele (oricare din ele) şi se adaugă cheia sa primară în celălalt tabel ca şi cheie străină.
Rafinarea proiectului
Odată stabilite tabelele, câmpurile şi relaţiile dintre acestea, este momentul să se revină
asupra proiectării pentru a se detecta şi remedia eventualele deficienţe. Cele mai întâlnite greşeli,
care fac datele greu de utilizat şi întreţinut sunt:
- existenţa unui tabel cu un număr mare de câmpuri care nu se referă la aceeaşi temă.
- existenţa unor câmpuri care sunt, intenţionat, lăsate goale în multe înregistrări,
deoarece atributele din câmpurile respective nu sunt aplicabile acestor înregistrări. Se impune ca să
se definească un nou tabel.
- existenţa unui număr foarte mare de tabele care conţin aceleaşi câmpuri. Se încearcă
consolidarea tuturor informaţiilor referitoare la un subiect într-un singur tabel. Eventual se include
în structură un câmp suplimentar care să diferenţieze datele care ar fi stocate în tabele diferite.
- lipsa din tabele a unor câmpuri ;
- alegerea greşită a cheii primare;
Exemplu:
Se presupune că activitatea de aprovizionare la o unitate de producţie a mobilei se poate
descompune în următoarele subactivităţi:
1. calculul necesarului de aprovizionat ( în funcţie de un plan de producţie, de stocurile
existente şi de consumurile unitare pe produs)
2. activitatea de contractare urmăreşte acoperirea necesarului de componente pentru
realizarea produselor, astfel încât să existe o ritmicitate în fabricaţie. Prin studii asupra furnizorilor
posibili, asupra condiţiilor sau restricţiilor de colaborare, se aleg furnizorii şi se perfectează un act
numit "contract" ( prin care furnizorii se obligă să trimită obiectele contractate în cantitatea cerută
şi la termenul hotărât, dar şi unitatea beneficiară se obligă să plătească aceste livrări).
3. gestiunea stocurilor prin înregistrarea intrărilor şi ieşirilor de materiale în/din depozite.
Prin această activitate se poate determina în orice moment ce materiale sunt, în ce depozite ,
gradul de perisabilitate, dacş s-a depăşit un volum maximalsau s-a ajuns (din diferite cauze) la
limita minim stabilită (stoc de siguranţă).
4. urmărirea realizării aprovizionării se face comparând ceea ce s-a contractat cu ceea ce
s-a livrat pentru a se vedea diferenţele, a soma furnizorii să trimită marfa restantă, a penaliza, etc.
Să se organizeze datele într-o bază de date ştiind că se doresc următoarele informaţii:
a) Care sunt contractele încheiate de furnizorul Y pentru materialul X?
b) Care este nivelul stocului total din materialul X în toate depozitele unităţii?
c) Ce furnizori are unitatea?
d) Care sunt materialele de aprovizionat pentru produsul Z?
e) Care este valoarea totală a contractelor cu furnizorul Y?
f) Câţi furnizori sunt din judeţul Neamţ?