+ All Categories
Home > Documents > BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere...

BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere...

Date post: 29-Aug-2019
Category:
Upload: hadieu
View: 224 times
Download: 0 times
Share this document with a friend
23
BAZE DE DATE Suport de curs Datele - sunt informaţii primare. - pot fi numere, mărimi, relaţii etc. urmând a fi supuse unor prelucrări. - prelucrate într-un context cu semnificaţie şi scop devin informaţii utile. Informaţiile Date Clasificarea datelor: În funcţie de reflectarea în timp a proceselor şi fenomenelor reprezentate: -date active, dinamice - reprezintă procese sau fenomene în curs de desfăşurare; -date pasive - se referă la procese sau fenomene care au avut loc şi care s-au terminat. Ele sunt utile pentru analize comparative, conducerea proceselor şi fenomenelor care se vor repeta; -date previzionale - cuprinse în planuri şi programe şi reflectă procese şi fenomene viitoare În funcţie de domeniul de activitate la care se referă: -tehnologice – utilizate pentru conducerea şi dirijarea proceselor tehnologice industriale; -economice – obţinute prin prelucrări succesive de către compartimentele din cadrul unei societăţi comerciale aflate pe diferite trepte ierarhice şi utilizate de către conducerea societăţii în activitatea de analiză şi decizie; -ştiinţifice - utilizate în domeniul cercetării ştiinţifice si al proiectării tehnologice; În funcţie de forma de exprimare a fenomenelor pe care le reflectă: -numerice (cantitative) - exprimă aspectul cantitativ al fenomenelor şi se obţin prin măsurare, numărare, cântărire sau calcul; -nenumerice (calitative) – se prezintă printr-o mare varietate de forme: concepte, liste bibliografice, texte, rapoarte etc.; -analogice - exprimate prin parametrii cu variaţie continuă din cadrul proceselor tehnologice, de exemplu presiunea, temperatura, viteza, tensiunea electrică, etc.; caracter pur sintactic dispun de caracteristici semantice, orientate spre conţinutul şi sensul atribuit reprezentării realităţii .
Transcript
Page 1: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

BAZE DE DATE Suport de curs

Datele - sunt informaţii primare.

- pot fi numere, mărimi, relaţii etc. urmând a fi supuse unor prelucrări.

- prelucrate într-un context cu semnificaţie şi scop devin informaţii utile.

Informaţiile ⊆ Date

Clasificarea datelor:

♦ În funcţie de reflectarea în timp a proceselor şi fenomenelor reprezentate:

-date active, dinamice - reprezintă procese sau fenomene în curs de desfăşurare;

-date pasive - se referă la procese sau fenomene care au avut loc şi care s-au terminat. Ele sunt utile

pentru analize comparative, conducerea proceselor şi fenomenelor care se vor repeta;

-date previzionale - cuprinse în planuri şi programe şi reflectă procese şi fenomene viitoare

♦ În funcţie de domeniul de activitate la care se referă:

-tehnologice – utilizate pentru conducerea şi dirijarea proceselor tehnologice industriale;

-economice – obţinute prin prelucrări succesive de către compartimentele din cadrul unei societăţi

comerciale aflate pe diferite trepte ierarhice şi utilizate de către conducerea societăţii în activitatea de

analiză şi decizie;

-ştiinţifice - utilizate în domeniul cercetării ştiinţifice si al proiectării tehnologice;

♦ În funcţie de forma de exprimare a fenomenelor pe care le reflectă:

-numerice (cantitative) - exprimă aspectul cantitativ al fenomenelor şi se obţin prin măsurare,

numărare, cântărire sau calcul;

-nenumerice (calitative) – se prezintă printr-o mare varietate de forme: concepte, liste bibliografice,

texte, rapoarte etc.;

-analogice - exprimate prin parametrii cu variaţie continuă din cadrul proceselor tehnologice, de

exemplu presiunea, temperatura, viteza, tensiunea electrică, etc.;

caracter pur sintactic dispun de caracteristici semantice, orientate spre conţinutul şi sensul atribuit reprezentării realităţii .

Page 2: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

♦ În funcţie de destinaţie:

-de programare - asigură suportul decizional privind elaborarea planurilor şi strategiilor de dezvoltare

