34
Curs 1 – BAZE DE DATE Bibliografie: 1. Gavin Powell, Beginning Database Design, Wiley Publishing, Inc. , 2006, www.wiley.com. 2. Muscalagiu Ionel, Petras Teodora - Baze de date. SGBD.- ul Visual Foxpro, Editura Mirton, 2003. 3. Octavian Bâscă – Baze de date, Editura ALL, 1998. 4. Grupul BDASEIG- Baze de date. Fundamente teoretice şi practice, Editura Infomega, 2002. 5. MSDN Microsoft – Documentaţia pentru Microsoft Access, Sql Server. 6. Codd, E.F. – A Relational Model of Data for Large Shared Data Banks–Communication of ACM, 13,6, 1970. STRUCTURA CURSULUI : I. Fundamentele bazelor de date C1-C3. II. Prezentarea unui SGBD –ului Microsoft Access + Visual Basic. III. Servere pentru baze de date-: SQL Server.

Curs 1-Baze de Date

Embed Size (px)

Citation preview

Page 1: Curs 1-Baze de Date

Curs 1 – BAZE DE DATE

Bibliografie:

1. Gavin Powell, Beginning Database Design, Wiley Publishing, Inc. , 2006, www.wiley.com.

2. Muscalagiu Ionel, Petras Teodora - Baze de date. SGBD.-ul Visual Foxpro,

Editura Mirton, 2003.

3. Octavian Bâscă – Baze de date, Editura ALL, 1998.

4. Grupul BDASEIG- Baze de date. Fundamente teoretice şi practice, Editura

Infomega, 2002.

5. MSDN Microsoft – Documentaţia pentru Microsoft Access, Sql Server.

6. Codd, E.F. – A Relational Model of Data for Large Shared Data Banks–

Communication of ACM, 13,6, 1970.

STRUCTURA CURSULUI :

I. Fundamentele bazelor de date C1-C3.

II. Prezentarea unui SGBD –ului Microsoft Access + Visual Basic.

III. Servere pentru baze de date-: SQL Server.

Scop:- înţelegerea principalelor concepte legate de baze de date.

- proiectarea, operarea şi utilizarea bazelor de date.

- proiectarea şi realizarea aplicatiilor informatice folosind baze de date.

Page 2: Curs 1-Baze de Date

I . Introducere în baze de date. Concepte ale bazelor de date.

Cea mai importantă aplicaţie a calculatoarelor zilelor noastre o constituie memorarea şi

prelucrarea informaţiilor . Acest lucru se face folosind sisteme special dedicate prelucrării datelor

numite sisteme de gestiune a bazelor de date , sisteme ce operează cu baze de date . Ele

reprezintă un domeniu de interes foarte important din aria ştiinţei computerelor .

O bază de date este o colecţie de date păstrate în memoria externă , date păstrate şi accesate

prin intermediul computerelor şi a sistemelor de gestiune a bazelor de date. Bazele de date sunt

păstrate de diverse organizaţii sau întreprinderi în scopul regăsirii cât mai rapide a datelor, pentru

monitorizare, supervizare sau planificare .

O agendă de telefon este un bun exemplu de bază de date. Ea conţine date relevante pentru o

anumită persoană (numele, adresa, numărul de telefon). Culoarea telefonului unei persoane este o

informaţie irelevantă şi ea nu este conţinută în această bază de date. Foarte multe baze de date se

axează pe domeniul economic, dar există şi baze de date cu scopuri ştiinţifice, militare, etc. Pentru a

răspunde cerinţelor actuale, bazele de date conţin pe lângă date de tip text sau numeric şi alte tipuri

cum ar fi imaginile, sunetele şi elementele multimedia.

Operaţiile asupra bazelor de date se fac prin intermediul unui pachet de programe numit sistem

de gestiune al bazei de date ( SGBD) . Acest SGBD se ocupă de modelarea datelor ( alegerea

modelelor de memorie folosite) , permire accesarea datelor , regăsirea acestora .

Din punct de vedere al sistemului de operare baza de date este formată din fişiere diverse

(datele propriu-zise , fişiere auxiliare ).

Arhitectura unei baze de date

Datele din baza de date sunt păstrate conform unui model de organizare, utilizatorului fiindu-I

accesibile şi vizibile acele date conform unui model . Pentru a putea fi gestionate, datele unei b.d

sunt descrise cu ajutorul unui limbaj specializat ce foloseşte structuri de date . Astfel se obţin mai

multe structuri ale bazei de date

Un sistem de baze de date poate fi văzut (structurat )din patru puncte de vedere numite nivele:

conceptual, extern, logic şi fizic.

Page 3: Curs 1-Baze de Date

a. Nivelul conceptual

Este un nivel fundamental deoarece descrie într-un mod natural şi fără ambiguităţi sistemul

ce urmează a fi modelat. Dacă o persoană este familiară cu un anumit sistem, atunci ea poate realiza

designul acestuia fără a mai comunica cu alte persoane. În caz contrar, trebuie consultate mai multe

persoane care sunt familiare cu sistemul respectiv. Aşa cum oamenii comunică între ei cu ajutorul

cuvintelor, figurilor sau exemplelor, cel mai clar mod de a descrie un sistem este utilizarea unui

limbaj natural, a unor diagrame intuitive şi bineînţeles a exemplelor. Aceste principii conduc la

ideea de a exprima mai întâi un sistem la nivel conceptual, folosind concepte cu care oamenii pot

lucra foarte uşor. Prin urmare la acest nivel va fi realizată schema conceptuală ce reprezintă design-

ul general al sistemului bazei de date.

b.Nivelul extern

La nivel extern se specifică design-ul bazei de date perceput de un anumit utilizator sau

grup de utilizatori precum şi modul în care acest design este legat de schema conceptuală. Schema

externă reprezintă specificarea informaţiilor care pot fi văzute de către un utilizator şi modul în care

acestea sunt prezentate. În cele mai multe cazuri, un utilizator poate accesa doar o parte din

informaţii. De exemplu, este mult mai uşor ca utilizator să selecteze numai informaţii relevante

pentru acesta sau din motive de securitate să nu poată obţine anumite informaţii. Schema externă

este realizată astfel încât grupuri diferite de utilizatori să acceseze numai anumite subscheme ale

schemei conceptuale globale. Mai mult, utilizatori diferiţi pot dori ca aceiaşi informaţie să fie

reprezentată în moduri diferite (tabele, grafice) sau pot prefera anumite metode de operare sau

