proiect BD

28
UNIVERSITATEA DIN CRAIOVA Facultatea de Automatica, Calculatoare si Electronica Grupa 10209 PROIECT la disciplina BAZE DE DATE Modelarea prin intermediul BD a sistemului “Familia POPESCU” Studenti, Coordonator, Lacusteanu Alexandru Udrea Consantin Valentin Mandea Alexandru Prof. Viorel Stoian Craiova, 2010

Transcript of proiect BD

Page 1: proiect BD

UNIVERSITATEA DIN CRAIOVAFacultatea de Automatica, Calculatoare si ElectronicaGrupa 10209

PROIECT la disciplina BAZE DE DATE

Modelarea prin intermediul BD a sistemului “Familia POPESCU”

Studenti, Coordonator,Lacusteanu AlexandruUdrea Consantin ValentinMandea Alexandru Prof. Viorel Stoian

Craiova, 2010

UNIVERSITATEA DIN CRAIOVAFacultatea de Automatica, Calculatoare si Electronica

Grupa 10209

Page 2: proiect BD

PROIECT la disciplina BAZE DE DATE

Modelarea prin intermediul BD a sistemului “Familia POPESCU”

Studenti, Coordonator,Lacusteanu AlexandruUdrea Consantin ValentinMandea Alexandru Prof. Viorel Stoian

Craiova, 2010

Page 3: proiect BD

CUPRINS

1. CAPITOLUL I. INTRODUCERE………………………………….42. CAPITOLUL II. Sistemul „Familia Popescu”……………………...63. CAPITOLUL III. Schema Conceptuala…………………………….7

3.1. Notiuni generale………………………………………………7 3.2. Schema Conceptuala………………………………………….8

4. CAPITOLUL IV. Schema Logica…………………………………….9 4.1. Notiuni teoretice……………………………………………….9 4.2. Schema Logica…………………………………………………105. CAPITOLUL V. NORMALIZAREA BAZEI DE DATE…………..11

5.1. Notiuni teoretice……………………………………………….115.2. Normalizarea tabelelor bazei de date…………………………12

6. CAPITOLUL VI. DE NORMALIZAREA BAZEI DE DATE……….146.1. Notiuni teoretice………………………………………………..146.2. Denormalizarea tabelelor bazei de date………………………15

7. CAPITOLUL VII. SGBD MySQL…………………………………….167.1. Notiunu teoretice……………………………………………….167.2. Aplicatii…………………………………………………………19

8. CAPITOLUL VIII. CONCLUZII…………………………………….. 20

Page 4: proiect BD

CAPITOLUL I. INTRODUCERE

Ce este o bază de date ?

O bază de date conţine toate informaţiile necesare despre obiectele ce intervin într-o mulţime de aplicaţii, relaţiile logice dintre aceste informaţii şi tehnicile de prelucrare corespunzătoare. În bazele de date are loc o integrare a datelor, în sensul că mai multe fişiere sunt privite în ansamblu, eliminându-se informaţiile redundante. Este permis accesul simultan la aceleaşi date, situate în acelaşi loc sau distribuite spaţial, a mai multor persoane prin mai multe tipuri de interogări.

O bază de date poate fi: - integrată;- partajată.

Prin “integrată” înţelegem că baza de date poate fi gândită ca o unificare de mai multe fişiere de date, distincte şi neredundante.

Prin “partajarea” unei baze de date se înţelege că bucăţile individuale de date din baza de date pot fi partajate între mai mulţi utilizatori individuali, fiecare dintre ei putând avea acces la aceeaşi bucată de date simultan (sisteme multiutilizator). 

Hardul unui sistem de baze de date constă din volumele de memorare secundare (discuri, dischete sau benzi magnetice) pe care rezidă baza de date, împreună cu aparatele, unităţile de control şi canalele respective. 

Între baza de date fizică (adică datele aşa cum sunt ele memorate pe suport) şi utilizatorii sistemului există un nivel de software, numit sistem de gestionare a bazelor de date (DBMS – Data Base Management System), care permite construirea unor baze de date, introducerea informaţiilor în baza de date şi dezvoltarea de aplicaţii privind bazele de date.