pe anumite perioade de timp;

-de pregătire-lansare - utilizate pentru fundamentarea deciziilor privind pregătirea şi lansarea

lucrărilor în succesiunea logică a lor;

-de control reglare – pe baza lor se desfăşoară procesul decizional privind adoptarea deciziilor de

corecţie;

-de evaluare şi raportare;

♦ În funcţie de caracteristicile lor funcţionale:

-de stare - caracterizează cantitativ şi calitativ potenţialul tehnic de producţie al unităţii şi

subdiviziunilor;

-de intrare - caracterizează cantitativ şi calitativ intrările, la nivel de sistem şi subsisteme componente;

-de ieşire - caracterizează influenţa pe care o exercită societatea comercială asupra mediului

înconjurător;

-de cooperare - exprimă legăturile organizatorice ce se stabilesc atât în interiorul societăţii comerciale,

cât şi între societate şi alţi agenţi economici;

-de execuţie - reflectă modul de desfăşurare a activităţii curente şi asigură conducerea operativă a

unităţii;

♦ În funcţie de rolul pe care îl au în sistemul de management:

-planificare;

-control;

-fundamentare a deciziei.

Ce este un sistem de baze de date (B.D) Un sistem de baze de date în descrierea sa cea mai simplă e un sistem de păstrare a înregistrărilor bazat pe calculator, adică un sistem al cărui scop e de a înregistra şi menţine informaţii. Informaţia implicată poate fi oricare entitate căruia noi îi conferim o semnificaţie, adică ceva care poate fi necesar în procesele de luare de decizii implicate în gestionarea unei organizaţii. Datele memorate (stocate) într-un sistem sunt partiţionate într-una sau mai multe baze de date.

Page 3: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

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. HARDWARE-UL UNUI SISTEM DE DAZE DE DATE constă în volumele de memorare, discuri, dischete sau benzi pe care rezidă baza de date împreună cu aparatele şi unităţile de control ale unei baze de date. Între baza de date FIZICĂ (datele aşa cum sunt ele memorate pe suport) şi utilizatorii sistemului există un nivel software numit sistem de gestiune a bazei de date (S.G.B.D). 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. De ce trebuie o întreprindere să aleagă o bază de bate integrată? Răspunsul este acela că un sistem de baze de date oferă întreprinderii un control centralizat. AVANTAJELE care rezultă din controlul centralizat sunt: 1 redundanţa poate fi redusă; 2 inconsistenţa poate fi evitată; 3 datele pot fi partajate;

Page 4: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

4 pot fi aplicate restricţii de securitate; 5 poate fi menţinută integritatea datelor.

RECAPITULARE și DETALIERE

hardware Componentele unui Sistem de Baze de Date software utilizatori, programatori, administratorul BD date

Hardware. Sistemele de baze de date sunt, de regulă, instalate pe calculatoare de uz general,

de la calculatoare PC standard, până la staţii multiprocesor puternice. Bineînţeles, performanţele

generale de operare ale calculatorului (numărul şi viteza procesoarelor, dimensiunea şi viteza de

operare a memoriei principale) influenţează în mod corespunzător performanţele sistemului de baze de

date.

Software. Între baza de date (colecţia de date memorate fizic în fişiere pe hard-discuri) şi

utilizatorii sistemului există un nivel software, numit Sistem de Gestiune a Bazei de Date (SGBD)

(Database Management System - DBMS).

SGBD-ul este o interfata intre utilizatori si sitemul de operare.

Orice SGBD contine printre alte componente un limbaj de descriere a datelor (LDD) care

permite descrierea structurii unei baze de date, a fiecarei componente a ei, a relatiilor dintre ele, a

drepturilor de acces ale utilizatorilor la baza de date, a restrictiilor in reprezentarea informatiilor si alte

elemente asemanatoare. O alta componenta foarte inportanta a unui SGBD este limbajul de cereri

(LC) sau limbajul de prelucrare a datelor (LPD) ce permite operatii asupra datelor aflate in baza de

date cum sunt: incarcarea bazei de date, inserarea unui nou element, stergerea unui element,

SGBD

Baza de date Utilizator

final

Program Aplicaţie

Utilizator final

Program Aplicaţie

Date

Date Date

Date

Page 5: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