navigare în funcţie de nivelul de experienţă acumulat. Prin urmare la acest nivel se pot proiecta

diferite interfeţe cu utilizatorul.

c. Nivelul logic

Aşa cum am văzut până acum, schema conceptuală este creată pentru a comunica, adică

pentru a reprezenta sistemul ce urmează a fi proiectat într-un mod cât mai clar. Pentru a realiza o

implementare eficientă această schemă conceptuală trebuie convertită într-o structură de nivel

inferior. Prin urmare, pentru o anumită aplicaţie dată, se alege un model logic adecvat de organizare

a datelor (de exemplu, modelul relaţional, ierarhic, reţea, etc.). Se mai spune că schema conceptuală

este transformată într-o scemă logică exprimată cu ajutorul unor structuri abstracte de date şi

Page 4: Curs 1-Baze de Date

operaţii furnizate de modelul de date respectiv. De exemplu, pentru modelul relaţional faptele sunt

depozitate în tabele, constrângerile sunt exprimate cu ajutorul cheilor primare sau străine, etc.

d. Nivelul intern

După ce a fost realizată schema logică, aceasta trebuie proiectată prin intermediul unei

scheme interne într-un anumit SGBD (Sistem de Gestiune a Bazelor de Date). De exemplu, schema

relaţională poate fi implementată în Oracle, Access, Visual Foxpro sau DB2. Schema internă

include toate detaliile despre stocarea fizică şi structurile de acces utilizate în sistemul respectiv (de

exemplu, indecşi, clustere, etc.). Pentru acelaşi SGBD pot fi alese diferite structuri de stocare, după

cum şi pentru SGBD-uri diferite există structuri diferite. Prin urmare, pentru aceeaşi schemă logică

pot fi alese mai multe scheme interne.

În concluzie, unul dintre avantajele nivelului conceptual este acela de a fi cel mai stabil

dintre niveluri. El nu este practic afectat de schimbările interfeţelor cu utilizatorii, de structurile

fizice de stocare sau de tehnicile de accesare a datelor.

Aceste structuri de organizare implică şi nivelele de interacţiune dintre b.d. şi utilizatori :

- proiectantul b.d. : acesta vede necesităţile globale de date ale unei organizaţii în acel

moment sau în viitor . El este cel care realizează structura conceptuală a b.d. astfel încât să

nu depindă de partea de hardware sau de partea software .

- utilizatorul . Pe acesta nu-l interesează decât anumite aplicaţii (de exemplu cum să obţină

o listă cu anumite informaţii ) . De aceea acesta trebuie să cunoască structura logică a b.d.

- inginerul bazei de date : Acesta trebuie să se ocupe de întreţinerea eficientă a bazei de

date, pe baza hardware- şi software-lui existent . Din acest motiv el trebuie să cunoască

structura fizică ( sau internă ) a bazei de date .

Structura fizică

Structura logică Structura logică Structura logică

Structura virtuală

inginerul de sistem

administratorul bazei de date

programatorulul

Page 5: Curs 1-Baze de Date

II. MODELE DE DATE PENTRU BAZE DE DATE - MODELE

CONCEPTUALE

După cum am văzut , baza de date este descrisă conceptual de administratorul b.d. Pentru

aceasta, el apelează la un model de date cu ajutorul căruia poate structura informaţia din lumea

reală pe care doreşte să o păstreze . Modelul de date este de fapt un fel de ghid pentru

reprezentarea datelor. Acesta se referă doar la structura virtuală şi cea logică, nicidecum la

structura fizică ( care structură fizică depinde de sistemul de operare şi de S.G.B.D.-ul folosit).

Modelul de date folosit de un SGBD descrie modul de organizare a datelor în baza de date.

Modelul de date reprezintă un tipar după care este organizată din punct de vedere logic baza de

date. Modelul de date nu specifică datele, implementarea sau organizarea lor fizică, ci doar modul

lor de organizare logică. După modelul folosit, există mai multe categorii principale de SGBD-uri.

Există mai multe modele conceptuale principale folosite pentru modelarea conceptuală a

datelor, dintre acestea cele mai cunoscute fiind :

- modelul relaţional

- modelul reţea

- modelul ierarhic

- modelul obiect pe obiect.

Fiecare model captează într-un anumit fel proprietăţile lumii înconjurătoare pe care dorim să o

modelăm.

1. MODELUL RELAŢIONAL : introdus de Codd în 1970 .

Este un model simplu ce oferă independenţa datelor, model folosit astăzi în multe din SGBD-

urile existente pe piaţă .

O bază de date relaţională, bazată pe acest model relaţional, este formată din trei părţi principale:

- structura datelor, prin definirea unor domenii de valori şi a relaţiilor n –are cum ar fi

atributele, cheile primare. De fapt această parte se referă la tabelele de date, la legăturile

între tabele , etc.

- reguli de integritate care impun anumite restricţi, în scopul de a permite numai valori

corecte în relaţii .

- operatori de gestiune a bazei de date folosiţi pentru prelucrarea datelor .

Page 6: Curs 1-Baze de Date

Modelul relaţional se bazează pe noţiunea matematică de relaţie, aşa cum este definită în teoria

mulţimilor, şi anume ca o submulţime a produsului cartezian a unei liste finite de mulţimi numite

domenii :

Modelul relaţional al bazei de date constă dintr-o colecţie de relaţii ce variază în timp (relaţiile

se pot schimba prin operaţii de adăugare, ştergere şi actualizare ) . De obicei relaţiile sunt

reprezentate sub forma unor tabele în care fiecare rând reprezintă un tuplu (liniile se vor numi

înregistrări ) şi fiecare coloană reprezintă valorile tuplurilor dintr-un domeniu dat al produsului

cartezian ( sunt numite câmpuri, atribute ) . Din acest motiv , în modelele relaţionale , bazele de

date sunt de fapt tabele cu date , sau altfel zis sunt fişiere fizice ce au datele organizate logic sub

formă de tabele.

Exemplu: Să considerăm datele despre studenţi, date pe care dorim să le stocăm în computer .

O bază de date relaţională este de fapt un tabel de felul următor :

STUDENT [NRMATRICOL, NUME, ANNASTERE, ANSTUDIU]

STUDENT - numele tabelului sau numele bazei de date sau nume de entitate sau nume de relaţie

NRMATRICOL Nume Annaştere Anstudiu

1000 POPESCU ION 1978 4

1001 GEORGESCU MIHAI 1980 2