Un DBMS dă posibilitatea utilizatorului să aibă acces la date folosind un limbaj de nivel înalt, apropiat de modul obişnuit de exprimare, pentru a obţine informaţii, utilizatorul făcând abstracţie de algoritmii aplicaţi pentru selectarea datelor implicate şi a modului de memorare a lor. DBMS-ul este deci o interfaţă între utilizator şi sistemul de operare. 

Orice DBMS conţine un limbaj de descriere a datelor (LDD) care permite descrierea structurii unei baze de date, a fiecărei componente a ei, a relaţiilor dintre componente, a drepturilor de acces ale utilizatorului la baza de date, a restricţiilor în

Page 5: proiect BD

reprezentarea informaţiilor, etc. LDD-ul este utilizat atât pentru proiectarea bazelor de date, cât şi pentru redefinirea lor. 

O altă componentă a DBMS este limbajul de cereri (LC) sau limbajul de prelucrare a datelor (LPD), ce permite operaţii asupra datelor aflate în baza de date, cum ar fi: încărcarea bazei de date; inserarea unui nou element; ştergerea unui element; modificarea unui element; căutarea unor elemente; realizarea de diferite statistici asupra datelor. 

Utilizatorii sistemelor de gestionare a bazelor de date (DBMS) se grupează în trei categorii:

a. programatorii de aplicaţie (care scriu programele aplicaţie în limbaje de programare: Cobol, C, etc.) sau în limbaje de programare specifice: dBase, FoxPro, etc.);

b. end-userii sau utilizatorii (care accesează baza de date de la un terminal, folosind un limbaj de interogare numit “query language”);

c. administratorii bazelor de date DBA (care stabilesc structura iniţială a bazei de date şi modul de memorare a datelor la nivel fizic, acordă utilizatorilor drepturi de acces la baza de date sau părţi ale ei, asigură securitatea datelor, modifică structura şi întreţine baza de date).

Datele operaţionale 

Datele operaţionale sunt date din bazele de date, distincte de datele de intrare, ieşire sau alte tipuri de date. O bază de date este o colecţie de date operaţionale folosite de către aplicaţiile sistem ale unei instituţii (Muzeu, Bibliotecă, Întreprindere, etc.)

Datele de intrare sunt informaţii introduse în sistem din lumea exterioară, de obicei prin terminale.

Datele de ieşire se referă la mesajele şi rapoartele extrase din sistem (tipărite sau afişate pe ecran).

Entităţile de bază sunt elementele constitutive ale unei baze de date (ex. materialul arheologic, materialul bibliografic, materialul grafic, etc.). Între aceste entităţi există întotdeauna asociaţii sau relaţii ce le leagă într-o bază de date comună.

Relaţiile dintre entităţi sunt la rândul lor părţi ale datelor operaţionale, chiar mai importante decât entităţile asociate. O relaţie poate fi asociată la una, două sau trei entităţi, iar o entitate poate fi asociată la oricâte relaţii.

Page 6: proiect BD

CAPITOLUL II. SISTEMUL “Familia Popescu”

Sa se modeleze prin intermediul unei baze de date următorul sistem referitor la familia Cotigă :

1. Familia este compusă din părinţi (mama, tata), bunici (bunicii dinspre mama, bunicii dinspre tata), copii (fete si băieţi), eventual veri, unchi-mătuşi.

2. Informaţiile referitoare la membrii familiei pot fi : structura familiei, telefoane (fixe si mobile), adrese de e-mail, prieteni, pasiuni, cărţi preferate, animale preferate, vârsta, data naşterii, religie, sex, medic de familie, stare civila, adresa, profesie, grad de pregătire, venit anual fix, venit suplimentar, magazine frecventate si instituţii unde lucrează (care au adresa, orar, telefon, fax etc.) etc. etc.

