Documente Academic
Documente Profesional
Documente Cultură
Lucrarea practică 10
Indicaţii generale:
Bazele de date (BD) reprezintă colecţii organizate de informaţii despre diverse
subiecte. Ele sunt organizate în anumite structuri şi pot fi consultate şi modificate. Pentru a
construi o astfel de bază de date sunt necesare: a) un suport fizic pe care informaţiile să fie
stocate (unităţile de disc ale calculatorului), şi b) un soft de prelucrare a acestor date,
ansamblu numit generic SGBD = Sistem de Gestiune a Bazelor de Date.
Operaţiile ce se pot efectua asupra unei baze de date sunt:
– introducerea de elemente noi în BD (exemple: introducerea unui nou abonat în
agenda de telefoane; crearea unei fişe pentru un pacient nou);
– modificarea sau ştergerea datelor existente în baza de date (modificarea
numărului de telefon al unui abonat; completarea fişei pacientului în urma consultaţiei);
– reorganizarea BD după anumite criterii (aranjarea alfabetică a abonaţilor din
agenda telefonică; aranjarea alfabetică a fişelor pacienţilor);
– consultarea informaţiilor din baza de date (aflarea unui număr de telefon; citirea
datelor din fişa pacientului).
Utilizarea unei baze de date este mult mai comodă (în special atunci când volumul
de date este foarte mare) în situaţia în care informaţiile depuse în ea sunt ordonate după
diverse criterii. De exemplu, găsirea numărului de apel al unui abonat telefonic, într-o bază
de date, este foarte dificilă dacă aceasta nu e ordonată având drept criteriu ordinea
alfabetică a numelor. Se spune că un tabel de date ESTE ORDONAT dacă o înregistrare
arbitrară a acestuia se află într-o anumită legătură, dată de criteriul de ordonare (cheia de
ordonare), cu înregistrările anterioară, respectiv posterioară.
Teme
40: crearea tabelelor de date FoxPro
41: transferul de date între Excel şi FoxPro
42: ordonarea înregistrărilor unui tabel
142
UMF “Carol Davila” – Informatică Medicală şi Biostatistică MG - Lucrarea practică 10 2015/2016
ului . Faceţi cu mausul dublu clic pe aceasta. O altă cale pentru lansarea aplicaţiei
este apăsarea butonului Start, apoi Programs, apoi Microsoft Visual FoxPro.
Selectaţi Table în butonul radio File type şi apoi apăsaţi butonul New file. În caseta
de dialog Create salvaţi (Save in) tabelul de date în dosarul Anul2. Daţi numele
nume_INTERNATI tabelului de date în zona Enter table, asiguraţi-vă că tipul fişierului
este „Table/DBF” şi apoi apăsaţi butonul Save.
Puteţi crea un tabel de date tastând în fereastra de comenzi comanda:
CREATE nume_INTERNATI
dar în acest caz trebuie să controlaţi dosarul în care va fi salvat tabelul de date cu ajutorul
unei comenzi de tipul
CURDIR="C:\Anul2"
dată în prealabil în fereastra de comenzi (pentru că altfel aplicaţia FoxPro va depune fişierul
în directorul curent implicit). Evident, se poate comanda direct:
CREATE C:\Anul2\nume_INTERNATI
În continuare pe ecran apare o casetă de dialog Table Designer, în care se va preciza
structura tabelului de date, adică:
1) numele pentru fiecare câmp (Name);
2) tipul de date stocate în câmpul respectiv (Type),
3) lăţimea sau numărul maxim de caractere rezervat pentru fiecare câmp (Width),
eventual şi
4) numărul de zecimale (Dec) – zonă care este activată numai pentru tipurile
Numeric şi Float.
Ca exemplu vom crea un tabel de date ce conţine unele informaţii despre pacienţii
internaţi într-un spital şi anume: numele, data internării, sexul şi vârsta. Ulterior veţi
completa acest tabel cu alte câmpuri.
Mai întâi, în coloana Name tastaţi Numepren după care apăsaţi [Tab].
143
MG - Lucrarea practică 10 2015/2016 UMF “Carol Davila” – Informatică Medicală şi Biostatistică
Este activată imediat o listă derulantă în poziţia Type, iar tipul se poate selecta fie
folosind tasta [Space] şi săgeţile, fie folosind mausul. Pentru câmpul Numepren lăsaţi
Character ca tip al valorilor, iar în coloana Width tastaţi 17.
Aţi creat astfel un câmp numit Numepren în care veţi putea stoca şiruri de (cel mult)
17 caractere. Lăţimea maximă pentru câmpurile de tip Character este 254.
144
UMF “Carol Davila” – Informatică Medicală şi Biostatistică MG - Lucrarea practică 10 2015/2016
sau tastele săgeţi. După tastarea ultimei valori a înregistrării se permite introducerea datelor
pentru a doua înregistrare.
Introduceţi date pentru alţi zece (!) pacienţi.
La înregistrarea cu numărul cinci, în câmpul Numepren încercaţi să introduceţi, de
exemplu, Constantinescu Alexandru. Observaţi că se reţin doar primele 17 caractere ale
numelui şi prenumelui. (De ce?)
(Dacă fereastra nu are aspectul din figura de mai sus, comandaţi ViewEdit.)
În zonele rezervate introduceţi valorile câmpurilor pentru prima înregistrare
(primul pacient): Numepren = Popescu Ion, Data_inter = 01/06/2001 (formatul datei
calendaristice este lună/zi/an), Sex_masc = T, Varsta = 48. De la un câmp la altul se trece
tastând [Enter] sau tastele săgeţi. După tastarea ultimei valori a înregistrării se permite
introducerea datelor pentru a doua înregistrare.
Introduceţi date pentru alţi zece (!) pacienţi.
La înregistrarea cu numărul cinci, în câmpul Numepren încercaţi să introduceţi, de
exemplu, Constantinescu Alexandru. Observaţi că se reţin doar primele 17 caractere ale
numelui şi prenumelui. (De ce?)
145
MG - Lucrarea practică 10 2015/2016 UMF “Carol Davila” – Informatică Medicală şi Biostatistică
Conţinutul tabelului de date creat poate fi oricând consultat folosind fie comanda
BROWSE în fereastra de comenzi, fie opţiunea Browse din meniul View. (Câmpul Diagext a
fost micşorat intenţionat pentru a putea fi vizualizat întregul tabel.)
Creaţi un nou tabel care să aibă o structură similară, dar mai simplă; de exemplu să
nu conţină câmpurile Varsta şi Sex_masc, locul lor fiind ocupat de câmpul Cnp (de tip
Character, cu lăţimea 13) iar numele să fie nume_SIMILAR. Introduceţi date pentru alţi
câţiva (cel puţin zece) pacienţi în noul tabel de date.
Închideţi toate tabelele de date cu care aţi lucrat până acum, folosind în acest scop
fereastra de comenzi şi dând comanda:
CLOSE ALL
Pentru a folosi un tabel de date creat anterior, acesta trebuie deschis într-o zonă de
lucru. Pentru aceasta folosiţi comanda:
USE nume_SIMILAR
sau puteţi folosi bara de meniuri alegeţi opţiunea Open din meniul File.
Putem prelua datele corespunzătoare a două câmpuri din tabelul de date
nume_INTERNATI în tabelul de date curent, folosind comanda:
APPEND FROM nume_INTERNATI FIELDS Numepren,Diagext
Folosind comanda BROWSE în fereastra de comenzi puteţi observa că
nume_SIMILAR conţine acum mai multe înregistrări.
Părăsiţi aplicaţia FoxPro cu comanda QUIT dată în fereastra de comenzi sau cu
opţiunea Exit din meniul File.
146
UMF “Carol Davila” – Informatică Medicală şi Biostatistică MG - Lucrarea practică 10 2015/2016
147
MG - Lucrarea practică 10 2015/2016 UMF “Carol Davila” – Informatică Medicală şi Biostatistică
Se pot specifica mai multe câmpuri cheie, numele lor fiind separate prin virgulă.
Fiecare câmp cheie poate fi urmat de opţiunile dintre paranteze.
Comanda sortează înregistrările tabelului de date activ (deschis anterior) într-un nou
tabel de date numit nume_tabel_sortat. Ordonarea se va face:
a) în ordinea crescătoare dacă se foloseşte opţiunea /A (de la ASCENDING);
b) în ordinea descrescătoare dacă folosim opţiunea /D (de la DESCENDING)
a valorilor stocate în câmpurile specificate de nume_de_câmpuri_cheie. Opţiunea /C se
foloseşte pentru câmpurile de tip Character (secvenţă de caractere) pentru a indica să nu se
ţină seama, în cursul operaţiei de ordonare, de deosebirea majusculă/minusculă în cazul
literelor. Pentru specificarea a două opţiuni după un câmp se folosesc combinaţiile /AC şi
/DC.
De exemplu, avem activ un tabel de date ce conţine câmpul Valoare de tip Numeric
şi câmpul Produs de tip Character. Pentru a obţine un tabel de date cu înregistrările ordonate
(denumit ORD_VAL) în ordinea descrescătoare a valorilor din câmpul Valoare drept câmp
cheie, folosim comanda:
SORT ON Valoare /D TO ORD_VAL
Prin comanda
SORT ON Produs /AC TO ORD_PROD
vom obţine tabelul ORD_PROD cu înregistrările ordonate în ordinea alfabetică a
datelor stocate în câmpul Produs, indiferent de tipul de literă (case) folosit.
Creaţi un tabel de date cu numele nume_MEDICAMENT pentru evidenţa
produselor dintr-un depozit de medicamente.
Este recomandabil să creaţi în prealabil un dosar special şi să vă asiguraţi, înainte de
a începe lucrul cu FoxPro, că acesta este dosarul curent. Tabelul de date trebuie să conţină
cel puţin 15 înregistrări, cu valori în câmpurile Produs (de tip Character lăţime 30), Valoare
(de tip Numeric, lăţime 10 cifre), Data_expir (de tip Date).
Sortaţi tabelul în ordinea alfabetică a valorilor câmpului Produs, indiferent de tipul
literelor, urmând a crea tabelul de date nume_PRODUS, apoi în ordinea crescătoare a
valorilor câmpului Valoare, urmând a crea tabelul de date nume_VALOARE, iar apoi în
ordinea descrescătoare a datelor calendaristice din câmpul Data_Expir, urmând a crea
tabelul de date nume_EXPIR.
Toate aceste fişiere vor apărea cu extensia dbf. Verificaţi conţinutul fiecăruia, apoi
închideţi toate fişierele.
Există două tipuri de fişiere-index ce pot fi asociate unui tabel de date:
a) Fişiere-index simple (cu extensia IDX) care conţin o singură cheie de ordonare.
Crearea acestora se face cu comanda:
INDEX ON expresie TO nume_fisier.IDX
b) Fişiere-index compuse (cu extensia CDX) în care se memorează mai multe chei
de ordonare numite etichete. Dar, dintre toate aceste etichete, la fiecare moment dat doar una
este activă.
Fişierele-index compuse, la rândul lor, pot fi de două tipuri:
b1) structurale – adică asociate „imediat” tabelului de date, deschise automat odată
cu deschiderea tabelului de date. Au acelaşi nume ca şi fişierul-tabel căruia îi sunt ataşate,
extensia CDX şi sunt create cu comanda:
INDEX ON expresie TAG nume_etichetă
b2) nestructurale. Acestea au numele diferit de cel al tabelului de date şi nu sunt
deschise automat la deschiderea tabelului. Pot fi create cu comanda:
148
UMF “Carol Davila” – Informatică Medicală şi Biostatistică MG - Lucrarea practică 10 2015/2016
schimbă ordinea în cea definită de eticheta numepren, dacă această etichetă a fost definită
în prealabil!
Instrucţiunea
SET INDEX TO nume_IND.IDX
schimbă ordinea în cea definită de fişierul-index nume_IND.IDX.
Atunci când un tabel de date este deschis (fără fişierul-index ataşat), iar valorile din
câmpul cheie sunt modificate, vom putea obţine reordonarea înregistrărilor cu comanda:
REINDEX
Efectuaţi câteva modificări, apoi re-indexaţi, pentru a observa efectul acestei
comenzi.
150