BD

54
li r r 1 -\,.- .._ _.; ....... l_. 1.... \"..... În VFP: sunt instrumente oferite administratorului BD de ceea ce ar trebui ofere un SGBD. Astfel, Database Designer Table Designer care elemente de proiectare se poate lucra cu de de date deci cu BD prin comanda .CREA TE DATABASE, care produce tip DBC BD; câteva comenzi SET pentru schimbarea unor parametri. Toate acestea nu sunt doar la adminsitratorului BD ci le poate folosi orice utilizator. Rezumat Definirea unui sistem de de date (SBD) se face în cu de Sistemul de de date (DataBase System) este un ansamblu de elemente care contribuie la realizarea exploatarea unei cu baze de date. Elementele care fac parte din acest ansamblu se la date, software alte resurse necesare. arhitecturi de SBD au fost prezentate: pe componente pe niveluri. Arhitectura pe componente a SBD elementele sale: datele, software, elementele auxiliare. Arhitectura pe niveluri a SBD modul de structurare a datelor, rolul SGBD-ului între diversele elemente. Sunt trei niveluri de organizare a datelor în baze de date: conceptual, logic, fizic. nivel îi corespunde, respectiv, un punct de vedere: administratorul BD, programatorul de analistul de sistem. Fiecare dintre schemele bazei de date: SBD continuu, ponderea fiind de cele Noi tipuri de SBD (avansate) au prin tehnologiei bazelor de date cu alte tehnologii infonnatice: paralele, multimedia, mobile, sisteme suport de decizie, Internet, Pe scurt, este activitatea de administrare a unei baze de date, punctându-se: ce este un administrator, care sunt nivelurile de administratori, care sunt sarcinile administratorului BD, precum instrumentele necesare a fi la sa pentru a îndeplini aceste sarcini. 26 Note bibliografice de sistem de de date (SBD) este atât în materialele llldl vechi (în sub denumirea de de date) cât în cele mai noi. Conceptul este prezentat fie doar în contextul elementelor sale componente [CONNOO], [DATE04], fie ca apoi pe componente [VELU03). SBD avansate sunt prezentate pe larg, teoretic (concepte, arhitecturi, practic (exemple, studii <le caz, în mai multe [RICCOl], [RAGEOOJ, [DIAZOOJ. Am prezentat aici, doar o a principalelor tipuri de SBD avansate, anume cele mai utilizate în acest moment. Pentru o documentare în ceea ce actvitatea de administrare a unei baze de date, cititorul poate consulta [LUVE021. Cuvinte-cheie sistem de de date- SBD de date - BD aplicatie niveluri de organizare a datelor nivel logic SBD avansate de date sistem de gestiune a bazelor de date - SGBD arhitectura de SBD nivel conceptual nivel fizic .. · administrator'baze date 1. Pentru o de date: a) structura se deduce din cea b) structura se deduce din cea c) structura se deduce din cea d) structura se deduce din cea e) structura se deduce din cea 27

description

bd

Transcript of BD

Page 1: BD

li r r 1

-\,.-

.._

_.;

.......

l_.

~..,.

1....

\".....

~

În VFP: sunt puţine instrumente oferite administratorului BD faţă de ceea ce

ar trebui să ofere un SGBD. Astfel, există asistenţii Database Designer şi

Table Designer care oferă elemente de proiectare asistată; se poate lucra

opţional cu noţiunea explicită de bază de date şi deci cu dicţionarul BD prin

comanda .CREA TE DAT ABASE, care produce fişierul tip DBC

corespunzător dicţionarului BD; există câteva comenzi SET pentru

schimbarea unor parametri. Toate acestea nu sunt însă doar la dispoziţia

adminsitratorului BD ci le poate folosi orice utilizator.

Rezumat Definirea unui sistem de bază de date (SBD) se face în strânsă legătură cu

noţiunea de aplicaţie inf01matică.

Sistemul de bază de date (DataBase System) este un ansamblu de elemente

intercondiţionate care contribuie la realizarea şi exploatarea unei aplicaţii cu

baze de date. Elementele care fac parte din acest ansamblu se referă la date,

software şi alte resurse necesare.

Două arhitecturi de SBD au fost prezentate: pe componente şi pe niveluri.

Arhitectura pe componente a SBD evidenţiază elementele sale: datele,

software, elementele auxiliare.

Arhitectura pe niveluri a SBD arată modul de structurare a datelor, rolul

SGBD-ului şi legăturile între diversele elemente. Sunt trei niveluri de

organizare a datelor în baze de date: conceptual, logic, fizic. Fiecărui nivel îi

corespunde, respectiv, un punct de vedere: administratorul BD,

programatorul de aplicaţie, analistul de sistem. Fiecare dintre aceştia

realizează schemele bazei de date: conceptuală, logică (externă), fizică

(internă).

SBD evoluează continuu, ponderea majoritară fiind deţinută de cele

relaţionale. Noi tipuri de SBD (avansate) au apărut prin interferenţa

tehnologiei bazelor de date cu alte tehnologii infonnatice: paralele,

multimedia, mobile, sisteme suport de decizie, Internet, spaţiale.

Pe scurt, este prezentată activitatea de administrare a unei baze de date,

punctându-se: ce este un administrator, care sunt nivelurile de

administratori, care sunt sarcinile administratorului BD, precum şi

instrumentele necesare a fi la dispoziţia sa pentru a îndeplini aceste sarcini.

26

Note bibliografice Noţiunea de sistem de bază de date (SBD) este tratată atât în materialele llldl

vechi (în ţara noastră sub denumirea de bancă de date) cât şi în cele mai noi.

Conceptul este prezentat fie doar în contextul elementelor sale componente

[CONNOO], [DATE04], fie ca noţiune şi apoi pe componente [VELU03).

SBD avansate sunt prezentate pe larg, teoretic (concepte, arhitecturi,

interacţiuni) şi practic (exemple, studii <le caz, aplicaţii), în mai multe

lucrări: [RICCOl], [RAGEOOJ, [DIAZOOJ. Am prezentat aici, doar o sinteză a principalelor tipuri de SBD avansate, şi anume cele mai utilizate în acest

moment. Pentru o bună documentare în ceea ce priveşte actvitatea de administrare a

unei baze de date, cititorul poate consulta [LUVE021.

Cuvinte-cheie sistem de bază de date- SBD bază de date - BD

aplicatie informatică niveluri de organizare a datelor

nivel logic SBD avansate

Teste-grilă

bancă de date sistem de gestiune a bazelor de date -

SGBD arhitectura de SBD nivel conceptual nivel fizic .. · administrator'baze d~ date

1. Pentru o bază de date: a) structura conceptuală se deduce din cea logică b) structura externă se deduce din cea conceptuală c) structura globală se deduce din cea conceptuală d) structura globală se deduce din cea fizică e) structura internă se deduce din cea fizică

27

Draistaru Alexandru
Highlight
Page 2: BD

2. Componenta de date dintr-un SBD poate conţine:

a) sistemul de operare

b) sistemul de coduri

c) dicţionarul distribuit

d) fişierele anexe

e) fişiere tip DOC

3. În arhitectura unui SBD pe niveluri, viziunea programatorului de

aplicatie corespunde:

a) nivelului fizic

b) nivelului sistem de operare

c:) nivelului SGBD

d) nivelului fizic: şi logic

e) nivelului logic:

4. Yisual Foxpro este:

a) un limbaj de programare universal

b) o bază de date

c:) un sistem de fişiere

d) un SGBD reţea

e) un SGBD orientat vizualizat

5. Pentru o bază de date:

a) structura externă se deduce din cea globală

b) structura logică se deduce din cea conceptuală

c:) structura globală se deduce din cea externă

d) structura internă se deduce din cea logică

e) structura externă se deduce din cea internă

6. Structura internă (fizică) a unei baze de date este punctul de vedere al:

a) programatorului de aplicaţie

b) administratorului de reţea

c:) administratorului bazei de date

d) şefului echipei de lucru

e) nu există o astfel de structură de date

28

7. Într-o arhitectură de sistem de bază de date, Visual Foxpro face parte din componenta: a) date b) elemente auxiliare

c) elemente obligatorii d) software e) baza de date

8. Componentele unui sistem de bază de date (banca de date) sunt: a) sistemul de operare b) software-ul de reţea c) reteaua de calculatoare d) modelul de calcul e) programele utilitare

9. Arhitectura pe componente a unui sistem de bază de date conţine: a) fişierele

b) programele de comunicaţie c) software-ul specializat de comunicaţie d) datele ··

e) elementele auxiliare

10. Pe câte niveluri de organizare poate fi structurată .9 bază de date ? : a) două -~··' . ·· ..

b) trei c) patru d) unul e) uneori pe trei, alteori pe patru

Il. În arhitectura pe niveluri a unui sistem de bază de date, punctul de vedere al administratorului corespunde: a) nivelului logic b) nivelului fizic şi logic c) nivelului conceptual d) nivelului aplicaţie e) nici unui nivel

29

:-)

,.....

-.

......

,......

--....,

,....,

........,_

,...-,

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 3: BD

1i' hl \_,

1 L._,

i....

L

1...,..

1.......

'-

'-

~

~

12. Structura externă a unei baze de date este de competenta (punctul de vedere):

a) programatorului de aplicaţie

b) nu există o astfel de structură de date

c) administratorului bazei de date

d) administratorului de reţea e) SGBD-ului

13. Componenta de date dintr-un SBD poate conţine: a) programele de aplicaţie b) dicţionarul BD

c) programele utilizator

d) dicţionarul de programe

e) fişiere tip HTML

14. Sarcini ale administratorului BD sunt:

a) asigură independenţa conceptuală a datelor b) defineşte dicţionarul BD

c) monitorizează accesul la date

d) asigură protecţia datelor e) întreţine BD

15. Instrumente la dispoziţia administratorului BD sunt: a) produse hardware oferite de SGBD

b) produse hardware din sistemul de operare

c) produse software oferite de SGBD

d) produse software oferite de sistemul de operare

e) produse software realizate de administratorul BD

16. runcţiile unui SGBD sunt:

a) manipularea programelor

b) administrarea reţelei c) descrierea interfeţelor d) definirea utilizatorilor

e) utilizarea limbajelor universale

30

Răspunsuri la teste 1 - b ; 2 - d ; 3- e ; 4- X ; 5- a, b, d ; 6- X ; 7 - d ; 8 -X ; 9 - d,

e ; 10-b ; 11-c; 12-a; 13-b;14-b,c,d,e;15-c,d,e;16-x

Probleme

J) Din activitatea de cercetare-dezvoltare a unei firme să se identifice o

subactivitate pentru care se poate construi un SBD în VFP.

2) Din activitatea de producţie a unei firme să se identifice o

subactivitatc pentru care se poate construi un SBD în VFP.

3) Din activitatea financiar-contabilă u unei firme să se idenrificc o

subactivitate pentru care se poate construi un SBD în VFP.

4) Din activitatea comercială a unei firme să se identifice o

subactivitate pentru care se poate construi un SBD în VFP.

5) Din activitatea de resurse umane a unei firme să se identifice o

subactivitate pentru care se poate construi un SBD în VFP.

6) Să se identifice în VFP componentele care asigură functiile unui

SGBD. .-'

, _"~~~-.;,·:·!~~.:;.~' t; ,.,. '\t~

{ ,' ··;,,::;;;',;· :,',':;' 1" ,~J ··.:~. "..;"

..... •'-;~~--~- . .:: .. :./ 3J

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 4: BD

· ~1 '~l

Capitolu12

2.1. Definirea BD

2.2. Aspecte privind organizarea datelor în memoria externă 2.2.1. Evoluţia organizării datelor 2.2.2. Organizarea datelor în fişiere

2.3. Modelele logice de structurare a datelor în baze de date 2.4. Consideraţii privind protecţia bazelor de date Rezumat

Note bibliografice Cuvinte-cheie

Teste-grilă şi probleme

2 Introducere în baze de date (BD)

2.1 Definirea bazei de date

În orice calculator datele sunt stocate atât în memoria in temă (temporar) cât şi în memoria externă (persistent). Bazele de date - BD, ca mod de organizare a datelor în memoria externă, au evoluat din fişiere printr-un proces de integrare a lor (fişierele şi legăturile dintre ele) şi ţinând cont de cerinţele aplicaţiilor informatice.

Elementele componente ale unei baze de date Deoarece bazele de date au evoluat din fişiere, o serie de noţiuni utilizate în cele două moduri de organizare a datelor în memoria externă sunt similare, aşa cum reiese din tabelul de mai jos. De remarcat faptul că atât fişierele cât şi bazele de date se construiesc pornind de la lumea reală înconjurătoare .

Citirea tabelului se va face de la stânga la dreapta. iar noţiunile

corespunzătoare de pe cele două rânduri pot fi considerate similare. Astfel vom spune: o bază de date este fmmată din mai multe colecţii de date. Fiecare dintre acestea are ataşată o famili~.de caracteristici, care. esţe formată din mai multe caracteristici, care iau valori dintr-un domeniu de valori. În mod similar se citeşte rândul de jos: un sistem de fişiere este foqnat din mai multe fişiere. Fiecare dintre acestea are ataşată o înregistrare logică -articol, care este formată din mai multe câmpuri, care iau valori.

Baza de date lecţii de date aracteristici Domenii de valori aracteristici

Sistem de fisiere Valori

i1

~

.-.

~

-l'"j

'1

~

.....

Ne vom ocupa, în continuare, de noţiunile aferente bazelor de date, urmând ,_

ca de fişiere să ne ocupăm în paragraful următor.

Domeniul de valori este dat de mulţimea valorilor posibile pentru o

caracteristică (exemplu: culorile posibile pentru un automobil). ~

33

,.....,

Page 5: BD

~ -·1 r '· 1 •

L-'

L..

1......

1 1 L-

, 1

~

,

"-

"'-'

1....

.....

\"_.

........

1.-o

Ca orice SGBD relaţional, VFP este un sistem tranzacţional, dar nu sunt respectate toate caracteristicile tranzacţiilor.

Salvarea şi restaurarea BD nu este făcută automat ci doar explicit de către administratorul BD.

SECURITATEA datelor este asigurată prin măsurile care se iau de către proiectantul BD, dar şi de către benefidar, pentru protejarea datelor stocare

împotriva unor incidente - evenimente voite, dar şi a unor accidente -evenimente nevoite.

1.

2.

3.

4.

Autorizarea şi controlul accesului la date constă în identificarea

utilizatorilor şi restricţionarea accesului acestora, pentru diferite operaţii de prelucrare.

Viziunile/vederile/tabele virtuale- views- sunt partiţii logice ale BD definite pentru diferiţi utilizatori.

Procedurile .1peciale sunt rutine, oferite de SGBD, care efectuează

anumite operaţii asupra datelor şi care sunt accesibile anumitori utilizatori.

Criptarea este operaţia de codificare a datelor în vederea stocării sau

transmiterii datelor. În acest sena, se folosesc o mulţime de tehnici

specifice: parole, algoritmi de criptare/decriptare, rutine speciale etc.

În VFP. Se poate lucra cu tabele libere- free table (rezultă fişiere tip DBF),

caz în care securitatea datelor este scăzută. Se poate lucra şi cu noţiunea de

bază de date prin comanda CREA TE DAT ABASE (rezultă fişier tip DBC), caz în care securitatea datelor creşte.

Se poate lucra cu viziuni prin comanda SQL CREA TE VIEW, dar nu sunt îndeplinite toate caracteristicile acestora.

Pentru administratorul BD VFP oferă puţine instrumente pentru întreţinerea BD. Majoritatea operaţiilor administratorul BD le va efectua prin proceduri proprii.

Criptarea nu este asigurată automat de VFP.

66

Rezumat

Capitolul începe cu definirea conceptului de BD şi a noţiunilor aferente.

Pentru noţiunea de BD este dată o definire originală, completă: un ansamblu

de colecţii de date în memoria externă cu următoarele caracteristici:

organizat, pe trei niveluri - conceptual, logic, fizic;

structurat, conform unui model de date pentru 130 - ierarhic, reţea,

relaţional, orientat obiect;

coerent, prin restricţiile de integritate şi protecţia datelor;

cu o redundanţă minimă şi controlată, prin implementarea unui model

de date şi prin aplicarea unei tehnici de proiectare;

accesibil mai multor utilizatori în timp util, adică informaţiile din BD

pol fi folosite de către mai mulţi utilizatori atunci când e nevoie de

acestea.

Se dă un exemplu de BD relaţională pe care se exemplifică definiţia noţiunii

deBD.

După ce s-a definit noţiunea de organizare a datelor, s-a prezentat evoluţia

acesteia pentru memoria externă, pornind de la fişiere - primul mod de

organizare a datelor în memoria externă şi ajungându-se la ultimele tipuri de

baze de date, cele orientate obiect. In această evoluţie, s-au urmărit câleva

aspecte - caracteristici comparative: structura de datt;,.- mod':!l de prelucrare a

datelor, redundanţa datelor, software-ul utilizat. ·-"

Pentru a se fundamenta necesitatea organizării datelor in memoria externă,

comparativ cu memoria internă, s-a prezentat un tabel în care se găsesc cinci

criterii: cost, viteză, capacitate, persistenţă, organizare.

În continuare, se defineşte noţiunea de fişier şi, acesteia, i se prezintă câteva

dintre cele mai importante aspecte de organizare a datelor: operaţii,

structura, modul de organizare, modul de acces.

O parte consistentă din capitol este destinată organizării datelor în baze de

date conform unor modele de date.

Mai întâi sunt prezentate principalei noţiuni necesare: informaţia, modelul

de structură, modelul de date, tipuri de modele de date, schema conceptuală,

elementele componente ale unui model logic de date (definirea structurii,

operatorii, regulile de integritate).

67

Page 6: BD

După aceea, sunt prezentate cele patru modele logice de date

fundamentale/de bază, întâlnite la organizarea datelor în baze de date:

ierarhic, reţea, relaţional, orientat obiect. Fiecare model este prezentat în

acelaşi mod: elementele componente, carac:terizare generală. În acest fel se

pot urmări, comparativ, cum se regăsesc noţiunile prezentate la începutul

capitolului: în fiecare model în parte.

Capitolul se încheie cu o sinteză privind protecţia bazelor de date. Sunt

luate în considerare cele două aspecte ale protec1ici: securitatea, integritatea.

Fiecare dintre acestea este descompusă în principalele subactivităţi care

trebuie să fie asigurate într-un sistem de bază de date, de către SGBD şi

administratorul bazei de date.

La fiecare paragraf au fost prezentate soluţii de implementare în VFP,

precum şi în nucleul extins de SQL.

Note bibliografice

Aspecte suplimentare despre organizarea datelor în baze de date se găsesc în

[DA TE04], [RICCO 1) şi (CONNOO].

Referitor la tipurile de modele de date pentru baze de date, se face o bună

prezentare în [RAGEOO] .

Protectia bazelor de date este tratată în majoritatea lucrărilor, sub diferite

aspecte. Exemple de implementare în SGBD relaţional a aspectelor privind

securitatea şi integritatea datelor se găsesc în [VELU02] şi [VELUOO].

Conceptele fundamentale utilizate în acest capitol se regăsesc în [VELI05]

şi parţial în [DATE06] .

Cuvinte-cheie

baza de date caracteristica organizarea datelor redundanţa

fişier

mod de acces la un fişier

68

domeniu de valori colecţia de date structura de date memoria externă mod de organizare a unui fişier model de date

tipuri de modele de date structura modelului de date regulile de integritate model reţea model orientat obiect securitatea datelor

Teste-grilă

schema conceptuală operatorii modelului de date model ierarhic model relaţional protecţia bazei de date integritatea datelor

1. După modelul de date implementat, bazele de date sunt:

a) ierarhice, locale b) distribuite, generalizate c) relaţionale, de conducere d) orientate obiect, specializate e) reţea, de documentare