3. Toţi membrii familiei, cu excepţia bunicilor si a celor din generaţia lor, au făcut sau fac cursurile scolii 55 din oraş.

4. 2 dintre membrii familiei sunt cadre didactice la această şcoală.5. La şcoala respectiva sunt mai mulţi profesori care predau fiecare cate 3 discipline : o disciplină fundamentală la câte o clasă de elevi (matematică, fizică, chimie etc.) si câte 2 limbi străine (engleza, franceza, spaniola, italiana, germana, chineza etc.) la cate o semigrupă a clasei. Există situaţii când 2 profesori predau aceeaşi limbă străină la semigrupe diferite, dar si situaţii când aceiaşi elevi (o subgrupă) fac o limbă străină cu profesori diferiţi (de exemplu, în semestre diferite).

Page 7: proiect BD

CAPITOLUL III. SCHEMA CONCEPTUALĂ

3.1. Noţiuni teoreticeÎn prima fază, o echipă nominalizată colectează (achiziţionează) datele corespunzătoare din sistem, apoi urmează faza de organizare a acestora utilizându-se modelul entitate-legătură. Principalele concepte folosite în acest model sunt: entitatea, relaţia (legătura) şi atributul. Entitatea este un obiect de interes din sistem pentru care trebuie să existe date înregistrate.

- Fiecare entitate are o denumire unică în cadrul unui sistem.- Entităţile sunt reprezentate prin substantive, dar nu orice substantiv folosit în

descrierea sistemului este entitate, ci numai acelea care au o semnificaţie deosebită.

- Fiecare entitate trebuie să fie bine definită şi precizată pentru a se evita confuziile.

Relaţia (legătura) este o asociere (raport) nedirecţionată între 2 entităţi.- Relaţiile sunt reprezentate prin verbe, dar nu orice verb utilizat în descrierea sistemului este relaţie.- Între 2 entităţi pot exista mai multe relaţii. - Pot exista în cadrul unei scheme conceptuale mai multe relaţii cu acelaşi nume, dar cele care leagă aceleaşi entităţi trebuie să aibă nume diferite.

Cardinalitatea unei relaţii indică numărul de instanţe din fiecare entitate care poate participa la relaţie. Există 3 tipuri de cardinalitate:- "mulţi-la-unu" (many-to-one, M:1).

Relaţia dintre entităţile A şi B este de tipul "mulţi-la-unu" dacă fiecarei instanţe din A i se poate asocia cel mult o singură instanţă din B şi fiecărei instanţe din B i se pot asocia mai multe instanţe din A.- "unu-la-unu" (one-to-one, 1:1).

Relaţia dintre entităţile A şi B este de tipul "unu-la-unu" dacă fiecărei instanţe din A i se poate asocia cel mult o singură instanţă din B şi fiecărei instanţe din B i se poate asocia cel mult o singură instanţă din A.- "mulţi-la-mulţi" (many-to-many, M:M).

Relaţia dintre entităţile A şi B este de tipul "mulţi-la-unu" dacă fiecărei instanţe din A i se pot asocia mai multe instanţe din B şi fiecărei instanţe din B i se pot asocia mai multe instanţe din A.Valorile prezentate până acum (M:1, 1:1, M:M) reprezintă cardinalitatea maximă a unei relaţii. Pe de altă parte, o relaţie este caracterizată şi de o cardinalitate minimă ce indică obligativitatea participării entităţilor la relaţie. Cardinalitatea minimă a unei relaţii poate avea valorile: 0:0, 0:1, 1:1. Dacă avem cardinalitatea minimă a unei relaţii

Page 8: proiect BD

egală cu 1 înseamnă că există o participare totală a entităţii la relaţie (participare obligatorie). Dacă avem cardinalitatea minimă egală cu 0 înseamnă că există o participare parţială a entităţii la relaţie. 3.2. Schema conceptuală

MEMBRI cod_membru nume, prenume, data_naşterii, vârstă, sex, religie, adresă, telefon etc.

BUNICIdescriere (dinspre

mamă, dinspre tată)

