Documente Academic
Documente Profesional
Documente Cultură
Suport de curs
Informaţiile ⊆ Date
dispun de caracteristici caracter pur sintactic
semantice, orientate spre
conţinutul şi sensul atribuit
reprezentării realităţii .
Clasificarea datelor:
Datele memorate (stocate) într-un sistem sunt partiţionate într-una sau mai multe baze de date.
DEFINTIE: O bază de date e un depozit pentru date memorate. În general ea este atât integrată cât şi
partajată. Prin integrată înţelegem că o bază de date poate fi gândită ca o unificare de mai multe
fişiere de date cu redundanţele dintre aceste fişiere total sau parţial eliminate.
De exemplu o bază de date ar putea conţine atât înregistrări ANGAJAŢI, conţinând nume,
adresă, departament, salarii, cât şi înregistrări PERFECŢIONĂRI care reprezintă înrolarea angajaţilor
în curs de perfecţionare.
Să presupunem că pentru administrarea cursurilor e necesar cunoaşterea departamentului
fiecărui angajat înscris. E clar că nu e necesar să se introducă această informaţie redundantă în
înregistrările PERFECŢIONĂRI pentru că ea este cuprinsă în datele ce se găsesc în tabela ANGAJAT
corespunzătoare.
Prin partajarea unei baze de date se înţelege că bucăţi individuale de date din baza de date pot fi
partajate între mai mulţi utilizatori individuali în sensul că fiecare dintre ei poate avea acces la această
bucată de date şi o poate folosi în scopuri diferite. Astfel partajarea e o consecinţă a faptului că baza de
date e integrată.
În exemplul de mai sus informaţia despre departament din înregistrarea ANGAJAT este
partajată de utilizatorii din departamentul personal şi de cel din pregătire cadre. O altă consecinţă a
faptului că baza de date e integrată este că un utilizator dat va utiliza numai o parte (o submulţime) a
bazei de date. Mai mult submulţimile diferiţilor utilizatori vor acoperii în diferite moduri.
Termenul PARTAJAT este extins pentru a acoperii adesea partajarea concurentă, adică
abilitatea mai multor utilizatori de a accesa baza de date posibil chiar acea bucată de bază de date în
acelaşi timp. Acest sistem se numeşte MULTIUTILIZATOR.
UTILIZATORI
Vom considera 3 mari categorii de utilizatori.
În primul rând există PROGRAMATORUL aplicaţiei responsabil a scrie programe aplicaţie
care folosesc bazele de bate. Aceste aplicaţii program operează asupra datelor pentru regăsirea
informaţiilor sau ştergerea informaţiilor existente. Toate aceste funcţii se realizează emiţând cereri
potrivite către sistemul de gestiune a bazelor de date.
O a doua clasă de utilizatori sunt END-USERII ce accesează bazele de date de la un terminal.
Ei folosesc un limbaj de interogare oferit ca o parte integrată a sistemului sau utilizează aplicaţiile
scrise de programatorii de aplicaţii.
A treia clasă de utilizatori este ADMINISTRATORUL BAZEI DE BATE.
Răspunsul este acela că un sistem de baze de date oferă întreprinderii un control centralizat.
RECAPITULARE și DETALIERE
hardware
Componentele unui Sistem de Baze de Date software
utilizatori, programatori, administratorul BD
date
SGBD
Utilizator Utilizator
final Baza de date final
Date Date
Program Program
Aplicaţie Aplicaţie
Date Date
- Utilizatorii finali care pot sa obtina informatiile fara sa aiba cunostinte de programare. Ei
obtin informatiile pe care le doresc prin comenzi stiute si eventual raspunzand la diferitele optiuni pe
care i le indica sistemul de calcul la un moment dat.
- Programatorii de aplicatii care pot scrie programe in LC, acestea fiind apoi compilate si
memorate in fisiere putand fi lansate in executie de utilizatori prin invocarea numelui asociat lor.
- Administratorul bazei de date care stabileste structura initiala a bazei de date si modul de
memorare a datelor la nivel fizic, acorda drepturi de acces al utilizatorilor la baza de date sau parti ale
ei, stabileste conditiile pentru asigurarea securitatii si integritatii datelor, modifica structura bazei de
date daca este nevoie, asigura intretinerea bazei de date facand periodic copii si reconstituid eventual
baza de date in cazul cand au aparut erori datorate componentelor soft, hard sau de utilizare si raspunde
in general de modul de utilizare al bazei de date.
Arhitectura internă a unui sistem de baze de date propusă prin standardul ANSI/X3/SPARC (1975)
conţine trei nivele funcţionale: nivelul intern, nivelul extern şi nivelul conceptual:
Nivelul conceptual
SGBD
Nivelul intern
Nivelul intern – (fiind de fapt singurul nivel existent efectiv) constituit din schema internă ce descrie
structura de stocare fizică a datelor în baza de date, utilizând un model al datelor fizice.
La acest nivel se descriu detaliile complete ale stocării şi modul de acces la date.
Nivelul conceptual – sau schema conceptuală, descrie structura întregii baze de date pentru o
cumunitate de utilizatori.
La nivel conceptual se face o descriere completă a bazei de date ascunzându-se detaliile legate de
stocarea fizică si detaliind descrierea entităţilor, tipurilor de date, relaţiile dintre ele şi restricţiile
asociate.
Nivelul extern – sau nivelul vizual (utilizator), include o colecţie de scheme externe ce descriu baze
de date prin prisma diferiţilor utilizatori.
Clasificarea SGBD-urilor
1) După sistemele de calcul pe care se implementează:
- SGBD pentru calculatoare mari se folosesc pentru baze de date foarte complexe şi foarte mari
(exemple: Oracle, DB2, IMS).
- SGBD pentru minicalculatoare se folosesc pentru baze de date complexe şi mari şi au cunoscut o
dezvoltare puternică în anii ‘80 (exemplu: Oracle).
- SGBD pentru microcalculatoare se folosesc pentru baze de date de complexitate şi de mărime mici şi
medii. Au o mare răspândire în momentul actual (exemple: FoxPro, Oracle, Acces).
Tendinţa actuală este ca SGBD-ul să fie compatibil pe cât mai multe sisteme de calcul sub cât mai
multe sisteme de operare.
2) După limbajul de programare utilizat:
- SGBD-ul cu limbaj gazdã este cel care are un limbaj de manipulare a datelor bazat pe unul de nivel
înalt (universal). Limbajul gazdă poate fi chiar un limbaj universal (Cobol, Pascal) sau o extensie
(adaptare) a unui astfel de limbaj.
- SGBD-ul cu limbaj propriu (autonom) este cel care are un limbaj de manipulare a datelor specific.
Acest limbaj de programare propriu este procedural şi are marele avantaj că permite implementarea
tuturor facilităţilor oferite de SGBD. În el se pot programa proceduri complexe şi interfeţe puternice ca
într-un limbaj universal, dar în plus se realizează un acces uşor şi optimizat la baza de date.
Dezavantajul este că un astfel de limbaj nu poate fi utilizat decât de specialiştii în informatică (exemplu
Visual FoxPro).
Astazi, majoritatea SGBD-urilor pentru microcalculatoare au implementat, parţial sau total, limbajul
SQL, care este şi standardizat internaţional.
3) După modelul logic de date implementat:
-SGBD ierarhice sunt cele care implementează modelul de date arborescent (ierarhic) şi au fost primele
care s-au utilizat pentru gestionarea bazelor de date.
- SGBD reţea sunt cele care implementează modelul de date reţea şi care au eliminat multe din limitele
celor ierarhice. Ele au o largă aplicabilitate pentru numeroase probleme din lumea reală, dar sunt dificil
de utilizat datorită complexităţii ridicate.
- SGBD relaţionale sunt cele care implementează modelul de date relaţional şi au aplicabilitate în
majoritatea domeniilor din lumea reală. Ele pot fi folosite de o gamă largă de utilizatori datorită
facilităţilor oferite (generatoare, limbaj neprocedural etc.)
(exemple: Oracle, Visual FoxPro, Paradox, Acces, Informix, Progress).
- SGBD orientate obiect sunt cele care implementează modelul de date orientat obiect. Ele se pretează
bine la problemele foarte mari, de complexitate ridicată, precum şi pentru tipurile noi de aplicaţii
(proiectarea asistată, multimedia, sisteme deschise)
(exemple: O2, Orion, Jasmin).
4) După localizarea bazei de date
- SGBD centralizate sunt cele care gestionează datele amplasate într-o singură bază de date centrală. La
acestea au acces toţi utilizatorii autorizaţi pentru a efectua diferite operaţii de manipulare a datelor.
Toate calculatoarele care nu sunt legate în reţea şi lucrează cu baze de date au instalat un SGBD
centralizat.
- SGBD distribuite sunt cele care gestionează datele amplasate pe mai multe calculatoare dintr-o reţea
tratîndu-le ca un tot unitar. Complexitatea acestor SGBD-uri este ridicată, având componente speciale
pentru realizarea conexiunilor şi tratarea distribuită a datelor (exemplu: Oracle, DB2, Informix).
Conceptele de baza in modelarea datelor sunt concepte de entitati, instanţe de entitati si atribute.
O instanţa de entitate descrie un obiect specific, real sau abstract. Este util sa distingem intre
entitati si instanţe de entitati ( instanţele= obiecte iar entităţile = clase de obiecte care au aceleaşi
proprietati ).
Proprietatile unei instante se numesc atribute. Atributele si entitatile poseda un nume care le
indentifica.
O entitate are unul sau mai multe atribute ale caror valori identifica unic sau distinct o instanta
de entitate fata de alta.
Entitatea este conceptul de baza in modelarea datelor si ea poate fi o clasa de obiecte reale sau
abstracte. Ex: obiecte reale: angajat, departament, profesor, student, client, etc iar entitati care
reprezinta obiecte abstracte sunt: investitii, vanzare, angajare. Fiecare din obiectele abstracte are o
semnificatie reala dar ele nu sunt obiecte fizice.
Atribute
Proprietatile unei entitati se numesc atributele sale.
Fiecare instanta de entitate are cate o valoare pentru fiecare din atributele sale.
Atributele se reprezinta intr-o diagrama model printr-o lista cu numele lor in cutia entitatii (este
dreptunghiulara).
Angajat 23
Nume
Penume
BI
Salariu
Tehnicile de modelare de date presupun ca doua atribute cu acelasi nume sunt acelasi atribut.
Astfel daca LOCUL apare ca un atribut in entitatea ANGAJAT software-ul de modelare de date trebuie
sa semnaleze atributul ca fiind redundant sau inconsistent sau chiar sa stearga una din aparitile
atributului.
Null-ul
Este important de stiut cand poate avea un atribut o valoare nula. Astfel o valoare nula este o
valoare necunoscuta sau inaplicabila ci nu o valoare numerica egala cu zero.
Un atribut null nu are o valoare cunoscuta la un moment dat dar ea exista conceptual in
modelul de date.
Domenii
Valorile unui atribut sunt luate dintr-un domeniu care determina multimea valida de valori
pentru unul sau mai multe atribute.
Anumite atribute pot avea toate acelasi domeniu. Ex: atributele data nasterii, data angajarii, data
intalnirii sunt toate luare din domeniul date iar pretul de vanzare si lisata de preturi sunt luate din
domeniu bani.
Domenile
1. determina operatiile premise asupra unui atribut
2. determina care atribute pot fi comparate sau folosite in combinatii
3. determina multimea de valori precum si marimea si formatele campurilor din baza de date
fizica.
Chei candidate
Instantele unei entitati se disting prin valorile cheilor candidate. O cheie canidata este o multime
de attribute ale caror valori identifica unic instantele unei entitati.
Pot exista mai multe chei candidate pentru o entitate. Ex: cheile considerate pt entitatea
ANGAJAT pot fi atributul, marca angajatului sau colectiv numeric angajat, data nasterii, locul
nasterii.Oricare din aceste chei candidate identifica unic insatantele entitatii angajate.
Termenul “cheie” se foloseste ca o prescurtare pentru cheie candidat.
O cheie candidata nu trebuie sa fie un unic atribut ( ex anterior). Se pot folosi mai multe atribute
ale caror valori formeaza impreuna identificatorul unic .
O cheie candidata costruita din mai mult de un atribut se numeste cheie compusa.
Identificarea cheilor candidate depinde de datele care se modeleaza.
Chei primare si chei alternate.
Una din cheile candidate ale unei entitati este selectata ca fiind cheie primara. In exemplul cu
entitatea ANGAJAT marca angajat ar putea fi cheie primara, celelalte sunt chei alternative.
Conceptele de baza ale cheilor candidate intr-un model de date sunt:
1. instantele unei entitati sunt distinse una de alta prin valorile cheilor candidate.
2. o cheie candidate este o multime de unul sau mai multe atribute ale caror valori impreuna
identifica in mod unic instantele unei entitati.
3. nici o parte a unei chei candidate nu poate fi ea insasi o cheie candidate.
4. daca doua insatante ale entitatiii are aceeasi valore a chei candidate atunci ele sunt aceeasi
instanta.
5. pentru o entitate pot exista mai multe chei candidate
6. una din cheile candidate este selectata ca fiind cheie pimara
7. celelalte chei sunt cunoscute ca fiind chei alternante
8. fiecare instanţa de entitate trebuie sa aibă o unitate valoare de cheie primara.
9. un atribut cheie primara nu poate avea niciodată valoare nula.
10. entitati multiple pot avea aceeaşi cheie primara .
Relatiile intr-un model de date sunt asociatii intre entitati si sunt reprezentate in mod uzual prin
liniile intre cutiile cu entitati.
Alte tehnici de modelare folosesc un simbol special ca un diamant pentru a reprezenta relatia.
O relatie de conectare : are un nume de verb , are o cardinalitate care arata cate instante ale unei entitati
sunt legate de cate instante ale celeilalte entitati.
In plus o relatie de conectare intre entitatile A si B poate avea o dependenta de existenta, ceea
ce inseamna ca entitatea B nu poate exista dc nu exista entitatea A.
Poate avea o relatie de dependenta de identificator ceea ce inseamna ca cheia primara a entitatii
B include cheia primara a entitatii A, dependenta de identificator implica dependenta de existenta.
Exista o diferenta majora intre relatiile de conectare unul la mai multi si mai multi la mai multi
deoarece ele nu au aceeasi semnificatie. Va reprezenta corect conectarea intre departamente si angajati
relatia determinate de catre regulile de afaceri din lumea reala care se modeleaza.
Cardinalitatea este o tehnica de modelare de date care foloseste linii pentr a prezenta relatii intr-
o diagrama de model si utilizeaza un simbol la sfarsitul liniei penru a reprezenta cardinalitatea relatiei.
Cardinalitatea oricarei conectari intre relatiile A si B este un adin urmatoarele:
• o instanta a lui A este conectata la mai multe instante ale lui B
• o instanta a lui A este conectata la cel putin o instanta a lui B
• o instanta a lui A este conectata la exact n instante ale luB
• o instanta a lui A este conectata intre n si m instante ale lui B.
Relatiil mai multi la mai multi sunt impartite in relatiile componente una la mai multi atunci cand
modelul este rafinat petru a prezenta mai multe detail.
Atribute cheie straine.
Dupa ce relatile mai multi la mai multi au fost impartite pot fi identificate atributele cheie straiana.
Def. Un atribut al unei entitati care se gaseste in cheia primara a unei alte entitati se numeste
atribut cheie straina.
Partajarea acelui atribut indica o relatie intre cele doua entitati.
Reguli
-regula de definire – cand doua entitati sunt asociate printr-o relatie de conectare atributele de
cheie primara a entitatii tata migreaza in entitatea fiu devenind acolo attribute cheie straina
- regula de validare – o instanta de entitate poate avea numai o singura valoare petru fiecare din
atributele sale de cheie straina.
Nume de roluri.
Cand exista mai mult de o relatie intr-o pereche de entitati atributelor cheie straina li se
asimileaza nume de roluri. Acestea permit distinctia intre diferite aparitii ale unui nume de atribut
cheie straina intr-o entitate.
Deoarece entitatile migreaza in diferite relatii ele au o semnificatie diferita.
Ex: Planificarea de zboruri. Fiecare oras poate sa fie oras de plecare pt mai multe curse aeriene
si de sosire pt alte curse aeriene. Fiecare cursa aeriana are exact un oras de sosire si unu de plecare .
Observam ca modelul prezinta 2 entitati: oras si cursa aeriana de 2 ori. Cheia primara a unui oras
migreaza in in cursa aeriana de doua ori, o data prin relatia decolare pentr si o data prin relatia
aterizare pentru un avion.
Pentru a distinge intre cele doua atributii ale aparitiei cheie straina cod oras in entatea cursa aeriana
unei aparitii îi dăm numele cod oras plecare iar celeilalte îi este dat numele de rol cod oras sosire.
1. OBIECTIVELE
Obiectivele originale ale modelului relaţional au fost simplitatea, independenţa datelor şi
tratarea riguroasă a derivabilităţii redundanţei şi consistenţei.
SIMPLITATEA: Modelul relaţional de bază este mai simplu decât sunt alte tehnici de modelare a
datelor deoarece el vede datele ca şi când acestea ar fi formatate în tabel. Coloanele tabelei reprezintă
proprietăţile tabelei iar liniile tabelei valorile acestei proprietăţi. Coloanele între tabele se formează prin
coloane care au acelaşi nume sau valori comparabile. Oamenilor li se pare natural să vadă datele în
tabele: contabilitatea generală, liste de preţuri etc.
INDEPENDENŢA DATELOR: Modelul relaţional oferă mai multă independenţă datelor decât o face
orice altă abordare de modelare de date care este legată de un sistem managerial a bazelor de date
comercial. Modelul relaţional izolează aplicaţiile program de creştere a resursei dee date şi de
schimbări de reprezentare a datelor astfel încât utilizatorii unei baze de date relaţionale nu trebuie să
ştie nimic despre caracteristicile bazei de date fizice. Consideraţiile despre bazele de date, logică şi
fizică, sunt separate. Modelul relaţional adresează numai caracteristici logice, cele fizice fiind lăsate pe
seama celui care implementează baza de date.
RIGOAREA: Modelul relaţional are o solidă fundamentare matematică care permite ca cererile să fie
adresate mai concret decât în modelele care nu au această fundamentare. Astfel de date includ: „ Ce
date sunt derivabile din alte date?Există inconsistenţă în aceste date?”
2. STRUCTURA RELAŢIONALĂ
Componentele structurale ale modelului relaţional sunt relaţii, atribute, domenii, tuple, chei şi
reprezentări. În mod formal o bază de date relaţională se defineşte ca:
-o colecţie finită de relaţii variind în timp definită în concordanţă cu o colecţie finită de domenii. O
relaţie de n mulţimi domenii D1, D2..Dn este o mulţime de elemente de forma (d1, d2..dn) fiecare di
este o valoare din domeniul Dj.
RELAŢII: O relaţie este o tabelă cu nume, cu linii şi coloane. Gradul relaţiei este dat de numărul său de
coloane.
ATRIBUTE: Fiecare coloană sau atribut ale unei relaţii are un nume. Atributele relaţii PROFESOR
sunt: NUME; PROFESOR; MARCA; FUNCŢIE etc.
CHEI Orice relaţie are o mulţime de chei candidate din care una se selectează pentru a fi cheia primară.
Cheile candidate, cheia primară şi cheile alternative au aceeaşi definiţie în modelul relaţional.
REPREZENTĂRI O convenţie comună pentru reprezentarea unei relaţii este de a-i da numele urmat de
numele atributelor sale cu cheia primară subliniată.
OPERATORI RELAŢIONARI Cei trei operatori relaţionali de bază sunt: PROJECT, SELECT, JOIN
multe limbaje oferă comenzi de nivel înalt folosind operatorii relaţionali de bază ca primitive.
PROJECT: Operatorul Project extrage atribute dintr-o relaţie formând o nouă relaţie:
R2=PROJECT(R1)(A1, A2...An)
SELECT Operatorul Select sau Restrict extrage linii dintr-o relaţie selectându-le pe acelea care satisfac
anumite criterii şi formează o nouă relaţie:
R2=SELECT(R1)(condiţii)
JOIN Operatorul Join extrage linii din două relaţii potrivindu-le după anumite criterii şi formând o
nouă relaţie cu acestea.
R3=JOIN (R1) (Condiţie)(R2)
NATURAL JOIN un caz special al apariţiei JOIN este cel numit NATURAL JOIN care potriveşte
relaţiile sale operând pe valorile egale. Este folosită pentru a combina relaţii pentru care atributele de
cheie primară ale uneia apar ca atribute de cheie străină ale celeilalte.
3. DEFINIREA SCHEMEI
Limbajul folosit pentru a descrie structura bazei de date într-un DBMS se numeşte adesea „data
definition languege”, adică DDL sau „ schema definition languege”. Limbajul de definire al schemei
pentru o bază de date relaţională trebuie să fie în stare să creeze, să mogofice şi să şteargă descrieri de
relaţii şi de atribute ale lor. Există mai multe limbaje de definire a schemei pentru baze de date
relaţional, dar noi vom folosi partea limbajului SQL, limbajul de date relaţionale, care este orientată
spre definirea schemei.
SQL permite, de asemenea, inserarea, modificarea şi ştergerea de tuple din relaţii şi oferă o
facilitate de control a datelor care:
- permite utilizatorilor să autorizeze alţi utilizatori pentru a accede date;
- specifică aserţiuni dinspre interogarea datelor;
- specifică tranzacţii care se declanşează de către anumite evenimente.
SQL este baza pentru multe limbaje comerciale de date relaţionale şi de asemenea pentru limbajul de
date relaţionale dezvoltate de către ANSI/X3112.
6. COMENTARII FINALE
Dezvoltarea modelului relaţional a constituit o secvenţă de jaloane în cercetarea gestionării
datelor. Simplitatea modelului relaţional şi separarea vederilor atractiv pentru cel puţin 15 ani în primul
rând în comunicarea cercetărilor şi apoi pe piaţă.
CELE MAI BUNE CARACTERISTICI: ale modelului relaţional sunt:
- viziunea sa simplă, tabelară asupra datelor;
- mulţimea completă de operaţii de manipulare date;
- separarea modelului logic de implementare fizic.
DEZAVANTAJELE de bază ale modelului relaţional sunt:
- supraîncărcarea semantică într-o singură structură tabelară se reprezintă o varietate de construcţii de
modelare de date logice;
- demonetizarea prin caracterizarea DBMS-urilor comerciale ca „ relaţionale” chiar dacă ele utilizează
anumite restricţii ale modelului relaţional ca de ex integritatea referenţială;
- operatorii relaţionali care sunt la un nivel procedural de programator şi trebuie acoperiţi prin comenzi
de nivel înalt care sunt mai uşor de folosit de către nespectatori;
- implementarea ineficientă relativ la alte proiectări, pentru anumite tipuri de structuri de date.
Prima problemă poate fi ameliorată prin folosirea unei tehnici de modelare a datelor logice
modelul relaţional. A doua problemă nu ţine chiar de modelul relaţional, ci de folosirea de către
industria tehnologiei. La a treia problemă este mai mult de lucru, iar a patra se rezolvă prin
specializarea hard-ului şi soft-ului bazei de date DBMS-ulrilor relaţionale comerciale(MySQL)
continuă să aibă probleme de performanţă în mediile bazei de date mari şi complexe.
NORMALIZAREA
OBIECTIVELE
Teoria relaţională foloseşte termenul de forme normale pentru a descrie extinderea la care au
grupate atributele în relaţii stabile.
Au fost propuse numeroase forme normale fiecare încercând să obţină o grupare de atribute cât
mai stabilă. Interesul nostru se restrânge la 6 forme normale. Primele 5 purtând nume de ordine şi
ultima formă normală boyc/COD.
O relaţie este în prima formă normală dacă şi numai dacă fiecare atribut poate conţine numai o
singură valoare.
O relaţie nu poate avea nici o linie care conţine un grup repetitiv de valori de atribute.
Pentru a normaliza o relaţie în prima formă normală este necesar să facem ca nici o linie să nu
conţină atribute care se repetă.
Cele 2 raţiuni principale pentru prima formă sunt că semantica unei relaţii este mai explicit
adică nici un atribut nu poate avea mai mult de o valoare într-o linie dată.
Pe de altă parte că nici un atribut nu poate avea valori multiple.
O relaţie este în a doua formă normală dacă şi numai dacă ea este în prima formă normală şi
orice atribut cu cheie este dependent funcţional complet de cheia primară.
MySQL este un sistem de gestiune a bazelor de date relaționale, produs de compania suedeza MySQL
AB și distribuit sub Licența Publică Generală GNU. Este cel mai popular SGBD open-source la ora
actuală, fiind o componentă cheie a stivei LAMP (Linux, Apache, MySQL, PHP).
Programul SQLyog
SQLyog Community Edition este un program, de fapt o interfață grafică foarte atrăgătoare ce ne ajută
să lucrăm cât mai ușor posibil cu serverul bazei de date MySQL. Pentru a putea folosi SQLyog
Community Edition este nevoie de cunoștințe SQL, programul folosit în administrarea bazelor de date
de tip SQL. SQLyog Community Edition permite optimizarea bazei de date sau exportarea de date
din baza de date în diferite formate CSV, HTML și XML.
SQL (Structured Query Language - Limbaj Structurat de Interogare) este un limbaj de programare
specific pentru manipularea datelor în sistemele de manipulare a bazelor de date relaționale (RDBMS),
iar la origine este un limbaj bazat pe algebra relațională. Acesta are ca scop inserarea datelor,
interogații, actualizare și ștergere, modificarea și crearea schemelor, precum și controlul accesului la
date. A devenit un standard în domeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat
pentru creearea, modificarea, regăsirea și manipularea datelor de către SGBD-urile (Sistemele de
Gestiune a Bazelor de Date) relaționale. Pe lângă versiunile standardizate ale limbajului, există o
mulțime de dialecte și variante, unele proprietare, fiind specifice anumitor SGBD-uri și de asemenea
conținând extensii pentru a suporta SBD-urile (Sistemele de Baze de Date) obiectuale (obiectual-
relaționale).
SQL permite atât accesul la conținutul bazelor de date, cât și la structura acestora.
• Clauza HAVING Spre deosebire de clauza WHERE, acționează asupra rândurilor rezultate din
clauza GROUP BY , aplicându-le condiția, spre a fi ulterior prelucrare prin funcțiile agregate.
• Clauza ORDER BY Ordonează rezultatele interogării în ordine alfabetică după unul sau mai
multe câmpuri. ASC înseamnă în ordine crescătoare, iar DESC - ordine descrescătoare. Ordinea
implicită este crescătoare.
• Alte cuvinte cheie: ALL - Toate articolele; DISTINCT - Numai articolele unice, fără
duplicate.
Exemple: 1. Selectarea tuturor cărților din tabela Book, având prețul mai mare decât 100.00, în ordinea
crescătoare a titlurilor:
2. Selectarea tuturor titlurilor cărților din tabelele Book și a autorilor cărților citiți din tabela Authors:
SELECT Book.title, Authors.name FROM Book INNER JOIN Authors ON Book.author = Authors.id
GROUP BY Book.title;
INSERT INTO tabel (câmp1, câmp2, ...) VALUES (valoare1, valoare2, ...);
Tranzacții
Tranzacțiile sunt utilizate pentru a controla în ce condiții se desfășoară o succesiune a instrucțiunilor de
manipulare a datelor.
Instrucțiuni:
2.
START TRANSACTION;
UPDATE Account SET amount=amount-200 WHERE account_number=1234;
UPDATE Account SET amount=amount+200 WHERE account_number=2345;
IF ERRORS=0 COMMIT;
IF ERRORS<>0 ROLLBACK;
Instrucțiuni
CREATE TABLE creează un tabel în mod linie de comandă:
Exemplu:
Exemplu:
Exemplu:
ALTER TABLE supplier MODIFY ( supplier_name varchar2(100) not null, city varchar2(75));
Exemplu:
Exemplu:
• GRANT acordă unul sau mai multe drepturi unui utilizator sau grup.
• REVOKE (operația inversă) elimină unul sau mai multe drepturi unui utilizator sau grup.
Exemple: 1.
2.
EXEMPLE ÎN SQL
Exemple de subinterogari
Exemplul 1. Subinterogarea determină toţi clienţii care sunt din acelaşi oraş cu Albu:
SELECT *
FROM clienţi
WHERE oraş=(SELECT oraş
FROM client
WHERE NUME=‟Albu‟)
Exemplul 2. Determinaţi toţi clienţii din oraşul celui cu comanda 1015:
SELECT *
FROM clienţi
WHERE oraş=(SELECT oraş
FROM companie
WHERE NR_COM=1015)
Exemplul 3. Următoarea subinterogare furnizează fabricile care au termenul de livrare
mai mic decât termenul de livrearea a lui DAEWO.
SELECT *
FROM fabrici
WHERE termen_liv <(SELECT termen_liv
FROM fabrici
WHERE ID_FABRICA=”DAEWO”)
Sa se creeze o tabela care sa contina numar curent, nume, prenume, diagnostic, data consutatiei
(pacienti 1)-5 randuri
Sa se populeze tabela cu informatii si sa se realizeze ocomanda select prin care sa se afiseze toti
pacienti care au programarea consultatiei maine
Comanda rezolvare > SELECT * FROM pacienti1 WHERE dataconsultatiei= (SELECT
dataconsultatiei FROM pacienti1 WHERE dataconsultatiei=CURDATE()+1)
Se cosidera 4 tabele for angajatii, id, nume salar, data angajarii, data concediereii, numar copiii.
Tabela salarii cu id, numar zile, brut, deducere copii, impozit, si net;
Deducerii brut min, brut max, deducere
Deducere copiii, numar copii, deducere copii,
Deducere;
- 1 copil – 100
- 2 copii 170
- 3 copii 220
- 4 copii 260
Venit brut:
- 0 -300 200deducere
- 301- 600 – 150 deducere
- 601-800 – 100 deducere
- > 800 – 0
Formula impozit = (venit brut – deducere – deducere copii) * 0.16
Venit net = venit net – impozit