28 0 234KB
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, Lacusteanu Alexandru Udrea Consantin Valentin Mandea Alexandru
Coordonator, Prof. Viorel Stoian
Craiova, 2010 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, Lacusteanu Alexandru Udrea Consantin Valentin Mandea Alexandru
Coordonator, Prof. Viorel Stoian
Craiova, 2010
CUPRINS 1. CAPITOLUL I. INTRODUCERE………………………………….4 2. CAPITOLUL II. Sistemul „Familia Popescu”……………………...6 3. 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…………………………………………………10 5. CAPITOLUL V. NORMALIZAREA BAZEI DE DATE…………..11 5.1. Notiuni teoretice……………………………………………….11 5.2. Normalizarea tabelelor bazei de date…………………………12 6. CAPITOLUL VI. DE NORMALIZAREA BAZEI DE DATE……….14 6.1. Notiuni teoretice………………………………………………..14 6.2. Denormalizarea tabelelor bazei de date………………………15 7. CAPITOLUL VII. SGBD MySQL…………………………………….16 7.1. Notiunu teoretice……………………………………………….16 7.2. Aplicatii…………………………………………………………19 8. CAPITOLUL VIII. CONCLUZII…………………………………….. 20
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
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.
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).
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
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. BUNICI descriere (dinspre mamă, dinspre tată) lucrează_ca
M(0) este_cadru_didactic (şcoala 55) 1(0)
1 PROFESOR cod_profesor nume,prenume 1 M(0)
lucrează_ca
M(0) M(0)
M(0) este_cadru_didactic (şcoala 55) 1(0)
M(0) PĂRINŢI
M(0) M(0)
este_elev (şcoala 55)
COPII
1(0) predă M(0) DISCIPLINĂ cod_disciplină, nume M(0)
face_parte_din predă_la 1
studiază
CLASĂ cod_clasă, M(0) nume, nr_semigrupe, cod_semigrupa1, cod_semigrupa2, cod_semigrupa3 ………………………………..
CAPITOLUL IV. SCHEMA LOGICĂ 4.1. Noţiuni teoretice Pentru 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ăţilor Regulă 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.
4.2. Schema logică MEMBRI cod_membru, nume, prenume, data_naşterii, vârstă, sex, religie, adresă, telefon etc. BUNICI cod_membru, descriere (dinspre mamă, dinspre tată) lucrează_ca
M(0) M(0) 1(0)
PĂRINŢI cod_membru
1 1 PROFESOR cod_profesor, nume, prenume
lucrează_ca
M(0)
M(0) M(0)
1
1(0)
M(0)
COPII cod_membru
1(0)
1
M(0) PREDARE cod_profesor, cod_disciplină M(0)
1
M(0)
DISCIPLINĂ cod_disciplină, nume M(0) 1
PREDARE_LA_ STUDIERE cod_clasă, cod_disciplină, cod_profesor
1 M(0)
1
CLASĂ cod_clasă, nume, nr_semigrupe, cod_semigrupa1, cod_semigrupa2, cod_semigrupa3, ……………………………….
CAPITOLUL V. NORMALIZAREA BAZEI DE DATE 5.1. Noţiuni teoretice Normalizarea 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 Y unde X = determinant Y = determinat X 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.
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) CLASA cod_clasa
nume
nr_semigrupe
cod_semigrupa1
cod_semigrupa2
cod_semigrupa3
5531
IA
3
55311
55312
55313
5532
IV B
2
55321
55322
5547
VI C
3
55471
55472
5521
VII E
1
55211
55473
CLASA_1 1 CLASA M SEMIGRUPA CLASA_1 cod_clasa 5531 5532 5547 5521
nume IA IV B VI C VII E
nr_semigrupe 3 2 3 1
SEMIGRUPA cod_semigrupa 55311 55312 55313 55321 55322 55471 55472 55473 55211
cod_clasa 5531 5531 5531 5532 5532 5547 5547 5547 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ă.
CAPITOLUL VI. DENORMALIZAREA BAZEI DE DATE 6.1. Noţiuni teoretice Denormalizarea 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.
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. PROFESOR cod_profesor 118 119 120 121 122 DISCIPLINA cod_disciplin a 0157 0158 0159 0232 0232 0234 0235 0236
nume N1 N2 N3 N4 N5
prenume P1 P2 P3 P4 P5
nume D1 D2 D3 D4 D5 D6 D7 D8
PROFESOR (cod_profesor, nume, prenume, disciplina1, disciplina2, disciplina3) PROFESOR/DISCIPLINA cod_profesor nume 118 N1 119 N2 120 N3 121 N4 122 N5
prenume P1 P2 P3 P4 P5
disciplina1 D1 D2 D3 D2 D3
disciplina2 D4 D4 D7 D6 D5
disciplina3 D5 D6 D8 D7 D8
CAPITOLUL VII. SGBD MySQL 7.1. Noţiuni teoretice Un 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şi timp 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 de alternativele 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 Query Language) ş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 şi datorită 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 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: • 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).
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 BUNICI CREATE 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 BUNICI drop table BUNICI;
- introducerea de date în tabel INSERT 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 stocate
SELECT * FROM bunici;
- adăugarea unui câmp nou (stare_civila) 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