lucrează_ca M(0) 1 este_cadru_didactic M(0) (şcoala 55)PROFESOR 1(0)cod_profesor nume,prenume

1 lucrează_ca M(0)M(0) M(0) este_cadru_didactic M(0) M(0) este_elev (şcoala 55)

(şcoala 55) 1(0) M(0)

1(0) predăM(0)

DISCIPLINĂ face_parte_dincod_disciplină, nume predă_la

M(0) 1

CLASĂ cod_clasă,

studiază M(0) nume, nr_semigrupe, cod_semigrupa1,

cod_semigrupa2, cod_semigrupa3 ………………………………..

PĂRINŢI

COPII

Page 9: proiect BD

CAPITOLUL IV. SCHEMA LOGICĂ

4.1. Noţiuni teoreticePentru realizarea schemei logice a unei baze de date se porneşte de la schema conceptuală (modelul entitate – legătură) urmărindu-se conversia entităţilor şi a legăturilor în tabele relaţionale.Regulile de conversie ale entităţilor şi legăturilor sunt următoarele: Transformarea entităţilorRegulă generală: entităţile se transformă în tabele.Subcazuri:

a) Entităţile independente devin tabele independente, adică tabele a căror cheie primară nu conţine chei străine.

b) Entităţile dependente devin tabele dependente (tabele detaliu) adică tabele a căror cheie primară conţine cheia străină ce face referinţă la cheia primară a entităţii de care depinde entitatea în cauză.

c) Subentităţile devin subtabele, adică tabele a căror cheie primară este cheia străină pentru tabelul superentitate.

Transformarea relaţiilor (legăturilor)Regula generală: Relaţiile (legăturile) se convertesc în chei străine.Convenţie: plasamentul cheii străine este simbolizat printr-o săgeată. Atunci când cheia străină este inclusă în cheia primară, vârful săgeţii este plin ( ) şi este gol în caz contrar ( ).

Cazuri:a) Relaţiile 1:1 devin chei străine. Cheia străină este plasată în tabelul cu linii mai

puţine.b) Relaţiile M:1 devin chei străine plasate în tabelul care se află în partea de

“mulţi” a relaţiei.c) O relaţie M:M se transformă în 2 relaţii M:1. În acest caz se construieşte un

tabel special numit tabel asociativ care are 2 chei străine care fac referinţă la cheile primare ale celor 2 tabele aflate în relaţia M:M. Cheia sa primară este formată din cele 2 chei străine plus (eventual) alte atribute suplimentare.

d) O relaţie de tip 3 se transformă într-un număr de relaţii de tip 2, egal cu numărul de tabele asociate. Aceste relaţii (legături) se stabilesc între un tabel asociativ si tabelele asociate. Tabelul asociativ are câte o cheie străină pentru fiecare tabel asociat, iar cheia sa primară este formată din toate aceste chei străine plus (eventual) alte atribute suplimentare.

Page 10: proiect BD

4.2. Schema logică

MEMBRIcod_membru,

nume, prenume, data_naşterii,vârstă, sex, religie, adresă, telefon etc.

BUNICIcod_membru,

descriere (dinspre mamă, dinspre tată)

lucrează_ca M(0) M(0)

1(0) PĂRINŢIcod_membru

1 1 lucrează_ca M(0) M(0)

PROFESOR M(0) M(0) cod_profesor, nume, prenume 1 1(0) COPII 1(0)

cod_membru 1

M(0) PREDARE cod_profesor, cod_disciplină

M(0)

1 M(0) 1

DISCIPLINĂ PREDARE_LA_ M(0) 1 CLASĂ cod_disciplină, STUDIERE cod_clasă, nume cod_clasă, nume, M(0) cod_disciplină, nr_semigrupe, cod_semigrupa1,

1 cod_profesor cod_semigrupa2, cod_semigrupa3, ……………………………….

Page 11: proiect BD

CAPITOLUL V. NORMALIZAREA BAZEI DE DATE