2. Modul de organizare clasică 1 elementară al fişierelor cuprinde tipurile:

a) organizarea partiţionată b) organizarea secvenţială c) organizarea standard d) organizarea indexat-secvenţială e) organizarea relativă

3. În modelul relaţional pentru baze de date: __ a) definirea legăturilor se face logic prin atribute declarate chei b) domeniul este linia dintr-o tabelă şi nu are nume c) conectivele sunt operatori orientaţi pe tuplu din calculul relaţional d) există restricţia referenţială e) se face trecerea la a treia generaţie de baze de date

4. La organizarea datelor în memoria externă , noţiuni corespunzătoare

sunt: a) câmp - valoare b) caracteristică- câmp c) caracteristică- înregistrare d) câmp- înregistrare e) colecţia de date- fişier

69

,_,

""'"'

......,

-,..,

r-1

r'l

... -,

.-,

r-,

,.....,

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 7: BD

,__

l L

1....

L.

L.

!.....

!.....

~

L...

L

._

.....

5. În modelul ierarhic pentru baze de date:

a) există operatorul de trecere de la o înregistrare la alta într-o tabelă b) există operatorul de adunare c) există noţiunea de tip arbore d) există noţiunea de domeniu de stări e) un nod copil poate avea mai mulţi părinţi

6. Baza de date este un ansamblu de date: a) organizat, structurat b) cu o redundanţă minimă şi necontrolată c) accesibil mai multor utilizatori în timp util d) coerent, modular e) distribuit uniform

7. La evoluţia organizării datelor în memoria externă se au în vedere aspectele:

a) modul de organizare a aplicatiei b) structurile de program c) procedurile de calcul d) transmisia datelor e) redundanţa programelor

8. Componenta de date dintr-un SBD poate conţine: a) sistemul de operare b) sistemul de coduri c) dicţionarul distribuit d) fişierele anexe e) fişiere tip DOC

9. Ansamblul de concepte şi instrumente pentru a realiza schema conceptuală a datelor reprezintă: a) structura de date fizice b) structura programelor c) SGBD d) modelul fizic e) modelul de date

70

1 O. În modelul retea pentnl baze de date: a) definirea obiectelor se face prin tip arbore b) un nod poate avea oricâţi superiori c) un nod poate avea oricâţi subordonaţi d) există noţiunea de tip set e) se pot reprezenta numai legături l:M

11. Visual Foxpro este: a) un limbaj de programare universal b) o bază de date c) un sistem de fişiere d) un SGBD reţea e) un SGBD orientat vizualizat

12. În modelul relaţional pentru baze de date: a) există noţiunea de tip înregistrare b) atributele care au rol în realizarea legăturilor între tabele se numesc

chei compuse c) legăturile între tabele se descriu în LMD d) există noţiunea de schema tabelei e) proiectia, negaţia şi existenţa sunt operatori din algebra relatională

13. În modelul reţea pentru baze de date: a) există noţiunile de nod proprietar şi nod membrti b) există operatori de actualizare într-un set c) există operatorul de localizare a unui arbore d) o înregistrare nu poate fi membră a două realizări ale aceluiaşi tip set e) actualizarea datelor este greoaie

14. Modul de dispunere a înregistrărilor, conform unor reguli, reprezintă pentru un fişier: a) modul de acces b) modul de regăsire c) modul de organizare d) modul de calcul e) modul de programare

71

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 8: BD

15. În modelul ierarhic pentru baze de date:

a) definirea obiectelor se face prin clase de obiecte b) se admit legături 1:1, I:M, M:N

c) există secven{e ierarhice de realizări

d) există operatorul de actualizare într-un arbore

t:) o realizare copil este întotdeauna asociată unei singure realizări părinte

16. Visual Foxpro con{ine:

a) un limbaj procedural b) un limbaj descriptiv

c) un limbaj de descriere a datelor d) un limbaj de manipulare a datelor c) un limbaj utilizator distribuit

17. În modelul orientat obiect pentru baze de date: a) obiectul are identificator, proprietăţi b) obiectul are interfaţă, implementare

c) există caracteristicile fundamentale ale obiectelor: succesiunea şi încapsularea

d) există restri cţia de integritate: orice clasă respectă regulile impuse obiectului din care face parte

c) Ia baza operaţiilor (operatorilor) stau metodele

18. La organizarea datelor în fişiere, nivelurile de referinţă sunt: a) global b) conceptual c) logic d) de ansamblu c) fizic

19. În modelul reţea pentru baze de date:

72

a) există un singur tip înregistrare rădăcină

b) la un subordonat se poate ajunge pe mai multe căi c) există operatori de localizare a unei înregistrări pe baza valorii unui

câmp

d) o înregistrare poate să aparţină mai multor tipuri set c) implementarea modelului se face logic

20. La organizarea datelor în fişiere se au în vedere următoarele

caracteristici: a) limbajul de programare b) actualizarea datelor c) tipul şi frecvenţa operaţiilor pe înregistrări d) volumul de date e) dimensiunea hard discului

21. La organizarea datelor în memoria externă, noţiuni corespunzătoare

sunt: a) fişier - familia de caracteristici b) fişier- valoare c) înregistrare- caracteristică

d) înregistrare- domeniu de valori e) câmp- colecţie de date

22. Modelul de date pentru baze de date este un ansamblu format din: a) concepte b) structura de program c) structura de date d) schema internă e) structura funcţională

•.. ~ -··

23. În modelul relaţional pentru baze de date: a) reuniunea şi proiecţia sunt operatori din calculul relaţional b) într-o tabelă nu trebuie să existe două tupluri cu aceeaşi valo<ţre

pentru ansamblul cheie compusă c) cheia formată din mai multe atribute se numeşte cheie primară d) implementarea modelului se face la nivel logic e) definirea datelor se face prin tablouri bidimensionale numite relaţii

24. Baza de date este un ansamblu de date: a) condus, coerent b) accesibil mai multor utilizatori în timp util c) structurat, cu o redundanţă minimă şi controlată d) organizat, coerent e) administrat, programat

73

,...,

...,

...,

...,

...,

...,

...,

...,

l

,._

,._

...,

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 9: BD

'-

l !'

r ......

~ r ' .....

L-

L-

" 1 ~"_.,

"'""

L-

L-

L-;

L.,.

w

l...;

25. Structura unui fişier oarecare este dată de componentele sale: a) partea de program b) partea de identificare c) partea cu structura fişierului index d) partea de date e) partea de comunicaţie

26. Modul/ metoda de acces la un fişier poate ti: a) indexat-secvenţial

b) nedefinit c) dinamic d) structurat e) standard

27. Elementele /componentele oricărui model de date pentm baze de date sunt: a) regulile de integritate b) regulile de comportament c) regulile de comunicaţie d) definirea procedurilor de calcul e) definirea obiectelor 1 entităţilor

28. După modelul de date implementat, bazele de date sunt: a) generalizate b) specializate c) statistice d) de gestiune e) de conducere

29. În modelul ierarhic pentru baze de date:

74

a) orice acces la un nod se poate face pe mai multe căi b) un nod părinte poate avea mai multe noduri copil c) legătura părinte- copil poate fi 1:1, 1 :M

d) numărul de ierarhii posibile creşte combinatorial cu numărul înregistrări lor

e) există operatorul de localizare a unui arbore

30. Elementele definitorii ale unei baze de date sunt: a) caracteristica b) coleclia de caracteristici de grup c) colecfia de date · d) familia de caracteristici e) colecfia de baze de date

31. Elementele 1 componentele oricărui model de date pentru baze de date sunt: a) definirea entităţi lor 1 obiectelor b) operatorii care acţionează asupra structurii de date c) operatorii aritmerici d) definirea legăturilor dintre entităţi 1 asocierile e) regulile lui Codd

32. În modelul relaţional pentru baze de date: a) definirea obiectelor se face prin tip înregistrare b) tuplul este coloana dintr-o tabelă şi are un nume c) domeniul este un subansamblu al produsului cartezian al mai multor

tabele d) potenţial, orice tabelă se poate lega cu orice tabelă e) cuantificatorii sunt operatori orientaţi pe do!Jleniu, din calculul

relaţional _./ · .

33. În Visual Foxpro se poate lucra- ca stil de lucru: a) prin meniul utilizator final b) prin comenzi c) prin program d) prin generatoarele de date e) prin date

34. În modelul orientat obiect pentru baze de date: a) comportamentul obiectului se indică prin metode b) mesajele sunt cereri de regăsire c) un obiect nu îşi poate deriva datele şi funcţionalitatea din alt obiect d) proprietăţile obiectelor pot fi actualizate e) sunt patru caracteristici fundamentale (de bază) ale obiectelor

75

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 10: BD

35. În modelul orientat obiect pentru baze de date:

a) există restricţia de integritate: accesul la obiecte nu este limitat b) există restrictia de integritate: identificatorul obiectului asigură

integritatea referirii Ia acesta

c) există operatorul privind actualizarea proprietăţilor d) există operaton1l privind actualizarea claselor e) diferite obiecte pot răspunde diferit la aceleaşi mesaje

36. Partea de manipulare a unui model de date pentru baze de date este dată de:

a) definirea entităţi lor b) definirea legăturilor c) definirea atributelor d) regulile de integritate e) regulile de derivare

37. În modelul orientat obiect pentru baze de date: a) conceptul de bază folosit este clasa de tupluri b) obiectul are nume şi interfaţă c) obiectul are nume şi mesaj

d) există operatorul privind identificatorul obiectului e) există caracteristicile obiectelor: mesajul, polimorfismul

38. În modelul relaţional pentru baze de date: a) legăturile între tabele se descriu în LDD b) operatorii relaţionali sunt implementaţi în LDD c) există restricţia tip set

d) există operatorul de localizare a unei înregistrări e) există valoarea NULL

39. La organizarea datelor în fişiere, nivelurile de referinţă sunt: a) conceptual b) programator c) global d) de reţea c) de ansamblu

76

40. În modelul ierarhic pentru baze de date:

a) implementarea modelului se face fizic

b) implementarea modelului se face logic

c) dacă un tip de înregistrare nu are realizări atunci nici tipurile de

înregistrare descendente nu au realizări

d) există operatorul de localizare a unui arbore

e) există operatorul de localizare a bazei de date

41. Elemente definitorii ale unei baze de date sunt:

a) colecţia de proprietăţi

b) colecţia de date

c) familia de caracteristici

d) familia de înregistrări

e) caracteristica

42. La evoluţia organizării datelor în memoria externă se au în vedere

aspectele:

a) modul de organizare a datelor

b) nivelurile de structurare a datelor

c) modul de prelucrare a datelor

d) redundanţa programelor

e) software-ul aferent

43. În modelul relaţional pentru baze de date:

a) există restricţia entităţii

b) există noţiunea de cheie internă

c) există noţiunea de cheie externă

--J , . -.

d) T(al :D l, ... , an:Dn), unde T - tabelă, ai - atribut, Di - domeniu,

este schema relaţională

e) ordinea liniilor şi coloanelor dintr-o tabelă are o mare importanţă

pentru creare

77

~

l

-"""'

~

..., ,

...,

,....,

-.....

...,

"""1

~

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 11: BD

~

r 1

1....1

,.

1....1

....

l...t

...._

i....l

1....1

\....

,_,

44. Protecţia BD, sub aspectul securităţii datelor, se referă la: a) criptarea

b) controlul concurenţei c) viziunile

d) co~trolul cheilor e) salvarea

45. Protecţia BD, sub aspectul integrităţii datelor, se referă la: a) viziunea administratorului de reţea

b) procedurile manuale

c) controlul accesului concurent

d) codificarea datelor

e) salvarea şi restaurarea

46. Protecţia BD este asigurată prin:

a) securitatea datelor

b) integritatea programelor

c) securitatea programelor

d) software de reţea e) SGBD

Răspunsuri

1 : - ; 2 : b, d, e ; 3 : a, c ; 4 : b, e ; 5 : c ; 6 : a, c ; 7 : - ; 8 : d ; 9 : e ; 10: b, c, d;

11 :- ; 12: d; 13: a, b, d, e; 14: c; 15: c, d, e ; 16: a, b, c, d; 17: a, b, c ; 18 : c, e ;

19 : b, c, d; 20 : b, c, d; 21 : - ; 22 : a, c ; 23 : d, e ; 24 : b, c, d ; 25 : b, d; 26: c;

27 : a, e; 28 : - ; 29 : b, c, d, e ; 30 : a, c, d ; 31 : a, b, d ; 32 : d, e ; 33 : b, c ; 34 : a, b, d ;

35 : b, c, d ; 36 : - ; 37 : b ; 38 : a, e ; 39 : - ; 40 : a, c, d ; 41 : b, c, e 42 : a, b, c, e ; 43 : a, c ; 44 : a, c ; 45 : c, e ; 46 : a, e

78

Probleme

1) Să se descrie, pe scmt, o activitate dintr-o firmă pentru care se poate

realiza un SBD în VFP. Din descriere sa se construiască schema

conceptuală a BD. 2) Să se creeze în VFP o bază de date şi în cadrul ei tabelele conform

schemei conceptuale de la problema l ). Se va da o soluţie în VFP şi

apoi în SQL. 3) Să se identifice în VFP elementele din definiţia unei BD.

4) Să se identifice şi să se utilizeze în VFP şi în SQL elementele

modelului de date relaţional. 5) Să se identifice în VFP două aspecte privind protectia datelor.

. ~··

79

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 12: BD

Capitolul3

3.1. Aspecte organizatorice privind realizarea unei baze de date 3.2. Obiectivele urmările la realizarea unei baze de date 3.3. Etapele pentru realizarea unei baze de date 3.4. Aspecte privind eficienţa bazelor de date Rezumat

Note bibliografice Cuvinte-cheie

Teste-grilă şi probleme

3 Realizarea bazelor de date Aspecte metodologice

3.1 Aspecte organizatorice privind realizarea unei baze de date

Realizarea unei baze de date se face respectând o anumită metodologie de lucru. O astfel de metodologie respectă, în cea mai mare parte, activităţile

care se parcurg pentru realizarea unui sistem informatic (vezi [LUSA03]). De fapt, o aplicaţie cu baze de date este un caz particular de sistem informatic şi anume unul care are organizarea datelor în memoria externă în

baze de date. În acest fel, activitatea de realizare a unei baze de date trebuie

să înceapă, conform oricărui management de proiect, cu organizarea acesteia, adică pregătirea acţiunii. În cadrul acestei pregătiri, ţinând cont de

obiectivele urmărite pentru realizarea bazei de date, se va face un fel de inventar a ceea ce este un minim necesar pentru a se putea realiza baza de

date. Se poate astfel, din start, hotărî dacă activitatea va demara imediat sau dacă mai sunt necesare alte acţiuni pregătitoare. Aspectele organizatorice ar