modificarea unuui element, cautarea unor elemente, diferite statistici asupra datelor si alte operatii

asemanatoare.

Utilizatorii bazelor de date pot fi impartiti in urmatoarele clase:

- 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.

- Administratorul sistemului de baze de date care stabileste bazele de date de pe un sistem de

calcul, aloca spatii de memorare si asigura drepturi de acces.

Arhitectura internă a Sistemelor de Baze 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 intern

Nivelul conceptual

Vedere utilizator

Vedere utilizator

Vedere utilizator

Nivelul extern

SGBD

Page 6: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

���� 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.

Funcţiile sistemului de gestiune a bazelor de date

1) Funcţia de descriere a datelor permite definirea structurii bazei de date cu ajutorul limbajului

de definire. La nivelul acestei funcţii se descriu:

− multitudinea atributelor(câmpurilor) din cadrul structurii bazei de date;

− legăturile dintre entităţile bazei de date sau dintre atributele aceleaşi entităţi;

− criterii de validare a datelor;

− metode de acces la date;

− asigurarea integrităţii şi confidenţialităţii datelor.

2) Funcţia de manipulare a datelor este cea mai complexă funcţie şi realizează următoarele

activităţi:

− crearea (încărcarea) bazei de date;

− adăugarea de noi înregistrări;

− suprimarea unor înregistrări;

− modificarea valorilor corespunzătoare unor câmpuri;

− căutarea, sortarea şi editarea parţială sau totală a unei înregistrări.

3) Funcţia de utilizare asigură mulţimea interferenţelor necesare pentru comunicarea tuturor

utilizatorilor cu baza de date. În cadrul acestei funcţii apar mai multe categorii de utilizatori:

− utilizatori “liberi” sau conversaţionali sunt utilizatorii care utilizează limbajele de interogare a bazei

de date într-o formă simplistă.

Page 7: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

− utilizatori programatori, care utizează limbajele de manipulare, realizând proceduri complxe de

exploatare a bazei de date.

− administratorul bazei de date care apare ca un utilizator special.

4) Funcţia de administrare a bazei de date apare ca o funcţie complexă şi este de competenţa

administratorului bazei de date.

Etapele în evoluţia SGBD-urilor:

1. Până în anii şaizeci datele erau organizate doar în fişiere, gestionate de programe scrise în

diferite limbaje de programare universale (exemple: Cobol, Fortran etc.).

2. La sfârşitul anilor şaizeci a apărut modelul arborescent de organizare a datelor şi primele

SGBD-uri care erau ierarhice şi implementau acest model (exemplu: IMS).

3. La începutul anilor şaptezeci a apărut modelul reţea de organizare a datelor şi SGBDurile

reţea ce implementau acest model (exemple: IDMS, SOCRATE).

SGBD-urile arborescente şi reţea fac parte din prima generaţie şi ele constituie pionieratul în

domeniu.

4. La sfârşitul anilor şaptezeci, începutul anilor optzeci a apărut modelul relaţional de organizare

a datelor şi ulterior s-au realizat SGBD-urile relaţionale ce implementau acest model (exemple:

Oracle, Informix, DB2, SQLServer, Visual Foxpro, Access etc.). Este generaţia a doua de SGBD,

care prin simplitate, interactivitate şi neproceduralitate domină piaţa actuală.

5. La sfârşitul anilor optzeci, începutul anilor nouăzeci a apărut modelul orientat obiect de

organizare a datelor şi SGBD-urile orientate obiect ce implementau acest model (exemple:

Gemstone, O2, Jasmine etc.). Aceasta este generaţia a treia de SGBD care este în plină dezvoltare

acum.

Avantajele folosirii bazelor de date:

- Reducerea redundanţei datelor. Datorită abordării centralizate, se pot sesiza eventualele

suprapuneri între diverse aplicaţii şi se poate interveni astfel încât aplicaţii diferite ce utilizeze

date similare să utilizeze în comun un singur set de date.

- Evitarea inconsistenţei datelor. Derivă din reducerea redundanţei datelor, ca urmare a

faptului că se foloseşte un singur set de date. Astfel la actualizare se va modifica valoarea unei

singure enităţi.

- Utilizarea în comun a datelor (partajare). Se referă atât la centralizarea utilizării datelor cât