1002 IONESCU GEORGE 1979 2

Se observă că fiecare atribut ( coloană ) are nu nume . Atributele pot să apară în orice ordine în

relaţie . Elementele unei relaţii sunt liniile din tabel .

În reprezentarea sub formă de tabel a unei relaţii, coloanele şi , respectiv domeniile

corespunzătoare lor li se asociază nume intitulate atribute . Mulţimea numelor atributelor unei

relaţii se mai numeşte şi schemă relaţională ( sau familie de caracteristici). De fapt , în S.G.B.D. ,

schema relaţională reprezintă aşa numita structura logică a bazei de date, structură care se decide

de proiectatul bazei de date.

Cheie

antetul tabelului= familie de caracteristici

linia=realizare de entitate=înregistrare

domeniul caracteristicii anstudiu

nume coloană = caracteristica sau atributul entităţii

Page 7: Curs 1-Baze de Date

O coloană pentru care valorile corespunzătoare din oricare două tupluri nu coincid se

numeşte cheie . Pot exista mai multe chei . Dintre acestea de obicei se alege o cheie primară,

celelalete chei rămânând chei secundare . Pentru exemplul de mai sus , coloana (câmpul) nrmatricol

este o cheie.

Mulţimea tuturor schemelor relaţionale correspunzătoare unei aplicaţii se numeşte schema

bazei de date relaţionale, iar conţinutul curent al relaţiilor la un moment dat se numeşte de fapt

bază de date relaţională . De fapt, când vorbim de o bază de date concretă , va trebui să definim

structura bazei de date (adică capul de tabel) şi să depunem date în baza de date ( adică liniile din

tabel să le completăm).

O altă problemă importantă este cea a asocierilor între tabelele cu date . Aceste asocieri între

entităţi (după cum s-a văzut sunt trei tipuri 1-1, 1-n, m-n) sunt de fapt relaţii ( toate perechile de

realizări de entităţi cu valori din cele două entităţi aparţin de fapt produsului cartezian) . Mai mult

toate asocierile dintre două entităţi pot fi stocate în formă tabelară .

Exemplu : Entităţile Grupe studenţi şi Studenţi sunt în relaţia unu-la-mai-mulţi

1 n

X - Grupe studenţi Studenţi – Y Relaţia Grupe- Studenţi

CodG Nr.studenţi Nume Medie CodG Nume

EM101 40 Moriu 8 EM101 Moriu

UT201 20 Ionescu 9. EM101 Mihai

IE605 30 Mihai 5 UT201 Ionescu

Se observă că prin asociere se aduce în altă tabelă doar cheiele de legătură. SGBD-urile relaţionale

ştiu să creeze legături sau asocieri între bazele de date . Mai mult, se pot crea distinct noi tabele cu

asocierile create.

Cele mai cunoscute SGBD-uri sunt bazate pe modelul relaţional : ORACLE, INGRES, DB2,

FoxPro, Paradox , Acces, etc.

În concluzie , modelul relaţional este caraterizat prin unitatea şi simplitatea reprezentărilor ,

totul se reduce la tabele. De asemenea, modelul păstrează rigoarea fundamentării sale matematice,

fapt ce a permis definirea unor limbaje de nivel foarte înalt ( cum ar fi SQL) care utilizează

elemente de algebră relaţională. Totuşi, trebuie precizat faptul că , dacă din punct de vedere fizic,

coerenţa modelului relaţional este de nezdruncinat, din punct de vedere logic , coerenţa bazei de

Page 8: Curs 1-Baze de Date

date trebuie perfect stăpânită. Orice modificare , de exemplu , a cheii primare trebuie însoţită de

actualizări în toate tabelel corelate bazei de date .

2. MODELUL IERARHIC SAU ARBORESCENT

A fost primul model utilizat în exploatarea bazelor de date şi el presupune gruparea şi

ierarizarea entităţilor într-o structură de arbore. Acest lucru presupune că fiecare nod care nu este

rădăcină are un singur nod superior şi unul sau mai mulţi descendenţi.

Datele sunt organizate asemănător unui arbore . Utilizatorii văd datele ca şi arbori alcătuiţi din

tipuri de înregistrări interconectate .

Exemplu : - sistemul informatic cu toate datele tuturor facultăţilor unei universităţi poate

forma o structură arborescentă :

Se observă existenţa legăturilor de tipul 1 – N .

Baza de date presupune rezervarea de spaţiu pentru fiecare facultate , apoi pentru fiecare

facultate de reţin informaţiile de identificare ( cum ar fi numele , adresa , telefonul ) şi în continuare

se reţine spaţiu de stocare pentru grupele de studenţi , etc. Se observă faptul că datele sunt stocate

pe mediul extern în ordinea dată de parcurgerea în preordine a arborilor, ceea ce uşurează

determinarea informaţiilor pentru cererile care se referă la descendenţii unor noduri printr-un număr

mic de accese la mediul extern .

Cu toate că oferă posibilitatea unei căutări rapide , există câteva dezavantaje :

- anumite structuri nu sunt supuse ierahizării;

- actualizarea este dificilă, de exemplu ştergerea unui nod implică ştergerea tuturor

descendenţilor săi, iar adăugarea unui nod implică reorganizarea întregii baze de date.

Cel mai cunoscut sistem de gestiune a bazelor de date, de tip ierahic, este IMS (Information

Mangement System ), realizat de IBM pentru prelucrarea datelor din industria spaţială . Acest

SGBD are şi variantă mai recentă, îmbunătăţită,numită IMS/VS (Information Mangement System/

Virtual Storage) .

Facultatea

Grupe studenţi Obiecte de studiu Profesori Laboratoare

Studenţi Stat de funcţii (de încadrare)

Page 9: Curs 1-Baze de Date

3. MODELUL REŢEA .

Este un model general de organizare a datelor , în care nu există restricţia de la arbori în care un

nod trebuia să aibă un singur părinte (ca în cazul modelului arborescent)

Modelul reţea este cel mai apropiat de forma de reprezentare a bazelor de date sub forma

diagramelor entitate – relaţie. Baza de date poate fi reprezentată grafic printr-un graf orientat numit

de fapt reţea. Într-o reţea(adică într-un astfel de graf ) nodurile corespund entităţilor şi relaţiile sunt

de fapt arcele grafului,arce simple de la tată la fiu sau arce duble,dacă relaţia este de forma 1-n .

În acest model se folosesc noţiunile de înregistrare logică şi legătură . Înregistrarea se aseamănă

