Documente Academic
Documente Profesional
Documente Cultură
Baze de Date
Baze de Date
BAZE DE DATE
- Note de curs (format ID)
SIBIU - 2009
1
BAZE DE DATE
OBIECTIVE:
RECOMANDRI
PRIVIND
STUDIUL:
REZULTATE
ATEPTATE:
NOIUNI CHEIE
BAZE DE DATE
BAZE DE DATE
BAZE DE DATE
BAZE DE DATE
NOIUNI CHEIE
10
i reprezint o asociere ntre elementele fiecrui domeniu, sau mai exact, este
mulimea tuturor combinaiilor sau tuplelor de forma {d1, d2,.,dn}, unde di
Di.
Deci, relaia se definete astfel:
R D1 x D2 x x Dn
unde D1, D2,,Dn reprezint domeniile relaiei R comparabile ntre ele, iar "n"
reprezint rangul relaiei. Dup rang, relaia poate fi: primar, binar, ternar
sau, n general, n-ar.
Desigur c definiia anterioar dat relaiei nu este unica posibil. Astfel,
C.J.Date [Date2000] definete o relaie ca fiind compus din dou pri:
1. Antetul relaiei, ca fiind o mulime de atribute, definite pe cte un
domeniu (nu neaprat distinct), astfel:
{A1 : D1, A2 : D2,.An:Dm}
11
BAZE DE DATE
Antetul relaiei
Corpul relaiei
A1
A2
d11
d12
d22
d1n
d2n
dk1
.
.
dm1
dk2
dkn
t1 d21
t2 .
tk
..
An
dm2
dmn
tm
Deci, o relaie poate fi simbolizat prin mulimea atributelor sale astfel:
sau
(A :D ,A :D ,.,A :D )
R(A1,A2..,An)
2. ireductibilitate;
3. valorile atributului.
O entitate poate conine mai multe chei candidat, dar numai una dintre ele
se alege pentru a fi folosit la identificarea tuplelor. Aceast cheie se numete
cheie primar. O cheie candidat care nu este desemnat ca i cheie primar se
numete cheie alternativ.
Pe lng noiunile de cheie candidat i cheie primar, n cadrul modelului
relaional se mai folosete i noiunea de cheie strin. Ea se utilizeaz la
stabilirea legturilor dintre dou tabele, numite tabela principal sau printe i
tabela secundar sau copil. Prin definiie, valoarea cheii strine trebuie s se
regseasc n mulimea cheilor primare ale tabelei principale. Ea reprezint deci
o referin ctre un tuplu din tabela printe care are aceeai valoare a cheii
primare.
1.2.2.2. Tipuri de legturi ntre relaii
Una din componentele modelului relaional se refer la legturile dintre
relaii sau tabele. O legtur (relaie dinamic) se definete ca fiind o asociere
ntre mai multe tipuri sau clase de entiti. Cea mai frecvent legtur ntlnit
n practic este cea dintre dou tipuri de entiti, numit i legtur binar.
Legturile binare, aa cum s-a amintit, dup cardinalitatea lor (numrul
entitilor din fiecare clas de entiti care intr n cadrul legturii) se pot
clasifica astfel:
1. legturi de tip 1-1, prin care unei entiti din mulimea sau clasa M1 i
corespunde o singur entitate n mulimea sau clasa M2;
2. legturi de tip 1-n, prin care unei entiti din mulimea M1 sau din
tabelul M1 i corespund mai multe entiti n mulimea sau tabelul M2,
iar unei entiti din M2 i corespunde o singur entitate n M1;
3. legturi de tip m-n, prin care unei entiti din M1 i corespund mai
multe entiti n M2 i reciproc.
1.2.3. Definirea restriciilor pentru datele dintr-o baz de date
Pentru datele dintr-o baz de date pot fi definite mai multe tipuri de
restricii, cum ar fi: restricia de domeniu, de atomicitate, referenial i restricii
utilizator. Dintre acestea, ne vom referi n continuare la restricia referenial
sau integritatea referenial, pe care se bazeaz stabilirea legturilor dintre dou
tabele.
Integritatea referenial, denumit n unele sisteme (ca de exemplu n
SQL Server), integritate referenial static deoarece se pstreaz n dicionarul
de date, se definete ca fiind un ansamblu de reguli impuse tabelelor ntre care
s-au stabilit anumite legturi. Astfel, pentru a asigura integritatea referenial
13
BAZE DE DATE
trebuie ca atunci cnd se fac modificri ale valorii unui cmp de tip cheie
primar sau strin dintr-un tabel, s nu fie afectat relaia dintre cele dou
tabele, adic s se modifice automat valorile cheii n toate tuplele
corespunztoare.
Integritatea referenial cere ca valorile cheii strine s se regseasc
printre valorile cheii primare. Aceast condiie introduce n baza de date
constrngeri numite constrngeri refereniale.
Operaiile de adugare, modificare i tergere pot afecta integritatea
referenial astfel:
1) In tabela principal (tabela referit sau printe):
a. operaia de adugare se va face fr nici un fel de restricii din punct de
vedere al condiiilor de integritate referenial;
b. operaia de tergere - deoarece prin tergerea unui tuplu din relaia sau
tabela principal, n relaia secundar pot rmne tuple care fac referire
la tuplul ters, pentru a menine integritatea referenial se poate
introduce tergerea restricionat 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 rmn orfane, adic vor avea referine
nesatisfcute;
- n al doilea caz, tergerea unui tuplu din tabela principal va fi
urmat de tergerea tuturor tuplelor din relaia secundar care fac
referire la tuplul ters;
c. operaia de modificare poate fi privit ca i n cazul operaiei de
tergere, iar restriciile refereniale sunt cele folosite la operaia de
tergere;
2) In tabela secundar (de referin sau tabela copil):
a. operaia de adugare se poate face numai dac valorile cheii strine
pentru articolele adugate se regsesc printre valorile cheii primare din
tabela principal, altfel operaia de adugare este interzis;
b. operaia de tergere se poate realiza fr nici o restricie din punct de
vedere al condiiilor de integritate referenial;
c. operaia de modificare se poate realiza cu condiia s nu apar
nregistrri fr corespondent n tabela principal.
1.2.4. Schema i coninutul unei baze de date relaionale
Exist dou modaliti de abordare a bazelor de date relaionale i anume
[Fotache2001]:
- schema relaional (intensia sau structura bazei de date);
- coninutul unei relaii (extensia bazei de date).
14
BAZE DE DATE
4. fiierele din baza de date sunt interconectate ntre ele prin legturi de tip
1-1, 1-n sau m-n.
O baz de date relaional este definit ca fiind un
REZUMAT
ansamblu de tabele sau relaii ntre care exist anumite
legturi, fiecare tabel fiind alctuit din coloane,
denumite atribute i linii, denumite i tuple.
Din punct de vedere matematic, prin relaie se nelege o
submulime a produsului cartezian al domeniilor.
Dac ntr-o relaie exist mai multe atribute sau combinaii
de atribute care permit identificarea unic a tuplelor,
acestea sunt denumite chei candidat
TESTE DE
Recomandm parcurgerea testelor din ndrumarul de
AUTOEVALUARE laborator
BIBLIOGRAFIE
1. Avram-Nichi R., Ghioiu N., Goron S., Nichi St.,
Tomai N. Baze de date i programarea calculatoarelor
utiliznd limbajul Visual FoxPro, Ed. Risoprint, ClujNapoca, 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, Ctlin Strmbei, Liviu
Creu, Visual FoxPro; Ghidul dezvoltrii aplicaiilor
profesionale, Editura Polirom Iai, 2002.
5. Nicolae Ghioiu, Visual FoxPro; Exerciii i programe,
Editura Risoprint Cluj, 2003.
16
CONCEPTE
DE BAZA
1.
2.
3.
4.
1.
17
BAZE DE DATE
18
BAZE DE DATE
NOIUNI
CHEIE
BAZE DE DATE
NOIUNI
CHEIE
22
BAZE DE DATE
1. instruciuni;
2. funcii;
3. expresii.
Limbajul FoxPro pune la dispoziia utilizatorilor urmtoarele
obiecte de date: constante, variabile i matrice de
variabile. Variabilele la rndul lor sunt de dou tipuri i
anume: cmpuri din fiiere .DBF i variabile de memorie
(memory variables sau memvars).
i) tipul special.
Cele patru clauze-domeniu au urmtoarea semnificaie:
TEME DE
CONTROL
BIBLIOGRAFIE
24
25
BAZE DE DATE
NOIUNI CHEIE
BAZE DE DATE
4.
28
5.
Dup intrarea n mediul Visual FoxPro, este selectat implicit primul mod de
lucru, fapt semnalat prin prezena 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 opiunile meniului principal, fie cu tastatura, prin acionarea tastei F10
sau ALT prin care se selecteaz prima opiune din meniul sistem (File).
Revenirea n fereastra de comand se face prin acionarea tastelor F10, ALT sau
ESC, avnd ca efect deselectarea opiunii active din meniul sistem i apariia
29
BAZE DE DATE
30
BAZE DE DATE
TEME
CONTROL
BAZE DE DATE
34
35
BAZE DE DATE
CUVINTE
CHEIE
3.1.1.3. Crearea unui nou tabel prin utilizarea ferestrei Project Manager
Dup afiarea pe ecran a ferestrei Project Manager, se selecteaz pagina Data i
se execut un clic pe simbolul + de la seciunea Databases, avnd ca efect
afiarea, n cadrul seciunii respective, a bazelor de date coninute n proiect. In
continuare, se va executa clic pe semnul din faa bazei de date n care dorim s
includem noul tabel. Ca urmare, se vor afia elementele incluse n baza de date,
dintre care se va selecta elementul Tables.
Dup selectarea uneia dintre cele dou elemente: Tables sau Free Tables, se
acioneaz butonul New, prin care se afieaz, pe ecran, fereastra de dialog New
Table.
Din cadrul casetei New Table se va selecta butonul New Table dac dorim s
creem singuri structura noului tabel sau butonul Table Wizard dac dorim s
creem structura noului tabel cu ajutorul unui asistent Wizard.
In fereastra Create se precizeaz directorul n care se va salva noua tabel i se
introduce numele tabelei. In final, se execut clic pe butonul Save avnd ca
efect deschiderea ferestrei aferente constructorului de tabele (table Designer).
Aceast fereastr conine un obiect de tip cadru de pagin cu trei pagini avnd
etichetele: Fields, Indexes i Table, fiind activat implicit prima pagin, unde
se va introduce structura noului tabel.
Cea mai mare parte a ferestrei aferente paginii Fields este ocupat de un
dreptunghi plasat n stnga ferestrei n care se introduce structura noului fiier.
Acest dreptunghi conine apte coloane dintre care prima nu are nume, fiind
utilizat pentru tergerea sau inserarea unei noi linii sau schimbarea ordinii
cmpurilor n cadrul structurii. Celelalte coloane au urmtoarele denumiri:
Name, Type, Width, Decimal, Index, NULL i permit specificarea
caracteristicilor unui cmp din structura noului fiier.
Dup introducerea cmpurilor aferente noii structuri, crearea unor indeci i
eventual introducerea n partea de jos a ferestrei Table Designer se selecteaz
butonul OK, prin care se salveaz noua structur i se prsete fereastra Table
Designer, iar pe ecran apare o caset de dialog, prin care se ntreab dac se
introduc sau nu date n noul fiier.
Dup introducerea datelor aferente unei nregistrri se afieaz macheta pentru
urmtoarea nregistrare. Salvarea datelor se realizeaz prin acionarea tastelor
CTRL+W sau CTRL+END pe primul cmp al unui articol vid. Tabelul astfel
obinut rmne activ n zona curent.
3.1.1.4. Crearea unui nou tabel prin selectarea opiunii New din meniul File
37
BAZE DE DATE
Execuia acestei comenzi permite copierea parial sau total a structurii unui
tabel de date activ ntr-un nou tabel. Sintaxa comenzii este urmtoarea:
COPY STRUCTURE TO <nume-fiier> [FIELDS<list-de-cmpuri>|
FIELDS LIKEMablon1>| FIELDS EXCEPT<ablon2>|
[[WITH] CDX | [WITH] PRODUCTION]
Execuia acestei comenzi permite crearea unui nou fiier, prin copierea structurii
sale dintr-un fiier intermediar n care se ncarc structura de copiat. Comanda
permite n acelai timp i editarea structurii existente nainte de obinerea noii
structuri.
Formatul general al comenzii este urmtorul:
CREATE[<fiier 1>] FROM [<fiier 2>]
unde:
<fiier 1>
<fiier 2>
39
BAZE DE DATE
40
BAZE DE DATE
Cele dou comenzi afieaz structura tabelului deschis n zona de lucru curent
numele tabelului, numrul de nregistrri din tabel i data ultimei actualizri.
Structura include numele fiecrui cmp, tipul i lungimea acestora i numrul de
zecimale pentru cmpurile numerice.
Comanda DISPLAY este similar cu LIST cu deosebirea c aceasta
afieaz doar informaiile care ncap pe un ecran sau ntr-o fereastr, dup care
se ntrerupe afiarea iar ntr-o caset apare mesajul "Press any key to
continue". In cazul comenzii LIST, informaiile privind structura tabelului
specificat sunt afiate fr nici o pauz.
3.1.6.1. Meninerea integritii datelor prin reguli de validare
Integritatea datelor dintr-o baz de date se poate realiza prin intermediul de
validare a datelor pe de-o parte i prin integritatea referenial pe de alt parte.
Regulile de validare permit verificarea prelurii datelor de intrare. Cu ajutorul
lor se compar dac valorile introduse n cmpurile unei nregistrri corespund
cerinelor din cadrul expresiei de validare. Conceptul de integritate a datelor
depete sfera integritii la nivel de cmp i nregistrare i se extinde la nivelul
relaiilor dintre tabele prin intermediul integritii refereniale.
42
BAZE DE DATE
44
d. Comanda USE
Comanda USE permite deschiderea sau activarea unui fiier DBF n zona de
lucru curent sau specificat n clauza IN. De asemenea, comanda poate
ndeplini n acelai timp i alte funcii cum ar fi: deschiderea fiierelor index i
stabilirea fiierului index principal sau atribuirea unui alias fiierului deschis
etc.
USE{{<nume-baz-date>.]<nume-tabel>
|SQL<nume-view>|?]
[IN <zon-lucru>|0]
[ONLINE][ADMIN]{AGAIN]
[NOREQUERY[<nr.sesiune-deschis>]]
[NODATA][ALIAS<nume-alias>]
[INDEX<list-fis.-index>|?
ORDER<expN>|<fis.IDX>|
TAG<etichet>[OF<fis.CDX>]
[ASCENDING|DESCENDING}}}
[EXCLUSIVE][SHARED][NOUPDATE]
e. nchiderea tabelelor
Pentru nchiderea fiierelor asociate unei baze de date n fereastra Proiect
Manager se selecteaz baza de date aferent i se acioneaz butonul Cose . Prin
nchiderea bazei de date se nchid automat i fiierele asociate. Dac dorim s
nchidem numai o parte din fiierele deschise asociate unei baze de date sau
libere, se va folosi i fereastra Data Session. Din aceast fereastr se selecteaz
fiierul ce urmeaz a fi nchis i se acioneaz butonul Close. Operaia se repet
pentru fiecare fiier ce urmeaz a fi nchis.
Inchiderea unui tabel se poate face i prin folosirea comenzii USE f nici un
parametru, pentru a nchide fiierul din zona curent, sau cu parametrul IN
<zona-lucru>, pentru a nchide fiierul deschis n zona de lucru precizat n
clauza IN.
3.1.6.3. Funcii privind zonele de lucru, tabelele deschise i cmpurile
aferente
Pentru a obine informaii despre zonele de lucru i tabelele deschise n zonele
respective refolosesc funciile USED() i DBF().
1. Funcia USED(); furnizeaz informaii referitoare la zona de lucru
specificat, n sensul dac este liber sau ocupat cu un tabel deschis n zona
respectiv. Funcia returneaz valoarea .T. (adevrat) dac n zona de lucru
specificat n cadrul funciei exist un tabel deschis i .F. n caz contrar.
45
BAZE DE DATE
2. Funcia DBF(); specific care anume tabel este deschis n zona de lucru
curent sau specificat. Sintaxa funciei este la fel cu cea a funciei USED(),
iar cei doi parametrii au aceeai semnificaie ca i n cazul funciei USED().
Funcia returneaz numele tabelului deschis n zona curent sau specificat,
inclusiv calea de acces. Dac n zona specificat nu este deschis nici un tabel
funcia returneaz irul vid.
3.1.6.4. ncrcarea tabelelor cu date i listarea coninutului acestora
ncrcarea unui tabel cu date const n adugarea n cadrul fiierului aferent de
nregistrri coninnd datele necesare unei aplicaii. Aceast operaie se poate
realiza imediat dup crearea structurii unui tabel, n mod interactiv, prin
preluarea datelor de la tastatur sau ulterior n funcie de necesiti. In general se
prefer a doua variant de ncrcare a tabelelor din baza de date, deoarece n
acest caz, datele se pot ncrca fie prin preluare dintr-un alt tabel fie prin
folosirea unui formular. De asemenea n funcie de poziia pe care o nregistrare
o va ocupa n fiier, adugarea se poate face la sfritul fiierului sau n
interiorul acestuia, printre nregistrrile existente.
a. Adugarea de noi nregistrri la sfritul unui tabel prin meniul sistem
Principalul instrument folosit de Visual FoxPro pentru adugarea de noi
nregistrri n cadrul unui tabel, l reprezint fereastra Browse. Prin intermediul
acestei ferestre se pot de asemenea modifica sau marca/demararea pentru
tergere anumite nregistrri sau se pot vizualiza nregistrrile unui tabel.
Pentru deschiderea ferestrei Browse i adugarea de noi nregistrri se pot folosi
urmtoarele variante: Din fereastra Project Manager se selecteaz baza de date
care conine tabelul sau tabelele ce urmeaz a fi ncrcate. Se selecteaz apoi
din seciunea Tables, tabelul n care se fac adugrile i se acioneaz butonul
Browse. Ca efect pe ecran apare fereastra Browse cu coninutul fiierului Pentru
a aduga o singur nregistrare vid la sfritul ferestrei se selecteaz din meniul
Table opiunea Append New Record sau se acioneaz tastele CTRL+Y. Datele
aferente nregistrrii vide se introduc n fiecare cmp prin tastare, trecerea la
cmpul urmtor realizndu-se cu ENTER.
Pentru a aduga un numr mare de nregistrri se va selecta opiunea Append
Mode din meniul View, prin care se adaug cte o nregistrare vid dup ultima
nregistrare din fereastr. Dup introducerea unei nregistrri se poate aciona
tasta cu sgeata n jos (n modul Browse) sau Enter (n modul Edit) pentru a
aduga o nou nregistrare.
46
BAZE DE DATE
Modificarea valorii unor cmpuri din cadrul nregistrrilor unui fiier al bazei de
date se poate realiza prin meniul sistem sau cu ajutorul comenzilor EDIT,
CHANGE, BROWSE, REPLACE, BLANCK, UPDATE. Operaia de
modificare se poate desfura n unul din urmtoarele moduri:
1. In mod interactiv, prin afiarea pe ecran a unei ferestre de editare n care
apar valorile pentru cmpurile de editare pentru o nregistrare sau un grup de
nregistrri. Valorile de modificat se preiau n cmpurile specificate prin
tastare. Acest mod de lucru apare la folosirea uneia din comenzile: EDIT,
CHANGE sau BROWSE sau la modificarea prin meniul sistem.
2. In mod direct, prin preluarea datelor necesare operaiei de modificare dintrun fiier (comanda UPDATE) sau prin precizarea lor n comanda de
modificare (comanda REPLACE). Cmpurile de modificat sau de asemenea
cuprinse n comand.
La actualizarea n mod interactiv se pot folosi dou moduri de lucru:
a. Modul EDIT, prin care, n fereastra de editare, cmpurile aferente unei
nregistrri sunt ordonate pe vertical, ca i la execuia comenzii APPEND.
b. Modul BROWSE, prin care n fereastra de editare se afieaz un grup de
nregistrri aranjate ntr-un tabel, cmpurile fiind ordonate pe orizontal.
a. Modificarea coninutului unui tabel prin meniul sistem
In majoritatea cazurilor se prefer modul de lucru Browse, prin intermediul
ferestrei Browse, dat fiind multitudinea de faciliti oferite de acest instrument
al mediului Visual FoxPro. Interfaa prietenoas a ferestrei de calcul tabelar,
permite navigarea rapid prin tabel n timp ce sistemul Visual FoxPro asigur o
vitez superioar i caracteristici performante de cutare. de aceea, ea reprezint
modul ideal pentru afiarea i modificarea nregistrrilor unui tabel. Dup
deschiderea unei ferestre Browse n vederea modificrii unuia sau mai multor
cmpuri dintr-o nregistrare, trebuie realizat poziionarea pe nregistrarea
respectiv. In cazul care n fereastra Browse sunt afiate mai puine nregistrri,
deplasarea la o anumit nregistrare se poate realiza cu ajutorul tastelor cu sgei
sau mouse-ului.
b. Modificarea coninutului unui tabel prin comenzi ale limbajului
Visual FoxPro
1. Comanda BROWSE
Execuia acestei comenzi permite afiarea nregistrrilor din fiierul curent, sub
form de tabel ntr-o fereastr de editare. Inregistrrile astfel afiate pot fi
editate (modificate) sau pot fi marcate sau demarcate pentru tergere. De
asemenea, dup afiarea nregistrrilor n fereastra de editare se pot aduga
48
nregistrri vide ale cror cmpuri se vor edita imediat sau ulterior. Inregistrrile
sunt afiate pe ecran n ordinea lor natural sau ntr-o ordine alfabetic definit
de fiierul index activ asociat fiierului de date.
In cadrul tabelei afiate n
fereastra BROWSE, fiecare rnd reprezint o nregistrare, cmpurile fiind
aezate deci pe orizontal, unul dup altul n ordinea definit n structura
fiierului sau specificat n comand.
Tabelul afiat are un antet care include numele fiecrui cmp aa cum apare n
nregistrarea de structur sau cum este definit de utilizator n comand. De
asemenea, n tabel se pot afia toate cmpurile din structura fiierului activ sau
numai cele specificate cu comanda BROWSE sau ntr-o comand SET FIELDS.
2. Comanda REPLACE
Execuia acestei comenzi permite nlocuirea coninutului unuia sau mai multor
cmpuri din cadrul nregistrrilor fiierului activ, cu anumite valori. Execuia
acestei comenzi permite nlocuirea coninutului unuia sau mai multor cmpuri
din cadrul nregistrrilor fiierului activ, cu anumite valori. Spre deosebire de
comenzile precedente, execuia acestei comenzi nu determin deschiderea pe
ecran a unei ferestre de editare n care utilizatorul introduce noile valori ale
cmpurilor, ci realizeaz actualizarea pe baza datelor incluse n comand.
3.1.8. tergerea nregistrrilor din cadrul unui table
3.1.8.1. tergerea nregistrrilor din cadrul unui tabel prin meniul
sistem
tergerea unor nregistrri dintr-un tabel al bazei de date se realizeaz n dou
etape i anume:
1) tergerea logic;
2) tergerea fizic.
3.1.8.2. tergerea nregistrrilor din cadrul unui tabel prin comenzi
ale limbajului Visual FoxPro
1. tergerea logic
Inregistrrile din cadrul unui tabel pot fi marcate pentru tergere folosind
comanda DELETE.
DELETE[<domeniu>][FOR<expL>]
[WHILE<expI> [NOOPTIMIZE]
BAZE DE DATE
Dac nu se folosete nici una din clauze, comanda PACK se refer att la
fiierul .DBF ct i la fiierul memo asociat.
3.1.9. Accesul la nregistrrile unui fiier
3.1.9.1. Accesul la o singur nregistrare ; Indicatorul de nregistrri
Din punct de vedere fizic, fiierele din baza de date sunt de tip secvenial,
nregistrrile acestora fiind identificate printr-un numr de secven. Acest
numr se atribuie nregistrrilor din cadrul unui fiier n ordine cresctoare
ncepnd cu 1. Prin operaiile efectuate asupra unor nregistrri, acest numr nu
se modific (valoarea maxim). n schimb acesta se poate modifica prin
inserarea de noi nregistrri sau tergerea unor nregistrri din baza de date.
Pentru a permite accesul la o anumit nregistrare, dintr-un fiier al bazei de
date, FoxPro folosete o locaie de memorie din zona de lucru n care
memoreaz numrul de secven al nregistrrii curente. Aceast locaie poart
denumirea de indicator de nregistrri. El poate fi considerat ca o variabil de
memorie care exist ct timp fiierul este deschis.
Modificarea indicatorului de nregistrri n vederea precizrii nregistrrii
curente se realizeaz prin meniul sistem sau prin comenzi ale limbajului Visual
FoxPro, folosind doua metode:
1. selectarea poziiei unei nregistrri n fiier, metod prin care numrul
nregistrrii curente se stabilete direct prin evaluarea unor expresii;
2. specificarea unor condiii logice, metod prin care numrul
nregistrrii curente se stabilete ca urmare a unui proces de cutare.
50
unde cei doi parametrii specifica zona de lucru n care este deschis fiierul la
care se refer funcia, alta dect cea curent.
2. Funcia EOF(); determin dac indicatorul de nregistrri este poziionat la
sfritul fiierului. Astfel funcia returneaz valoarea logic .T. dac indicatorul
de nregistrri a trecut de ultima nregistrare, i .F. n caz contrar.
3. Funcia BOF(); verific dac indicatorul de nregistrri se afl la nceputul
fiierului, adic naintea primei nregistrri. n acest caz nu exist o nregistrare
de tip eticheta cu numrul 0 pentru a semnala trecerea n faa primei nregistrri,
de aceea la orice ncercare de trecere peste prima nregistrare indicatorul de
nregistrri rmne pe prima nregistrare, dar funcia BOF() va returna valoarea
.T. O a doua ncercare de trecere peste prima nregistrare va determina apariia
unui mesaj de eroare. Sintaxa general i semnificaia parametrilor din cadrul
funciei BOF() este aceiai ca i la funcia EOF().
3.1.9.3. Modificarea indicatorului de nregistrri prin meniul sistem
Pentru a avea acces la o anumit nregistrare din cadrul unui tabel, se va
selecta opiunea Go to Record din meniul Table. Ca efect pe ecran se va afia
un submeniu care conine urmtoarele opiuni: Top, Bottom, Next, Previous,
Record , Locate astfel:
3.1.9.4. Modificarea indicatorului de nregistrri prin comenzi ale limbajului
Visual FoxPro
Pentru modificarea indicatorului de nregistrri din cadrul limbajului
Visual FoxPro se folosesc cele dou metode, ca i n cazul meniului sistem i
anume:
1. Selectarea poziiei nregistrrii n fiier, folosind n acest scop
comenzile GO TO i SKIP;
2. Specificarea unor condiii logice la nivelul unor comenzi, metod prin
care indicatorul de nregistrri se modific ca urmare a unui proces de
cutare. n momentul n care se gsete prima nregistrare care
51
BAZE DE DATE
unde:
<expN1> indic numrul de nregistrri peste care se face saltul,
fa de nregistrarea curent. Rezultatul evalurii
;
expresiei trebuie s reprezinte un numr ntreg pozitiv
sau negativ.
specific zona de lucru n care este deschis fiierul la
clauza
care se refer comanda SKIP.
IN;
3.1.10. Cutarea nregistrrilor n tabelele bazei de date
52
FIND<ir-caractere>
53
BAZE DE DATE
2. Funcia SEEK(); caut ntr-un fiier indexat, prima nregistrare pentru care
valoarea cheii de indexare este egal cu valoarea expresiei din cadrul funciei.
Dac se gsete o nregistrare care satisface condiia de cutare, funcia
returneaz valoarea .T. iar indicatorul de nregistrri se poziioneaz pe
nregistrarea respectiv. n caz contrar, funcia returneaz valoarea .F. iar
indicatorul de nregistrri se poziioneaz dup ultima nregistrare. Sintaxa
general a funciei este:
SEEK (<exp> [, <expN> | <expC>])
54
SORT TO
Comanda, sorteaz articolele fiierului curent, crend un nou fiier, n care sunt
depuse nregistrrile selectate din fiierul curent, n ordinea specificat prin
comand.
3.1.13. Indexarea nregistrrilor din cadrul unui table; Logica
operaiei de indexare
Cea de a doua metod de ordonare a datelor unui fiier o reprezint indexarea
acestuia, metod prin care se creeaz un fiier index, asociat fiierului de date
activ, n care se memoreaz cheia de indexare i ordinea nregistrrilor din
fiierul activ. Ca urmare n fiierul index pentru fiecare nregistrare de date din
fiierul activ se memoreaz un index format din perechea de informaii: cheia de
indexare i numrul de secven a nregistrrii din fiierul de date. n acest fiier
valorile cheii de indexare apar n ordine cresctoare, iar fiierul de date activ nu
este modificat. n acest fel accesul la o anumit nregistrare se va face prin
intermediul fiierului index asociat, ordinea fizic a nregistrrilor din fiierul
activ nefiind modificat.
3.1.13.1. Tipuri de fiiere index
n Visual FoxPro pot fi create trei tipuri de fiiere index i anume:
fiiere index simple sau independente cu extensia .IDX;
fiiere index compuse structurale cu extensia .CDX;
fiiere index compuse nestructurale cu extensia .CDX.
1. Fiierele index simple sau independente conin cte o singur cheie de
indexare de tip Unique (cheie unic). Ele se numesc independente deoarece
numele lor nu are nici o legtur cu tabela la care sunt asociate. Aceste fiiere se
pot crea n Visual FoxPro numai cu comanda INDEX.
2. Fiiere index compuse structurale; conin mai multe chei de indexare,
fiecare cheie avnd asociat o etichet sau un tag. Pe baza indecilor definii n
fereastra Table Designer, Visual FoxPro creeaz ntotdeauna un fiier index
compus structural cu etichetele definite n caseta Table Designer.Dac dorim s
crem un fiier index simplu sau un fiier compus nestructural va trebui s
folosim comenzi ale limbajului Visual FoxPro (comanda INDEX).
55
BAZE DE DATE
56
BAZE DE DATE
59
BAZE DE DATE
60
CUVINTE
CHEIE
BAZE DE DATE
62
BAZE DE DATE
DataBase Designer, n care se pot introduce tabelele care vor compune noua
baz de date (imediat sau ulterior).
c) Crearea bazei de date prin comenzi
Pentru crearea bazei de date prin comenzi se folosete comanda CREATE
cu sintaxa:
CREATE DATABASE [ <nume-baza-dedate>|? ]
La execuia acestei comenzi are loc crearea unei baze de date i deschiderea
acesteia n zona curent.
4.1.3. Adugarea sau eliminarea unei baze de date la/din proiect
Prin crearea unei baze de date cu ajutorul comenzii CREATE DATABASE,
aceasta nu devine automat parte component a unui proiect, chiar dac pe ecran
este deschis fereastra Project Manager. Avnd n vedere facilitile oferite de
instrumentul Project Manager privind organizarea, vizualizarea i manipularea
obiectelor sale prin intermediul interfeei (fereastra Project Manager) se
recomand ca bazele de date create independent s fie adugate n cadrul unui
proiect existent sau nou creat. In acest scop, dup lansarea Gestionarului de
proiecte i afiarea pe ecran a ferestrei Project Manager se selecteaz seciunea
DataBase i apoi se execut un clic pe butonul Add. Ca urmare se va afia pe
ecran fereastra Open, din care se selecteaz baza de date ce urmeaz a fi inclus
n proiect.
4.1.4. Deschiderea i nchiderea bazelor de date
Bazele de date din cadrul unui proiect, pot fi deschise simultan pe ecran
folosind butonul Open sau prin referine la tabelul unei baze de date nchis,
prin folosirea comenzii USE cu simbolul "!". Prin deschiderea unei noi baze se
date, nu are loc nchiderea bazei de date anterior deschise. Acestea rmn n
continuare deschise, iar ultima baz de date deschis devine baza de date
curent, numele ei fiind afiat n caseta de pe bara de instrumente standard a
ferestrei Visual FoxPro.
Pentru deschiderea uneia sau mai multor baze de date, din fereastra Project
Manager se selecteaz baza de date ce urmeaz a fi deschis i se execut un
clic pe butonul Open sau Modify. Operaia se repet apoi pentru fiecare baz de
date ce urmeaz a fi deschis.
64
Dac baza de date nu este inclus n cadrul unui proiect pentru deschiderea
acesteia n mod interactiv se poate folosi fereastra Data Session afiat pe ecran
ca urmare a selectrii opiunii cu acelai nume din meniul Window. De
asemenea, pentru deschiderea unei baze de date din fereastra Project Manager,
sau care nu este inclus ntr-un proiect se poate folosi comanda OPEN n
formatul:
OPEN DATABASE [<nume-baza-date>|?] [EXCLUSIVE][SHARED]
[NOUPDATE] [VALIDATE]
65
BAZE DE DATE
BAZE DE DATE
69
BAZE DE DATE
REZUMAT
70
inclus n proiect.
O baz de date poate fi retras dintr-unproiect i inclus ntr-un
alt proiect sau tears fizic de pe disc, dac nu mai este necesar n
cadrul sistemului. Pentru a elimina o baz de date dintr-un proiect, din
fereastra Project Manager se activeaz butonul Remove iar din caseta
care se afieaz dup activarea acestui buton, se alege opiunea
Remove. Dac dorim ca baza de date respectiv s fie tears fizic de pe
hard-disc se va alege opiunea Delete.
Deschiderea bazelor de date
Pentru deschiderea uneia sau mai multor baze de date, din
fereastra Project Manager se selecteaz baza de date ce urmeaz a fi
deschis i se execut un clic pe butonul Open sau Modify. Operaia se
repet apoi pentru fiecare baz de date ce urmeaz a fi deschis.
De asemenea, pentru deschiderea unei baze de date din fereastra Project
Manager, sau care nu
este inclus ntr-un proiect se poate folosi
comanda OPEN
Inchiderea unei baze de date
Pentru nchiderea unei baze de date, avnd pe ecran afiat
fereastra Project Manager, se va selecta mai nti baza de date ce
urmeaz a fi nchis i apoi se activeaz butonul Close. Operaia se
repet pentru fiecare baz de date ce urmeaz a fi nchis. De asemenea
pentru nchiderea bazei de date curente i a tabelelor aferente se poate
folosi comanda CLOSE DATABASE.
Relaionarea tabelelor din baza de date
In Visual FoxPro relaiile pe care le crem ntre tabele cu ajutorul
Constructorului bazei de date (Database Designer) se numesc relaii
persistente. In afara acestora se pot defini i relaii temporare sau
dinamice prin comenzi introduse n programele de prelucrare. Ca
urmare relaiile temporare sunt disponibile numai n momentul rulrii
programului n care au fost definite dup care ele nu mai exist.
Tabelele ntre care se creeaz o relaie se numesc: tabel principal sau
printe i respectiv tabel secundar sau fiu.
Intre cele dou tabele se pot defini urmtoarele tipuri de relaii:
- relaie una-la-una; prin care unei nregistrri din tabela printe i
corespunde o singur nregistrare n tabela fiu (copil);
- relaii una-la-mai-multe; prin care unei nregistrri din tabela
printe i corespund mai multe nregistrri n tabela copil;
- relaie mai-multe la-una; prin care pentru o nregistrare n tabela
copil putem avea mai multe nregistrri n tabela printe;
- relaie mai-multe-la-mai-multe; prin care unei nregistrri din tabela
printe i pot corespunde mai multe nregistrri n tabela copil i
71
BAZE DE DATE
invers adic unei nregistrri din tabela copil i pot corespunde mai
multe nregistrri n tabela printe.
Asigurarea integritii datelor din tabelele legate ntre ele prin
relaii permanente
Printre mecanismele care asigur integritatea bazei de date se
numr i cele privind integritatea entitilor i integritatea referenial.
Integritatea entitilor este implementat prin specificarea n
cadrul unei tabele, a faptului c nu pot accepta valori nule cmpurile
care reprezint chei primare.
Integritatea referenial (referenial integrity-RI) definete un
ansamblu de reguli, care permit menionarea integritii datelor din
tabelele legate ntre ele, la operaiile de modificare, adugare i
tergerea datelor din tabelele respective, astfel nct s nu existe
nregistrri neparticipante la relaie. Implementarea acestor reguli ntre
tabele se realizeaz prin intermediul unor restricii numite restricii
pentru integritate referenial (RI constraints).
Specificarea restriciilor de integritate referenial i generarea
automat a procedurilor aferente se realizeaz prin intermediul
Generatorului de Integritate Referenial (Referential Integrity
Builder). Aceasta permite, de asemenea, precizarea tabelelor printe i
fiu din cadrul unei relaii i a evenimentelor din sistem care impun
mediului Visual FoxPro s verifice regulile definite.
TEME DE 8. Se vor efectua lucrri practice de creare a unei baze de date folosind
CONTROL
instrumentele de lucru prezentate anterior;
73
BAZE DE DATE
CONCEPTE
DE BAZA
74
NOIUNI
CHEIE
BAZE DE DATE
76
BAZE DE DATE
BAZE DE DATE
80
81
BAZE DE DATE
REZUMAT
82
83
BAZE DE DATE
CUVINTE
CHEIE
a. Comanda IF
Aceast comand permite execuia unei secvene de instruciuni pe baza
evalurii unei expresii logice. Fiind cea mai simpl structur de control, poate fi
considerat ca fiind printele familiei structurilor de programare. Sintaxa
general a comenzii este urmtoarea:
IF<expl>
<secv-comenzi1>
[ELSE
<secv-comenzi2>]
ENDIF
84
b. Comanda DO CASE
In scopul creterii flexibilitii programului, limbajul Visual FoxPro permite implementarea
structurilor de control generalizate sau multiple, fr folosirea de instruciuni IF incluse una
n alta, folosind comanda DO CASE. Ea reprezint extinderea natural a principiului
exclusivitii mutuale la dou sau mai multe situaii. Prin urmare, n loc s folosim expresii
logice reciproc exclusive, Visual FoxPro, permite s includem orice expresie logic dorim
pentru fiecare caz sau situaie n parte. Sintaxa general a comenzii este urmtoarea:
DO CASE
CASE <expL1>
<secv-com1>
CASE <expL2>
<secv-com2>
OTHER WISE
<secv-comn>
ENDCASE
BAZE DE DATE
a. Comanda DO WHILE
Dac structura DO CASE ENDCASE este o copie aproape fidel a structurii
IFENDIF, structura DO WHILEENDDO este asemntoare i ea cu
IFENDIF.
Astfel, dac comanda IF execut secvena de instruciuni
dac expresia logic este adevrat, comanda DO WHILE permite execuia
repetat a secvenei de instruciuni ct timp expresia logic din cadrul comenzii
este adevrat. Ea permite astfel implementarea structurilor de control repetitive
cu condiionare anterioar. Formatul general al comenzii este urmtorul:
DO WHILE <expL>
<secv-comenzi>
[LOOP]
[EXIT]
ENDDO
unde:
<var>;
secvena de
86
<exp2>
<exp1>;
<exp2>;
<exp3>;
control.
c. Comanda SCAN
Aceast comand reprezint o alt modalitate de ciclare specializat, fiind
proiectat pentru execuia de secvene de comenzi prin care se prelucreaz
nregistrrile unui tabel din baza de date. Execuia comenzii determin
parcurgerea tabelului curent i efectuarea pentru fiecare nregistrare selectat
din tabel a secvenei de comenzi specificate n comand.
Formatul general al comenzii este urmtorul:
SCAN [<domeniu>] [FOR<expL1>]
[WHILE
<expL2>]
[NOOPTIMIZE]
[LOOP] [EXIT]
<secvena-de-comenzi>
ENDSCAN
87
BAZE DE DATE
CUVINTE
CHEIE
Datele de intrare pentru comanda ACCEPT sunt considerate iruri de caractere, ca urmare
variabila sau elementul de masiv n care se preiau aceste date vor fi de tip ir de caractere. In
cazul comenzii INPUT, datele de intrare sunt interpretate ca o expresie care este evaluat,
rezultatul evalurii, fiind de tip caracter, dat calendaristic, logic sau numeric. Ca urmare,
variabila sau elementul masivului care memoreaz datele de intrare, vor avea tipul specificat
anterior. Parametrul <expC> reprezint promptul sau mesajul care se afieaz naintea datei
de preluat.
88
Ele determin afiarea sau citirea datelor precizate ntr-o comand de intrare sau
de ieire, ntr-un format specificat prin <sir1> respectiv <sir2> astfel:
<sir1> conine ntre ghilimele diferite coduri de afiare, cte unul pentru
fiecare caracter din date de afiat
<sir2> conine tot ntre ghilimele coduri de funcie. Un cod de funcie
acioneaz asupra tuturor caracterelor din data de afiat sau citit i definete o
anumit caracteristic a textului de afiat sau citit.
6.3. OBIECTE I CLASE N VISUAL FOXPRO
OBIECTIVE
CUVINTE
CHEIE
BAZE DE DATE
BAZE DE DATE
6.3.2. Clase
REZUMAT
Dac condiia din <expL> nu este adevrat se execut <secvcomenzi2>, dup care se trece la prima comand dup ENDIF. In
acest caz, dac opiunea ELSE lipsete, se trece direct la prima
comand dup ENDIF.
Comanda DO CASE
In scopul creterii flexibilitii programului, limbajul Visual FoxPro
permite implementarea structurilor de control generalizate sau
multiple, fr folosirea de instruciuni IF incluse una n alta, folosind
comanda DO CASE.
Comanda DO WHILE
Astfel, dac comanda IF execut secvena de instruciuni dac expresia
logic este adevrat, comanda DO WHILE permite execuia repetat
a secvenei de instruciuni ct timp expresia logic din cadrul comenzii
este adevrat. Ea permite astfel implementarea structurilor de control
repetitive cu condiionare anterioar. Execuia comenzii ncepe cu
evaluarea expresiei logice. Astfel, dac expresia logic este adevrat
se execut secvena de comenzi pn la ENDDO, dup care se revine
la evaluarea expresiei logice. Dac expresia logic este fals se trece la
prima comand dup ENDDO.
Comanda FOR
93
BAZE DE DATE
Subclase
In Visual FoxPro pot fi create clase derivate sau subclase
pornind de la clasele de baz. Avnd o clas deja definit, putem
genera, pornind de la aceast clas, o nou clas prin operaia de
derivare.
O clas derivat motenete automat proprietile i metodele
clasei de baz, deci aceste proprieti nu mai trebuie definite n clasa
derivat
Tipuri de clase i obiecte
Visual FoxPro conine 28 de clase de baz predefinite cu
ajutorul crora putem crea noi obiecte. Aceste clase se mpart la rndul
lor n dou subcategorii:
1 - clase Container
2 - clase Control
1. Se vor elabora programe de folosire a comenzilor de implementare
TEME
a structurilor de control i a comenzilor de intrare/ieire;
CONTROL
2. Se vor elabora programe de creare i utilizare a clasei form i a
obiectelor de tip buton de comand.
BIBLIOGR 1. Avram-Nichi R., Ghioiu N., Goron S., Nichi St., Tomai N.
95
BAZE DE DATE
AFIE
96
Caracteristici generale
Crearea unui nou formular
Proprieti i metode ale formularelor
Mediu de date ale unui formular
Scrierea codului pentru evenimentele i metodele unui
formular
6. Salvarea i rularea unui formular
7. Descrierea i utilizarea obiectelor grafice
97
BAZE DE DATE
REZULTATE
ATEPTATE
98
CUVINTE
CHEIE
99
BAZE DE DATE
100
BAZE DE DATE
CUVINTE
CHEIE
102
103
BAZE DE DATE
105
BAZE DE DATE
2.
3.
4.
5.
6.
7.
8.
9.
avea metoda sa Init proprie. Aceasta este apelat atunci cnd se creeaz
obiectul la rularea formularului.
Load; este apelat imediat dup crearea unui formular, dar naintea metodei
Init i altor metode. Ca urmare, n cadrul acestei metode se pot include
comenzi de deschidere a bazei de date, a tabelelor i de iniializare a unor
variabile de lucru.
Unload; este apelat la terminarea programului i permite transmiterea
parametrilor din cadrul formularului ctre programul apelant prin comanda
RETURN cu sintaxa RETURN <variabil >.
Show; permite afiarea pe ecran a unei formulare anterior creat . Dac pe
ecran se afieaz mai multe formulare una singur este activ , n sensul c
reprezint pentru utilizator inta intrrilor.
GotFocus; trecerea controlului de la o formular la alta sau n cadrul
aceluiai formular de la un obiect la altul, este controlat de evenimentele
GotFocus (preluare control) i respectiv LostFocus (pierdere control).
SetFocus; permite transferul controlului de la un formular la altul sau de la
un obiect la altul, n cadrul aceluiai formular, atunci cnd trecerea are loc
prin comenzi introduse n cadrul altor metode.
Valid; este una din metodele frecvent utilizate i permite execuia unei
secvene de comenzi la trecerea de la un obiect la altul n cadrul
formularului. Metoda este deci apelat la prsirea unui obiect si n funcie
de valoarea returnat de expresie logic din cadrul comenzilor din Valid, se
permite sau nu trecerea la obiectul urmtor.
Refresh; conine comenzi pentru remprosptarea valorii obiectelor din
cadrul formularului ca urmare a unor modificri efectuate cu aceste valori.
Exemplu: la calculul stocului ca urmare a unor operaii de intrare/ieire n
metoda Valid a cmpurilor Intrri i respectiv Ieiri se va introduce
comanda. Refresh iar n cadrul metodei Refresh aferenta cmpului Stoc vom
introduce comanda Stoc=Stoc+Intrri-Ieiri
Release; se apeleaz la terminarea programului i are rolul de a descrca
(terge) formularului din memorie. Astfel dac avem n cadrul formularului
un buton de ieire, n metoda Click aferent ,vom apela metoda Release,
eventual dup nchidereabazei de date, astfel:
CLOSE DATABASES
THISFORM.RELEASE
10. Click; este de asemenea una dintre metodele cel mai frecvent utilizate,
fiind asociat att butoanelor de comand ct i cmpurilor de preluare
date din cadrul unui formular. De exemplu la execuia unui clic pe un
buton de ieire se va introduce n metoda Click aferent butonului
comenzile de afiare mesaj terminare program i comanda de tergere
a formularului (Release).
107
BAZE DE DATE
108
CUVINTE
CHEIE
BAZE DE DATE
Prin selectarea unor cmpuri din acest obiect, datele aferente sunt introduse
automat n tabela care se ncarc. In felul acesta se ofer utilizatorului un set de
opiuni predeterminate. Acest mod de lucru asigur un control automat al
datelor de intrare, n sensul c n baza de date vor fi introduse numai date valide.
Pentru acest tip de introducere de date, putem folosi urmtoarele obiecte:
1. Grup de butoane de opiuni (Option Group)
2. Casete cu list i liste derulante (ListBox, DropDown, ListBox)
3. Casete de validare (CheckBox)
7.3.3. Utilizarea grupurilor de butoane de opiuni (Option Group)
Grupurile de butoane de opiuni, reprezint obiecte de tip container i conin
butoane de opiuni sau butoane radio. Ele permit utilizatorului alegerea unei
opiuni din mai multe variante posibile i nu introducere de date. Astfel, putem
folosi un grup de butoane pentru a specifica modul de afiare a datelor unor
prelucrri (la imprimant, pe ecran, ntr-un fiier) sau pentru a selecta anumite
110
BAZE DE DATE
Intr-o caset cu list (ListBox) sunt vizibile toate sau o parte din elementele
listei, n timp ce ntr-o list derulant (Dropdown List), n starea neactivat ,
este vizibil un singur element, cel curent selectat. Prin execuia unui clic pe
butonul cu sgeat n jos din dreapta casetei, se afieaz o list derulant , cu
toate elementele casetei.
Lista derulant sau expandabil reprezint un obiect ComboBox i este de dou
feluri n funcie de proprietatea Style a obiectului:
- cu posibilitatea de completarea manual a elementului de selectat. Aceasta
permite pe lng selectarea unui anumit element din list dup expandare,
introducerea manual, prin tastare n cadrul casetei, n locul elementului
curent selectat a valorii noului element care devine curent selectat
(proprietatea Style=0 Dropdown Combo).
- cu selectarea elementului dorit din lista expandat , fr posibilitatea de a
introduce date. (Style=2 Dropdown ListBox). Casetele cu list (ListBox) se
utilizeaz n cazul n care exist spaiu suficient pe form i dorim s mrim
perspectiva utilizatorului asupra datelor din care trebuie s aleag, n caz
contrar, pentru a face economie de spaiu se va folosi o list derulant
(Dropdown ListBox).
Caracteristica principal a celor dou tipuri de liste const n faptul c ele ofer
utilizatorului un set de opiuni predefinite, din care acesta poate selecta opiunea
sau opiunile dorite. In acest fel se simplific n mod considerabil proceduta de
introducere date la ncrcarea tabelelor din baza de date, prin faptul c
utilizatorul selecteaz din list datele necesare, n loc s introduc manual fiecare
valoare. Introducerea manual a datelor, pe lng faptul c necesit timp, mrete
probabilitatea de introducere a unor date eronate.
113
BAZE DE DATE
In cadrul unui formular se pot defini dou tipuri de butoane: simple i implicite.
La nivelul unui formular se poate defini un singur buton implicit i unul sau mai
multe butoane simple.
Butonul implicit este activat automat la apsarea tastei Enter sau spaiu,
indiferent de poziia cursorului. Pentru a defini un buton de tip implicit va trebui
ca proprietatea Default s aib valoarea adevrat (.T.). Pe ecran, un astfel de
buton apare cu marginea din dreapta i de jos ngroate. Prin apsarea tastei
Enter se va executa automat codul din cadrul metodei asociate evenimentului
Click a butonului respectiv.
Selectarea unui astfel de buton se realizeaz prin execuia unui clic pe butonul
respectiv. Evenimentul cel mai frecvent aferent unui astfel de control este Click
Event. Ca urmare, codul pentru aciunile de executat la activarea unui buton de
comand se introduc n metoda Click asociat evenimentului Click Event.
114
REZUMAT
BAZE DE DATE
BAZE DE DATE
referenial.
Integritatea entitilor este implementat prin specificarea n
cadrul unei tabele, a faptului c nu pot accepta valori nule cmpurile
care reprezint chei primare.
13. Integritatea referenial (referenial integrity-RI) definete un
ansamblu de reguli, care permit menionarea integritii datelor din
tabelele legate ntre ele, la operaiile de modificare, adugare i
tergerea datelor din tabelele respective, astfel nct s nu existe
nregistrri neparticipante la relaie. Implementarea acestor reguli
ntre tabele se realizeaz prin intermediul unor restricii numite
restricii pentru integritate referenial (RI constraints).
14. Specificarea restriciilor de integritate referenial i generarea
automat a procedurilor aferente se realizeaz prin intermediul
Generatorului de Integritate Referenial (Referential Integrity
Builder). Aceasta permite, de asemenea, precizarea tabelelor printe
i fiu din cadrul unei relaii i a evenimentelor din sistem care impun
mediului Visual FoxPro s verifice regulile definite.
1. Se vor elabora programe de folosire a comenzilor de
TEME
implementare a structurilor de control i a comenzilor de
CONTROL
intrare/ieire;
2. Se vor elabora programe de creare i utilizare a clasei form i a
obiectelor de tip buton de comand.
BIBLIOGRA 1. Avram-Nichi R., Ghioiu N., Goron S., Nichi St., Tomai N.
Baze de date i programarea calculatoarelor utiliznd limbajul
FIE
Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003, pg. 259-307.
2. Marian Cristescu, Baze de date utilizate n mediul economic,
Editura ALMA MATER, Sibiu, 2007, pg. 286-297
3. Gabriel Dima ,Mihai Dima, Bazele Visual FoxPro 5.0, Editura
Teora ,Bucuresti,1999, pag . 205-308.
4. Marin Fotache,Ioan Brava, Ctlin Strmbei, Liviu Creu, Visual
FoxPro; Ghidul dezvoltrii aplicaiilor profesionale, Editura Polirom
Iai, 2002, pag. 253-286.
5. Manole Velicanu, Ioan Lungu, Mihaela Muntean, Dezvoltarea
aplicaiilor cu baze de date n Visual FoxPro, Editura All, Bucureti,
2001, pag. 240-277.
6. Paul Petru, Visual FoxPro 5.0, Editura Promedia, Cluj, 1999,
pag. 280-408.
7. Nicolae Ghioiu, Visual FoxPro; Exerciii i programe, Editura
Risoprint Cluj, 2003, pag. 70-82.
118
8. RAPOARTE I MENIURI
CONCEPTE
DE BAZA
119
BAZE DE DATE
NOIUNI
CHEIE
n literatura de specialitate exist definiii mai mult sau mai puin formalizate
ale acestui obiect.
Raport prezentarea informaiilor referitoare la o anumit tem. efectuat
obicei ntr-o form tiprit. Programele de baze de date pot oferi funcii
speciale de creare i generare de rapoarte [Microsoft99].
Raportul este o extragere a datelor din baza de date. El poate fi tiprit pe
ecranul calculatorului, sau pe orice alt dispozitiv de ieire [Kroenke92].
Orice raport are ataate 2 fiiere. O tabel sistem special cu extensia .FRX, n care sunt
memorate specificaiile raportului, adic caracteristicile raportului i elementele sale
componente. Acest fiier este interpretat de un modul al SGBD pentru afiarea raportului
respectiv.
Pentru orice raport avem dou momente im portante:
120
121
BAZE DE DATE
Tip band
Title
Frecvena de afiare
Mod de afiare
- o singur dat pe raport, - prin selectarea opiunii
pe prima pagin
Title/Summary din meniul
Report
o
dat
pe
coloan
- prin selectarea opiunii
Column
PageSetup din meniul File
Header
- prin selectarea opiunii
Group Header - o singur dat pe grup
Grouping din meniul Report
- prin selectarea opiunii
Group Footer - o singur dat pe grup
Grouping din meniul Report
- o dat pe coloan
- prin selectarea opiunii
Column
PageSetup din meniul File
Footer
- o dat pe raport
- prin selectarea opiunii
Summary
Title/Summary din meniul Report
Semnificaia acestor benzi este urmtoarea:
1. Title/Summary; Banda Title conine titlul raportului i alte informaii
suplimentare cum ar fi: sigla firmei i eventual antetul de tabel, dac acesta
122
2.
3.
4.
5.
BAZE DE DATE
BAZE DE DATE
126
LINE,
RECTANGLE
ROUNDED
Aceste controale servesc pentru includerea n raport a unor forme geometrice, astfel:
Rezult c, prin intermediul acestor controale putem mbunti aspectul unui raport prin
includerea titlului raportului i a antetului de pagin ntr-un dreptunghi sau prin sublinierea
unor texte, etc.
Dup selectarea unuia din cele trei obiecte de pe bara Report Controls se mut
cursorul pe suprafaa raportului i se deseneaz obiectul selectat la mrimea
dorit de utilizator, sau se execut un clic n raport n locul unde dorim s apar
obiectul, avnd ca efect afiarea n raport a obiectului respectiv.
Pentru a seta proprietile obiectului, se execut un dublu-clic pe obiect, fapt ce
determin afiarea pe ecran a ferestrei Rectangle/Line pentru obiectele Line
sau Rectangle i a ferestrei Rounded Rectangle pentru obiectul Rounded
Rectangle.
8.1.4.5. Controlul PICTURE/OLE BOUND CONTROL
Prin utilizarea acestui control, se poate include ntr-un raport o imagine preluat
dintr-un fiier de tip Bitmap cu extensia .MBP sau .ICO. De obicei aceste
imagini se introduc n banda de titlu sau de antet de pagin i pot reprezenta
sigla firmei, care elaboreaz raportul.
Aceste imagini odat introduse n raport nu se modific odat cu trecerea de la o nregistrare
la alta. Dac dorim s apar cte o imagine pentru fiecare nregistrare va trebui ca tabela de
127
BAZE DE DATE
date s conin un cmp de tip General, care s apar n raport i n care se introduce obiectul
de tip OLE.
redimensionare ;
copiere ;
mutare ;
tergere ;
aliniere ;
Din meniul View, iar pentru alinierea manual opiunea Snap to Grid din meniul Format prin
care la mutarea unui obiect se ine cont de ptrelele de pe suprafaa raportului.
Pentru popularea unui raport cu date luate direct din tabela definit ca surs de
date a raportului, se folosete utilitarul Quick Report care este o aplicaie de tip
Builder. Lansarea utilitarului se face prin selectarea opiunii Quick Report din
meniul Report, dup crearea unui raport vid cu Report Designer.
Prin urmare, dup afiarea pe ecran a ferestrei Report Designer, reprezentnd meniul vid, se
va selecta opiunea Quick Report din meniul Report. Ca efect, pe ecran va apare fereastra
Quick Report.
afieaz mai nti fereastra Open, din care se va selecta tabela dorit dup care
se va afia fereastra Quick Report.
In funcie de opiunile selectate din aceast fereastr va fi creat un raport
corespunztor. In acest scop se selecteaz mai nti din tabela care reprezint
sursa de date, cmpurile care urmeaz a fi afiate n raport, prin acionarea
butonului de comand Fields Ca efect pe ecran se deschide fereastra Field
Picher. In cadrul acestei ferestre, se selecteaz cmpurile dorite din seciunea
All Fields prin mutarea lor n seciunea Selected Fields i se acioneaz butonul
OK, avnd ca rezultat revenirea n fereastra Quick Report.
Dup stabilirea cmpurilor ce urmeaz a fi afiate se va stabili poziia acestora
n raport, adic pe orizontal sau vertical, prin selectarea celor dou butoane
aferente, din seciunea Field Layout.
In fereastra Quick Report se mai gsesc trei comutatoare cu urmtoarea
semnificaie:
- Titles; afieaz denumirea cmpurilor n banda de antet de pagin ;
- Add Alias ; adaug aliasul tabelului la denumirile cmpurilor ;
- Add Table ; adaug tabelul n fereastra Data Environment.
Dup selectarea acestor opiuni, prin acionarea butonului OK, are loc ieirea
din fereastra Quick Report, iar pe ecran se afieaz structura noului raport care
conine:
- banda de antet de pagin cu denumirea cmpurilor ce vor fi afiate ;
- banda Detail cu cmpurile aferente ;
- banda de sfrit de pagin unde se include automat data curent i
numrul de pagin.
8.1.5.2. Crearea unui raport cu Report Wizard
Crearea unui raport prin utilizarea utilitarului Report Wizard, presupune
parcurgerea
urmtoarelor etape:
- se lanseaz utilitarul Report Wizard i se selecteaz apoi tipul de
raport
- se parcurg cei ase pai solicitai de Report Wizard pentru a ajunge la
forma final a raportului.
8.1.5.3. Lansarea generatorului Report Wizard
Pentru lansarea generatorului Report Wizard se selecteaz din fereastra Project
Manager pagina Documents i apoi butonul New. Din fereastra New Report
care se afieaz pe ecran se selecteaz butonul Report Wizard care determin
afiarea pe ecran a ferestrei Wizard Selection.
O alt modalitate de lansare a generatorului Report Wizard const n selectarea
din meniul File a opiunii New. Din fereastra New, care apare pe ecran se va
selecta butonul radio Report i apoi butonul de comand Wizard, avnd ca efect
129
BAZE DE DATE
130
- se selecteaz opiunea Add din meniul data Environment sau din meniul
shortcut al ferestrei Data Environment. Ca efect pe ecran apare fereastra
Add Table or View, din care se selecteaz baza de date i tabela necesar.
Dup adugarea tabelelor n cadrul ferestrei Data Environment, se stabilete
indexul care se acceseaz datele din tabel pentru a fi aduse n raport. In acest
scop, n fereastra Proprerties se selecteaz proprietatea Order, reprezentnd
ordinea de indexare, pentru tabelul respectiv i se introduce n caseta aferent un
nume de index sau se alege un index din lista de indeci a tabelei. Dup
indexare, n fereastra Database Designer, se poate defini o relaie temporar
ntre 2 tabele prin operaia drag-drop a cheii primare, la cheia extern din
tabela fiu.
8.1.6.2. Sursa de date a unui raport
1.
2.
3.
4.
5.
Sursa de date a unui raport se poate defini n mai multe moduri, astfel:
prin includerea tabelelor necesare raportului n fereastra Data Environment;
prin folosirea unei fraze SELECT din SQL, inclus ntr-un program simplu,
alturi de comanda de previzualizare a raportului. In fraza SELECT, se
specific prin opiunea INTO CURSOR <nume_tabel>, numele unei tabele
temporare care va conine datele necesare raportului,.
prin includerea frazei SELECT n metoda aferent environementului INIT a
containerului Data Environment aferent raportului
prin definirea unui program simplu n care se introduce comenzi pentru
deschiderea bazei de date, a tabelului, utilizate n raport, setarea indexului
aferent tabelului surs i lansrii n execuie a raportului
prin includerea comenzilor de deschidere a bazei de date i tabelelor aferente
raportului n metoda evenimentului clic asociat unui buton de comand de
lansare n execuie a raportului.
8.1.6.3. Gruparea datelor n rapoarte
BAZE DE DATE
BAZE DE DATE
135
BAZE DE DATE
8.2. Meniuri
OBIECTIVE 1. Familiarizarea cu noiunea de meniu i elementele sale
componente
2. Crearea abilitii de creare i utilizare meniurilor n Visual
FoxPro.
- Meniuri i rolul lor;
NOIUNI
- Fereastra constructorului de meniuri;
CHEIE
- Opiunile posibile la generarea meniurilor i
submeniurilor;
- Crearea i modificarea meniurilor;
- Exploatarea meniurilor.
Meniu list de opiuni din care utilizatorul o poate selecta pe cea necesar
pentru o anumit aciune, cum ar fi alegerea unei comenzi sau aplicarea unui
anumit format unei poriuni de document. La mai multe programe de aplicaie,
n special cele care dispun de interfa grafic, meniurile reprezint o
alternativ mai uor de nvat i de folosit dect memorarea comenzilor i a
utilizrii lor [Microsoft99].
Meniurile sunt de mai multe feluri. Primele meniuri, meniurile clasice, au fost utilizate n
versiunile vechi de dBASE i Fox. Ele apar sub form de liste, utilizatorul putnd alege
opiunea prin tastarea unui identificator (de exemplu numrul opiunii n list).
O aplicaie cu meniurile bine proiectate se nelege mult mai uor de ctre beneficiarii
acesteia.
De regul principalele funcii ale unei aplicaii sunt incluse n meniu. Astfel, de
exemplu, n VisualFox 8.0 comanda Browse apare ca opiune n meniul vertical
View. n acelai timp alte opiuni cum ar fi Insert nu apar n nici un meniu sau
submeniu.
Din cele de mai sus se poate observa c meniurile sunt n principal de dou
tipuri:
Meniuri orizontale (cum este n figura de mai sus meniul principal al Visual
Foxului); acesta este format din opiuni (denumite i pad-uri). Acestea, la
rndul lor, pot lansa o aciune sau un submeniu vertical.
Meniurile verticale au o serie de opiuni I (bare, care la rndul lor pot lansa
comenzi, alte submeniuri verticale sau orizontale sau ferestre de dialog.
Ca i n cazul rapoartelor, n gestiunea meniurilor avem dou etape importante:
Crearea sistemului de meniuri.
Exploatarea sistemului de meniuri.
136
BAZE DE DATE
138
MODIFY MENU
apare fereastra OPEN din care se poate selecta meniul dup care apare fereastra
Menu Designer ca n cazul precedent.
8.2.5.1. Modificarea unui meniu cu ajutorul meniului sistem
Se selecteaz opiunea Open din meniul vertical File, dup care se procedeaz
ca n cazul comenzii MODIFY MENU fr numele fiierului meniu.
8.2.5.2. Modificarea unui meniu din managerul de proiect
Se procedeaz ca n cazul ii2 din paragraful precedent cu observaia c la pasul 5
n loc s se selecteze declanatorul New se va executa un click dublu pe
opiunea Menu din meniul vertical Others.
Va apare lista meniurilor disponibile n directorul curent. Se efectueaz un click
pe meniul dorit i pe declanatorul Modify, dup care se procedeaz ca n cazul
comenzii MODIFY MENU fr numele fiierului meniu.
8.2.6. Stabilirea unor proprieti i coduri ale meniurilor
139
BAZE DE DATE
Chenarul de tip text Prompt este zona n care se definesc textele care vor apare
n cadrul opiunilor, de exemplu n figura de mai sus \<File. Referitor la aceste
texte trebuie s subliniem faptul c, aa dup cum se poate observa, anumite
caractere au n fa simbolul \. Semnificaia acestui fapt este:
Dac \< este n faa unui caracter, acesta va deveni caracter de selecie n
sensul cunoscut din Windows, adic, n cadrul numelui opiunii din meniu va
apare subliniat i dac meniul (submeniul) respective este active i se
tasteaz caracterul respectiv se lanseaz automat opiunea;
Dac \ singur apare n faa unei opiuni, aa dup cum se poate constata din
exemplul de mai jos (opiunea Creare), aceast opiune va fi scris mai slab i
nu este selectabil. Coloana Result este o list derulant n care se poate
stabili rezultatul aciunii de activare a opiunii respective din meniu
(submeniu).
Dac este prima selecie a unui element din coloan n dreptul elementului
respective apare un declanator Create. Elementele din lista derulant pot fi:
Command indic faptul c prin selectarea opiunii respective din meniu se
dorete executarea unei singure comenzi. Dac se selecteaz aceast opiune
n dreptul ei apare un chenar de editare a textului comenzii care se dorete s
fie executate n cazul selectrii opiunii.
PadName Orice meniu are dou nume. Unul este cel din interfa, care
apare n coloana Prompt i unul care apare n programul generat cu extensia
.MPR (care este numele de PAD). Orice opiune dintr-un meniu are un
numr (BAR#) . Dac utilizatorul nu i d el un nume PAD-ului, sistemul
va genera automat un identificator. Acesta este fix, dac este PAD sistem i
se schimb de la generare la alta dac este PAD utilizator. Dac n cadrul
programului utilizatorul vrea s utilizeze un PAD, el trebuie s foloseasc
numele de PAD. Stabilirea unui nume de PAD pentru un meniu aferent unei
141
BAZE DE DATE
142
Revenind la Menu Designer, n dreapta sus apare lista derulant Menu Level,
cu ajutorul cruia se poate stabili nivelul de meniu care este afiat curent. Dac
se dorete navigarea n meniu, de exemplu trecerea la meniul bar, se execut
un click pe sgeat i din lista expandat se selecteaz Menu Bar. n felul
acesta ne putem deplasa pe structura arborescent a meniului.
n fereastra Menu Designer avem i chenarul Item cu patru declanatoare
INSERT, INSERT BAR, DELETE i MOVE ITEM. Cu aceste se poate
insera o opiune naintea unei alte opiuni din meniul bar (INSERT). n acest
caz apare o opiune cu numele standard New Item.
Folosind INSERT BAR apare lista vertical Insert System Menu Bar din care
dac se selecteaz, de exemplu, New, se obine linia \New din figura de mai jos.
Dac se selecteaz butonul Move Item apare fereastra cu acelai nume, iar din
lista derulant To Location se poate selecta locaia din meniu unde se dorete
mutarea opiunii.
Ultima opiune din fereastra Menu Designer este Preview, cu care putem
vizualiza n orice moment modul de funcionare a meniului care se construiete
sau se editeaz, ca i n cazul exemplului nostru.
143
BAZE DE DATE
144
REZUMAT
TEME DE
CONTROL,
APLICAII
BIBLIOGRAFIE
BAZE DE DATE
146
NOIUNI
CHEIE
4.
5.
6.
1.
2.
3.
4.
Sursa datelor;
Tipuri de interogri;
Crearea i modificarea interogrilor.
Interogare:
Tipuri de interogri;
Metode de creare;
Execuia interogrilor.
147
BAZE DE DATE
Operatori de comparatie
BAZE DE DATE
FROM
tabel;
WHERE {conditii, precizarea legaturilor dintre tabele}
GROUP BY tabela..camp
HAVING {conditii impuse valorilor de grup}
ORDER BY tabela . camp ASC/DESC
unde:
SELECT
DISTINCT
*
atribut
expresie
alias
FROM table
WHERE
GROUP BY
HAVING
ORDER BY
Frazele SQL:
Nu sunt case sensitive;
Pot fi scrise pe mai multe linii;
150
Proiecia:
151
BAZE DE DATE
EXEMPLE:
1. Sa se selecteze toti furnizorii din tabela furnizori:
SELECT * FROM furnizori
2. Sa se selecteze campurile codf, denf si adresa din tabela furnizori:
SELECT codf, denf, adresa FROM furnizori
3. Sa se selecteze numai furnizorii din Bucuresti:
SELECT * FROM furnizori
WHERE adresa LIKE %BUCURESTI%
4. Sa se selecteze facturile neachitate:
SELECT * FROM facturi
WHERE stare = N
5. Sa se selecteze facturile emise de furnizorul cu codul F4:
SELECT * FROM facturi
WHERE codf = F4
152
153
BAZE DE DATE
154
155
BAZE DE DATE
157
BAZE DE DATE
Pasul 2: se valideaz relaia creat ntre cele dou tabele prin cmpul comun
CUI.
158
Pasul 4: se pot stabili cmpurile dup care sunt ordonate datele din
interogare.
159
BAZE DE DATE
TEME DE
160
CONTROL,
APLICAII
BIBLIOGRAFIE
interogri;
6. Se vor elabora aplicaii complexe de Informatic Economic
i de afaceri,
1. Avram-Nichi R., Ghioiu N., Goron S., Nichi St., Tomai
N. Baze de date i programarea calculatoarelor utiliznd
limbajul Visual FoxPro, Ed. Risoprint, Cluj-Napoca, 2003, p.
218-245.
2. Marian Cristescu, Baze de date utilizate n mediul economic,
Editura ALMA MATER, Sibiu, 2007, pg. 247-285
3. Gabriel Dima ,Mihai Dima, Bazele Visual Foxpro 5.0,
Editura Teora, Bucuresti,1999.
4. Marin Fotache,Ioan Brava, Ctlin Strmbei, Liviu Creu,
Visual FoxPro; Ghidul dezvoltrii aplicaiilor profesionale,
Editura Polirom Iai, 2002.
5. Manole Velicanu, Ioan Lungu, Mihaela Muntean,
Dezvoltarea aplicaiilor cu baze de date n Visual FoxPro,
Editura All, Bucureti, 2001.
6. Nicolae Ghioiu, Visual FoxPro; Exerciii i programe,
Editura Risoprint Cluj, 2003.
161