şi la posibilitatea de a dezvolta noi aplicaţii pornind de la datele deja existente în baza de date.

Page 8: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

- Standardizare. Se pot impune uşor unele standarde legate de modul de stocare a datelor,

transferul datelor întere diferite aplicaţii sau între diferite baze de date.

- Aplicarea restricţiilor de securitate se referă la posibilitatea introducerii de verificări asupra

autorizării accesului la bazele de date pentru fiecare utilizator şi pentru fiecare tip de operaţie.

- Menţinerea integrităţii datelor. Consistenţa datelor şi protecţia datelor împotriva diverselor

accidente sau incidente tehnice ce pot avea loc.

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.

Page 9: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

- 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

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. Tehnicile de modelare a datelor nu disting intre entitatile reale si abstracte ci le reprezinta in acelasi mod. Noi vom folosi DMT-Data Modeling Technique. Ea se bazeaza pe logica Database Design

Page 10: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

Technique create de Robert Braun intr-un produs numit Jeans dezvoltat de DARACOM si Database Design Group INC pentru Bank of America. 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.

Page 11: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

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.

Page 12: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

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.

Maparea şi modele relaţionale

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.

Page 13: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

ATRIBUTE: Fiecare coloană sau atribut ale unei relaţii are un nume. Atributele relaţii PROFESOR sunt: NUME; PROFESOR; MARCA; FUNCŢIE etc. DOMENII: valorile unui atribut aparţin unui domeniu. TRUPLE: Elementele unei relaţii sunt liniile tabelei numite şi truple. Fiecare linie conţine şi valori, câte una pentru fiecare atribut. Atunci când o relaţie reprezintă o entitate fiecare linie reprezintă o instanţă de entitate. Liniile sau tuplele pot să apară în orice ordine şi tabela va transmite aceeaşi semnificaţie. 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.

4. MAPĂRI DIN MODELE DE DATE LOGICE Maparea dintr-un model de date logice pe un model relaţional este relativ directă atât timp cât nu se întâlnesc relaţii de categorie.

Page 14: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

5. ENTITĂŢI; ATRIBUTE ŞI RELAŢII DE CONECTARE Regulile de bază pentru maparea entităţilor, atributelor şi a relaţiilor de conectare dintr-un

model de date logice pentru o bază de date relaţională sunt: - o entitate este reprezentată de o relaţie; - fiecare atribut al unei entităţi este reprezentat de un atribut de relaţii; - o relaţie de conectare este reprezentată prin prezenţa unui atribut de cheie străină în relaţia fin.

Procesul de mapare: O secvenţă uzuală de evenimente în proiectarea bazei de bate este construcţia la început a unui model de date logice şi apoi maparea într-o formă care poate fi implementată de un DBMS.

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 NORMALIZAREA este un proces dezvoltat în conjuncţie cu modelul de date relaţionale cu toate că ea este aplicabilă modelării logice a datelor în general. OBIECTIVELE Normalizarea relaţională este un proces pentru identificarea grupărilor de atribute stabile cu o mare interdependenţă şi afinitate. Normalizarea încorporează principiile modelării semantice a datelor şi dă proiectării extensive de baze de date logice. Normalizarea se bazează pe conceptele de dependenţe între atribute şi ea impune un set de reguli guvernând structura semnificaţiei datelor. Aceste reguli bazate pe condiţii de dependenţă ajută la stabilirea definiţiilor semnificaţiilor şi prezic reprezentările faptelor. Cele mai importante 2 tipuri de dependenţe de atribute sunt pt scopurile noastre dependenţa funcţională şi dependenţa multivalorică.

Page 15: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

PRIMA FORMA NORMALĂ 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. A DOUA FORMĂ NORMALĂ 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ă. Bazele de date MYSQL 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).

Page 16: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

SQL permite atât accesul la conținutul bazelor de date, cât și la structura acestora.

Elementele limbajului SQL

Limbajul SQL este divizat în următoarele elemente:

• Clauze, care sunt componente ale instrucțiunilor și interogărilor.

• Expresii, al căror efect este producerea de valori scalare sau tabele.

• Predicates, pot specifica condiții care sunt evaluate de SQL conform logicii ternare sau logicii