cu noţiunea de entitate de la cele relaţionale şi este de fapt un fişier logic care are drept câmpuri

atributele entităţii. În plus , apar câmpurile de legătură , o deosebire foarte mare faţă de modelul

relaţional. Mulţimea tuturor înregistrărilor de acelaşi tip au la bază un tip numit articol . Legătura

este o asociere între două articole, deci o legătură este de fapt o relaţie binară .

Exemplu : - acelaşi sistem informatic cu toate datele tuturor facultăţilor unei universităţi poate

fi reprezentat şi sub formă de reţea ( de fapt structura arborescentă este un caz particular al celei

reţea ) :

Se observă relaţiile 1 –n ( cele cu săgeată simplă ) şi relaţiile m–n ( cel cu săgeată dublă )

Ca şi modelul ierarhic , modelul reţea se bazează pe folosirea pointerilor pentru păstrarea

legăturilor. Dintre SGBD care folosesc modelul reţea amintim SGBD DBTG al firmei Data Base

Task Group şi SGBD Socrate, produs în România de firma ICL.

4. Modelul obiect pe obiect. Acesta este cel mai nou tip de modelare, încercând să integreze

principiile programării orientate pe obiect (Actor, Smalltalk, C++)şi ale bazelor de date. Bazele de

date relaţionale, cele mai populare în ultimul deceniu, ofereau prea puţin suport pentru tipurile

neconvenţionale de date. Necesitatea gestiunii obiectelor complexe (texte, grafice, hărţi, imagini,

sunete) şi a gestiunii obiectelor dinamice (programe, simulări) care nu pot fi realizate cu ajutorul

sistemelor relaţionale a condus la introducerea conceptului de obiect în cadrul sistemelor de

gestiune a bazelor de date

Facultăţi

Grupe studenţi Obiecte de studiu Profesori

Page 10: Curs 1-Baze de Date

Ca o concluzie generală legată de cele trei modele de baze de date , modelul relaţional se

impune prin simplitate, ceea ce permite folosirea lui şi de către nespecialişti cu un randament bun.

Trebuie să evidenţiem avantajele modelului relaţional faţă de celelalte modele : - structuri de date

simple, operatori simpli, independenţa fizică şi logică a datelor , uşurinţa dezvoltării aplicaţiilor,

definirea dinamică a datelor , posibilitatea dezvoltării bazelor de date distribuite. Mai mult, singura

structură folosită la bazele relaţionale este structura de tip tablou, structură foarte cunoscută în viaţa

obişnuită spre deosebire de structura de tip arbore sau de tip reţea (graf ) . Trebuie să remarcăm că

toate sistemele de baze de date distribuite sunt construite după principiul modelului relaţional .

SISTEME DE GESTIUNE A BAZELOR DE DATE (SGBD) .

1. DEFINIRE. FUNCŢII.

Accesul la baza de date se face cu ajutorul unui pachet de programe numit SGBD. Acesta

este un pachet de programe realizat de firme specializate, care realizează gestiunea şi prelucrarea

complexă a datelor , asigurând independenţa programelor de aplicaţie faţă de modul de structurare

a datelorşi un timp optim de răspuns la solicitările utilizatorilor în condiţii de multiacces.

S.G.B.D. trebuie să conţine rutine care să permită mai multe funcţii grupate , simplu , în

patru clase : definire, manipulare , administrare , protecţie .

Comunicarea cu bazele de date

Un SGBD nu este util dacă nu se poate comunica cu el, deci o primă funcţie a unui SGBD

este de a asigura accesul utilizatorului la baza de date. Prin aceasta se înţelege atât definirea

structurilor din baza de date cât şi manipularea şi interogarea (extragerea şi prelucrarea) datelor din

baza de date. În plus, utilizatorul trebuie să aibă la dispoziţie modalităţi de a controla integritatea şi

securitatea datelor. Cu alte cuvinte, comunicarea cu baza de date presupune următoarele patru

funcţiuni principale:

-Definirea structurilor de date. Un SGBD trebuie să furnizeze un Limbaj de Definire a

Datelor (Data Definition Language, DDL) care permite definirea (crearea, modificarea şi

distrugerea) schemei bazei de date, adică a structurilor de date folosite şi a legăturilor dintre

acestea.

Page 11: Curs 1-Baze de Date

Notă: Schema bazei de date, numită şi metadata, nu trebuie confundată cu datele

propriu-zise. Schema descrie modul de structurare al bazei da date, este definită de la început

şi se schimbă destul de puţin în timp. Datele, pe de altă parte, reprezintă instanţe ale schemei

bazei de date şi se modifică frecvent în timp. Aceste două concepte sunt analoage conceptelor

de tip şi variabilă dintr-un limbaj de programare.

Un SGBD trebuie să cuprindă un dicţionar de date (data dictionary) câteodată referit sub

denumirea de catalog al sistemului, care stochează date despre toate obiectele pe care le deţine,

cum ar fi numele obiectului, tipul, structura şi locaţia sa. Ciclul de viaţă al unei structuri de date, de

la crearea până la distrugerea ei, este înregistrat în dicţionarul de date, precum şi toate informaţiile

logice şi fizice despre aceasta.

-Manipularea datelor. Odată create structurile din baza de date, trebuie permisă inserarea

de date în aceasta, precum şi actualizarea sau ştergerea celor existente. Aceste operaţii sunt

efectuate de către Limbajul de Manipulare a Datelor (Data Manipulation Language, DML).

-Interogarea datelor. Un SGBD trebuie să permită extragerea, vizualizarea şi prelucrarea

(filtrarea, stocarea, etc.) datelor existente. Aceste operaţii se fac cu ajutorul unui limbaj numit

limbaj de interogare sau acces (Data Query Language, DQL).

-Controlul datelor. Limbajul de Control al Datelor (Data Control Language, DCL)

permite asigurarea securităţii şi confidenţialităţii datelor, salvarea datelor şi realizarea fizică a

modificărilor în baza de date, garantarea integrităţii şi consistenţei datelor în cazul manipulării

concurente.

Securitate datelor

Securitatea este o preocupare constantă în proiectarea şi dezvoltarea bazelor de date. În mod

uzual, nu se pun probleme legate de existenţa securităţii, ci mai de grabă de cât de mare va fi

aceasta. Un SGBD are în mod caracteristic mai multe nivele de securitate, pe lângă cele oferite de

sistemul de operare sau de reţea. De obicei, un SGBD deţine conturi pentru utilizatori, care