trebui să fie stabilite independent de SGBD care va, fi utilizat pentru realizarea aplicaţiei cu BD. _..' · ·

Prezentăm, în continuare, câteva aspecte mai importante ur~ărite în activitatea de organizare a unei baze de date:

1. Organizarea intrărilor de date. Informaţiile care se vor încărca iniţial în BD, precum şi cele care se vor utiliza pentru actualizare, pot proveni

din diferite surse. De cele mai multe ori, aceste surse furnizează date

care trebuie filtrate sau transformate şi nu ca atare. Aşadar, organizarea

intrărilor de date pentru o BD se referă la:

- sursa datelor, adică se ţine cont de documente primare existente, de posibilele fişiere care există în alte aplicaţii operaţionale şi care pot furniza date, de procedurile de calcul care pot genera datele necesare

etc.;

81

~

....,

,...,

1"""\

,...,

...,

~

,...,

...,

,...,

. ~

Page 13: BD

~

t.....

~

L..

"-

1

L

L

L

r L

r

'-'

..._

1_.

i...l

obţinute cu VFP instalat cu opţiunea Standalone - nu este necesar ca pe calculator să fie instalat VFP la rularea aplicaţiei.

5. Dezvoltarea sistemului

Imediat după darea în exploatare a BD, în· mod continuu, pot exista factori pe1turbator.i care generează schimbări în BD. Schimbările necesare trebuie preluate de BD uşor şi "din mers". Factorii pot fi: organizatorici, datoraţi progresului tehnic, rezultaţi din cerinţele noi ale beneficiarului, din schimbarea metodologiilor etc. În VFP dezvoltarea aplicaţiei cu BD poate fi fli.cută relativ uşor datorită apartenenţei sale la categoria de SGBD relaţional.

3.4. Aspecte privind eficienţa bazelor de date

Realizarea unei aplicaţii cu BD implică un mare consum de resurse, pe o perioadă îndelungată, datorită complexităţii unei astfel de activităţi. De aceea, un astfel de efort nu poate fi făcut fli.ră un calcul de eficienţă. Efectele directe şi indirecte ale bazelor de date conduc spre eficienţă, mai ales pentru aplicaţiile mari şi complexe, acolo unde alte produse informatice nu fac faţă.

Efectele realizării şi utilizării BD rezultă, în mare parte, din avantajele oferite de o astfel de soluţie informatică:

elimină redundanţele necontrolate prin modul de organizare;

creşte productivitatea activităţii informatice prin aplicarea unor tehnici de proiectare;

oferă suport informa~onal optim pentru conducere şi execuţie prin sursa de informaţii pe care o oferă;

permite interogarea datelor de către toate categoriile de utilizatori prin facilităţile de utilizare oferite de SGBD;

conduce spre aplicaţii deschise prin numeroasele tehnologii informatice care sunt integrate cu tehnologia bazelor de date într-un SBD evoluat.

Efortul depus pentru realizarea şi întreţinerea unei BD este considerabil şi de aceea investiţia necesară trebuie fundamentală pentru a putea fi recuperată.

Fundamentarea investiţiei pentru o aplicaţie 'cu BD se face prin studiul de fezabilitate (analiza preliminară) care va conţine un studiu al costurilor şi o evaluare a efortului de realizare şi întreţinere.

98

f;-1; ·i"l> :li~· ~~~;; ~~,;. Etapele care trebuie parcurse pentru determinarea eficienţei BD: ·. · I. Studiul costurilor iniţiale- de realizare:

• costul software necesar pentru organizarea datelor în BD;

• costul hardware necesar pentru stocarea structurii BD şi apoi a datelor;

• costul impus de trecerea de la sistemul existent - manual, informatizat cu soluţie cu fişiere, la noua soluţie cu SBD;

• costul resurselor necesare realizării BD - umane, materiale, informaţionale etc.;

• costul consultanţei tehnice privind decizia de a se realiza o BD şi

apoi privind modalitatea ei de realizare. 2. Evaluarea costurilor de funcţionare a BD:

• costul de punere în funcţiune care include testele şi implementarea BD la parametrii proiectaţi;

• costul de exploatare curentă a BD de către beneficiar cu asisten!ă tehnică de la proiectant;

• costul de întreţinere şi dezvoltare a BD de către proiectant în colaborare cu beneficiarul. Dezvoltarea trebuie să poată fi făcută cu un efort dU mai mic şi fără a se întrerupe funcţionarea BD.

3. Calcule de rentabilitate privind întregul proces de realizare şi

funcţionare a BD presupune: • utilizarea unor metode specifice activităţii de rc;:,alizare a calculelor

de rentabilitate privind BD. Un exemplu de e·astfel de metodă este Analiza Cost-Beneficiu.

• utilizarea unor produse software, dar pot fi şi hardware, specializate pentru realizarea şi exploatarea BD. Acestea, prin facilităţile de produse dedicate pe care le oferă cresc performanţa, dar pot scădea portabilitatea BD. De exemplu o BD de regăsire documentară

realizată şi exploatată cu un SGBD dedicat are performanţe de interogare remarcabile dar portabilitatea este redusă.

Rezumat Activitatea de realizare a unei baze de date este complexă şi cere un efort considerabil. De aceea, ea trebuie realizată sistematic, după o metodologie adecvată.

Înainte de a se realiza o bază de date, se are în vedere organizarea acestei activităţi - intrările, memorarea datelor, protecţia datelor, legăturile datelor -

99

Page 14: BD

astfel încât să se poată decide dacă merită sau nu demararea acţiunii

respective. După luarea deciziei că baza de date este posibil a fi realizată, se fixează câteva dintre obiectivele importante ale acestei activităţi: partiţionarea,

deschiderea, eficienţa, reutilizarea, regăsirea, accesul, modularizarea, protecţia, redundan1a. independenţa. În continuare, pentru realizarea bazei de date, se poate urma o metodologie anume sau se pot parcurge etapele 1 activităţile prezentate: analiza de sistem, proiectarea noului sistem, realizarea componentelor logice, punerea în funcţiune, dezvoltarea. Atât pe parcursul realizării unei baze de date cât şi după aceea la exploatarea ei, trebuie avută în vedere eficienţa acestei activităţi. Acest lucru este important pentru că investiţia pentru realizarea unei baze de date este mare şi ea se recuperează în timp îndelungat. Eficienţa bazei de date va avea în vedere câteva aspecte: studiul costurilor iniţiale, evaluarea costurilor de funcţionare, calcule de rentabilitate.

Note bibliografice Aspectele legate de organizarea şi obiectivele unei baze de date sunt tratate, în special, în cărţi care abordează aspectele teoretice ale acestui domeniu al informaticii [VELI05],[VELU03], [CONNOO], [DATE04], [DATE06]. Metodologii de realizare a bazelor de date sunt prezentate în cărţi care îmbină aspectele teoretice cu soluţii practice [VELU03], [LUSA03], [DIAZOO]. Cartea noastră însă, a avut, pentru acest capitol, ca principale surse: experienţa autorilor în domeniul realizării aplicaţiilor informatice, precum şi sursele bibliografice [RAGEOO] , [RICCOl], unde sunt prezente activităţi şi exemple de aplicare a lor.

Cuvinte-cheie organizarea bazei de date metodologii de realizare a BD analiza structurală analiza dinamică schemele bazei de date

IDO

obiectivele bazei de date analiza de sistem analiza funcţională proiectarea bazei de date eficienţa bazei de date

i.·.

?;:!; ~-~ ... ;.·

.....

Teste-grilă

l. În metodologia de realizare a BD diagrama entitate-asociere rezultă 1 în urma:

a) analizei funcţionale b) proiectării dinamice ~

c) analizei structurale d) analizei dinamice e) proiectării logice 'î

2. La organizarea unei baze de date se urmăresc aspectele: a) organizarea intrărilor de date b) organizarea ieşirilor de date n

c) organizarea memorării datelor d) organizarea prelucrărilor finale e) organizarea programelor ,...,

3. Eficienţa unei baze de date poate fi evaluată prin: a) studiul organigramei întreprinderii ,.., b) studiul costurilor iniţiale c) calcule de rentabilitate d) calcule relaţionale e) algebra relaţională

4. În metodologia de realizare a BD, construirel! .. unei viziuni (view) se face prin: ~

a) proiectarea schemei externe b) proiectarea schemei conceptuale c) proiectarea schemei interne 'î d) analiza logică 1 e) analiza globală

5. Obiective urmărite în realizarea unei BD sunt: ...,

1

a) aceleaşi date nu pot fi utilizate în moduri diferite b) creşterea preţului de cost pentru memorarea datelor c) cererile de regăsire trebuie să fie doar prestabilite d) aplicaţiile cu baze de date trebuie să poată reutiliza un fond de date

existent deja e) redundanţa minimă dar necontrolată -

101 -

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 15: BD

'-

1....1 6. Aplicaţiile cu baze de date pentru domeniul economic se deduc, în

mare parte, din funcţiile întreprinderii: a) coordonare-control b) cercetare-dezvoltare

..._ c) comercială

d) producţie e) organizare

._. 7. Tipurile de utilizatori pentru baze de date sunt: a) întreprinderi mici şi mijlocii

'-" b) agregaţi

c) intensivi d) finali

....... e) de specialitate

8. În metodologia de realizare a unei BD etapa de proiectare conţine: a) alegerea SGBD-ului b) alegerea personalului implicat c) alegerea entităţilor din lumea reală d) proiectarea dinamică

' e) proiectarea schemelor

9. Într-o metodologie de realizare a BD activitatea de analiză se desfăşoară sub aspectele:

'-- a) informaţional static b) structural c) modular

1.....1 d) obiectual e) funcţional

-...J 10. Pentru realizarea unei BD, la alegerea SGBD se ţine cont de

aspectele: a) cerinţele legislative

1.--b) cerinţele aplicaţiei

c) facilităţile tehnice SGBD d) limbajele de programare universale e) limitele utilizatorilor

.....

;..1 102

~~r ,tt ]lăspunsuri

1 : c ; 2 : a, c ; 3 : b, c ; 4 : a ; 5 : d ; 6 : b, c, d ; 7 : c, d, e ; 8 : a, e

; 9 :b, e ; 10: b, c;

Probleme

1. Pornind de la funcţiile întreprinderii să se aleagă o acti viwte pentru realizarea unei BD. Să se identifice aspectele privind organizarea

unei astfel de BD. 2. Pentru realizarea unei BD alese să se descrie, pe scurt, obiectivele

sale . 3. Pentru dezvoltarea unei BD alese să se realizeze studiul situaţiei

existente. 4. Pentru dezvoltarea unei BD alese să se realizeze analiza de sistem

sub cele trei aspecte: stmcturală, funcţională, dinamică. 5. Să se aleagă un SGBD pentru realizarea BD, identificând o serie de

criterii care se au în vedere. 6. Pentru BD aleasă, pornind de la diagrama entitate-asociere, să se

proiecteze schemele BD: conceptuală, logică, fizică. 7. Pornind de la schema conceptuală a BD alese să se . .scrie în limbajul

din VFP şi/sau în SQL: ' crearea bazei de date; crearea structurii de date, inclusiv restricţiile de integritate;

actualizarea structurii de date; încărcarea datelor în tabele; actualizarea datelor în cele trei moduri: adăugare, modificare, ştergere;

să se vizualizeze datele; să se realizeze accesul la date în cele trei moduri: secvenţial, direct după

cheie, direct după număr de realizare. 8. Pentru BD aleasă să se facă un calcul de eficienţă.

\03

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 16: BD

Capitolul4

4.1. BDR bazele 4.2. Tehnica normalizării 4.3. Calculul relaţional. Algebra relaţională

Rezumat Note bibliografice

Cuvinte-cheie Teste-grilă şi probleme

4 BAZE DEDATE RELAŢIONALE (BDR)

4.1. BDR bazele

Teoria BDR a fost primită întotdeauna favorabil de către specialişti atât

datorită abordărilor teoretice - fundamentare riguroasă, cfit şi datorită

performanţelor practice- optimizarea bună a timpului şi spaţiului. Bazele de date relaţionale - BDR utilizează modelul de date relaţional şi

noţiunile aferente (vezi cap.2) şi fac parte din generaţia a II a de baze de

date. BDR au o solidă fundamentare teoretică, în special prin cercetările de la

ffiM conduse de E. F. Codd, care a dezvoltat teoria relaţională. Aceasta se

bazează pe teoria matematică a ansamblurilor şi şi este formată dintr-un set de concepte, metode şi instrumente utilizate pentru realizarea aplicaţiilor cu

baze de date relaţionale petfonnante. BDR este un ansamblu organizat de tabele 1 relaţii împreună cu legăturile

dintre ele. .J

Pentru că bazele de date au evoluat din fişiere şi pentru că fişierele se utilizează în continuare alături de BDR, o comparatie între conceptele· dintre cele două modalităţi de organizare a datelor în memoria externă est.e

necesară. Vom prezenta, în continuare, câteva dintre avantajele lucrului cu.

BDR faţă de lucrul cu fişiere .

Criteriu de compara tie BDR Fişiere

1. Independenta datelor fată logica şi fizică fizică

de orogramele de aplicaţie f. Niveluri de structurare a conceptual, logic şi fizic logic şi fizic

datelor ~ .Deschidere şi portabilitate mare mica ~ - Reprezentarea şi utilizarea simplificat prin modelul de complicat

datelor date relaţional ~· Structura de date se în dictionarul BD în programe ~tn:ază

-

105

,...,

-.

,._

~

-

,...,

-......

.-..

,.-,

~

Page 17: BD

1 .._

r

......

r

~

r

.....

'--'

.......

.......

-.....

........

.....

.,_;

,. ··o:.

În VFP: nu se foloseşte niciun limbaj bazat pe algebra relational. Elemente

de algebră relaţională se regăsesc atât în limbajul procedural propriu cât şi

în nucleul extins de SQL, prin construcţia unor expresii relaţionale cu

operanzi tabele, iar operatorii relaţionali pot fi proiecţia, selecţia, jonctiunea.

Astfel, în li~bajul din VFP există instrucţiunile COPY TO pentru proiecţie

şi JOIN pentru joncţiune. În nucleul extins SQL există comanda SELECT

care are clauzele FIELDS cu DISTINCT pentru proiecţia, WHERE pentru

selecţie, FROM din două tabele combinat cu WHERE pentru joncţiune.

Exemplu. Pornind de la tabela BENI să se aplice operatorul relaţional de

proiecţie astfel: în tabela bl rezultată se vor găsi două atribute - locbb şi

denb.

în limbajul din VFP:

USE beni

INDEX ON denb+locb TO fis 1 UNIQUE

COPY TO bl FIELDS denb, locb

în SQL:

SELECT denb, locb DISTINCT FROM beni

Reprezentarea grafică a proiecţiei:

BENI.dbf codb denb locb 1 ibm Bucuresti 2 scop Bucuresti 3 ibm Bucuresti

sirb telb Eminescu 0722123456 operei 0721123456 mosilor 0733123456

1 proiecţie după atributele denb şi locb bl.dbf denb locb ibm Bucuresti scop Buuresti

Transformarea relaţională

Domeniul denumit transformarea relaţională oferă o putere de regăsire

echivalentă cu cea din calculul relaţional şi algebra relaţională .

122

;\t: Se bazează pe transfonnarea (mapping) unui atribut sau grup de atribute

într-un atribut dorit prin intermediul unor relaţii. Altfel spus, se poate

transforma oricând o expresie din algebra relaţională în alta din calculul

relaţional şi invers, echivalentă ca funcţionalitate (vezi în cartea [YELUOO]).

SGBDR realizează această transformare pentru optimizarea regăsirii.

Rezultatul este o relaţie 1 tabelă care se poate utiliza într-o altă 1ransformarc

relaponală.

În VFP: se îmbină elemente de calcul relaţional şi algebră relaţională, aşa

cum arătam mai sus. Orice expresie din algebra relaţională poate fi

transformată oricând intr-una echivalentă în calculul relaţional şi invers.

VFP conţine un nucleu extins de limbaj relaţional bazat pe transformare şi

anume SQL. Acesta face transformarea automat.

Pentru expresiile relaţionale scrise în limbajul din YFP, acesta nu face

automat transformările relaţionale .

Grafica relaţională

Domeniul denumit grafică relaţională oferă o interactivitate mare pentru

construirea cererilor de regăsire relaţională.

Utilizatorul specifică cerea alegând sau completând un ecran structurat

p~ J

Poate fi folosit de către toate categoriile de utilizatori în irif~rmatică. ln VFP: există o implementare de limbaj QBE prin asistentul Wizard Query.

Acesta permite construirea interactivă a unor cereri de regăsire prin

utilizarea unor primitive grafice. Utilizatorul parcurge paşii indicaţi de

asistent şi completează sau bifează anumite opţiuni la alegere.

Rezumat

Teoria relaţională este foarte bine fundamentală teoretic şi a fost dezvoltată

riguros la IBM de către cercetătorul E. F. Codd şi echipa lui .

Se defineşte noţiunea de bază de date relaţională - BDR ţinând cont de

modelul de date relaţional. Se face o comparaţie a noţiunilor utilizate în

BDR cu cele utilizate la lucrul cu fişiere.

\23

Page 18: BD

Realizarea unei aplicafii cu BDR este o activitate complexă, care presupune

obligatoriu proiectarea bazei de date. În acest sens se folosesc diferite

tehnici, dintre care cea mai utilizată este normalizarea. Scopul tehnicii de

normalizare este de a elimina, în procesul de proiectare a BD, anomaliile de

actualiz.are. Sunt prezentate cele cinci forme nomzale - FN 1 la FNS, care se construiesc

în procesul de proiectare a unei BDR. În continuare, se prezintă un exemplu practic de proiectare a unei BDR prin

tehnica de normalizare, ajungându-se la o schemă conceptuală. Sunt

exemplilicate doar primele trei forme normale, deoarece acestea sunt cele

mai utilizate în aplica!iile practice. În finalul capitolului se prezintă o sinteză a domeniilor imp01tantc din

teoria relatională pe baza cărora au fost construite limbajele relaţionale: calculul relaţional, algebra relaţională, transfomzarea relaţională, grafica

relaţională. Fiecare dintre aceste domenii este definit pe scurt, iar apoi sunt

prezentate elemente de implementare în VFP.

Note bibliografice Elemente de teoria relaţională sunt prezentate în toate titlurile bibliografice

care se referă la BDR [DATE04]. [VELU05], [CONNOO]. [DATE06] etc.

Pentru partea de proiectarea BDR prin tehnica normalizării - dependenfe

funqionale, forme normale, constrângeri - dar şi pentru algebra relaţională ş1 calculul relaţional, se găsesc explicaţii şi exemple didactice în [RICCOl].

Cuvinte-cheie

teoria relaţională

selec)ie

reuniune

diferenlă

baze de date relaţionale - BDR

proiectare BDR

forme normale

124

proiecţie

joncţiune

intersecţie

produs cartezian

CoddE.F.

normalizarea

anomalii de actualizare

~·:~ ~({_

dependenţe funcţionale

expresia relaţională

cuantificatorii

operatorii relationali

transformarea relaţională

Teste-grilă

l. O tabelă este în FN3 dacă:

calculul relaţional

calculul predicatelor

algebra relaţională

limbaje relaţionale

grafica relaţională

a) este în FN2 şi fiecare atribut noncheie depinde în mod netranzitiv de

cheia tabelei

b) este în FNl şi fiecare atribut cheie depinde tranzitiv de atributele

noncheie

c) este în FN2 şi are dependenţe complete

d) este în FNl şi are dependenţe funcţionale incomplete

e) este în FN2 şi are cel puţin o dependenţă funcţională completă între

atributele noncheie şi cheia tabelei

2. Calculul relaţional:

a) are drept construcţie de bază expresia de calcul tuplu sau ~xpresia de 1· •••

calcul domeniu . -~

b) este implementat în limbajul ISBL

c) conţine operatorul de joncţiune

d) stă la baza limbajelor procedurale universale

e) foloseşte noţiunea de formulă bine definită

3. Se dă tabela Tl: CODSTUD NUMESTUD NOTA DATAN

5 Ion 10 10.10.84 Il An da 10 10.11.83 2 Ion 10 08.08.82

..._ll__ Ion 9 22.02.84

125

......,

......,

_,

.,

......

,....

,...,

......,

-"\

,...,

....,

....,

"...

~

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 19: BD

L

r

L

L.

L...o

.......

.....

1.-

-L...o

'-'

i....

~

.....,

trui tabela T2· .............. _ ---- ......... - ", _____ ---------

NUMESTUD NOTA Ion 10 Andn 10 Ion 9

aplicând operatorul relaţional de:

126

a) selecţie

b) joncţiune

c) cuantificatorul existenţial

d) proiecţia

e) intersecţia

4. La proiectarea BDR prin tehnica normalizării:

a) se înlătură anomalii de actualizare doar dacă se ajunge până în FN3

b) se înlătură anomalii de actualizare doar dacă se ajunge până în FN4

c) se înlătură anomalii de actualizare doar dacă se ajunge până în FN5

d) se înlătură anomalia de ştergere

e) se înlătură doar anomalia de modificare

5. O tabelă este în FN2 dacă:

a) este în FN3 şi nu are dependenţe complete

b) este în FN 1 şi are doar dependenţe incomplete

c) nu are dependenţe funcţionale complete

d) este în FNI şi fiecare câmp noncheie este dependent funcţional

complet de cheia tabelei

e) este în FNI şi nu are dependenţe funcţionale incomplete

6. Calculul relaţional:

a) se bazează pe calculul predicatelor

b) stă la baza limbajelor relaţionale neprocedurale

c) poate fi orientat pe tuplu având drept construcţie de bază expresia de

calcul tuplu

d) este implementat în limbajul QUEL

e) conţine operatorul de proiecţie

1. O bază de date este în FN l dacă:

a) are cel puţin o tabelă în FN 1

b) este în FN2

c) are toate tabelele în FN 1

d) are o tabelă normalizată

e) are o tabelă nenormalizată

8. O tabelă este în FN 1 dacă:

a) există atribute la nivel de grup

b) există atribute repetitive

c) nu există atribute la nivel de grup

d) există atribute decompozabile

e) nu există atribute repetitive

9. Concepte similare între BDR şi fişiere sunt:

a) tabelă- câmp

b) tabelă- fişier

c) atribut- domeniu

d) atribut- fişier

e) tuplu -fişier

10. În BDR:

a) structurarea datelor se face doar la nivel fizic ·-"

b) structurarea datelor se face la ni vei conceptual

c) structurarea datelor se face la nivel logic

d) structura de date se păstrează în programele de aplicaţie

e) structura de date se păstrează în dicţionarul BD

11. La proiectarea BDR:

a) se foloseşte tehnica normală

b) se obţine diagrama entitate-asociere

c) se pleacă de la schema conceptuală

d) nu se foloseşte noţiunea de cheie primară

e) nu se foloseşte noţiunea de dependenţă funcţională

127

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 20: BD

12. LMD din SGBDR:

a) se pot baza pe diagramele de dependenţă

b) se pot baza pe normalizare

c) se pot baza pe transformarea relaţională

d) se pot baza pe calculul aritmetic

e) se pot baza pe algebra booleana

13. Algebra relaţională:

a) foloseşte cereri de regăsire

b) are operanzi doar tabele

c) are operatorul de reuniune

d) nu are operatorul de intersecţie

e) nu are operatorul de proiecţie

Riispunsuri

1 : a ; 2 : a, e ; 3 : d ; 4 : d ; 5 : d, e ; 6 : a, b, c, d ; 7 : b, c ; 8 : c, e ; 9: b ; 10: b, c, e; 11: - ; 12: c ; 13: a, b, c

Probleme

Se dă tabela BENI(codb N,4; denb C,l5; Iocb C,l5, telb N,IO).

1. Să se actualizeze structura de date a tabelei BENI astfel:

128

se adaugă un nou câmp denumit ibanb şir de caractere, de lungime 24;

se modifică atributul denb astfel încât să fie de lungime 20 de caractere;

se ~terge coloana te/b.

2. Să se realizeze pe tabela BENI acces secvenţial pentru afişarea

beneficiarului care are codul 22 şi apoi acces direct pentru afişarea

beneficiarului care are codul 2.

3. Să se lucreze cu baza de date de desfacere pe cele trei niveluri:

conceptual - se crează baza de date APROV şi în cadrul ei tabelele

PROD, CONTR, BENI, ataşându-se cel puţin două restricţii de

integritate;

logic- se crează tabela virtuală VI formată, din câmpurile denb şi locb din tabela BENI;

fizic- se ordonează tabela BENI după localitate.

4. Să se proiecteze o BDR prin telmica normalizării evidenţiind primele trei forme normale şi obtinând schema conceptuală.

5. Să se afişeze din tabela BENI înregistrările care au codul beneficiarului cuprins între 1 O şi 20 inclusiv.

6. Să se aplice operatorul rela!ional de proiecţie pentru tabela BENI, obţinându-se tabela cu atributul Locb.

7. Să se aplice operatorul rclaţional de ·selecţie pentru tabela BENI,

obţinându-se tabela cu tuplurile pentru care codb> 22 ..

8. Să se aplice operatoml relaţional de joncţiune între tabelele BEN! şi

CONTR, obţinându-se o tabelă cu tuplurile care au atributul localitate egal cu bucureşti.

9. Să se afişeze din tabela BENI doar atributul denb şi tuplurile pentru

care atributul cobd> 100. Să se lucreze cu asistentul Query Wizard.

.-"

129

..,

..-,

..,

.....,

......,

.....,

......,

......,

,....,

...,

-..-,

.......

.....,

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 21: BD

1 ·-1..;

.......

~

~~

........

........

'-"

'-"

.......

~..o'

.......

......

Note bibliografice

Pentru realizarea acestui capitol, autorul a valorificat experienţa sa de analiză şi proiectare a numeroase aplicaţii cu baze de date dar şi surse bibliografice . Pentru definirea conceptului de BDOO s-au folosit referinţele [EMBL98] iar pentru partea de proiectare [RICCOl], [DIAZOO]. Elemente de implementare a tehnologiei orientate obiect în sistemele relaţionale se găsesc în [VELU03] şi [VELUOI].

Cuvinte-cheie

tehnologia orientată obiect clase de obiecte metode identificator de obiect moştenirea

diagrama obiectelor persistenţa

Teste-grilă probleme

1. Programarea vizuală în VFP este o :

a) tehnică de distribuire a datelor

baze de date orientate obiect obiecte proprietăţi

ierarhii de clase proiectarea orientată obiect specificaţiile obiectelor reutilizarea

b) modalitate de reprezentare a datelor în BDR

c) metodă multimedia distribuită

d) tehnică de programare orientată obiect

e) tehnică de programare structurată

2. Dezvoltarea generaţiei a treia de BD se realizează în condiţii specifice date de:

a) organizarea BD

b) noile tipuri de aplicaţii informatice

c) contextul informatic

d) utilizatorii BD

e) beneficiarii BD

142

3. Tehnici de implementare a BDOO sunt:

a) portabilitatea, partiţionarea

b) gestiunea mediului, reprezentarea obiectelor

c) gestiunea persistcnţei, gestiunea memoriei d) extensibilitatea, distribuirea majoră e) flexibilitatea, portabilitatea

4. În procesul de proiectare a BDOO obiectele pot fi grupate. după structura lor, astfel:

a) compuse, complexe b) simple, compozite c) agregate, concatenate d) complexe, congruente e) asociate, agregate

5. La proiectarea unei BDOO se pot utiliza metodele: a) diagrama obiectelor b) specificaţiile obiectelor c) normalizarea d) diagramele de dependenţă e) distribuirea obiectelor

6. În BDOO trebuie implementate caracteristicile de bază (fundamentale) ale obiectelor: .-'

a) fncapsularea, polimorfismul, partiţionarea b) compunerea partiţionarea c) succesiunea, flexibilitatea d) încapsularea, succesiunea, polimorfismul e) moştenirea, compunerea, flexibilitatea

7. Caracteristici ale claselor de obiecte implementate în VFP sunt: a) ierarhia b) încapsularea c) containere d) controale e) metode

143

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 22: BD

8. Caracteristici ale BDOO sunt: a) permite abordarea unui domeniu limitat de tipuri de date

b) structura de date este mult complicată c) independenţa datelor faţă de programe este parţială el) se tratează în mod unitar datele, programele şi comunicaţia c) asigură comunicaţia atât între date cât şi între programe

9. Dezvoltarea BDOO a fost favorizată de următoarele aspecte: a) evoluţia limbajelor de programare procedurale b) apariţia limbajelor de asamblare c) apariţia datelor de tip text d) apariţia sistemelor relaţionale c) apariţia datelor de tip multimedia

1 O. Concepte din BDOO sunt: a) tipuri de obiecte b) tabele c) metode d) tupluri c) mesaje

Răspunsuri

1 : d ; 2 : b, c ; 3 : b, c ; 4 : b, e ; 5 : a, b ; 6 : d ; 7 : a, b ; 8 : d, e 9 : e ; 1 O : a, c, e

Probleme Notei. Exemple de probleme rezolvate în VFP obiectual vezi în capitolul 7.

1. Se dă secvenţa de instrucţiuni în VFP, pentru programare orientată obiect:

ferUnu = CREATEOBJECT ("Clasa") ferUnu.ADDOBJECT )"btnMesaj", "Cmesaj") ferUnu.ADDOBJECT ("btnStop", "Cstop") ferUnu.SHOW READ EVENTS DEFINE CLASS Clasa AS Form

left = 20 top = 20

144

height = 200 width=220 caption = "Fereastră" PROCEDURE sfârăit CLEAR EVENTS

ENDDEFINE DEFINE CLASS cmesaj AS CommandButton

left = 20 top = 100 height= 30 width =50 caption = ''MESAJ" vizible = .T. PROCEDURE click

= MESSAGEBOX )"Mesaj de test") ENDDEFINE DEFINE CLASS Cstop AS Cmesaj

left = 80 caption = '~STOP" PROCEDURE Click

THISFORM.RELEASE ENDDEFINE

/

-~-~

Să se identifice: clasele de obiecte, obiectele, proprietăţile, metodele, mesajele.

2. Să se codifice o clasă de obiecte nouă bazată pe una existentă deja. Noua clasă va avea două proprietăţi şi o metodă în care se va referi una dintre proprietăţi.

3. Să se instanţieze un obiect pentru o clasă de obiecte existentă, care a fost declarată de utilizator. Să se refere prin calificare o proprietate şi

o metodă. 4. Să se definească o subclasă având ca superclasă una existentă deja,

care este oferită standard de sistem. Se va defini în subclasă o proprietate suplimentară, faţă de cele moştenite, precum şi cod sursă suplimentar într-o metodă nouă.

5. · Să se definească o clasă care să aibă două proprietăţi şi o metodă, toate protejate, aplicându-se astfel caracteristica de încapsulare.

145

-,

....,

,.....,

.......,

,.....,

-,

-,

"'1

,..., 1

~

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 23: BD

-

~"....,

......

........

'-'

......

......

1...1

.......

Într-o BDD utilizatorul formulează cereri de regăsire distribuite, iar acestea

sunt prezentate pe baza unui flux de prelucrare, într-o diagramă, descrisă

apoi pas cu pas. Pentru utilizator exploatarea BDD trebuie să se facă în acelaşi mod ca şi pentru o BD locală, sarcina de a asigura diferite niveluri de transparenţă

revenind SGBD distribuit.

Note bibliografice Sinteza din acest capitol este o iniţiere în BDD şi a fost construită din

[VELUOO), [CONNOO), [DATE04]. Aspecte suplimentare se găsesc în referinţa bibliograflcă (COD099), dar şi în referinţele care tratează sistemele de bază de date - database systems.

Cuvinte-cheie

arhitecturi de BD

reţele de calculatoare

distribuirea datelor

accesul concurent

tipuri de BDD

Teste-grilă

caracteristici BDD

baze de date distribuite - BDD

localizarea datelor

niveluri de referinţă în BDD

cereri de regăsire distribuite

1. în structura unei BDD se regăsesc schemele:

a) externă de sistem

b) conceptuală globală

c) externă locală

d) internă globală

e) internă de flux

l54

2. Din fluxul de prelucrare a unei cereri distribuite fac parte operaţiile: a) SGBDD evaluează şi descompune cererea globală b) executorul distribuit lucrează cu un catalog (dicţionar) de structură

globală

c) executorul distribuit împarte cererile locale în subcereri d) sistemul de operare interoghează BD locală şi află răspunsul e) SGBD local compune răspunsurile locale cu ajutorul catalogului de

structură globală

3. Care din următoarele tipuri de baze de date pot fi într-un sistem distribuit ? : 1) compuse, 2) centralizate, 3) multiplicate, 4) indexate, 5) partiţionate, 6) compozite.

a) 2, 3, 5 b) 1, 2, 3 c) 4, 5, 6 d) 3, 4, 6 e) 2, 5, 6

4. Caracteristici ale unei BDD sunt:

a) utilizatorul manipulează BDD fără a cunoaşte localizarea datelor b) criteriile după care se distribuie datele depind de conducerea

întreprinderii beneficiare şi de conducerea firmei care produce sistemul

c) datele pot fi duplicate, dar acest lucru este invizibil pent~ utilizator d) coerenţa BDD va fi asigumtă de sistemul de operare

e) concepţia de organizare a unei BDD este în totalitate diferită de ce a unei BD locale

5. Care din următoarele variante sunt criterii (moduri) de distribuire a datelor?: 1) uniformă, 2) mixtă, 3) mu1tifonnă, 4) mixtă-complexă, 5) liberă, 6) compusă, 7) compozită.

a) 1, 2, 3 b) 1, 1, 5 c) 2,4, 6 d) 5, 6, 7 e) 2, 4, 7

155

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 24: BD

6. Componeme software dintr-o reţea de calculatoare pot fi: a) LAN

b) WAN

c) SGBD

d) SO locale

e) BD

7. În BDD:

a) există mai multe colecţii de date

b) structurarea datelor se face confonn unui model de date c) datele sunt amplasate pe mai multe noduri

d) datele sunt tratate unitar la nivel logic

e) datele sunt organizate şi prelucrate obligatoriu cu un SGBD

8. Caracteristici ale BDD sunt:

a) metodologiile de proiectare utilizate diferă în totalitate de cele folosite pentru BD locale

b) obiectivele sunt total altele faţă de o BD locală

c) protecţia datelor nu are aspecte suplimentare faţă de BD locale

d) utilizatorul trebuie să cunoască localizarea datelor

e) accesul concurent la date nu este permis

9. Avantaje pentru BDD multiplicate sunt: a) spaţiul ocupat este redus

b) concurenţa la date este foarte mare c) costul este ·mic

d) actualizarea datelor este simplă e) timpul de acces este mic

156

Răspunsuri

1 : b, c, d ; 2 : a, c ; 3 : a ; 4 : a, c ; 5 : b ; 6 : c, d ; 7 : a, b, c, d, e 8:- ; 9: e ;

Probleme

1. Se dă o reţea de calculatoare LAN. Să se alcătuiască o configuratie

de componente software necesare pentru a lucra cu o BDD.

2. La o firmă constructoare de calculatoare se doreşte să se realizeze o

BDD pentru activitatea de producţie. Să se propună caracteristicile

acestei BDD.

3. Se doreşte realizarea unei BDD pentru activitatea comercială la o

firmă constructoare de mobilă, care va avea 10 tabele (Tl la TlO).

Să se propună o structurare a acestei BDD pe cele două niveluri e

referinţă.

4. La o fim1ă constmctoare de automobile se doreşte realizarea unei

BDD pentru evidenţa contractelor de vânzare, care va conţine 8

tabele. Să se propună o configuraţie de BDD partiţionată într-o reţea

cu 12 calculatoare. 1· -

5. Se doreşte interogarea "de către utilizator unei Bf>D. care conţine 6

tabele (TI la T6) cu ajutorul unui SGBD relaţional. Să se scrie o

cerere de regăsire care să conţină o subcerere.

157

.....

.....

---.

.-. ,.....

~

~

!-\

.....

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 25: BD

....

.....

~

.....

'-

.......

......

.....

.....

'-

.......

.....

Va rezulta tabela grafici care va conţine o singură înregistrare şi un

singur atribut de tip General . Graficul va fi salvat ca un obiect de tip

OLE. În unna salvării vor rezulta două fişiere: grajic/.dbjşi grafic/ftp

4. Executăm şi af~Şăm graficul salvat mai sus parcurgând paşii:

deschidem tabela grafici.dbf: fie tastăm în fereastra de comandă USE

grafic l fie selectăm din meniul sistem opţiunile: File- Open - selectăm

fişierul grafic/ .dbf - OK;

în fereastra de comandă tastăm BROWSE;

în fereastra Browse pe tabela grafici facem dublu click mouse pe câmpul Gen;

apare graficul afişat pe ecran.

Rezumat

Capitolul de faţă este dedicat programării în Visual Foxpro, dar el începe

printr-o sinteză a noţiunilor minime pe care trebuie să le cunoască

specialistul, pentru a putea dezvolta aplicaţii cu baze de date în VFP. Acestea constituie de fapt un fel de compendiu VFP: caracterizare generală,

modul de descriere a datelor, modul de manipulare al datelor, extensiile din

VFP.

Prima parte este dedicată aspectelor generale privind VFP: evoluţia,

facilităţi oferite, noutăţi versiunea 9.0, aria de utilizare, VFP ca sistem

relaţional, VFP ca SGBD evoluat, moduri de lucru sub VFP, elementele de

limbaj.

În continuare sunt prezentate şi ex.emplificate principalele instrucţiuni din

limbajul propriu din VFP, comparativ cu alte soluţii - din SQL, din

generatoarele VFP.

Un paragraf special este destinat nucleului extins de SQL, 'care cuprinde

toate comenzile şi o parte dintre funcţiile SQL care sunt acceptate de VFP.

Se face referire la instrucţiunile din limbajul din VFP care au funcţionalităţi

similare.

Evoluţia VFP a însemnat adăugarea de facilităţi privind comunicarea cu alte

sisteme şi mediul Internet.

226

Sunt explicate şi exemplificate câteva dintre cele mai folosite generatoare

din VFP: de proiecte, de forme, de rapoarte, de grafice.

Un studiu de caz privind o aplicaţie cu BD relaţională. care poate fi un

model pentru -proiectele studenţeşti sau pentru dezvollatorii de aplicaţii cu

baze de date în VFP va fi prezentat în Anexa l. Pe lângă codul sursă aferent,

studiul de caz conţine şi activităţile pe care trebuie să le parcurgă

proiectantul aplicaţiei cu baze de date: analiza (structurală. dinamică).

proiectarea structurii BD, elaborarea programelor.

Note bibliografice

Capitolul de mai sus este rezultatul experienţei practice şi didactice a

autorului în ceea ce priveşte lucrul cu bazele de date relaţionale în general şi

cu VFP în particular.

Testele şi problemele din acest capitol sunt concepute de autor, inclusiv

studiul de caz din Anexa 1. Anumite teste şi probleme sunt preluate din

[VELU03], în general cu o serie de adaptări.

Cuvinte-cheie

Visual Foxpro- VFP

SQL

limbaje de programare

programare descriptivă

comunicarea între sisteme

generatoare

Teste-grilă

J

' baze de date relaţionaie

limbaje relaţionale

programare procedurală

programare orientată obiect

mediul Internet

asistenţi tip Wizard

Testele care urmează acoperă cam tot ceea ce înseamnă programarea în

VFP, sub cele două limbaje pe care le are: limbajul propriu procedural,

nucleul extins de SQL.

227

Page 26: BD

In formularea testelor se consideră că baza de date şi tabelele aferente sunt

create şi au un număr suficient de înregistrări.

Gruparea testelor este făcută după funcţionalitate astfel:

a) descrierea datelon-·

b) accesul la date;

c) actualizarea datelor;

d) structurile de program;

e) alte tehnici de programare;

f) programarea orientată obiect;

g) programarea în SQL

a) Descrierea datelor

1. Comanda CREA TE se foloseşte:

a) pentru a defini structura de date a unei labele

b) pentru a modifica structura de date a unei tabele

c) pentru a afişa structura de date a unei tabele

d) pentru a defini restricţiile de integritate

e) pentru a defini restricţia de tip NULL

2. Restricţia de integritate referentială se poate defini prin comenzile:

a) DEFINE

b) COPY STRU

c) CREATE CURSOR

d) APPEND

e) CREATE TABLE

3. Pentru a afişa structura de date a unei tabele se folosesc comenzile:

a) SELECT3

b) DISPSTRU

c) LISTSTRU

d) COPY STRUCTURE

c) UPDATE

2211

.....

4. Restrictia de integritate NOT NULL se poate defini prin comenzile:

a) CREATE ...., b) CREATE TABLE

c) ALTER TABLE

d) MODISTRU

e) CREA TE VIEW

5. Actualizarea structurii de date a unei tabele se face prin comenzile: a) CREATE

b) CREATE TABLE

c) MODI TABLE

d) UPDATE DATABASE

e) ALTER TABLE 1""'1

6. Actualizarea structurii de date a unei tabele se face prin comenzile:

a) ALTER DATA

b) MODISTRU ....,

c) MODI DATABASE

d) MODI TABLE ....., e) ALTER VIEW

7. O bază de date se va deschide dacă se folosesc comenzile:

a) LIST b) DISPSTRU

c) CREA DATA 1""'1

d) MODISTRU e) CREATE

8. Definirea restricţiilor de integritate se face prin comenzile:

a) MODIFY TABLE

b) MODISTRU

c) ALTETABL

d) ALTE DATA

e) DEFI STRU ...,

229 -

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 27: BD

....

....

~

'--

-..

'-

....

.._

....

......

1.....;

1.-

9. Tipul unui câmp dintr-o tabelă poate fi specificat prin comenzile:

a) ALTETABL b) LIST STRU c) CREA

d) MODISTRU c) DISPSTRU

1 O. Comanda AL TER TAB LE din nucleul SQL se foloseşte:

a) doar pentru tabelele incluse într-o bază de date b) doar pentru tabelele libere c) doar pentru tabelele care nu fac parte dintr-o bază de date d) doar pentru tabelele între care nu există legături e) doar pentru tabelele între care există legături

Il. Dicţionarul BD se creează prin comenzile:

a) CREA VIEW b) CREA REPORT c) CREATE FORM d) CREATE e) CREA TABL

12. La crearea stiUcturii de date a unei tabele se poate specifica:

a) denumirea atributelor b) tipul coloanelor c) denumirea bazei de date d) tipul utilizatorului e) lungimea câmpurilor

13. Tipurile de atribute într-o tabelă pot fi:

a) pointeri b) caracter c) timp d) logic

e) data sistem

230

Cu ajutorul comenzii MODI STRU se poate:

a) actualiza structura de date a unei tabele b) modifica denumirea unui câmp dintr-o tabelă c) adăuga un câmp nou Într-o tabelă

d) modifica lungimea unui câmp existent e) şterge un câmp dintr-o tabelă

15. Se dă comanda: CREATE stud

Care afirmaţii sunt adevărate ?

a) creează fişierul STUD.DBF b) creează fişierele STUD.DBF şi STUD.IDX c) creează tabela STUD d) creează tabela STUD şi se pot încărca, opţional, date în ea e) creează dicţionarul BD

16. Se dă comanda: CREATE bcni

Care afirmaţii sunt adevărate ?

a) creează baza de date BENI b) creează structura de date pentru tabela BEN! c) dă posibilitatea descrierii atributelor pentru relaţia BENI d) se pot încărca, opţional, date În BENI e) comanda este greşită

17. Se dă secvenţa: USE beni

MODISTRU

Care afirmaţii sunt adevărate?

.......

a) se poate actualiza structura de date a tabelei BENI b) este greşită comanda MODI STRU c) creează şi poate doar modifica structura tabelei BEN! d) doar modifică câmpuri În tabela BENI e) modifică datele din tabela curentă

.~:;.:;:::.==-~ .. ·;~~ p:- '-''JI'r.w F~·r.~ ... ~ r ~-"·' -.-,~~.:~

/:'·.') '''1-;.~~ (, ··· .,.,, ........ : .. ·:·•:·In ~1 • ! ! ; ~'·· • : .l'\ ~ • "·" h... • . • J: \\ :!lHfJqTFCĂ j/

\~~~·.~~- ·:c .,.,-.-..::: :..~~:::-?-;:· 231

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 28: BD

18. Se dă secvenţa : USE prod

MODISTRU

Care afirmaţii sunt adevărate?

a) se pot modifica şi adăuga atribute din/în tabela PROD

b) se poate şterge un câmp din tabela PROD c) se poate modifica numele tabelei PROD

d) se poate modifica numele unui câmp din tabela PROD c) conţine o comandă greşită

b) Accesul Ia date

1. Pe o cale curentă, închiderea tabelei ORAŞ se poate face prin comanda: a) USE oraş b) USE stud

c) CLOS DATA d) CLOS ALL e) USE

2. Dacă o tabelă are un atribut de tip memo atunci i se ataşează un fişier tip: a) .dbf

b) .frx

c) .idx

d) .sex

e) .fpt

3. Accesul direct după cheie într-o tabelă se face prin comenzile: a) FIND

b) SEEK c) GO d) CONTINUE e) LIST

7..!2

__ 4. Un fişier de index ataşat unei tabele poate fi deschis prin comenzile: a) SET INDEX TO b) USE c) ORDERBY d) OPEN INDEX e) USE INDEX

5. Accesul secvenţial într-o tabelă se poate face prin comenzile: a) SKIP b) FIND c) GO d) SCAN e) LOCATE

6. Accesul direct prin număr de realizare într-o tabelă se poate face prin comenzile:

a) LOCATE b) CONTINUE c) SEEK d) GO e) SKIP

7. Pentru a deschide simultan mai multe tabele pe aceeaşi cale de lucru se folosesc comenzile:

a) USE .... ·~

b) nu se poate c) SELECT d) APPEND e) OPEN

8. Deschiderea unei baze de date se poate face prin comenzile: a) OPEN ALL b) USE DATABASE c) · OPEN DATA d) USE e) OPEN TABLE

- .

233

1"'"1

....,

'"""