5.1. Noţiuni teoreticeNormalizarea reprezintă procesul de descompunere a unui tabel relaţional în mai multe tabele care satisfac anumite reguli şi care stochează aceleaşi date ca şi tabelul iniţial astfel încât să fie eliminate redundanţa în date şi anomaliile la actualizare.

a) Caracterul reversibil al normalizării. Prin caracter reversibil al normalizării se înţelege faptul că descompunerea se face fără pierdere de informaţie, adică tabelul iniţial poate fi reconstituit prin compunerea naturală, pe atribute comune, a tabelelor rezultate.

Pentru un tabel R care se descompune prin proiecţie în mai multe tabele: R1, R2, … Rn, condiţia de descompunere fără pierdere de informaţie presupune că în urma operaţiei de compunere naturală a tabelelor R1, R2, … Rn să se obţină tabelul R.

b) Dependenţa funcţionalăFie R un tabel relaţional si X si Y doua submulţimi de coloane ale lui R. Spunem ca X determină funcţional pe Y sau ca Y depinde funcţional de X dacă nu există două rânduri în tabelul R care să aibă aceleaşi valori pentru coloanele din X şi să aibă valori diferite pentru cel puţin o coloană din Y.

Notaţie uzuala: X Yunde X = determinant

Y = determinatX Y este triviala daca Y X.

c) Dependenta funcţională tranzitivăFie R un tabel relaţional, X o submulţime de coloane a lui R si A o coloană a lui R. Spunem că A este dependentă tranzitiv de X daca există o submulţime de coloane Y care nu include coloana A şi care nu determină funcţional pe X astfel încât X Y si Y A. Dacă în această definiţie se doreşte să se evidenţieze şi Y atunci se spune că A depinde funcţional de X prin intermediul lui Y şi se scrie: X Y A.

d) Descompunerea minimalăPrin descompunerea minimală a unui tabel se înţelege o descompunere astfel încât nici o coloană din tabelele rezultate nu poate fi eliminată fără a duce la pierderea de informaţii şi implicit la pierderea caracterului ireversibil al transformării. Aceasta înseamnă că nici unul dintre tabelele rezultate nu poate fi conţinut unul în altul.

Page 12: proiect BD

5.2. Normalizarea tabelelor bazei de date

Din analiza schemelor conceptuală şi logică ale bazei de date, scheme prezentate mai sus, se observă că există o normalizare care ar ajuta la o mai bună organizare a tabelelor şi a legăturilor între entităţi şi anume descompunerea tabelului CLASA în 2 “subtabele” care să faciliteze stocarea datelor şi interogările din partea utilizatorului bazei de date.

Astfel, tabelul CLASA (cod_clasa, nume, nr_semigrupe, cod_semigrupa1, cod_semigrupa2, cod_semigrupa3) se va descompune în:

CLASA_1 (cod_clasa, nume, nr_semigrupe)SEMIGRUPA (cod_semigrupa, cod_clasa)

CLASAcod_clasa nume nr_semigrupe cod_semigrupa1 cod_semigrupa2 cod_semigrupa3

5531 I A 3 55311 55312 55313

5532 IV B 2 55321 55322

5547 VI C 3 55471 55472 55473

5521 VII E 1 55211

CLASA_1

1 CLASA

M

SEMIGRUPA

CLASA_1cod_clasa nume nr_semigrupe5531 I A 35532 IV B 25547 VI C 35521 VII E 1

Page 13: proiect BD

SEMIGRUPAcod_semigrupa cod_clasa55311 553155312 553155313 553155321 553255322 553255471 554755472 554755473 554755211 5521

Cheia primară din tabelul de bază (cod_clasa) se păstrează şi în tabelul CLASA_1 care va stoca acum doar numele clasei de elevi şi numărul de semigrupe din care se compune şi va devenii cheie străină în tabelul SEMIGRUPA, care are drept cheie primară câmpul cod_semigrupa.