necesită o parolă de conectare ce trebuie autentificată pentru a accesa datele.

Un SGBD oferă de asemenea şi alte mecanisme cum ar fi grupurile, rolurile, privilegiile şi

profilurile care dau securităţii mai mult rafinament. Aceste nivele de securitate nu prevăd numai

constrângeri, ci şi stabilirea politicii de securitate. De exemplu, într-un sistem de electronic banking

o companie îşi poate deschide un cont la o bancă, iar accesul persoanelor din cadrul companiei

pentru consultarea contului va fi autorizat printr-un nume şi cel puţin o parolă. În plus, accesul

Page 12: Curs 1-Baze de Date

poate fi diferenţiat între diferiţi membri ai companiei, numai unora dintre ei fiindu-le permis să facă

şi tranzacţii asupra contului.

Menţinerea şi constrângerea integrităţii

Integritatea datelor se referă la consistenţa şi corectitudinea acestora. Pentru ca datele să fie

consistente, ele trebuie modelate şi implementate în acelaşi mod pentru toate circumstanţele. Pentru

ca datele să fie corecte, ele trebuie să fie exacte, precise şi să aibă înţeles. Prin integritate datele

devin informaţii. Condiţiile de integritate pe care trebuie să le satisfacă o bază de date pot fi atât

condiţii structurale, comune tuturor SGBD-urilor care folosesc un anumit model de date(de

exemplu, orice SGBD relaţional trebuie să impună respectarea integrităţii referenţiale), cât şi

condiţii de comportament, specifice fiecărei baze de date particulare (de exemplu, o coloană

”culoare” dintr-un tabel nu poate avea decât valorile roşu, albastru, verde, etc.).

Asigurarea accesului concurent la date

În plus, în cazul existenţei mai multor utilizatori, un SGBD trebuie să gestioneze accesul

concurent al acestora, menţinând în acelaşi timp integritatea bazei de date. Vom spune în acest caz

că SGBD-ul gestionează concurenţa bazei de date. Concurenţa poate fi definită ca simultaneitate în

sensul că doi sau mai mulţi utilizatori accesează aceleaşi date în aceiaşi perioadă de timp.

Gestionarea de către SGBD a concurenţei o întâlnim atunci când mai mult de o persoană trebuie să

acceseze aceiaşi bază de date, şi în mod special aceleaşi date, iar SGBD-ul trebuie să asigure într-un

fel sau altul că acest acces concurent este posibil. În plus, fiecare utilizator trebuie să aibă o

„vedere” consistentă asupra bazei de date, incluzând modificările vizibile făcute de către alţi

utilizatori, iar pe de altă parte SGBD-ul trebuie să împiedice modificări incorecte ale datelor, care

ar compromite integritatea acestora.

Metodele pe care un SGBD le foloseşte pentru a realiza acest lucru sunt în principiu destul

de simple, implementarea lor fiind însă destul de complexă. În esenţă, un SGBD asigură concurenţa

in modul următor. Când două sau mai multe persoane vor să vizualizeze aceleaşi date fără a le

modifica însă, totul este în ordine şi nu trebuie luate măsuri suplimentare. Când însă cel puţin o

persoană doreşte să facă modificări asupra unor date care în acelaşi timp sunt vizualizate de către

alte persoane, atunci SGBD-ul trebuie să stocheze mai multe copii ale datelor şi să transfere toate

modificările copiilor într-o singură versiune atunci când întreaga operaţiune este terminată.

Problema este ceva mai complicată în momentul când mai mulţi utilizatori încearcă să facă

modificări asupra aceloraşi date. Un SGBD rezolvă problema folosind blocarea (locking).

Page 13: Curs 1-Baze de Date

Utilizatorul care a efectuat primul modificarea datelor le blochează, ceilalţi utilizatori neputându-le

modifica până când operaţia efectuată de acesta nu este încheiată.

Tranzacţii

Întregul mecanism care gestionează concurenţa într-o bază de date are la bază conceptul de

tranzacţie. Tranzacţia este cea mai mică unitate de lucru. Aceasta înseamnă că nu poate exista nici

o operaţie mai mică decât o tranzacţie. Toate tranzacţiile trebuie să fie atomice, adică orice

tranzacţie individuală fie este complet executată, fie nu se execută deloc. Cu alte cuvinte, o

tranzacţie nu poate fi executată parţial. Când o tranzacţie este încheiată se spune că este

permanentizată (commited); când o tranzacţie nu poate fi încheiată şi este anulată se spune că este

derulată înapoi (rolled back).

Derularea înapoi a unei tranzacţii poate fi făcută explicit printr-o comandă a utilizatorului sau poate surveni în

mod neaşteptat, în cazul unei probleme în funcţionarea sistemului.

Un SGBD realizează recuperarea datelor (data recovery) utilizând tranzacţiile ca unităţi de

recuperare. În funcţie de modul în care se derulează o tranzacţie (este încheiată normal), fie pentru a

anula modificările făcute (dacă tranzacţia a fost abandonată la cerere sau întreruptă neaşteptat).

SGBD-ul păstrează o istorie a tranzacţiilor (transaction log) cu scopul de a derula înainte sau

înapoi. Derularea înapoi (roll back) a unei tranzacţii înseamnă anularea efectelor acesteia asupra

datelor. Derularea înainte (roll forward) a unei tranzacţii înseamnă operarea modificărilor

tranzacţiei asupra datelor. Atunci când efectele unei tranzacţii finalizate nu sunt transmise din

memorie pe disc, de exemplu din cauza unei probleme hardware sau software, SGBD-ul repetă

tranzacţia respectivă. Prin urmare, cheia pentru modul de recuperare a tranzacţiilor într-un SGBD

este faptul că tranzacţia trebuie să fie atomică şi poate fi efectuată, anulată sau repetată atunci când

este necesar.

Baze de date de distribuţie

Având în vedere rolul din ce în ce mai important al reţelelor şi proceselor distribuite în

informatică, sistemele de gestiune a bazelor de date trebuie să poată beneficia de avantajele

procesării şi stocării distribuite. Intuitiv, o bază de date distribuită este o mulţime de date corelate

logic, dar distribuite pe mai multe maşini interconectate printr-o reţea de comunicaţie. Din punct de

vedere al utilizatorului, o bază de date distribuită reprezintă o singură bază de date. Programul de

aplicaţie care manipulează baza de date poate avea acces la date rezidente pe mai multe maşini, fără

ca programatorul să cunoască localizarea acestor date (distribuirea lor fizică).