....,

,...,

...,

,....,

_.,

_.,

....

....,

,....,

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 29: BD

.......

i..J

1.....1

\"J

1....1

l....i

'-'

'-'

9. Comanda USE se foloseşte pentru a d.eschide; a) o tabelă virtuală

b) fişierele de index asociate tabelei c) o tabelă de bază

d) o altă tabelă pe o cale de lucru unde este deja deschisă o tabelă e) o bază de date

10. Com<mda CLOSE se poate folosi, în funţie de clauzele pe care le are, pentru a închide:

a) o tabelă b) o bază de date c) mai multe tabele d) mai multe baze de date e) o fereastră

Il. În fereastra de comandă din VFP:

a) se poate folosi comanda IF b) se poate lucra stil compilator c) se poate lucra stil interpretor d) se poate folosi comanda SCAN

e) se poate folosi comanda DO WHILE

12. Comanda SKIP:

a) se foloseşte pentru accesul prin număr de realizare b) se poate folosi pentru că VFP numerotează tuplurile c) se poate f~Josi pentru salt Ia ultima înregistrare d) se poate folosi pentru salt la primul tuplu e) se poate folosi pentru accesul direct după cheie

13. Comanda GO TO se foloseşte pentru: a) accesul secvenţial b) salt la o instrucţiune din program c) accesul direct după număr .de realizare d) accesul direct după cheie