Această descompunere este foarte benefică deoarece utilizatorul bazei de date poate efectua interogări direct asupra tabelei SEMIGRUPA care îl interesează. Aceasta face referire la toţi elevii din aceeaşi clasă care fac aceeaşi limbă străină.

Page 14: proiect BD

CAPITOLUL VI. DENORMALIZAREA BAZEI DE DATE

6.1. Noţiuni teoreticeDenormalizarea unei BD reprezintă procesul invers operaţiei de normalizare şi

duce la creşterea redundanţei datelor. Prin aceasta se doreşte, în principal, creşterea performanţei şi simplificarea programelor de interogare a datelor.

Observaţii:- Denormalizarea se face numai după o normalizare corectă.- Denormalizarea se face printr-o selectare strategică a structurilor care aduc avantaje semnificative.- Denormalizarea trebuie însoţită de măsuri suplimentare de asigurare a integrităţii datelor.

Page 15: proiect BD

6.2. Denormalizarea bazei de date

În cazul bazei noastre de date denormalizarea poate fi folosită de exemplu pentru eliminarea tabelului DISCIPLINA.

Ţinând cont că fiecare profesor predă 3 discipline (una fundamentală şi două limbi străine), în tabelul PROFESOR pot fi inserate 3 câmpuri (disciplina1, disciplina2, disciplina3) care să substitue tabelul DISCIPLINA. Astfel se realizează o simplificare a legăturilor dintre entităţi şi deci şi a interogărilor.

PROFESORcod_profesor nume prenume118 N1 P1119 N2 P2120 N3 P3121 N4 P4122 N5 P5 DISCIPLINAcod_disciplina

nume

0157 D10158 D20159 D30232 D40232 D50234 D60235 D70236 D8

PROFESOR (cod_profesor, nume, prenume, disciplina1, disciplina2, disciplina3)

PROFESOR/DISCIPLINAcod_profesor nume prenume disciplina1 disciplina2 disciplina3118 N1 P1 D1 D4 D5119 N2 P2 D2 D4 D6120 N3 P3 D3 D7 D8121 N4 P4 D2 D6 D7122 N5 P5 D3 D5 D8

Page 16: proiect BD

CAPITOLUL VII. SGBD MySQL

7.1. Noţiuni teoreticeUn sistem de baze de date este, în esenţă, o modalitate de a gestiona liste cu

informaţii. Informaţiile pot proveni dintr-o varietate de surse. De exemplu, pot reprezenta

date de cercetare, înregistrări de afaceri, cereri ale clienţilor, statistici sportive, rapoarte de vânzări, înregistrări de personal sau notele unor elevi.

De ce să optez pentru MySQL? Nu pot sa va dau decât trei răspunsuri la această întrebare, acestea fiind şi

motivele pentru care foarte mulţi utilizatori şi companii utilizează MySQL ca server de baze de date.Primul răspuns este: MySQL este oferit sub licenţă GPL deci este gratuit.Al doilea răspuns: MySQL este suportat de către PHP, ceea ce face utilă şi în acelaşitimp uşoară îmbinarea acestor activităţi în crearea conţinutului Web dinamic.Al treilea răspuns: MySQL este uşor de învăţat şi foarte rapid spre deosebire dealternativele comerciale “FoxPro” sau “Oracle”.

Bine-înţeles ca fiecare sistem de baze de date are avantajele şi dezavantajele sale, însă MySQL este special în sensul în care oferă aceeaşi calitate şi viteză, ba chiar uneori mai mare decât a sistemelor de baze de date comerciale.

Sistemul de baze de date MySQL se bazează exclusiv pe SQL (Structured QueryLanguage) şi mSQL, MySQL fiind urmaşul celui din urmă, toate cele trei fiind “opera”aceluiaşi consorţiu, diferenţa constând în gratuitatea celui din urmă si bine-înţeles şidatorită multitudinii de noi facilităţi oferite de acesta.