Page 14: Curs 1-Baze de Date

Bazele de date distribuite oferă utilizatorului o flexibilitate şi o securitate sporită faţă de o

singură bază de date. Să luăm, de exemplu, o companie care are sedii în mai multe oraşe ale lumii.

Dacă se optează pentru o arhitectură distribuită, fiecare dintre aceste locaţii îşi administrează

propria bază de date, pe care o accesează în mod frecvent, putând să aibă în acelaşi timp acces şi la

bazele de date ale celorlalte locaţii. Astfel distribuirea bazei de date duce la exploatarea mai

eficientă a bazei de date şi uşurează administrarea acesteia, care se face local. În plus, defectarea

unei baze de date locale nu afectează celelalte baze de date din reţea, cu alte cuvinte bazele de date

locale sunt protejate împotriva defecţiunilor din celelalte noduri ale reţelei.

În ce constau operaţiile asupra bazelor de date ?

a. Definirea bazei de date , care cuprinde :

- stabilirea structurii virtuale , precizându-se structurile de date necesare ( în funcţie de

modelul de date ce se alege )

- definirea structurilor logice

- informaţii necesare pentru stabilirea structurii fizice ( fişierele necesare , care date se

include în acestea )

Aceste lucruri se realizează cu ajutorul acelui Limbaj de Definire a Datelor, prin diferite comenzi

sau printr-o interfaţă cu utilizatorul ( pentru exemplele de la laborator comanda a fost comanda

Create ) .

b. Manipularea datelor din b.d. care cuprinde :

- introducerea ( adăugarea datelor ) în baza de date

- regăsirea ( extragerea ) datelor din baza de date .

- actualizarea ( ştergerea , modificarea ) datelor din baza de date .

Şi această funcţie este realizată fie cu ajutorul unui Limbaj de Manipulare a datelor sau cu

ajutorul unor comenzi . Comenzile şi programele pot să fi şi din alte medii diferite . De exemplu am

creat baza de date cu ajutorul mediului Visual Foxpro dar o accesăm cu ajutorul mediului Delphi

Pascal, Visual C , Builder C sau Visual Basic. .

c. Administrarea bazei de date . După crearea bd. aceasta trebuie folosită o anumită perioadă.

Prin urmare , trebuie să se facă un control al datelor şi al programelor care acesează baza de date .

Acest lucru cade în sarcina unei persoane numită administratorul bazei de date funcţiile lui

fiind cele de administrare a bazei de date :

Page 15: Curs 1-Baze de Date

1. organizarea bazei de date :

- definirea structurii b.d. şi a structurilor logice .

- stabilirea structurilor fizice a bazei de date .

- introducerea de date în b.d.

2. urmărirea funcţionării b.d. :

- păstrarea datelor corecte şi la zi

- asigurarea integrităţii şi confidenţialităţii datelor

- punerea la dispoziţia utilizatorilor a unor programe sau proceduri

3. reorganizarea b.d. :

- modificarea structurii virtuale şi a structurii fizice pentru optimizarea diferitelor funcţii

sau pentru a include noi date

- modificarea unor programe de acces

4. Protecţia datelor :

- confidenţialitatea adică protecţia împotriva accesului neautorizat asupra b.d.

- integritatea datelor împotriva alterării conţinutului datorită unor defecţiuni , erori de

programare .

- controlul redundanţei datelor, adică acelaşi date să fie păstrat de mai multe ori (se ajunge

şi la inconsistenţa datelor )

Ex.O b.d cu datele despre personalul unei instituţii . Nu toate persoanele din reţeaua de

calculatoare a instituţiei au dreptul să acceseze acele date . Pentru aceasta se folosesc parole

pentru diferenţierea utilizatorilor care au drept de acces , datele se păstreză codificat , se

folosesc firewall-uri pentru filtrarea utilizatorilor .

Trebuie să remarcăm şi utilizatorii care intervin în contact cu SGBD :

- utilizatorii informaticieni – programatorii , ei folosesc limbajul de manipulare şi cunosc

structura logică a datelor de care au nevoie cât şi toate facilităţile oferite de un anumit

SGBD.

- utilizatorii obişnuiţi , care fie folosesc produse program, fie folosesc comenzi simple pentru

accesarea şi folosirea datelor din b.d.

- administratorul bazei de date , aceea persoană care se ocupă de controlul şi întreţinerea

bazei de date ( mai ales pe sistemele mari ).

Page 16: Curs 1-Baze de Date

2. STRUCTURA ŞI FUNCŢIONAREA UNUI SGBD.

Complexitatea unui SGBD rezidă în dimensiunea sa , reflectată nu numai în multitudinea

instrucţiunilor sale dar şi în mulţimea componentelor, fiind prin complexitatea apropiat de un

sistem de operare . SGBD lucrează de fapt sub controlul sistemului de operare al calculatorului,

S.O. care se ocupă de suportul hard al bazei de date.

În mod obişnuit, un SGBD conţine următoarele module :

- monitor : cuprinde modul specializate pentru gestionarea bazei de date , a zonelor de

memorie internă, a reţelei de transmisie şi a mesajelor cu terminalele care accesează bazele

de date cât şi module pentru activarea proceselor, asigurarea legăturii cu sistemul de

operare .

- compilatoare : sunt module asociate limbajelor de descriere şi manipulare , având rol de

verificare şi translatare a comenzilor către sistemul de operare.

- monitoare de înlănţuire : asigură succesiunea fazelor distincte de prelucrare (execuţia

programelor sau execuţia directă a comenzilor).

- programe utilitare: editoare de texte pentru a putea scrie codul programelor, generatoare

de rapoarte, module de securitate(fişiere de urrmărire) , etc.

Din punct de vedere schematic, funcţionarea unui SGBD se poate reprezenta astfel :

S.G.B.D

BAZĂ DE DATE BAZĂ DE DATE

BAZĂ DE DATE BAZĂ DE DATE

DATE, STRUCTURI, BIBLIOTECI

S.O

BUFFERELE SISTEMULUI

PROGRAMECOMENZI

ADMINISTRATOR BAZE DE DATE

Utilizator 1 Imprimantă Utilizator 2

Page 17: Curs 1-Baze de Date

Cum decurge de fapt o sesiune a unui SGBD ? Utilizatorul cere SO. să lanseze în execuţie SGBD-

ul respectiv. Apoi, SO încarcă de pe disc programul monitoral SGBD –ului, care mai departe preia

cererile de la utilizatori.