e) salt la o tabelă dorită

234

14. Pentru a ordona datele se pot folosi:

a) restricţia de integritate PRIMARY KEY

b) comanda INDEX ON

c) clauza ORDER BY

d) CREA TE SORT e) SETORDER

15. Tipurile de fişiere de index care pot fi ataşate unei tabele sunt: a) .CDX b) .IDX

c) .sex d) .RTX e) .FRX

16. Com<mda USE stud:

a) deschide tabela STUD pentru citire b) deschide tabela STUD pentru scriere c) deschide tabela STUD pentru citire şi scriere d) deschide tabela STUD pentru acces secvenţial

e) deschide tabela STUD pentru acces prin număr de realizare

17. Comanda USE contr/IN 2: ,., a) deschide zona de lucru C .~~

b) închide tabela CONTRl de pa calea doi c) deschide două tabele în zona de lucru B d) deschide tabela CONTRl în zona de lucru B

e) deschide tabelele CONTRl şi IN pe calea B

18. După executia comenzii USE stud pointerul de înregistrare este poziţionat:

a) pe ultima înregistrare b) peEOF c) pe prima înregistrare d) neprecizat

e) pe înregistrarea indicată de RECCOUNT()

235

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 30: BD

19. Tabelele unei baze de date pot fi deschise, la un moment dat:

a) toate, dar pe zone de lucru diferite

b) toate, pe o singură zonă de lucru

c) două, dacă se indică ALIAS, pe o zonă de lucru d) maximum cinci tabele o dată ·

e) nu se deschide explicit

20. În secvenţa următoare:

SELEC

USE contrl

SELE 3

USE beni

SELEB

USE prod

SELEC

L!ST

comanda LIST realizează :

a) afişează structura de date a tabelei C

b) afişează înregistrări din tabela CONTRl c) afişează înregistrări din tabela PROD d) Iistează numele tabelei din zona C e) afişează înregistrări din tabela BENI

21 . Efectul secven!ei: USE stud

G03 IN 3

SKIP

DISP

este:

a) poziţionează pointerul pe înregistrări din STUD b) afişează prima înregistrare din STUD

c) poziţionează pointerul pe ultima înregistrare din STUD d) afişează înregistrarea curentă de pe calea trei e) afişează înregistrarea a doua din STUD

23o

22. Efectul secventei USE prod

este:

LOCA TE FOR codp = 22

DISP

LOCA TE FOR codp = 22

DISP

a) afişează prima înregistrare pentru care atributul CODP este

22 b) afişează şi a doua înregistrare pentru care atributul CODP

este 22

c) acces direct la o îm·egistrare pentru care Htributul CODP este 22

d) accesează două înregistrări diferite din tabela PROD e) acces secvenţial la o înregistrare pentru care atJ·ibutul CODP

este 22

23. Efectul secvcnţei:

este:

USE contrl

INDEX ON codb TO fl

mi= l22 SEEKml

DISP

CONTINUE

DISP

a) acces direct la toate tulpurile pentru care atributul "codb"

are valoarea 122 b) acces direct la un tuplu pentru care atributul "codb" are

valoarea "ml" c) afişează tulpul pentru care atributul "codb" are valoarea 122

d) are o comandă greşită e) acces secvenţial la două tupluri din tabela CONTRI

237

~

,...,

~

......

"""" \..

,....,

'"""1

.....,

.....,

~

....,

..-.

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 31: BD

L-'

-...;

.....

1..-

\_.

1-1

;....

i-

"""'

"""'

24. Efectul secvenţei: USE beni

este:

INDEX ON codb TO fl

ml =22

m2= IOO+ml

SEEK&m2.

DISP

a) acces direct la tuplul pentru care atributul "codb" are

valoarea 122 b) acces direct Ia tuplul pentru care atributul "codb" are

valoarea 100 c) acces direct la un tuplu d) are o comandă greşită e) permite accesul ordonat la tabela BENI

25. Efectul secvenţei: USE prod

DISP

este:

ml =22

FIND mi

DISP

a) acces direct la tu piui pentru care atributul "codp" are

valoarea 22 b) acces secvenţial pentru care atributul "codp" are valoarea

22 c) acces direct la tuplul ''mi" d) afişează trei tupluri din tabela PROD e) afişează un tuplu curent