MySQL este un sistem de gestiune a bazelor de date relaţionale foarte rapid şi robust. O bază de date permite utilizatorului să stocheze, să caute, să sorteze şi să regăsească datele în mod eficient. Serverul MySQL controlează accesul la datele utilizatorului, accesul este permis mai multor utilizatori autorizaţi. MySQL este un server multi-user şi utilizează limbajul standard de interogare a bazelor de date (SQL).

MySQL este disponibil în mod public din 1996, dar istoria dezvoltării sale începe încă din 1979 şi a câştigat de mai multe ori premiul cititorilor - Linux Journal Readers' Choice Award. MySQL este disponibil sub o licenţă Open Source, dar există şi sub licenţe comerciale. MySQL este rapid, costul său este nul, fiind distribuit gratuit sau foarte mic, distribuit sub o licenţă comercială, dacă aceasta este necesară aplicaţiei utilizatorului şi este mult mai uşor de configurat decât multe alte produse asemănătoare.

MySQL poate fi folosit atât pe platforme Windows, cât şi Unix, iar codului sursă i se pot aduce modificări şi poate fi redistribuit gratuit. MySQL este sigur deoarece

Page 17: proiect BD

accesul la bazele de date se face prin autentificarea utilizatorului, sistemul de parolare este flexibil şi sigur, permiţând astfel verificarea pe baza host-ului. Parolele sunt sigure deoarece traficul pentru conectarea la server şi autentificare este criptat.

Deşi este folosit foarte des împreună cu limbajul de programare PHP, cu MySQL se pot construi aplicaţii în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicaţiilor in numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Borland Delphi, Java, Perl, PHP, Python, FreeBasic, etc, fiecare dintre acestea folosind un tip specific API. O interfata de tip ODBC denumita MyODBC permite altor limbaje de programare ce folosesc aceasta interfaţă, sa interacţioneze cu bazele de date MySQL cum ar fi ASP sau Visual Basic. În sprijinul acestor limbaje de programare, unele companii produc componente de tip COM/COM+ sau .NET (pentru Windows) prin intermediul cărora respectivele limbaje să poată folosi acest SGBD mult mai uşor decât prin intermediul sistemului ODBC. Aceste componente pot fi gratuite (ca de exemplu MyVBQL) sau comerciale.

Licenţa GNU GPL nu permite încorporarea MySQL în soft-uri comerciale; cei care doresc să facă acest lucru pot achiziţiona, contra cost, o licenţă comercială de la compania producătoare, MySQL AB.

MySQL este componentă integrată a platformelor LAMP sau WAMP (Linux/Windows-Apache-MySQL-PHP/Perl/Python). Popularitatea sa ca aplicaţie web este strâns legată de cea a PHP-ului care este adesea combinat cu MySQL si denumit Duo-ul Dinamic. În unele cărţi de specialitate este precizat faptul că MySQL este mult mai uşor de învăţat şi folosit decât multe din aplicaţiile de gestiune a bazelor de date, ca exemplu comanda de ieşire fiind una simplă şi evidentă: „exit” sau „quit”.

Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau prin descărcare de pe internet o interfaţă grafică a acestui mod: MySQL Administrator şi MySQL Query Browser. Un alt instrumenmt de management al acestor baze de date este aplicaţia gratuită, scrisă în PHP, phpMyAdmin.

MySQL poate fi rulat pe multe dintre platformele software existente: AIX, FreeBSD, GNU/Linux, Mac OS X, NetBSD, Solaris, SunOS, Windows 9x/NT/2000/XP.

Când comparaţi MySQL cu alte sisteme de baze de date, gândiţi-vă la ceea ce este cel mai important pentru dumneavoastră şi anume: performanţă, suport, caracteristici (conforme cu SQL, extensii etc.), condiţii şi restricţii de licenţiere, preţ. Toate acestea constituie factori care trebuie luaţi în considerare.

Date fiind aceste consideraţii, MySQL are de oferit numeroase caracteristici atractive:

Page 18: proiect BD