3. CLASIFICAREA SGBD-URILOR ŞI A BAZELOR DE DATE .

În funcţie de modelul de date al bazei de date există SGBD-uri ierarhice, relaţionale (cele

mai multe ) şi reţea.

SGBD ierarhic. Modelul ierarhic stochează datele în structuri de tip arbore. El porneşte de

la ideea că intre date există o relaţie de tip părinte-copil. Nivelul cel mai de sus al arborelui,

cunoscut sub numele de rădăcină, poate avea orice număr de dependenţi. La rândul lor, aceştia pot

avea dependenţii lor şi aşa mai departe. În prezent, modelul ierarhic este depăşit şi nu se mai

foloseşte aproape deloc.

SGBD reţea. Modelul reţea stochează datele sub formă de înregistrări şi legături între

acestea. Acest model poate fi văzut ca o extindere a celui ierarhic, diferenţa între cele două fiind că,

în timp ce în modelul ierarhic o înregistrare copil are exact un părinte, în modelul reţea el poate

avea mai mulţi părinţi, eventual chiar nici unul. Modelul reţea permite reprezentarea de structuri de

date complexe dar este extrem de complicat. Din această cauză, el este în prezent puţin folosit.

SGBD relaţional (SGBDR). Modelul relaţional reprezintă probabil cea mai simplă

structură pe care o poate avea o bază de date. Într-un SGBD relaţional, datele sunt organizate în

tabele. Tabelele sunt formate din înregistrări care, la rândul lor sunt formate din câmpuri. Două sau

mai multe tabele pot fi legate prin intermediul unuia sau mai multor câmpuri. Bazele de date

relaţionale sunt foarte flexibile şi uşor de folosit, astfel încât au cunoscut o dezvoltare intensă în

ultimii douăzeci de ani şi sunt în prezent cele mai răspândite.

Prezentăm mai departe cele mai cunoscute SGBDR-uri relaţionale. Oracle. Este realizat de firma Oracle Corporation USA. Sistemul este complet

relational, robust, se bazeaza pe SQL standard extins. Arhitectura sistemului este client/server, permtand lucrul, cu obiecte şi distribuit. Are BD Internet şi modul de optimizare a regasirii. Ultima versiune este Oracle lOg.

DB2. Este realizat de firma IBM. Sistemul respecta teoria relationala, este robust şi se bazeaza pe SQL standard. Permite lucrul distribuit şi are modul de optimizare a regasirii.

Informix. Este realizat de firma Informix, respecta teoria relationala şi permite lucru distribuit.

Progress. Este realizat de firma Progress Software. Are limbaj propriu (Progress 4GL) dar suporta şi SQL. Ruleaza pe o gama larga de calculatoare sub diferite sisteme de operare.

SQL Server. Este realizat de firma Microsoft. Se bazeaza pe SQL şi ruleaza in arhitectura client/server.

Page 18: Curs 1-Baze de Date

Ingress II. Este realizat de firma Computer Associates. Este un SGBDR complet, implementeaza doua limbaj e relational e (Întai QUEL şi apoi SQL) şi este suportat de diferite sisteme de operare (Windows, UNIX). Lucreaza distribuit in arhitectura client/server, are extensie cu facilitati orientate obiect şi permite aplicatii de tip Internet. Organizarea fizica a tabelelor se face prin sistemul de operare.

Visual FoxPro. Este realizat de firma Microsoft. Are un limbaj procedural propiu foarte puternic, o extensie orientata obiect, programare vizuala şi nucleu extins de SQL.

Access. Este realizat de firma Microsoft. Se bazeaza pe SQL, are limbajul procedural gazda (Basic Access) şi instrumente de dezvoltare.

Paradox. Este realizat de firma Borland. Are limbaj procedural propiu (PAL) şi suporta SQL.

SGBD obiect pe obiect. Acesta este cel mai nou tip de SGBD, încercând să integreze

principiile programării orientate pe obiect (Actor, Smalltalk, C++)şi ale bazelor de date. Bazele de

date relaţionale, cele mai populare în ultimul deceniu, ofereau prea puţin suport pentru tipurile

neconvenţionale de date. Necesitatea gestiunii obiectelor complexe (texte, grafice, hărţi, imagini,

sunete) şi a gestiunii obiectelor dinamice (programe, simulări) care nu pot fi realizate cu ajutorul

sistemelor relaţionale a condus la introducerea conceptului de obiect în cadrul sistemelor de

gestiune a bazelor de date. În prezent tehnologia bazelor de date orientate pe obiect este încă la

început, neexistând un mod general de SGBD orientat pe obiect, astfel încât producătorii diferiţi

folosesc moduri de organizare oarecum diferite. O soluţie în acest sens este şi crearea unui model

relaţional care să suporte şi majoritatea principiilor modelării orientate pe obiect.

În funcţie de distribuirea resurselor soft şi hard SGBD-urile pot fi integrate şi distribuite .

SGBD-urile integrate sunt cele în care baza de date propriu-zisă şi suprafaţa utilizator

alcătuiesc un tot unitar . În baza de date – numită BACK – END sunt stocate fizic datele, în

timp ce prin intermediul suprafeţei utilizator (mai nou suprafaţa grafică utilizator) numită

FONT – END – datele sunt definite, manipulate şi controlate. Acest tip de organizare implică

existenţa bazei de date pe un singur calculator, datele fiind accesibile doar utilizatorului acelui PC.

Acesta era modul de lucru pentru SGBD-urile rulabil sub vechiul MS-DOS.

Bazele de date client–server (deci şi SGBD –urile client server) sunt disponibile în

reţelele client–server ( serverul–calculatorul central al reţelei şi clienţii sunt staţiile de lucru).

SGBD-ul lucrează astfel într-o reţea ( este vorba despre SGBD-urile actuale cum este şi Visual

Foxpro ) . În mod tipic , pe server se găsesc bazele de date iar pe clienţi se găsesc pachete de

programe ce comunică cu baza de date de pe server, pachete ce dispun de o interfaţă bazată pe un

limbaj de interogare numit SQL – Structured Query Language) . De exemplu , într-un supermarket

Page 19: Curs 1-Baze de Date

avem un server central în care sunt stocate bazele de date cu stocurile de produse. Pe fiecare staţie

de lucru din magazin ( unde se găsesc gestionarele ) există un program de stocuri ce examinează de

fiecare dată baza de date de pe server pentru a vedea dacă mai exitsă un produs sau pentru a