26. Se dă secvenţa: USE contrl

DISP

Care afirmaţii sunt adevărate?

a) afişează înregistrarea curentă din tabela CONTRI

b) afişează înregistrarea curentă din tabela curentă

238

c) afiş_ează toate înregistrările din tabela CONTRI d) afişează prima înregistrare din tabela CONTRI

e) poziţionează pointerul pe ultima înregistrare din tabela

CONTRl

27. Se dă secvenţa de comenzi: USE prod

INDEX ON codp TO il

INDEX ON UPPER (ump) TO u 1

SELE3

USE contrl

INDEX ON codp TO c l

G05 SKIP

DISP

SELE 1

mcheie = 'Buc'

SEEKmcheie

DISP

Care afirmaţii sunt adevărate ?

a) afişează două înregistrări din tabela CONTR şi o singură înregistrare din tabela PROD

b) acces direet prin cheie pe ambele tabele .-·· c) acces prin număr de realizare pe ambele tabele d) acces prin număr de realizare pe calea A e) conţine o comandă greşită

28. Se dă secvenţa: USE contrl

LIST

Care afirmaţii sunt adevărate ?

a) afişează doar înregistrarea curentă din tabela CONTRI b) afişează doar înregistrarea curentă din tabela curentă

c) afişează toate înregistrările din tabela CONTRI

d) afişează doar prima înregistrare din tabela CONTRI

e) poziţionează pointerul pe sfârşitul de fişier

239

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 32: BD

29. Se dă secvenţa de comenzi: SELE B

USE beni

SELED

USE contrl

LOCA TE NEXT 5 FOR codb < 222

DISP

SELE2

INDEX ON codb TO c l

mcheie = 10123

SEEK mcheie

DISP

SELE4

CONTINUE

DISP

Care afi1maţii sunt adevărate?

a) lucrează cu tabela CONTRI pe calea 2 şi cu tabela BENI pe

calea 4

b) alişează două Înregistrări din tabela CONTRI

c) afişează doar o înregistrare din tabela CONTRl şi doar o

înregistrare din tabela BENI d) conţine o comandă greşită

e) afişează două înregistrări pe calea 2 şi o singură înregistrare

pe calea 4

30. Se dă secvenţa: USE contrl

240

DISP REST

Care afinnaţie este corectă?

a) afişează doar ultima Înregistrare din tabela CONTRl

b) afişează toate înregistrările din tabela CONTRl c) alişează toate Înregistrările de la cea curentă până la sfârşitul

din CONTRI d) poziţionează pointerul pe sfârşitul de fişier e) conţine o comandă greşită

J. Se dă secvenţa de comenzi: USE prod

SELEC

USE contrl

INDEX ON codp TO c 1 SEEK 1005

DISP

SELE l

GOTOP

DISP

SEEK 1005

DISP Care afirmaţii sunt adevărate?

a) afişează înregistrarea care are atributul codp = 1005 din tabelele CONTRI şi PROD

b) lucrează cu tabela PROD pe calea 1 şi cu tabela CONTRl pe calea 3

c) acces direct pe tabela CONTRI şi acces prin număr de realiza~e pe tabela PROD

d) crează fişierul de index Cl.idx ataşat tabelelor PROD şi CONTRl

e) conţine o comandă greşită

32. Se dă secvenţa: USE contrl

LISTREST

Care afirmaţii sunt adevărate ?

a) afişează doar ultima înregistrare din tabela CONTRl b) afişează toate înregistrările din tabela CONTRl

c) afişează toate Înregistrările de la cea curentă până la sfârşit din tabela CONTRl

d) poziţionează pointerul pe sfârşitul de fişier e) o comandă este greşită

241

"""'

-.

...

1""'\

~

~

,....,

1""'\

~

~

-..

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 33: BD

'-'

....

.....

L.-1

........

._,

~

"-'

........

.._

'-'

1....

w

'-

33. Se dă secventa de comenzi: USE beni

SELE2 USEprod LOCA TE RECORD 4 CONTINUE DISP SELE l

GOS DISP SKIP-1 DISP

Care afirmatii sunt adevărate ? a) crează un context curent şi lucrează pe acesta b) afişează înregistrarea patru din tabelele PROD şi BENI c) afişează înregistrarea cinci din tabela PROD şi înregistrarea

4 şi 5 din BENI d) există o comandă greşită e) accesează direct prin cheie pe calea A

c) Actualizarea datelor

1. Actualizarea datelor dintr-o tabelă, în sens de modificare, se poate face prin comenzile: a) BROWSE b) EDIT c) CHANGE d) MODI STRU e) REPLACE

2. Ştergerea logică a unui tuplu dintr-o tabelă se face prin comenzile: a) DELETE b) RELEASE c) PACK d) ZAP e) DESTROY

242

3. Ştergerea fizică a unui tuplu dintr-o tabelă se face prin comenzile: a) RELEASE b) PACK c) ZAP d) .DELETE e) DELE

4. Actualizarea datelor dintr-o tabelă, în sens de adăugare la sfârşit, se face prin comenzile:

a) APPE b) ADD c) INSERT d) ZAP e) UPDATE

5. Ştergerea tuturor tuplurilor din tabela PROD se face prin comenzile: a) DELETE FROM prod b) ZAP c) RECALL .. d) PACK e) DELETE FORcodp=22

6. Actualizarea datelor dintr-o tabelă se poate face prin c<?_!Jle'nzile: · · a) APPE b) ALTER TABLE c) INSERT INTO d) REPLACE e) DELETE FROM

7. Adăugarea unui tuplu la sfârşitul tabelei curente se poate face prin comenzile:

a) ZAP b) APPE c) REPLACE d) UPDATE e) INSERT INTO

243

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 34: BD

8. Comanda

BROWSE FIELDS denp

permite:

a) r:isfoirea tabelei curente b) afişarea pe ecran a atributului denp

c) atişa~ea pe ecran a tabelei denp

d) vizualizarea tuturor atributelor din tabela curentă e) vizualizarea tuturor atributelor din tabela denp

9. Adăugarea unei noi tabele la o bază de date existentă deja se poate face

prin comenzile:

a) CREA TABLE

b) CREA DATA

c) INSERT INTO d) APPEND e) ADDDATA

1 O. Pentru a putea folosi comenzile INSERT INTO şi UPDATE trebuie

executată anterior comanda:

a) OPEN DATA

b) CREA DATA

c) CLOSE DATA d) SELECT e) USE

Il. Care este efectul următoarei secvenţe de program ?:

CREA DATA desf

CREA TABLE prod (codp NUMBER(4), denp CHAR(20), ump

CHAR(3))

DIR

DISPTABLES

CLOSEALL

a) se crează baza de date denumită DESF b) se crează tabela denumită PROD

244

c) se afişează denumirea pentru toate tabelele din directorul curent d) se afişează denumirea pentru toate tabelele din baza de date

curentă

e) se închide tabela PROD

12. Pentru a putea lucra cu noţiunea de bază de date obligatoriu trebuie

executate comenzile:

a) OPEN DATA

b) USE c) CREA TABLE

d) OPEN TABLE e) SET INDEX ON

13. Se dă secvenţa: USE beni

G03 APPEND BLANK

Care afirmaţii sunt adevărate ?

a) adaugă o înregistrare la sfârşitul tabelei curente b) adaugă un număr de înregistrări dorit de utilizator c) adaugă o înregistrare după cea curentă

d) adaugă o inregistrare după una cu numărul de ?rdine}. e) adaugă o inregistrare vidă .,-

14. Se dă secvenţa: USE contrl

SKIP2

APPEND

DISP

Care afirmaţii sunt adevărate ?

a) conţine o comandă greşită b) adaugă la sfârşitul tabelei curente un număr de înregistrări

dorit de utilizator c) afişează înregistrarea curentă d) adaugă înregistrări după cea cu numărul de ordine 2

e) adaugă înregistrări după cea curentă

245

,...,

'""'!'

~

.....

......

"'"""\

!""'\

'-~

-.......

~

"""

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 35: BD

'--'

_ i

<../

,._;,

u

-L

'-'

l.-

~

15. Se dă.secvenţa: USE beni REPLACE REST SUBSTR (denb,l,l) WITH 'V'

LIST

Care afirmaţii sunt adevărate ?

a). înlocuieşte, doar în tuplul curent, primul caracter

b) modifică date doar în prima înregistrare

c) actualizează tabela BENI în sens de ştergere logică

d) actualizează tabela BENI în sens de modificare e) înlocuieşte, în toate tuplurile, un caracter din atributul denb

cu valoarea 1

16. Se dă secventa: USE prod

DISP

REPLACE RECORD 3 FOR codp = 22 ump With 'TON'

DISP

Care afirmaţii sunt adevărate ?

a) modifică în primele 3 înregistrări atributul "codp" cu 22 şi

atributul "ump" cu ton b) modifică înregistrarea a treia, dacă atributul "codp" este 22

c) modifică trei înregistrări

d) conţine o comandă greşită e) şterge logic a treia înregistrare

17. Se dă secventa: USE prod

DISP

246

DELETE FOR UPPER (ump) = 'KGR'

GOBOTTOM

PACK

LIST

Care afirmaţii sunt adevărate ?

a) şterge logic tupluri din tabela curentă

b) şterge fizic înregistrări din tabela PROD

c) şterge logic din PROD toate tuplurile pentru care atributul "ump" este ton

d) afişează prima şi ultima înregistrare din tabela PROD

e) şterge logic şi fizic toate tuplurile pentru care atributul "ump" este ton

1 B. Se dă secventa: USE beni

PACK

DELETE NEXT 2 GOTOP

LIST

Care afirmaţii sunt adevărate ?

a) şterge fizic primele două tupluri

b) . şterge logic doar a doua înregistrare c) şterge fizic doar a doua înregistrare d) şterge logic doar al doilea tuplu e) şterge logic primele două tupluri

d) Structuri de program

. ."..,. _,

1. Instroqiunea EXIT din programul de mai jos are ca efect: nr=O

USE prod

DOWHILE.T.

lF EOF()

EXIT

ENDIF

IF codp< 300

SKIP LOOP

ENDIF

nr = nr + 1

SKIP

247

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 36: BD

ENDDO

a) ieşirea forţată din structm·a alternativă·

b) ieşirea forţată din structura repetitivă

c) ieşirea din prima structură repetitivă şi continuarea cu cea de-a doua

d) nu are nici un efect

e) ieşirea din structura repetitivă şi continuarea cu atribuirea

2. Următorul program afişează: CLEAR

FOR x = 1 TO 9

? X.

ENDFOR

a) cifrele de la 1 la 9 pe 9 linii de pe ecran

b) cifrele de la 1 la 9 pe o singură linie de pe ecran c) caracterul x de 9 ori

d) doar cifra 9

e) doar cifra 1

3. Codul sursă VFP se poate încărca prin comenzile:

a) MODI COMM

b) LOAD

c) ED

d) STORE

e) INSERT

4. Structura de progra IF ..• ENDIF este:

a) alternativă multiplă

b) alternativă simplă

c) secvenţială

d) repetitivă cu test iniţial

e) repetitivă cu test final

248

5. Terminarea forţată a execuţiei unui program VFP se face prin

comanda:

a) CANC

b) EXIT

c) ABOR

d) RETU

e) QUIT

6. Dintre structurile de program de mai jos, sunt repetitive:

a) REPEAT ... UNTIL

b) IF ... ENDIF

c) FOR ... ENDFOR

d) DO WHILE ... ENDDO

e) SCAN ... ENDSCAN

7. Efectul secven'ei de instruc'iuni de mai jos este:

CLEAR

x=22

STORE 'X' TO x ?x.

a) afişează pe ecran numărul 22

b) afişează pe ecran x c) afişează valori pe 22 de linii din ecran

d) afişează pe ecran caracterul X

e) apelează autodocumentarea HELP

-~"

_./

8. Care din următoarele afirmaţii sunt adevărate pentru limbajul din VFP:

a) are structura repetitivă de program

b) are structura alternativă de program

c) are doar structurile secvenţială şi alternativă de program

d) are structura secvenţială de program

e) are doar structurile secvenţială şi repetitivă de program

249

.-.

,.....

.,

'1

,.....,

.....

,_,

-,...,

,--,

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 37: BD

....

\o.oo

L

\....,1

.....

~

L.

o..J

\....'

\..1

-.

-- ·

9. Care din următoarele afirmaţii sunt adevărate pentru Visual FoxPro: a) permite, în fereastra de comandă, doar structurile ·

secvenţială şi alternativă

b) permite, în.fereastra de comandă, toate structurile fundamentale de program .

c) nu permite, în fereastra de comandă, structurile repetitive de program

d) nu permite nici una dintre structurile fundamentale de program

e) permite structurile: secvenţială, alternativă, repetitivă de program

l O. Se dă secvenţa: SET T ALK OFF mi =0 STORE l. 2 TO ml, m2, m3 m2= 'IBM' ? ml, m2, m3

Care afirmatii sunt adevărate ? a) afişează valoarea O pentru ml b) afişează valoarea 2 pentru m2

c) conţine o comandă greşită d) afişează valorile 1 şi 2 pentru m3 e) afişează şirul "m1, m2, m3"

11. Se dă secvenţa: SET T ALK OFF ml= .T.

250

STORE 'VFP' TO m2, ml, m3 m3 = {01/10/99} ? ml, m2, m3 @ 5,5 SAY mi, m3

Care afirmaţii sunt adevărate ? a) la afişare, variabila mi este de tip logic b) la afişare, variabila m2 este de tip logic c) la afişare, variabila m3 este detip şir de caractere d) conţine o comandă greşită e) la afişare, se scrie câte o variabilă pe un rând

-·~ :-: 12. Se dă secventa de program: SET T ALK OFF

ml =22

m2= 'HP'

x 3 = m 1 ** 2 +V AL (m2)

DISP MEMORY LIKE m*

?ml,m2

@ 16,16SAY 'x3='

Care afirmatii sunt adevărate? a) afişează conţinutul tuturor variabilelor definite b) defineşte variabila x3 de tip real c) conţine o eroare

d) foloseşte două funcţii de sistem c) afişează, din memorie, toate variabilele

13. Se dă secventa de program: SET T ALK OFF

m=8

Ce valori se afişează?

a) 64

b) 108

mi= m**2

lFml < 100

?8

ELSE

IF ml > 100 ? 108

ELSE

? ml

ENDIF

ENDIF

c) nu se afişează nimic d) 8

e) m1

25!

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 38: BD

14. Ce va afişa secvenţa de program: SET TALK OFF

m=O

@ = 6,6 SA Y 'm =' GET m

READ

lF m = l. ? m+ l

ELSE

IFm = 22

@ 20,2 SA Y 'nimic'

ELSE

IF m > 50

?m

ELSE

? m-1

ENDIF

ENDIF

ENDIF Dacă se încarcă valoarea 23 ?

a) 22

b) 24

c) 23

d) nimic

e) 50

15. Ce va afişa secvenţa de program: SET TALK OFF

STORE I TO mi, m2

m2= 'IBM'

252

m2 = SPACE (Il)

@ 5,5GETm2 READ

DO CASE

CASE mi= 1

?" CASEm1=2

dacă se încarcă valoarea 2 ?

a) IBM b) 2 c) Il d) EROARE e) 3

? m1 + 1 CASEml =3

?m2 OTHERWISE

@ 20, 2 SA Y 'EROARE'

ENDCASE

16. Ce va afişa secvenţa de program: SET T ALK OF STOREOTO m1, m2, m3 @ 5,5 SAY 'ml ='GET m1 READ m3= m1 * m2+2 m2= 'OK' DO CASE

.r-

CASE m3 = 1 m2=ml-1

CASEm3 =2 m2='ibm'

CASEm3 =3 m2= m3 * 3

CASEm3 =4 M2=.T.

ENDCASE ?m2

dacă se încarcă valoarea 22?

a) .T. b) 1 c) ibm d) 9 e) OK

J

1"""1

~

-~·

'"""'

1"'"1

....

~

.......

......

......

253 1"'"1

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 39: BD

1.,...

"-

._

1...1

'-'

~

-.....

.._.

~

1.,.1

17. Ce va afişa secvenţa de program: SET T ALK OFF

dacă se încarcă valoarea 1 O ?

STORE 'x' TO mi, m2, m3

m2=ml +'x'

J!13 = RECNO ()

@ 5,5 SA Y 'm3:' GET m3

READ

mi= 12

DO CASE

CASE m3 =mi- 2 TF m2 = 'xx '

? ml PICTURE '99'

ELSE

? 'xx'

ENDIF

CASE m3 = 10 ? m3

ENDCASE

a) conţine o comandă greşită

b) 10 c) 99

d) XX

e) 12

18. Secvenţa: IF m # 22

lF ml >5 IF m2< 100

m3 =m3 + l ELSE

ENDIF

ENDIF

ENDIF

este echivalentă cu:

a) IF m # 22 AND ml > 5 AND m2 < 100

254

,!~

;~ .. { m3=m3+ 1

ELSE

m3=m3-l ENDIF

b) 1Fm#220Rm1>50Rm2<100 m3= m3 +1

ELSE

m3+ m3-J ENDIF

c) IF m # 22 AND m1 > 5 OR m2 < 100 m3= m3+ 1

ELSE

m3=m3-1 ENDIF

d) DOCASE CASE m#22

CASEm1 >5 CÂSE m2< 100