booleene, în scopul limitării efectelor instrucțiunilor, sau pentru a influența cursul programului.

• Interogările, au ca scop regăsirea datelor după criterii specifice.

• Instrucțiunile, pot avea un efect persistent asupra datelor sau structurii datelor, sau pot controla

tranzacțiile, conexiunile sau cursul programului. În general, instrucțiunile SQL se termină cu

caracterul punct-virgulă (";"), deși acest lucru nu este obligatoriu în toate platformele SQL. Spațiile

albe suplimentare sunt ignorate, dar ele pot fi folosite pentru lizibilitatea codului SQL.

Tipuri de date în SQL

Oricărei coloane (sau câmp) dintr-un tabel SQL îi este asignat un tip de dată, la fel ca în toate celelalte limbaje de programare. Tipurile de date sunt următoarele:

• CHARACTER (sau CHAR) - șir de caractere

• INTEGER (sau SMALLINT) - număr întreg

• FLOAT, REAL sau DOUBLE PRECISION - număr real

• NUMERIC(precision, scale) sau DECIMAL(precision, scale) - număr zecimal , unde

“precision” înseamnă numărul de cifre din partea întreagă, “scale” înseamnă numărul de zecimale.

• DATE - data zilei.

• TIME - ora.

Funcția sistem NOW întoarce data și ora curentă.

Interogări

Cea mai des utilizată instrucțiune în SQL este instrucțiunea SELECT.

SELECT [ALL | DISTINCT] coloana1 [,coloana2] [INTO fișier] FROM tabel1 [,tabel2] [WHERE condiție] [ AND|OR condiție...] [GROUP BY listă-coloane] [HAVING condiții] [ORDER BY listă-coloane [ASC | DESC] ]

Page 17: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

• Clauza INTO este utilizată pentru a transfera rezultatul interogării într-o nouă tabelă; valabil

în Microsoft Access, dar nu în toate platformele SQL.

• Clauza WHERE este utilizată pentru a specifica condiții trebuie să îndeplinească coloanele din

care se face selecția. Această condiție este o expresie logică obținută prin alicarea operatorilor

conjuncție (AND) și disjuncție (OR) asupra unor expresii logice elementare obținute cu ajutorul

operatorilor: = (egal), <>(diferit), < (mai mic decât), <= (mai mic sau egal decât), > (mai mare

decât), >= (mai mare sau egal decât), LIKE (permite selectarea potrivirilor parțiale cu ajutorul

operatorului %; de exemplu: select city, state from towntable where state LIKE 'north%');

• Clauza GROUP BY permite gruparea coloanelor multiple în scopul prelucrării acestora

prin funcțiile agregate: AVG - media aritmetică; COUNT - numărul articolelor; MAX - maximul;

MIN - minimul; SUM - suma.

Exemplu: Maximul populației tuturor orașelor americane din statul Indiana:

SELECT MAX(population) FROM citylist WHERE state = 'Indiana';

• 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:

SELECT * FROM Book WHERE price>100.00 ORDER BY title;

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;

Logica ternară (3VL)

Ideea a fost introdusă în SQL pentru a asigna valoarea Null înregistrărilor vide și informațiilor care lipsesc dintr-un câmp.

Page 18: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

Manipularea datelor

Limbajul de manipulare a datelor (DML) este un subset al SQL utilizat pentru a adăuga, actualiza sau șterge date.

Instrucțiunile limbajului de manipulare a datelor

INSERT - inserează un articol într-o tabelă:

INSERT INTO tabel (câmp1, câmp2, ...) VALUES (valoare1, valoare2, ...);

• UPDATE - actualizează un set de articole:

UPDATE tabel SET câmp = valoare [WHERE condiție];

• DELETE - șterge un set de articole:

DELETE FROM tabel [WHERE condiție];

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:

• START TRANSACTION (sau BEGIN WORK, BEGIN TRANSACTION, în funcție de

dialectul SQL) Început de tranzacție.

• SAVE TRANSACTION (sau SAVEPOINT) salvează starea bazei într-un punct al transacției

• COMMIT Operează toate operațiile tranzacției ca fiind permanente.

• ROLLBACK Anulează toate operațiile tranzacției începând cu ultimul COMMIT.

Instrucțiunile COMMIT și ROLLBACK termină tranzacția curentă și deblochează datele.