actualiza stocul existent ( în urma vânzării produsului respectiv) .

Aceste tipuri de SGBD oferă un mare avantaj şi a anume faptul că programele şi baza de

date pot fi folosite simultan . sau pe rând de mai mulţi utilizatori , fără a fi nevoie ca ei să posede pe

computerele lor o copie a bazei de date.

Bazele de date distribuite . Sunt folosite pentru organizaţiile economice mari care necesită

manipularea de baze de date mari sau multe. În astfel de situaţii baza de date este distribuită în baze

de date mai mici astfel încât aplicaţiile să aibă controlul doar a câtorva baze de date mici. O bază de

date distribuită este de fapt o colecţie de tabele şi relaţii stocate în nodurile reţelei. De fapt, baza de

date este integrată , dar fizic este distribuită pe mai multe sisteme de calcul. Cel mai cunoscut dintre

SGBD –urile ce lucrează cu baze de date distribuite este Oracle , folosit foarte mult pentru

gestionarea datelor din organizaţiile economice mari, pentrui bănci, etc. .

STRUCTURA FIZICĂ A BAZELOR DE DATE

Bazele de date sunt în general prea mari pentru a fi memorate în memoria internă a unui calculator. Din această cauză, ele sunt rezidente ( stocate ) în memoria externă a computerului ( de obicei pe discuri sau benzi magnetice ) .

Baza de date fizică este o colecţie de fişiere care implementează un anumit model de date

logice ( structura logică ) . Fişierele sunt integrate de către structura logică a bazei de date şi ele pot

comunica între ele. Baza de date este organizată sub formă de colecţii de înregistrări .

Înregistrarea este unitatea de bază de transfer de date între memoria externă şi memoria internă

( în care are loc prelucrarea ) . Mai mult, pentru reducerea numărului de accese la memoria

externă, mai multe înregistrări sunt citite sau scrise printr-un singur acces ( se grupează mai

multe înregistrări în blocuri ).

Fişierele care formează baza de date sunt de 2 tipuri :

fişiere de date : acestea conţin datele efective .

fişere index : acestea precizează modul de acces la fişiere (păstrează anumite date din

b. d. pentru a putea regăsi mai uşor datele ) .

Există ma multe tipuri de organizare a fişierelor :

Page 20: Curs 1-Baze de Date

- secvenţial : accesul la componentele fişierului se face în ordinea fizică a înregistrărilor (banda

magnetică este un exemplu de suport pentru memoria externă în care fişierele de acolo nu pot

fi accesate decât secvenţial )

- direct : accesul la înregistrări se poate face în orice ordine , ne putem poziţiona pe orice

înregistrare ( discul oferă un astfel de acces ) .

- secvenţial – indexată : înregistrările se accesează în ordinea dată de fişierul index (acesta este

parcurs secvenţial) . Acest mod de organizare permite parcurgerea într-o anumită ordine a

înregistrărilor ( nu chiar oricare ) .

Fişierele de date au trei structuri principale bazate pe faptul că înregistrările au pointeri

intrafişiere, pointeri interfişiere sau nu au pointeri. Un pointer este o adresă memorată într-o

înregistrare astfel încât se pot accesa ( regăsi ) înregistrările cu ajutorul acelor adrese . Valoarea

pointerului poate fi o adresă absolută din memorie sau o adresă relativă . Adresa absolută

(fizică) depinde de memoria fizică, pe când o adresă relativă indică locaţia înregistrării în cadrul

fişierului ( totuşi această adresă relativă trebuie să se traducă şi ea în final în adresa absolută

pentru a putea accesa înregistrarea fizică .

Obs. S.G.B.D. –ul FoxPro foloseşte baze de date care pot fi cu acces secvenţial sau cu acces

secvenţial – indexate . Trebuie subliniat faptul că SGBD. trebuie să ofere un serviciu de acces la

structurile de date fizice . Programatorul sau utilizatorul nu trebuie să-şi bată capul cu structura

fizică , acest lucru se realizează de SGBD. împreună cu sistemul de operare.

În funcţie de organizare se determină operaţiile necesare pentru a găsi înregistrările .

Evident, putem avea acces direct la înregistrări sau acces secvenţial la înregistrări . Înregistrările se

pot adăuga într-o ordine oarecare fie într-o ordine sortată în concordanţă cu valorile dintr-un

anumit câmp . Cel mai simplu şi cel mai folosit mod de organizare al colecţiei de înregistrări este

fişierul secvenţial . Înregistrările sunt scrise consecutiv în fişierul de date , în ordinea creării .

Organizarea ca fişier secvenţial – indexată combină tipurile de acces secvenţial şi relativ.

Înregistrările pot fi accesate în ambele moduri ( acesta există şi în FoxPro) . Bazele de date

indexate sunt de fapt formate din două fişiere : unul cu date şi unul index, cu pointeri la cel de

date. Putem avea mai multe fişiere index ( mai multe moduri de ordonare, de parcurgere ) sau

putem avea fişiere index multichei care conţin mai multe chei de indexare (mai multe criterii de

parcurgere ) .

Page 21: Curs 1-Baze de Date

În mod particular, SGBD-un Foxpro (Visual Foxpro-pentru platforme Windows) este

unul relaţional. Tabelele bazei de date poate fi organizată secvenţial sau secvenţial–indexat.

Baza de date este formată din mai multe tabele în care înregistrările sunt reprezentate de

linii, iar coloanele sunt câmpurile bazei de date . Capul de tabel fomează structura logică a

tabelului .

Exemplu o bază de date cursanţi :

Nume Prenume DataN Studii Venit

Popes

cu

Ion 11:11:1976 SUPERIOARE 12000000

Georgescu Mihai 02:12:1973 SUPERIOARE 23400000

Avrom Mihai 08:23:1964 MEDII 23000000

Acest tabel formează fişierul de date, fişier ce se salvează sub numele de cursanţi.dbf

(acesta va fi fişierul fizic care va conţine efectiv datele ) .

Structura tabelului dintr-o bază de date presupune precizarea fiecărui câmp component al

bazei de date împreună cu caracteristicile sale. Specificarea unui câmp presupune precizarea

numelui de identificare al câmpului ( în Foxpro numele simbolic este format din litere sau cifre de

lungime variabilă ), a tipului de date ( ce fel de date se vor stoca acolo ) şi a lungimii acestuia

( datele care se vor stoca în acel câmp căt de lungi vor fi ele) .

Înregistrările

Structura tabel. Cîmpurile tabel.