m3= m3+ 1 OTHERWISE

m3= m3-l ENDCASE

e) DO CASE

CASE m#22 IF m1 > 5

DO CASE

CASEm2 < 100 m3=m3+1 OTHERWISE m3= m3-1

ENDCASE ENDIF

ENDCASE

_ ..

255

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 40: BD

1 Y. Ce va afişa secvenţa de program: SET T ALK OFF

m=22

a) 22

b) 21

c) 23

IFm>25

IFm>_20

? 21

ELSE

? 23

ENDIF

ENDIF

d) conţine o comandă greşită c) 20

20. Care din următoarele secvenfe de program calculează şi afişează secolul dintr-un an încărcat de utilizator:

256

a) STORE O TO man, msecol

@ 5,5 SA Y 'anul (4 cifre):' GET man READ

msecol = man/100

IF MOD (man, 100) #O

msecol = msecol-1

ELSE

? man PICTURE '9999' ENDIF

b) @ 5,5 SAY 'anul (4 cifre):' GET man

IF MOD (man, 100) #O

msecol = man/100

? 'secol', msecol

ENDIF

c) SET TALK OFF

STORE OTOman, msecol

@ 5,5 SAY 'anul:' GET man

~

READ

msecol = man/l 00

IF MOD (man, 100) #O

msecol = msecol + 1

ENDIF

? msecol PICTURE '99'

d) SET TALK OFF

STORE O TO man, msecol

@ 5,5 SA Y 'anul:' GET man

READ

msecol = ROUND (man/100, O)

? msecol PICTURE '99'

e) SET TALK OFF

STORE O TO man, msecol

@ 5,5 SAY 'anul:' GET man

READ

IF MOD (man, 100) =O

msecol = man/100

ELSE

msecol = man/100 + 1

ENDIF

? msecol PICTURE '99' -..

21. Considerăm intervalele [mll, ml2] şi [m21, m22] unde mll < ml2,

m2l < m22 şi toate sunt numere reale. Ce afişează secvenţa de program următoare?

SET ST ATUS OFF

STORE l.l TO mll

m21 = m2.l

STORE 1.2 TO ml2

m22=2.2

IF mll > m2l

ml = mll

ELSE

!~ T :i

1

! r 1 ! .

! i

~

~

-

~

""""

'""'

,...,

t-\

\:ţ ~ 257 .-.

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 41: BD

L..

'-'

("

!....

'-'

......

G

._

._

G

~

'-'

- -

mi =m21

ENDIF

IF m12 < m22

m2= ml2

ELSE

m2=m22 ENDIF

IF mi<= m2

?ml,m2

ENDIF

a) marginea inferioară pentru fiecare interval b) reuniunea celor două intervale

c) marginea superioară pentru fiecare interval d) intersecţia celor două intervale

e) conţine o comandă greşită

22. Ce va afişa secvenţa de program? SET TALK OFF

mi= 10

STOREOTOm2

m3=ml

a) 10 b) o c) 1

d) 54

e) 55

258

DO WHILE m3 > 1

m2= m2+ m3

m3 = m3 -1 ENDDO

? m2

t ~ 23. Ce va afişa secvenţa de program? SET TALK OFF .:~ .. f ml=2

a) 20, 20

STORE 20 TO m2

DO WHILE mi< m2

ml=ml+2

ENDDO,,

?m2,,,ml

b) conţine o comandă greşită c) 2, 20 d) 20, 2

e) 20, 22

24. Ce va afişa secvenţa de program? SET TALK OFF

ml=3

a) 30,30

STORE 30 TO m2

REPEAT

ml=ml+3

UTILml >m2

? ml, m2

b) conţine o comandă greşită c) 3, 30 d) 30,3

e) 33,30

25. Ce realizează secvenţa de program? DIMEN mv (5)

mi=O

FOR mi= l T05

1F MOD (mi, 2) =O

mv (mi)= 2

ELSE

mv (mv) = 1

259

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 42: BD

260

ENDIF

ENDFOR

a) contorizează câte elemente 2 şi respectiv 1 conţine un vector

b) extrage dintr-un vector un element 2 şi un element 1

c) construieşte un vector care arc elementele pare egale cu 2 şi

cele impare egale cu 1

d) construieşte un vector care are elementele pare egale cu 1 şi cele impare egale cu 2

e) conţine o comandă greşită

26. Ce realizează secvenţa de program? SET T ALK ON

USE contrl

mc=O

REPEAT

a) conţine o comandă greşită

IF codp < 100

mc = mc + 1 ENDIF

SKIP

UNTIL EOF()

b) accesează toate înregistrările din tabelă

c) contorizează înregistrările care conţin "codp" egal cu 100

d) contorizează înregistrările care conţin "codp" peste 100 e) cumulează "codp" dacă este mai mic de 100

27. Ce realizează secvenţa de program? SET TALK ON

USE contrl

a) conţine o comandă greşită

mc =0 SCAN

IFcodp < 100

mc=mc+ 1 ENDIF

ENDSCAN

b) accesează toate înregistrările din tabelă

c) contorizează numărul de înregistrările care conţin "codp"

sub 100

d) contorizează numărul de înregistrările care conţin "codp"

peste 100 e) cumulează "codp" dacă este mai mic de 100

28. Ce realizează secvenţa de program? SET T ALK ON

USE prod

mc=O

DO WHILE NOT EOF ()

IF SUBSTR (denp, 2, 1)

='M' mc = mc + l

ENDIF

SKIP

ENDDO

a) calculează câte înregistrări au primele două caractere din

"denp" egale cu M

b) conţine o comandă greşită

c) contorizează numărul de înregistrăr·i pentru car~. primul -··

caracter din "denp" este M

d) conţine o comandă greşită

e) contorizează numărul de înregistrări pentru care al doilea

caracter din

"denp" este M

29. Ce realizează secvenţa de program?USE prod

mc=O

(denp,2,1) = 'M'

SCAN FOR SUBSTR

mc = mc + 1

ENDSCAN

261

1" 1

~

1 1

~

'1

,......

-,.....,

~

_,

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 43: BD

l...i

'--

!....

..__

~

'-'

"-

"-

.._

\,...

......

..... 262

a) contorizează numărul de înregistrări pentru care primul caracter din "denp" este M

b) contorizează numărul de înregistrări pentru care al doilea

caracter din _ "denp" este M

c) conţine o comandă greşită

d) calculează câte înregistrări au primele două caractere din "denp" egale cu M

e) calculează câte înregistrări au primele două caractere din "denp" scrise cu M sau m

30. Ce realizează secvenţa de program? USE beni

DO WHILE NOT EOF()

IF LIKE ('VE*' , denb)

? denb

ENDlF

ENDDO

a) afişează "denb" din înregistrările pentru care acest atribut începe cu VE

b) afişează "denb" din înregistrările pentru care acest atribut începe cu VE sau ve

c) afişează "denb" din înregistrările pentru care acest atribut începe cu alte caractere decât VE

d) ciclează la infinit e) conpne o comandă greşită

31. Ce realizează secventa de program? USE beni

denb)

SCAN FOR LIKE('VE*' ,

? denb

ENDDO

a) afişează "denb" din înregistrările pentru care acest atribut începe cu VE

b) afişează "denb" din înregistrările pentru care acest atribut începe cu VE sau ve

c) afişează "denb" din înregistrările pentru care acest atribut începe cu alte

caractere decât VE d) ciclează Ia infinit e) conţine o comandă greşită

32. Ce realizează secvenţa de program? USE contrl

m=RECNO()

ml = m+ 1

DO WHILE m <mi

DISP

ml =mi+ 1

ENDDO

a) afişează toate înregistrările din tabela curentă b) afişează prima înregistrare din tabela curentă c) contorizează numărul de înregistrări din tabela curentă d) conţine o comandă greşită e) ciclează la infinit

33. Ce realizează secvenţa de program? SET T ALK OF_F.

a) afişează valoarea 15

b) conţine o comandă greşită

USEcontrl

m = RECNO() - 1

STORE O TO mi, mj

FOR mi= 1 T05

FOR mj= 1 TO 10

m=m+ 1

ENDFOR

ENDFOR

?m

c} calculează numărul de înregistrări din tabela "contrl"

.-

263

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 44: BD

d) afişează valoarea 50

e) afişează valoarea 10

34. Ce realizează secvenţa de program? SET T ALK OFF

USE contrl

GOBOTTOM

m=RECNO()-

RECCOUNT()

264

a) ciclează Ia infinit

b) conţine o comandă greşită

c) afişează valoarea 50

d) afişează valoarea 15

e) afişează valoarea 10

ml=O

FOR m 1 = 1 TO 1 O

FOR ml = 1 T05

m=m+l

ENDFOR

ENDFOR

?m

35. În VFP sunt implementate explicit structurile fundamentale de

program:

a) unu Ia unu, secvenţială, alternativă

b) unu Ia unu, unu Ia mulţi, mulţi la mulţi

c) secvenţială, alternativă, unu la mulţi

d) tabelă, atribute, tupluri

e) alternativă, repetitivă, secvenţială

36. Ce realizează următoarea secvenţă de program?

cod= SPACE (4)

nume =REPLICA TE('', 10)

CLEAR

@ 5,5 SA Y 'Cod:' GET cod

READ

@ 5,5 SAY 'nume:' GET nume

READ

a) încarcă un set de date de Ia tastatură

b) este greşită pentru că sunt două comenzi READ

c) defineşte şi descrie atributele unei tabele

d} este greşită pentru că nu există DO WHILE e) defineşte un meniu

37. Comanda @ 5,x SAY y, unde x şi y sunt variabile întregi diferite

de cinci:

a) este o comandă de intrare standard

b) scrie o valoare începând din coloana cinci

c) este o comandă de ieşire standad

d) este o comandă de citire standard

e) este greşită pentru că apare x şi y

38. Se dă următoarea secvenţă de program. Care afirmaţii sunt

adevărate?

USEtl

mO=O

DO WHILE mO =O

cod =0

stoc= O

@ 5,5 GETmO

READ

APPEBLANK

ENDDO

a) ciclează la infinit

b) este greşită pentru că nu are SA Y

c) citeşte date de la tastatură

d) modifică tupluri

e) adaugă atribute în tabela TI

1 -~

265

1 \"

......

--,_,

r-.

-,....

,....

~

~

t"'"l

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 45: BD

L

L

L

L

L.:

.._.

l..

-~

L .._,

-L

39. Se dă următoarea secventa de program. Care afirmatii sunt

adevărate?

DO CASE

CASE x = 1 •·

@ 5,5 SA Y 'Eroare sintaxă'

CASEx=2

CASE x = 3 @ 5,5 SA Y 'Valoare bună'

OTHERWISE @ 5,5 SA Y 'Se va relua procedura'

ENDCASE

a) realizează o structură ciclică

b) este greşită pentru că are CASE vid

c) este greşită pentru că nu are OTHERWISE

d) este greşită pentru că nu are READ

e) realizează o structură alternativă

40. Comanda@ 2,5 SAY 'OK':

a) este o comandă de intrare standard

b) este o comandă de intrare oarecare

c) afişează un text pe linia 5 pe ecran

d) este greşită pentru că nu este urmată de READ

e) citeşte un text de pe linia 2 de pe ecran

e) Alte tehnici de programare

1. Legătura temporară, la momentul execuţiei, între două tabele se poate

realiza prin comenzile:

a) SET RELATION TO

b) JOIN

c) RELA TION BEETWEN

d) nu se poate realiza

e) COPYTO

266

l· f 7 2. Modularizarca programelor presupune utilizarea comenzilor:

a) SETMODU

b) FUNC ... RETU

c) VFP nu permite modularizarea programelor

d) REPEAT •.. UNTIL

e) SET PROC TO

3. Lucrul cu ferestre utilizator presupune utilizarea comenzilor:

a) CREATE WINDOW

b) DEFI WIND

c) JOIN WIND

d) ACTIVATE WINDOW

e) BROSE WIND

4. Lucrul cu meniuri orizontale utilizator presupune utilizarea comenzilor: a) CREAMENU

b) DEFI POPUP

c) CREABAR

d) CREA POPUP

c) DEF1 MENU

5. Programul următor are ca efect: DIMEv(4,3)

FOR i = 1 to3

v(l,i) =O ENDFOR

v(2,2) =22

STORE 23 TO v(2,3)

STORE 1 TO exemplu(2,2) CLEAR

DISP MEMO LIKE v

a) defmeşte un masiv bidimensional

b) iniţializează prima linie din matrice cu valoarea O

1· ~-'

267

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 46: BD

c) afişează toate elementele unei matrici

d) foloseşte o instrucţiune de atribuire

e) ini!ializează prima coloană din matrice cu valoarea O

6. Fie următorul program:

USE prod

LIST

CREA TRIG ON prod FOR DELETE AS codp < 22

DELE FOR codp = 5

LIST

RECALL ALL

I..!ST

a se lucrează cu o structură repetitivă de program

b. se defineşte un declanşator

c se şterg fizic tupluri

el. se afişează doar înregistrarea a 5 a din tabela curentă c. se realizează apelul unui declanşator

7. Cu ajutorul unui declanşator se pot:

a) şterge date din tabele

b) adăuga date în tabele

c) modifica date din tabele

d) crea tabele

c) crea baze de date

8. Se dă următoarea secvenţă de program:

268

USE prod

mi=O

@ 2,2 SA Y 'Valoare întreagă:' GET mi READ

DO pl

? 'Înregistrarea=', RECNO ()

PROCEDURE pl

DO CASE

CASE mi= 1

GOTOP

CASEmi=2

GOBOTTOM

ENDCASE

RETURN Care afirmaţii sunt adevărate?

a) este greşită pentru că procedura este plasată după apel

b) este greşită pentru că procedura nu este apelată bine

c) este greşită pentru că o structură tip CASE nu poate apărea într-o procedură

d) este greşită pentru că variabila "mi" se utilizează în

procedură şi nu este definită în ea

e) este greşită o comandă GO

9. Se dă următoarea secvenţă de program:

mk= 1

@ 5,5 SA Y 'mk:' GET READ

DOpl

PROCEDURE pl

IFmk=2 ? 'CORECT'

ELSE

? 'EROARE'

ENDIF

RETURN Care afirmaţii sunt adevărate?

"

a) procedura trebuie, obligatoriu, ·plasată înainte de comanda de apel

b) după apelul procedurii este obligatorie încă o comandă

c) este greşită comanda de citire a datelor

d) este greşită procedura

e) este greşită revenirea din procedură

269

,....

.~

1'"-1

,..,

...,

,...

1""'\

-....,

,...,

..,

."""'1

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 47: BD

'-'

._.

......

1.-J

'-'

'-

-1....

"'""'

-.....

1 O. Se dă următoarea secventă de program:

ml = 10

m2=2

DOp3

? 'TERMINAT'

PROC pl

DOp2

mi=: m2/mi

PROC p2

m2= ml/m2

PROC p3

m3=22

DOpi

m3=m3+m2

RETURN Care afirmaţii sunt adevărate?

a) procedura "pl" trebuie situată după procedura "p3" b) structurarea comenzilor de apel se face pe mai multe niveluri

c) variabila "m2" este parametru de intrare în procedura "p3"

d) variabilele "ml" şi "m3" sunt ambele parametrii de intrare

în procedura "pl"

e) este greşită secvenţa

11. Se dă următbarea secvenţă de program:

ml =22

270

DOpi

?'OK'

PROC pi

PUBLIC m2

m2= m1 ** 2 DOp2

PROCp2

m3 =m2+m1

1 !

RETU Care afirmaţii sunt adevărate?

a) procedura "pl" este greşită pentru că nu are RETURN

b) procedura "p2" este greşită pentru că foloseşte variabila "m2'' pe care nu a definit-o

c) procedura "p2'' este greşită pentru că foloseşte variabila "m3" pe care nu a definit-o

d) comanda PUBLIC nu există în VFP e) secvenţa este un program modularizat

I2. Se dă următoarea secvenţă de program:

mdn="D"

DO WHILE mdn $ "D/d"

CLEAR

@ 2,2 PROMP 'Actualizare'

@ 3,2 PROMP 'Afişare'

@ 4,2 PROMP 'Terminare'

MENUTO mi

DO CASE

CASE mi::::: I

DO a

CASE mi =3

mdn= 'N'

ENDCASE

ENDDO

PROCa

Care afirmaţii sunt adevărate?

a) realizează un meniu orizontal b) realizează un meniu vertical

./

c) este greşită structura CASE pentru că nu tastează ml = 2 d) este greşită procedura "a" pentru că nu are RETURN

e) este greşită secvenţa pentru că nu este definită variabila "ml"

271

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 48: BD

'1

" li li

13. Se dă următoarea secventă de program:

mi ='d'

DO WHILE LOWER (mi)= 'd' ·

CLEAR

beneficiarilor'

produselor'

@ 2,1 T06,51

@ 3,2 PROMP 'Lista 1' MESSAGE 'Lista

@ 4,2 PROMP 'Lista 2' MESSAGE 'Lista

@ 5,2 PROMP 'Terminare'

MENUTOm2

SET MESSAGE TO 20

DO CASE

CASE m2= 1

CASEm2=2

CASEm2=3

mi ='n'

ENDCASE

ENDDO

Care afirmaţii sunt adevărate?

a) realizează un meniu vertical