• Viteză. MySQL este rapid. Programatorii pretind că MySQL este cel mai rapid sistem de baze de date pe care îl puteţi găsi. • Uşurinţă în utilizare. MySQL este un sistem de baze de date cu performanţe ridicate, dar relativ simplu, a cărui configurare şi administrare sunt mult mai simple decât în cazul sistemelor mai mari. • Cost. MySQL este gratuit pentru majoritatea utilizărilor interne.

• Suport pentru limbaje de interogare. MySQL înţelege SQL (Structured Query Language - limbaj de interogare structurat), limbajul preferat al tuturor sistemelor moderne de baze de date. De asemenea, puteţi avea acces la MySQL folosind aplicaţii care acceptă ODBC (Open Database Connectivity), un protocol de comunicaţie cu bazele de date creat de Microsoft.

• Caracteristici. La server se pot conecta mai mulţi clienţi simultan. Clienţii pot folosi mai multe baze de date simultan. Puteţi obţine acces la MySQL în mod interactiv, folosind numeroase interfeţe care vă permit să introduceţi interogări şi să vizualizaţi rezultate: clienţi în linie de comandă, browsere Web sau clienţi X Window System.

• Conectivitate şi securitate. MySQL poate fi folosit integral în reţele, iar bazele de date sunt accesibile de oriunde din Internet, deci vă puteţi partaja datele cu oricine, oriunde. Dar MySQL are controlul accesului, astfel încât persoanele care nu au dreptul să vă citească datele nu vor avea această posibilitate.

• Portabilitate. MySQL rulează pe numeroase varietăţi de UNIX, precum şi pe alte sisteme non-UNIX, ca Windows şi OS/2. O bună parte din programarea cu MySQL are loc pe sisteme Linux ieftine. MySQL rulează pe diverse echipamente de la calculatoare de birou la servere cu performanţe ridicate.

• Distribuţie liberă. MySQL nu este un proiect Open Source, deoarece este necesară o licenţă în anumite condiţii. Totuşi, MySQL se bucură de o amplă popularitate în comunitatea Open Source, deoarece termenii de licenţă nu sunt foarte restrictivi, (în esenţă, MySQL este în general gratuit, dacă nu doriţi să obţineţi profit prin vânzarea sistemului sau a unor servicii care necesită utilizarea acestuia).

Page 19: proiect BD

7.2. AplicaţiiÎn continuare vom trata o serie de elemente referitoare la baza de date creată

(“Familia Popescu”), precum: crearea/eliminarea unui tabel, modificări în tabele, interogări etc., folosind pentru introducerea si modificarea informaţiilor linia de comandă SQL.

- crearea bazei de date CREATE DATABASE fam_Popescu;Use fam_Popescu; - crearea tabelei BUNICICREATE TABLE Bunici (

-> cod_bunic INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

-> nume TEXT,

-> prenume TEXT,

-> data_nasterii DATE NOT NULL,

-> varsta TINYINT NOT NULL,

-> sex TEXT(1),

-> religie TEXT,

-> adresa TEXT,

-> telefon NUMERIC

-> );

- afişarea câmpurilor (coloanelor) tabelei BUNICI show columns from BUNICI;

- ştergerea tabelei BUNICIdrop table BUNICI;

- introducerea de date în tabelINSERT INTO bunici SET

-> nume = "Popescu",

-> prenume = "Marius",

-> data_nasterii = "1936-11-03",

-> varsta = "70",

-> sex = "M",

-> religie = "ortodoxa",

-> adresa = "Str. N. Artarului Nr. 54, Bl. 3, Sc. c, Ap. 10,loc. SEVERIN, jud. Mehedinti"

-> telefon = "0765359225";

- vizualizarea datelor stocateSELECT * FROM bunici;

- adăugarea unui câmp nou (stare_civila)

Page 20: proiect BD

ALTER TABLE bunici ADD COLUMN stare_civila TEXT ;

CAPITOLUL VIII. Concluzii

Din cele prezentate putem cateva concluzii:

MySQL este usor de folosit si este foarte bun pentru crearea unei baze de date eficienta

BIBLIOGRAFIE

- Viorel Stoian – Cursuri ACE anul II, Craiova 2010