Exemple:

1.

CREATE TABLE tbl_1(id int); INSERT INTO tbl_1(id) VALUES(1); INSERT INTO tbl_1(id) VALUES(2); COMMIT; UPDATE tbl_1 SET id=200 WHERE id=1; SAVEPOINT id_1upd; UPDATE tbl_1 SET id=1000 WHERE id=2;

Page 19: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

ROLLBACK to id_1upd; SELECT id from tbl_1;

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;

Limbajul de definire a datelor

Limbajul de definire a datelor (DDL) gestionează structura datelor și indexului.

Instrucțiuni

CREATE TABLE creează un tabel în mod linie de comandă:

CREATE TABLE tabel( câmp1 tip1, câmp2 tip2, ... PRIMARY KEY (index1, index2, ...) );

Exemplu:

CREATE TABLE My_table( my_field1 INT, my_field2 VARCHAR(50), my_field3 DATE NOT NULL, PRIMARY KEY (my_field1, my_field2) );

• ALTER TABLE modifică structura unui tabel existent prin

redenumirea/adăugarea/ștergerea/schimbarea structurii unei coloane sau index:

Redenumirea unui tabel

Page 20: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

ALTER TABLE tabel RENAME TO nume_nou_tabel;

Adăugarea de câmpuri noi

ALTER TABLE table_name ADD ( câmp1 def1, col2 def2, ... );

Exemplu:

ALTER TABLE supplier ADD (supplier_name varchar2(50), city varchar2(45));

Modificarea structurii unui câmp

ALTER TABLE table_name MODIFY (câmp1 tip1, câmp2 tip2, ... );

Exemplu:

ALTER TABLE supplier MODIFY ( supplier_name varchar2(100) not null, city varchar2(75));

Ștergerea unui câmp

ALTER TABLE tabel DROP COLUMN câmp;

Exemplu:

ALTER TABLE supplier DROP COLUMN supplier_name;

Redenumirea unui câmp

ALTER TABLE tabel RENAME COLUMN nume_vechi TO nume_nou;

Exemplu:

ALTER TABLE supplier RENAME COLUMN supplier_name to sname;

• TRUNCATE TABLE – Șterge toate articolele unui tabel:

TRUNCATE TABLE tabel;

Page 21: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

• DROP TABLE – Șterge tabelul:

DROP TABLE tabel;

Drepturi ale utilizatorilor SQL în rețea

Limbajul de control al datelor (DCL) autorizează utilizatorii și grupurile care lucrează cu o anumită bază de date.

Instrucțiuni

• 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.

GRANT SELECT, UPDATE ON My_table TO some_user, another_user;

2.

REVOKE SELECT, UPDATE ON My_table FROM some_user, another_user;

EXEMPLE ÎN SQL Să se creeze o tabela cu numele pet avand urmatoarele coloane Name varchat 20 Own varchat 20 Species varchat 20 Sex car 1 Birth dag Death Sa se introduca valorie

1. Fluffy harold cat f 02.041993 2. Buffy carol dog f 13,051989 3. Fun benny dog m 27,08,1980 4. Slim benny snake m 29,06,1996 5. Bowser diane dog m 13,08,1979 6. Celtic gwen bird f 09,11,1998 7. Pufbal diane hamster f 30,03,1999

Observații pentru rezolvare:

Comanda (select * from) selecteaza toate datele din tabela Pentru ca sa calculam varsta folosim urmatoarea comanda Select name, year(death) - year(birth) as age from pet where death is not null

Page 22: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

Dacă alegem mai mult date din tabel cu caracteristici diferite folosim cuvantul cheie OR Pentru a alege un nume din tabel care incepe cu o anumita litera folosim comanda where name like b%

Sa se creeze o tabela care sa contina: pacienti 1

- Numar curent - Nume - Prenume - Diagnostic - Data consultatiei

Sa se populeze tabela cu informatii si sa se realizeze o comanda select prin care sa se afiseze tori pacientii care au porgramarea consultatiei maine.

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,

Page 23: BAZE DE DATE Suport de curs · Între baza de date (colec ia de date memorate fizic în fi şiere pe hard-discuri) şi utilizatorii sistemului exist ă un nivel software, numit Sistem

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


Recommended