b) afişează mesaje explicative pe linia 20 pe ecran c) pefmite lucrul cu meniul atâta timp cât doreşte utilizatorul d) la ~electarea primelor două opţiuni din meniu nu se execută

nici o procedură

e) selectarea unei opţiuni se poate face cu tastele săgeţi şi apoi tasta ENTER

14. Se dă următoarea secvenţă de program:

272

CLEAR

DEFINE POPUP pop1 FROM 5,5 MESSAGE 'Meniu principal'

DEFINE BAR 1 OF pop 1 PROMPT 'VIZUALIZARE'

DEFINE BAR 2 OF popi PROMPT 'A\<CTUALIZARE'

DEFINE BAR 3 OF popl PROMPT 'TERMINARE'

ON SELECTION BAR I OF popi DO v

ON SELECTION BAR 2 OF popi DO a

ON SELECTION BAR 3 OF pop1 DO DEAC POPUP popi

ACT 1 POPUP pop 1

SHOW POPUP pop 1

DEAC POPUP pop 1

? 'TERMINAT OK'

PROCv

@ 20,5 SA Y 'Vizualizare inactivă'

PROCa

@ 20,5 SAY 'Vizualizare inactivă'

RETURN

Care afirmaţii sunt adevărate?

a) realizează un meniu vertical b) realizează un meniu orizontal c) selectarea opţiunii 1 se face tastând litera V d} selectarea opţiunii 2 se face tastând litera A e) selectarea opţiunii 3 se face tastând literaT

.r

15. Se dă următoarea secvenţă de program:

CLEAR

DEFINE MENU men1 BAR AT LINE 5

DEFINEPADpl OFmenl PROMPT 'VIZUALIZARE'

DEFINE PAD p2 OF men2 PROMPT 'ACTUALIZARE'

DEFINE PAD p3 OF men3 PROMPT 'SFÂRŞIT' ON SELE MENU men 1 DO s ACTI MENU men 1

DEAC MENU menl

J'ROC S

DO CASE

CASE PAD 0 = 'P1'

CASE PAD 0 = 'P2'

273

.....

1"""'1

,.......

.......

~

Il

,....,

,_

.......

,-.. •

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 49: BD

'-'

\.......

..._

...._

.....

'-

'-'

\..."

\..."

-1.-i

CASE PAD () = 'P3'

ENDCASE

RETU a) structura CASE este eronată .

b). trebuia o singură comandă DEFINE PAD pentru toate opţiunile meni ului

c) la o execuţie a programului se poate apela o singură opţiune din meniu

d) opţiunea ACT se găseşte pe linia 6 pe ecran e) meniul are trei opţiuni

16. Se dă următoarea secvenţă de program:

CLEAR

DEFI WIND fi FROM 5,5 TO 15,35 TITLE 'Răsfoire'

SHADOW

ACTIWIND fl

USE beni

BROW

DEACWIND fi Care afirmaţii sunt adevărate?

a) realizează un meniu vertical b) realizează un meniu orizontal c) realizează o fereastră d) se poate vizualiza tabela "beni"

e) la terminarea execuţiei cursorul nu revine în fereastra de comandă

17. Se dă următoarea secvenţă de program:

274

CLEAR

DEFINE WINDOW f FROM 5,5 TO 20,99 ACTIVE WINDOW f

@ 1,3 SA Y 'Mesaj'

WAIT 'Apăsaţi orice:'

DEAC WIND ALL

~Î: '\.ll ~~ Care afirmaţii sunt adevărate?

a) se afişează un mesaj pe linia unu de pe ecran

b) se afişează un mesaj pe linia trei de pe ecran

c) se afişează un mesaj pe linia trei din fereastră

d) se citeşte un mesaj pe linia unu din fereastră e) o comandă este greşită

18. Se dă următoarea secvenţă de program:

USE beni

INDEX ON denb TO b 1

CLEAR

? ' COD * NUME BENEFICIAR'

? REPLICA TE (' - ', 22) SCAN

? codb, '*', denb

ENDSCAN

Care afirm~tii sunt adevărate?

a) afişează un cap de tabel în fişierul "bl.txt'

b) afişează codul şi denumirea beneficiarilor ordonate după cod c) afişează codul şi denumirea beneficiarilor ordonate

1 -

descrescător .... ·--

d) accesează toate înregistrările tabelei curente e) crează un fişier de index ataşat tabelei BENI

19. Se dă secvenţa de program:

SELE3

USEprod

INDEX ON codp TO p 1

SELE2

USEcontr1

SET RELA TO codp INTO prod

G05

SELE3

DISP

275

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 50: BD

Care afirmatii sunt adevărate?

a) se afişează înregistrarea cinci din tabela CONTRI

b) se afişează înregistrările cinci din tabela PROD c) se afişează o inregistrare din PR_OD care are acelaşi "codp"

cu a cincea înregistrare din CONTRI d) se afişează o înregistrare din CONTRI care are acelaşi

"codp" cu a cincea înregistrare din PROD e) se stabileşte o legătură între tabela principală CONTRI şi

cea secundară PROD

20. Se dă secvenţa de program:

SELE2

USE beni

INDEX ON codb TO bl UNIQUE

COPY TO cb FIELDS codb, denb

Care afirmaţii sunt adevărate?

a) se realizează o proiecţie din tabela BENI b) se realizează o selecţie din tabela BENI c) se realizează o diferenţă din tabela BENI d) se realizează afişarea câmpurilor "codb" şi "denb" din tabela

BENI e) se utilizează un operator relaţional

21. Se dă secvenţa de program:

276

SELE3

SELE * FROM prod INTO DBF cp WHERE (codp>20 AND

codp<SO)

Care afirmaţii sunt adevărate?

a) se realizează o selecţie din tabela "prod" b) se realizează o selecţie din tabela 3 c) se realizează o proiecţie din tabela "prod" d) o comandă este greşită e) trebuia obligatoriu deschisă tabela ''prod"

22. Se dă secventa de program:

SELE 1

USE prod INDEX ON codp TO pl

SELE2

USE contrl INDEX ON codp TO el J01N WITH prod TO conprod FOR codp = A.codp~

FIELDS codp, A.denp, A.ump, cantl

Care afirmaţii sunt adevărate?· a) eroare pentru că variabilele "A.denp" şi "A.ump" nu sunt

definite b) se realizează o selecţie c) se realizează o joncţiune d) se realizează o proiecţie e) rezultă fişierul "conprod.dbr'

f) Programarea orientată obiect

1. Se dă secvenţa de program: DEFINE CLASS Cl AS Vl nume=" " __ .;' J

Care afirmaţii sunt adevărate?

a) se defineşte clasa "Vl" b) se codifică clasa "Cl" c) se defineşte o metodă

PROCEDURE pl

?THIS.nume

ENDPROC

ENDDEFINE

d} se defineşte procedura "THIS" e) se descrie o proprietate

~

~

'"'"'

--

,.....,

,......

,...,

~

277

'"""

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 51: BD

'-'

'-'

1.....

L

'--

L..

......

.__.

'-'

...._

-'-'

278

2. Se dă secvenţa de program: 8I = CREATEOBJECT ("CI")

81. nume= "Maria"

? 81. nume

Se consideră definite anterior toate elementele necesare.

Care afirmaţii sunt adevărate? .

a) se instanţiază un obiect dintr-o clasă

b) se crează clasa de obiecte "Cl"

c) se defineşte o variabilă de memorie de tip obiect d) se referă o metodă

e) se referă o proprietate

3. Se dă secvenţa de program: DEFINE CLASS C2 AS CI

Str=""

PROCEDURE 82

CI:: pl

WAIT WINDOW "STOP" ENDPROC

ENDDEFINE

Se consideră definite anterior toate elementele necesare.

Care afirmaţii sunt adevărate?

a) de definesc două clase: "Cl" şi "C2"

b) se apelează procedura "p2" c) se ~efineşte o subclasă d) se apelează o m~todă e) se definesc două proprietăţi

4. Se dă secvenţa de program: DEFINE CLASS C AS CI

PROTECTloc

loc=""

str=""

tiploc =0

PROCEDURE PROTECT p ? THIS.Ioc

ENDPROC

.. i

' ENDDEFINE

Care afirmaţii sunt adevărate?

a) toate proprietăţile definite pot fi referite din afara clasei b) toate metodele definite pot fi referite din afara clasei c) se protejează trei proprietăţi

d) se protejează o singură proprietate

e) se protejează o singură metodă

5. Se dă secvenţa de program: o l = CREA TEOBJECT ("C")

mloc = o l.loc

ol.P ()

&&STOP

Care afirmaţii sunt adevărate?

a) se transmit mesaje către un obiect b) se apelează comanda "STOP"

c) se defineşte o proprietate

d) se crează o clasă de obiecte e) se apelează o metodă

6. În Visual FoxPro clasele de bază (standard) sunt:

a) utilizator /

b) vizuale -·· c) metode d) nonvizuale e) funcţii

7. Se dă secvenţa de program: DEFINE CLASS CI AS from

left = 22

top = 22 height = 200

width = 240

caption = "Răsfoire" PROCEDURE sf

279

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 52: BD

Care afirmatii sunt adevărate?

CLEAR EVENTS

ENDPROC

ENDDEFINE

a) se defineşte clasă pe nume.le ''from"

b) se defineşte o subclasă utilizator c) se utilizează o superclasă de bază (standard)

d) se realizează o răsfoire a bazei de date e) se indică, prin proprietăţi, dimensiunea unei ferestre

g) Programarea În SQL

280

1. Comanda:

SELECT denp+ump produse FROM prod

a) foloseşte o funcţie

b) foloseşte o etichetă

c) foloseşte un operator

d) are o clauză e) realizează o actualizare

2. Comanda:

SELECT MAX(denp), COUNT(*) contor FROM prod WHERE

ump='buc' ' 1 1

a) foloseşte o funcţie b) este eronată pentru că MAX nu se aplică pe caractere c) afişează două coloane

d) afişează trei coloane e) regăseşte tupluri din tabela contor

3. Comanda CREATE TABLE permite:

a) Încărcarea datelor într-o tabelă b) actualizarea structuri de date a unei tabele c) definirea restricţiilor de integritate

d) definirea domeniului pentru atribute e) definirea tipului pentru atribut

4. Comanda:

SELECT Iocb, avg(cantl) FROM caddid GROUP BY locb HA VING avg( cantl)> 100

a) foloseşte o funcţie de agregată b) foloseşte doi operatori

c) grupează tuplurile provenite din tabela Iocb d) regăseşte date diritr-o tabelă'

e) afişează trei coloane

5. Comanda

SELECT p.denp, c.cantl FROM prod p, contr c WHERE c.codp=p.codp simulează opearorii relaţionali:

a) reuniunea

b) joncţiunea

c) selecţia

d) concatenarea e) intersecţia

6. Comanda următoare este eronată pentru că: ·•··

SELECT * FROM contr c WHERE 2 = (SELECT codp FROM produs p)

a) are referirea * b) are referirea produs p

c) are clauza WHERE În loc de FOR d) are subcerere

e) nu are nicio funcţie

281

~.

,....

-~

........

1'""'1

1"'-\

,.......

.....,

t""-1

....,

-..

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 53: BD

L_.

1..1

'--

........

......

'--

_,

"-'

.......

._.

........

1.-J

7. Comanda unnătoare: INSERT INTO prod SETcodp = 22 WHERE denp ='ecran'

a) adaugă un tuplu Între două existente

b) este greşită pentru că are clauza SET

c) este greşită pentru că. are clauza INTO

d) adaugă un tuplu În tabela codp e) este greşită pentru că are clau1..a WHERE

8. Comanda:

DELE ALL FROM prod a) şterge toate tuplurile din tabela prod b) este eronată pentru că are clauza ALL

c) este o comandă de actualizare d) este eronată pentru că nu există comanda DELE e) este eronată pentru că nu trebuie indicat numele tabelei

9. Comanda: UPDATE contr SET cantl = 200 WHERE codp = 22

282

a) modifică toate tuplurile dintr-o tabelă b) actualizează toate atributele dintr-o tabelă

c) modifică doar anumite tupluri din tabelă

d) actualizează tabela cantl e) actualizează un singur atribut din tabelă

1

1 O. Secvenţa de comenzi are ca rezultat: CREATE VIEW vl AS SELECT denp FROM prod WHERE ump =

'buc'

USEvl

LIST a) definirea unei tabele virtuale

b) lucrul cu o viziune

c) afişarea datelor din tabela prod

d) afişarea datelor dintr-o tabelă virtuală

e) deschiderea unei tabele virtuale

ţ RĂSPUNSURI •'·

a) Descrierea datelor

1: a, e; 2: e; 3: b, c; 4: a, b, c, d; 5: e; 6: b; 7: c; 8: b, d; 9: a, c, d;

10: a; ll: nici un răspuns corect; 12: a, b, e; 13: b, d; 14: a, b, c, d, e;

15: a, c, d; 16: b, c, d; 17: a; 18: a, b, d.

b) ~ccesulla date

1: b, c, d, e; 2: e; 3: a, b; 4: a, b; 5: d, e; 6: d, e; 7: b; 8:c; 9: a, b,

c,d;'

10: a, b, c; li: c; 12: a, b, c, d; }j; c; 14: a, b, c; 15: a,b; 16: a, b, c,

d, e; 17: d; 18: c; 19: a; 20: e; 21: e; 22: a, e; 23: c; 24: d, e; 25:

e; 26: a, b, d; 27: nici un răspuns corect; 28: c, e; 29: b; 30: b, c, d;

31: b, c; 32: b, c, d; 33: a, b.

c) Actualizarea datelor

1: a, b, c, e; 2: a; 3:b, c; 4: a; 5: a, b; 6: a, c, d, e; 7: b, e; 8: a, b; 9:

a; 10: a, b; Jl: a, b, c, d, e; 12: a; 13: a, e; 14: b, c; 15: d, e; 16: b;

17: a, b, d; 18: e.

d) Structuri de program

1: b; 2: a; 3: a; 4: b; 5: a; 6: c, d, e; 7: d; 8: a, g, d; 9: c, e; 10: nici una;

ll: d; 12: b; 13: d; 14: a; 15: nici un răspuns corect; /6: .c; 17: c;

18: e; 19: nici un răspuns corect; 20: c, e; 21: d; 22: d; 23: a; 24: b:

25: c; 26: a; 27: b, c;

28: e; 29: b; 30: d; 31: a; 32: b, e; 33: d; 34: a; 35: e; 36: a; 37:.

c; 38: c;

39: e; 40: nici un răspuns corect.

e) Tehnici de programare 1: a, b; 2: b, e; 3: b, d; 4: a, e; 5: a, b, c, d; 6: b, e; 7: a, b, c;

un r~puns corect; 9: c;

15: c, e; 16: c, d; 10:b,c; Jl:e; 12:b; 13:a,b,c,d,e;

8: nici

14: a;

J7:niciunrăspunscorect; 18:d,e; 19:c,e; 20:a,e; 21:a; 22:c,e.

283

Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Draistaru Alexandru
Highlight
Page 54: BD

f) Programarea orientată obiect 1: b. c, e; 2: a, c, e; 3: c; d; 4: d, e; 5: a, e; 6: b, d; 7: b, c, e.

g) Programarea În SQL J:b,c,d; 2:a,c; J:c,d,e; 4:a,d; ·s:b,c; 6:d; 7:b,e; B:b,c; 9:

c . e ; 10: a, b, d, e

Probleme

Problemele prezentate acoperă majoritatea facilităţilor oferite de limbajul de programare din VFP, inclusiv extensiile sale, similar cu cele după care au

fost grupate testele de mai sus:

a) descrierea datelor; b) accesul Ia date; c) actualizarea datelor; d) stmcturile de program; e) alte tehnici de programare; !) programarea orientată obiect; g) programarea în SQL

a) Descrierea datelor

l . Pomind de 1~ tabela de contracte - CONTR să se scrie programul care 1

creează o nouă tabelă CON 1 cu aceeaşi structură. Aceasta care va contine contractele ce vor avea termenul de livrare în luna februarie a anului

curent.

CLOSEALL USE contr COPY STRU TO conl USE conl APPE FROM contr FOR MONTH(termenl)==2 ANO YEAR(tcrmenl)=YEAR(DATEO)

284

2. Să se creeze BD de desfacere - DESF, cu tabelele PROD, BENI,

CONTR conform structurii din Introducere. Să se afişeze după fiecare

creare de tabelă structura.

CREATE DATABASE desf CREATEprod DISPSTRU CREATEbeni DISPSTRU CREA TE contr DISPSTRU

3. Să se actualizeze structura de date a tabelei PROD în sensul adăugării unui câmp nou denumit VACS ca şir de caractere, de lungime 5.

USE prod MODISTRU DISPSTRU

b) Accesul la date

1. Să se indexeze tabela BENI după o cheie formată din dguă câmpuri: codb şi denb. Nu se admit valori multiple pentru cheie. ___ ,. .. · .

USE beni LIST INDEX ON STR(codb,4)+denb TO il UNIQUE LIST

2. Să se afişeze din tabela CONTR cantităţile pentru contractele al căror termen de livrare este anul curentă.

USE contr LIST cantl FOR YEAR(termeni)=YEAR (DATE()) ANO; YEAR(termenl)== YEAR(DA TE())

285

,...,

~

~.

,.-.,

,......

.-.,

""'"'

-,...,

.-.,

!""'\