Sunteți pe pagina 1din 113

Instrumente software pentru afaceri

Unitățile de studiu
• Cap. 1 Noțiuni de bază privind instrumentele software
• Cap. 2 Structuri de date și structuri de prelucrare
• Cap. 3 Programe de calcul tabelar (EXCEL)
• Cap. 4 Modelul relațional
• Cap. 5 Sisteme de gestiune a bazelor de date (ACCESS)
• Cap. 6 Limbaje de interogare a bazelor de date (SQL)
Agenda Cap 1

• Istoricul limbajelor de programare


• Etapele elaborării programelor de aplicaţii şi
rolul economiştilor
• Instrumente pentru dezvoltarea aplicaţiilor
• Instrumente software pentru economişti
• Tendinţe în instrumente software
Evolutia limbajelor de programare

Evoluţia limbajele de programare care a fost determinată de:

– performanţele calculatoarelor electronice,

– progresele din teoria şi practica programării.

Limbajele de programare sunt grupate în cinci categorii:

– limbaje maşină,

– limbaje de asamblare,

– limbaje de nivel înalt,

– limbaje din generaţia a patra - 4LG (limbaje de nivel


foarte înalt),

– limbaje naturale.
Caracteristici comune limbajelor 4GL

• sunt centrate în jurul bazelor de date, în mod deosebit a


celor relaţionale, oferind facilităţi pentru stocarea şi
interogarea datelor din bază;
• sunt limbaje declarative /neprocedurale: accentul este
pus pe ceea ce trebuie să facă aplicaţia şi nu cum
trebuie să facă  au simplificat mult procesul de
programare;
• pun la dispoziţie o interfaţă grafică prietenoasă, GUI
(Graphical User Interface – Interfaţă grafică utilizator).
Avantajele limbajelor 4GL

• posibilitatea dezvoltării de noi aplicaţii mai ieftine şi mai


rapid;

• uşurinţa întreţinerii aplicaţiilor;

• posibilitatea ca utilizatorii să-şi dezvolte propriile aplicaţii.

Apariţia acestor limbaje → un nou concept – utilizatorul


final informatizat (end user computing).
Limbajele naturale
• Ultimul pas în evoluţia limbajelor de programare îl reprezintă
limbajele naturale (limbaje de programare de generaţia a
cincea).
• Ele îşi propun utilizarea limbajului uman în programarea
calculatoarelor.
• Cele mai cunoscute: limbajele INTELLECT şi ELF.
• Aceste limbaje sunt adesea folosite ca interfeţe pentru
instrumentele 4GL.
• Principalul lor neajuns este legat de translatarea programelor
din limbajul natural în limbaj maşină, o operaţiune extrem de
complexă şi costisitoare din punctul de vedere al resurselor
hardware solicitate.
• Ele sunt integrate cu aplicaţiile de inteligenţă artificială. Un
astfel de exemplu îl reprezintă LISP.
1.2. Etapele elaborării programelor de aplicaţii şi
rolul economiştilor
• Dezvoltarea programelor de aplicaţii presupune parcurgerea
unui proces format din mai multe etape care formează ciclul de
viaţă al programelor de aplicaţii.
• Există numeroase metodologii de dezvoltare a programelor, ce
diferă între ele prin numărul etapelor, conţinutul şi organizarea
lor.
• Etapele comune majorităţii metodologiilor, şi rolul economiştilor
de-a lungul procesului de dezvoltare:
1. Microanaliză
2. Analiză
3. Proiectare logică
4. Proiectare fizică
5. Implementare
6. Exploatare și Întreținere
1.3. INSTRUMENTE PENTRU DEZVOLTAREA
APLICAŢIILOR

Enumerarea şi descrierea instrumentelor software poate


porni de la componentele programelor de aplicaţii:
• interfaţa utilizator (formulare pentru introducerea
datelor, ferestre de dialog, meniuri, rapoarte etc.);
• modulele de program, care realizează prelucrările din
sistem (calculul salariilor, întocmirea graficelor de
rambursare etc);
• baza de date, în care sunt organizate şi stocate toate
datele necesare aplicaţiei.
Mediile de programare
Mediile de programare - seturi de programe care includ funcţiile:
– introducerea şi editarea programului sursă,
– transformarea programului sursă în programe executabile,
– depanarea programelor.
• Ex.: MS Visual Studio, Oracle JDeveloper, Oracle PowerObjects, Java,
Borland Jbuilder, Borland Delphi, IBM Visual Age, Sybase PowerBuilder.
• În MS Visual Studio sunt incluse mai multe limbaje de programare, cum ar fi:
Visual Basic, C# sau C++.
• Pentru stocarea şi gestionarea volumelor mari de date se folosesc
sistemele de gestiune a bazelor de date.
• Majoritatea aplicaţiilor stochează datele în BD.
• Bazele de date cel mai des întâlnite sunt cele organizate după modelul
relaţional: Oracle, DB2, Sybase SQL Server, MS SQL Server, MS Access,
MS Visual FoxPro.
• În condiţiile globalizării afacerilor şi a dezvoltării reţelelor de calculatoare se
simte din ce în ce mai mult nevoia distribuirii resurselor informaţionale ale
companiei pe mai multe calculatoare.

• Dezvoltarea unei aplicaţii distribuite impune apelarea la arhitectura client –


server, care presupune conceperea aplicaţiei în două categorii de
componente:

– componente client, care solicită anumite servicii,

– componente server, care furnizează servcii.


• Comunicarea între două componente aflate pe calculatoare diferite sau
mascarea eterogenităţii platformelor hardware şi software sunt rezolvate prin
intermediul soluţiilor middleware.
• Cele mai cunoscute modele midleware sunt RPC (Remote Procedure Call),
RMI (Remote Method Invocation), ODBC (Open Database Connectivity) şi
CORBA (Common Object Request Broker Architecture).

• În cazul în care firma nu dispune de resurse financiare care să-i permită


achiziţionarea unor produse program, poate apela la soluţii freeware.

• Există instrumente de dezvoltare software gratuite.

• Cel mai răspândit limbaj de programare folosit în medii de programare gratuite


este Java.
• Un SGBD gratuit, care reuşeşte să ajungă la un nivel de
complexitate a prelucrării datelor comparabil cu cel al
celor mai bine vândute SGBD-uri este PostgreSQL.
• Spre deosebire de alte SGBD-uri gratuite (MySQL),
PostgreSQL este capabil să rezolve interogări complexe
adresate bazelor de date pe care le gestionează.
• La capitolul SGBD-uri gratuite concurezează şi unul
dintre cele mai performante SGBD-uri relaţionale din
lume, Oracle, începând cu lansarea versiunii Oracle
Database 10g Express Edition.
• Dezvoltarea aplicaţiilor Web presupune folosirea unor
platforme diferite de mediile de programare specificate
anterior.
• Trecerea la site-uri mai complexe nu presupune doar
folosirea resurselor unei baze de date, ci şi elemente
grafice care să atragă atenţia utilizatorului.

• Pentru construirea site-urilor Web complexe:


Dreamweaver, ColdFusion, Flash şi RoboDemo.

• Aplicaţiile Web pot conţine elemente de limbaj


împrumutate din mediile de programare tradiţionale, cum
ar fi VB Scripts sau Java Scripts.
1.4. INSTRUMENTE SOFTWARE PENTRU ECONOMIŞTI

Economiştilor li se oferă astăzi o serie de instrumente


software cu ajutorul cărora pot să-şi dezvolte propriile aplicaţii
informatice (de complexitate mai redusă):

– instrumentele CASE,

– programele de calcul tabelar,

– sistemele de gestiune a bazelor de date (SGBD),

– instrumentele pentru crearea de pagini Web,

– instrumentele pentru organizarea informaţiilor


personale.
CASE (Computer Aidded Software Engineering)

• CASE reprezintă un instrument pentru automatizarea procesului


de dezvoltare a programelor.
• Economiştii pot realiza :
– planificarea resurselor financiare alocate proiectelor de sisteme
informaţionale,
– redactarea cerinţelor funcţionale ale aplicaţiei,
– participarea activă la întocmirea specificaţiilor de proiectare a
programelor,
– generarea automată a programelor sau a bazei de date fără a
avea cunoştinţe tehnice privind limbajul de programare sau
SGBD-ul folosite,
– testarea programelor,
– generarea automată a documentaţiei pentru aplicaţia dezvoltată.
• Cele mai cunoscute instrumente CASE sunt Oracle Designer şi
Visible Analyst.
Furnizorii de software destinate nespecialiştilor oferă
astăzi pachete integrate de programe sub forma unor
suite de programe în care se regăsesc:

• un SGBD,

• un program de calcul tabelar,

• un program pentru gestiunea informaţiilor personale,

• un procesor de texte,

• un procesor pentru grafică.


1.5. TENDINŢE ÎN INSTRUMENTELE SOFTWARE
• Ca o tendinţă generală se observă predilecţia companiilor către
achiziţia programelor de aplicaţii de la furnizorii specializaţi, în
detrimentul dezvoltării lor în cadrul campaniei, cu forţe proprii sau
prin angajarea de specialişti.
• În acest context, două acronime au devenit extrem de populare:
ERP şi ASP.
• ERP (Enterprise Resource Planning) reprezintă o mega-aplicaţie
multi-modulară care integrează procesele economice şi optimizează
resursele disponibile ale organizaţiei, reunind toate funcţiunile sale
într-o singură soluţie software.
• ERP elimină barierele departamentale, prin integrarea tuturor
sistemelor informaţionale tranzacţionale într-o singură bază de date,
accesibilă oricui din organizaţie.

• ASP a devenit cunoscut odată cu tendinţa de externalizare a


serviciilor informaţionale, în scopul reducerii costurilor şi
îmbunătăţirii performanţelor acestora.

• Externalizarea serviciilor informaţionale este posibilă prin apelarea


la furnizorii specializaţi, numiţi ASP (Application Service
Providers).
La ora actuală: tendinţa extinderii serviciilor furnizate, conceptul ASP
fiind înlocuit cu XSP (X semnifică servicii generice).
XSP nu oferă doar aplicaţii, ci şi tehnologii, sisteme şi procese
economice.
Modelul XSP promite numeroase beneficii:
• firmele vor putea să cumpere doar funcţionalitatea pe care o doresc şi
atunci când o doresc, reducând astfel investiţiile în tehnologiile
informaţionale;
• firmele pot activa pe piaţă nu doar pe post de consumator de servicii ci
şi cel de furnizor etc.

În ceea ce priveşte strict limbajele de programare, reţinem tendinţele:

• limbajele orientate-obiect,

• limbajele orientate-Internet,

• limbajele naturale.
Agenda Cap 2

• Structuri de date
• Structuri algoritmice de prelucrare
Înţelegerea corectă a principalelor structuri de date şi a
structurilor de prelucrare are importanţă în:
– activitatea de programare,
– formarea specialiştilor în domeniul instrumentelor
software.
O structură de date reprezintă o modalitate de organizare a datelor
care acoperă data elementară propriu-zisă şi relaţiile acesteia cu alte
date.
În activitatea de programare alegerea unei structuri de date adecvate
asigură avantaje importante:
– utilizarea eficientă a memoriei,
– eficientizarea prelucrărilor,
– reducerea costurilor de programare.
• Structurile de date sunt strâns legate de structurile algoritmice.
• Structurile de prelucrare (structurile algoritmice de prelucrare)
reprezintă modalităţi de organizare a controlului în prelucrarea prin
programe /proceduri a structurilor de date.
• Structurile algoritmice eficientizează:
– operaţiile de creare şi actualizare a structurilor de date,
– operaţiile de căutare şi sortare a acestora.

• Toate structurile de date şi de prelucrare se bazează pe memoria


calculatorului, care (în cel mai simplu mod), trebuie privită ca fiind o
structură liniară de celule /locaţii în care se depozitează date cu valori
corespunzătoare aplicaţiei.
Clasificări ale principalelor structuri de date
Compoziţia internă a unei date impune gruparea în:
– date elementare,
– date structurate.
O dată elementară - un atribut care nu poate fi descompus
din punct de vedere logic.
Datele structurate (compuse) - o grupare de date
elementare şi /sau de alte date compuse.
Toate datele în BD sau entităţi sunt declarate în dicţionarul
de date, pe ultimul nivel, ca fiind date elementare.

Datele structurate sunt:


- Date structurate de nivel redus, care permit operaţii la nivel
de componentă (tablourile şi articolele);
- Date structurate de nivel înalt, care permit operaţii
implementate de algoritmi utilizator (liste liniare, liste liniare
ordonate, stiva şi coada).
• În categoria datelor elementare intră:

• Numere întregi: celule sau locaţii de memorie în care sunt


stocate numere întregi. Asupra acestor date se pot aplica
operaţiile aritmetice cunoscute: +, -, ...;

• Numere reale: celule de memorie în care sunt stocate


numere raţionale. Ca şi în cazul numerelor întregi asupra lor
se pot aplica operaţiile aritmetice;

• Valori booleene: celule sau locaţii de memorie în care sunt


stocate valorile logice - true sau false. Aceste date fac
obiectul operaţiilor/operatorilor: and, or, not.

• Caractere: celule sau locaţii de memorie în care sunt stocate


şiruri de caractere alfabetice de genul ‘a’, ‘b’, ‘abc’,
‘Popescu’ … . Pentru aceste date se pot aplica operaţii
speciale de concatenare şi comparaţie.
Tablouri
• Un tablou se defineşte ca fiind cea mai simplă dată
structurată organizată sub formă tabelară.

• O caracteristică importantă a unui tablou o reprezintă


dimensiunea acestuia:

– un tablou cu o singură dimensiune (o singură coloană)


poartă denumirea de vector,

– un tablou cu două dimensiuni poartă denumirea de


matrice.
• în fiecare celulă a unui tablou se regăseşte o dată
elementară.
• Pointerul reprezintă o legătură către o dată elementară.Cu
alte cuvinte, o variabilă care conţine o adresă sau un nume
de variabilă pentru o altă dată elementară.
Structuri de date externe: articolul şi fişierul
• Fişierul reprezintă o colecţie ordonată de date. Urmare a faptului că
stocarea datelor se face pe suporţi de memorie externă, fişierul este
definit şi ca structură de date externă.

• Structura ordonată de date din cadrul fişierului poartă denumirea de


articol, care la rândul său este constituit dintr-o mulţime ordonată de
valori ale căror caracteristici aparţin unei entităţi din domeniul unei
probleme.

• Caracteristicile descrise prin intermediul valorilor din articolele unui fişier


se numsc câmpuri.
• Din punct de vedere al activităţilor de programare este interesant să
cunoaştem metoda de organizare şi tipul de acces aferente structurilor
de date externe.
• Metoda de organizare poate fi: secvenţială, relativă şi indexată;
• Tipul de acces la date (în operaţii de citire şi scriere a valorilor din /în
câmpuri) poate fi secvenţial sau direct.
STRUCTURI ALGORITMICE DE PRELUCRARE
Principala sarcină a unui mediu de programare (instrument software)
constă în a permite definirea structurilor de date într-un mod eficient şi de a
asigura accesul, manipularea, actualizarea şi controlul asupra acestora prin
intermediul algoritmilor şi structurilor de prelucrare /control.

Structurile de prelucrare /control constituie aportul cel mai de


seamă al metodei de programare structurată, care a impus utilizarea a
trei tipuri de structuri fundamentale, toate cu o singură intrare şi o
singură ieşire, renunţându-se în fapt la utilizarea în activitatea de
programare la instrucţiunea GOTO.

Sunt implementate trei tipuri de structuri fundamentale:


– secvenţiale;
– alternative;
– repetitive.
• Agenda Capitol 3

• PCT – instrumente de sprijinire a deciziilor


• Crearea și gestionarea registrelor de lucru și a foilor de
calcul
• Formule și funcții
• Facilităţi grafice în PCT
• Liste și Baze de date
Noţiuni de bază privind PCT
Componenta principală este foaia de calcul = un
centralizator “uriaş” cu linii (1.048.576 ) şi coloane (16,384 -
A, B,..,XFD) la intersecţia cărora sunt celulele în care se
introduc date, formule şi funcţii. Rezultă că, într-o foaie de
calcul elementul de bază este celula /caseta /căsuţa.
La intersecţia coloanelor cu liniile sunt celulele (căsuţe
/casete) care sunt referite în mod univoc cu ajutorul
adreselor obţinute prin concatenarea codurilor de coloane
cu cele de linii.
La rândul lor, adresele de celule pot fi:
• relative (Ex. A1, AB325, XFD1000) ;
• Absolute (Ex. $A$1, $AB$325, $XFD$1000);
• Mixte (Ex.A$1, $A1).
Foile de calcul sunt organizate în agende sau registre de
lucru numite Book<n>. Implicit, foile de calcul sunt numite
Sheet<n>.
Tipuri de date
• În principal în celule foilor pot fi date de tip numeric sau de tip caracter.
• Excel stabileşte tipul datei după natura primului caracter introdus sau
după rezultatul evaluării formulei sau funcţiei specificate de utilizator.
Astfel, data este numerică dacă primul caracter introdus este:
– orice cifră: 0-9;
– semnul algebric + sau -;
– unul din caracterele speciale: #, $, . , =.
• Asociate datelor numerice sunt şi datele calendaristice, care intern se
reprezintă ca numere.
• O dată este de tip caracter dacă primul caracter introdus este:
– orice literă a alfabetului: A-Z sau a-z;
– unul dintre următoarele caractere speciale: spaţiul, !, ‘, “, %, &, ?, *,
:, ;, ^, \, |, [,], _.
• Formulele şi funcţiile au ca prefix semnul =.
Noţiuni de bază privind PCT Numeric
Data calendaristică
Tipuri de date Logic
Text (caracter)

=IF(L2;"Taxa";"Buget")
3.3 Categorii de funcţii PCT
3.3.1 Sintaxa funcţiilor
=FUNCŢIE() sau
=FUNCŢIE(argument_1,argument_2,...,argument_n)
Argumente:
1. adrese de căsuţe,
2. nume de căsuţe,
3. constante,
4. Funcţii,
5. Formule

Operatori:
1. aritmetici (+, -, /, *, %, ^);
2. de comparare (<, >, =, <>, <=, >=);
3. de tip şir (&, utilizat pentru concatenare);
4. de tip referinţă (caracterul “:”, utilizat pentru specificarea grupurilor
de căsuţe, caracterul ”,” sau “;” utilizat pentru reuniune, caracterul
“spaţiu” pentru intersecţia a două zone din foaia de calcul).
Categorii de funcţii PCT
1. Funcţii statistice: AVERAGE, COUNT, VAR etc.;
2. Funcţii financiare:
A. Amortizare (SLN, DDB, SYD, ...);
B. Anuităti (FV, PMT, PV, ...);
C. Obiective financiare (NPER, RATE, ...);
D. Previziuni (IRR, NPV);

3. Funcţii logice: AND, IF, OR, FALSE, ...;


4. Funcţii matematice: SUM, ABS, EXP, INT, SQRT, COS, ...;
5. Funcţii de căutare: ADRESS, INDEX, HLOOKUP, ...;
6. Funcţii pt. date calendaristice şi timp: DATE, DAY, ...;
7. Funcţii pentru baze de date: DAVERAGE, DVAR, ...;
8. Funcţii tip şir de caractere: CHAR, LEFT, ...;
9. Funcţii de informare: CELL, IFBLANK, ...;
10.Funcţii tehnice;
11. Funcții OLAP: CUBE;
12.Funcții de compatibilitate: BETADIST, BETAINV
13.Funcţii definite de utilizator (User Defined Functions).
Funcţii Excel - Câteva precizări
• Funcții statistice Functii_statistice
– acceptă, în principal, date numerice
– pentru a recunoaște și datele text (caracter) și/sau cele logice se folosesc
funcțiile cu sufix A (AVERAGEA, COUNTA, MAXA, MINA)
• Funcții pt date calendaristice
– Data calendaristică reprezintă un număr intreg
– Ora exactă reprezintă un număr zecimal
• Ora 0 – 0,000000
• Ora 12 – 0,5
• Ora 23:59:59 – 0,999988426
• Funcții pentru baze de date BD Salariati.xlsx
– Sunt, în principal funcții statistice și matematice care au ca prefix
litera D (DAVERAGE, DSUM, DCOUNT, DMAX, DMIN)
– Trebuie să aibă trei argumente:
• Grupul de intrare (database)- conține BD
• Câmpul (field) – numărul de ordine al coloanei care conține valorile
care vor fi prelucrate prin funcția respectivă
• Criteriul (criteria) – condiția de selecție; trebuie să includă numele
câmpului și condiția propriu-zisă
Funcţii Excel - Câteva precizări

• Funcții de căutare BD Salariati.xlsx


– Sunt folosite pentru căutarea de valori în cadrul listelor sau în BD
– În funcțiile HLOOKUP() și VLOOKUP() argumentul Range lookup (tip
căutare) are următoarele valori
• TRUE (implicit) – atunci când cheia de căutare nu este găsită este localizată valoarea inferioară
cea mai apropiată de cea căutată
• FALSE – cătarea exactă; atunci când cheia de cătare nu este găsită funcția returnează
valoarea #N/A

• Funcţii financiare Functii financiare


– Durata (NPER - numărul de perioade) şi rata dobânzii (RATE) se
referă la aceeaşi unitate de timp (an, lună, zi)
– În cazul anuităţilor se iau în considerare vărsăminte egale, efectuate
la intervale regulate de timp
• anuitatea = suma platită la intervale regulate de timp (lună, trimestru, an), pe
parcursul unui contract
– Sumele care reprezintă plăți sunt introduse ca valori negative
– Sumele care reprezintă încasări sunt introduse ca valori pozitive
Semnificaţia argumentelor în funcțiile financiare

• FV (Future Value) –valoarea investiției sau a împrumutului după ce au


fost efectuate toate plățile (valoarea viitoare a unei investiţii curente, pe
bază de vărsăminte egale, la o rată constantă a dobânzii);
• PMT (Payment) – suma care trebuie plătită periodic pentru
rambursarea unui împrumut;
• PV (Present Value) - valoarea prezentă a unei investiţii curente, pe
bază de vărsăminte egale; valoarea actuală a încasărilor sau plăților ce
se vor efectua în viitor;
• NPER (Number of Periods) – numărul de perioade necesare pentru
obținerea unei valori viitoare pe baza unor vărsăminte egale și o rată a
dobânzii constantă;
• RATE (interest Rate per period) – rata dobânzii (procentul de dobândă)
pentru o anuitate;
• TYPE – intervalul de timp la care se efectuează plata (începutul
perioadei (valoarea 1) sau sfârșitul perioadei (valoarea 0, implicit).
CREAREA ȘI FORMATAREA GRAFICELOR

Excel asigură transformarea datelor numerice în imagini


grafice informaţiile reprezentate devenind mult mai sugestive
şi mai uşor de interpretat.

Fiecare element de informaţie din grafic se numeşte punct de


date.

Mai multe puncte formează o serie.

Punctele şi seriile sunt similare celulelor şi domeniilor de


celule.
Categorii de grafice
• Graficele Column (coloană) sunt implicite şi sunt folosite, în general,
pentru compararea, în acelaşi interval de timp, a unor serii de date. Pe axa
orizontală sunt reprezentate domeniile, iar pe axa verticală valorile.
• Graficele Bar (bară) sunt similare cu graficele Column, rotite cu 900 şi au
valorile pe axa orizontală şi domeniile pe axa verticală.
• Graficele Pie (cerc) sunt numite şi diagrame de structură sau diagrame
circulare şi ilustrează cota parte a parţilor dintr-un întreg, putându-se
reprezenta o singură serie de date Similare diagramelor de structură sunt
graficele Doughtnut (inel) care sunt folosite pentru reprezentarea în
acelaşi grafic a mai multor serii de date.
• Graficele Line (linie) compară tendinţele sau evoluţiile unor serii de date pe
parcursul unor intervale de timp egale.
• Graficele XY (Scatter) numite şi diagrame dispersate se folosesc pentru a
pune în evidenţă relaţiile între diferite serii de valori dependente de acelaşi
parametru.
• Graficele combinate afişează două tipuri de diagrame în acelaşi grafic (de
exemplu, o serie de date să fie reprezentată în linie şi o altă serie de date
sub formă de coloane). Aceste grafice pot fi doar de tip 2D şi pun în
evidenţă similitudini între două serii de valori de naturi diferite. Într-o primă
etapă se obţine un grafic 2D, după care se selectează una din seriile de
date reprezentate. Pentru această serie se modifică tipul de grafic.
Etape parcurse în realizarea graficelor:

1. Stabilirea/modificarea tipului de grafic (meniul Insert,


Chart),
2. Precizarea /modificarea datelor sursă (Chart Tools,
Design, Select Data),
3. Optimizarea /rafinarea graficului (opţiunile meniului
Design şi/sau butoanele asociate graficului: Chart
Elements, Chart Styles şi Chart Filters),
4. Precizarea destinației pentru salvare(meniul Design,
opțiunea Move Chart Location).
Grafic.xlsx
În grafice 2D se pot trasa linii de tendinţe (previziuni)
(Meniul Design, Add Chart Elements, Trendline)
Baze de date şi Tabele de simulare

Linia de structură
câmpuri

Î
N
R
E
G
I
S
T
R
Ă
R
I
Salariati_BD
Meniul Data permite:

• Sortarea datelor din BD,


• Interogarea datelor prin:
– Auto filtrare (Filter),
– Filtrare avansată (Advanced),
• Realizarea analizelor (Solver, What If
Analysis: Scenario Manager, Goal Seek, Data
Table…)
• Gruparea datelor (Group),
• etc.
Sortarea datelor = rearanjarea datelor unui grup într-o ordine
definită de utilizator
Auto filtrarea – Filter
Filtrarea Avansată – Advanced
presupune respectarea următoarelor restricţii:

• În foaia de calcul trebuie definite trei zone


distincte:
– Zona de intrare (conţine datele din BD),
– Zona de criterii (conţine numele câmpului /câmpurilor
şi condiţia /condiţiile stabilite),
– Zona de ieşire (conţine o singură linie, în care se
precizează numele câmpurilor ce vor fi extrase în
zona de ieşire);
• Legătura dintre zone se realizează prin numele
de câmpuri.
Filtrarea Avansată
Agenda Modelul relaţional de organizare
a bazelor de date
• Câte ceva despre baze de date
• Prezentarea generală a modelului
relaţional
• Restricţii ale bazei de date
• Schema şi conţinutul unei baze de date
relaţionale

49
CÂTE CEVA DESPRE BAZE DE DATE

Încă de la începuturile sale, informatica a fost confruntată cu:


• efectuarea de calcule complexe, ştiinţifice;
• stocarea şi gestionarea unui volum de informaţii din ce în
ce mai mare.

Apariţia unor instrumente software dedicate gestiunii şi


prelucrării datelor → aplicaţii bazate pe:
• fişiere;
• baze de date.
50
Fişiere independente
(file-based sau flat files)

• fiecare dată (Data 1, Data 2,... Data n) este descrisă


(nume, tip, lungime) autonom, în toate fişierele în
care apare;
• descrierea fiecărui fişier de date (câmpurile care-l
alcătuiesc, tipul şi lungimea fiecăruia, modul de
organizare (secvenţial, indexat, relativ etc.)) este
obligatorie în toate programele care îl “citesc” sau
modifică;
• între FIŞIER 1, FIŞIER 2, ... FIŞIERn nu există nici o
relaţie definită explicit.

51
Baze de date
O bază de date reprezintă un ansamblu structurat de fişiere, care
grupează datele prelucrate în aplicaţiile informatice ale unei
persoane, grup de persoane, întreprinderi, instituţii etc.

Formal, BD poate fi definită ca:


• o colecţie de date aflate în interdependenţă, împreună cu
descrierea datelor şi a relaţiilor dintre ele,

sau

• o colecţie de date automatizată, partajată, definită riguros


(formalizată) şi controlată la nivel central.

• Faţă de modelul fişierelor independente, noutatea o


constituie existenţa unui fişier de descriere globală a bazei
(dicţionarul de date)  asigură independenţa programelor
faţă de date. 52
Cu referire la o BD, trebuie avute în vedere
două aspecte fundamentale:

• schema; (vezi paragraful BD Excel)


• conţinutul.
• Schema (organizarea sau structura BD) reprezintă un
ansamblu de instrumente care asigură descrierea datelor,
a relaţiilor dintre acestea, a semanticii lor şi a restricţiilor
la care sunt supuse.

• Ansamblul informaţiilor stocate la un moment dat în BD


constituie conţinutul (instanţierea sau realizarea)
acesteia.
Conţinutul (volumul) prezintă o evoluţie (spectaculoasă) în timp, iar
schema rămâne relativ constantă pe tot parcursul utilizării BD.

53
Organizarea datelor în BD poate fi analizată din mai multe
puncte de vedere şi pe diferite paliere:

• Nivelul fizic (intern) - modalitatea efectivă în care datele


sunt "scrise" pe suportul de stocare (disc magnetic, disc
optic, bandă magnetică etc.);

• Nivelul conceptual (global) este primul nivel de


abstractizare a lumii reale observate. Obiectivul acestui
nivel este modelarea realităţii considerate, asigurându-se
independenţa bazei de date faţă de orice restricţie
tehnologică (echipament);

• Nivelul extern este ultimul nivel de abstractizare la care


poate fi descrisă o bază de date. Dezideratele acestui
nivel vizează simplificarea interacţiunii dintre utilizatori şi
BD, precum şi creşterea securităţii BD.
54
Datele stocate într-o BD prezintă următoarele caracteristici:

• partajabilitatea – disponibilitate pentru un mare număr de utilizatori şi


aplicaţii;
• persistenţa – existenţă permanentă, din momentul preluării în bază
până în momentul actualizării sau ştergerii;
• securitatea – protejarea de accesul neautorizat, atât în ceea ce priveşte
citirea şi copierea, cât şi modificarea şi ştergerea;
• validitatea (referită şi ca integritate sau corectitudine) – priveşte
gradul de adecvare dintre datele din bază şi realitatea, procesele pe care
le reflectă aceste date;
• consistenţa – ori de câte ori diverse aspecte ale proceselor sau
fenomenelor reale sunt preluate în bază sub forma a două sau mai
multor entităţi sau atribute, acestea trebuie să fie în concordanţă unele
cu celelalte, să respecte relaţiile existente între aspectele proceselor
/fenomenelor reale;
• nonredundanţa - pe cât posibil, o entitate din realitate ar trebui să aibă
un singur corespondent în BD;
• independenţa – priveşte autonomia logică şi fizică.
55
Modele de organizare a datelor în BD

• Modelul reprezintă un ansamblu de instrumente


conceptuale care permit descrierea datelor, relaţiilor dintre
ele, a semanticii lor precum şi a restricţiilor la care sunt
supuse.

• Modelul datelor este:


– o reprezentare a obiectelor lumii reale şi a evenimentelor
asociate lor;

– o abstractizare care se concentrează pe aspectele esenţiale


ale organizaţiei /aplicaţiei, furnizând conceptele de bază şi
notaţiile care vor permite utilizatorilor BD să comunice clar şi
rapid informaţiile şi cunoştinţele lor despre datele organizaţiei.

56
PREZENTAREA GENERALĂ A MODELULUI RELAŢIONAL
Un model de date are trei piloni:
• componenta structurală - modul în care, efectiv, la nivel logic,
datele sunt stocate în bază;
• componenta de integritate - regulile ce pot fi declarate pentru
datele din bază;
• componentă manipulatorie - modul în care se obţin informaţii
din BD, ceea ce presupune o serie de operatori (selecţie,
reuniune, intersecţie, joncţiune) aplicabili uneia sau mai multor
relaţii.
Modelul relaţional se poate defini prin:
– structuri de date (relaţii alcătuite din tupluri),
– operaţii aplicate asupra structurilor de date (selecţie, proiecţie,
joncţiune etc.),
– reguli de integritate care să asigure consistenţa datelor (chei
primare, reguli de validare, restricţii referenţiale ş.a.).
57
• Modelarea realităţii se concretizează în tabele de valori
numite relaţii, avându-se în vedere că:

• o relaţie are un nume;

• o coloană reprezintă un atribut;

• o linie reprezintă un tuplu de valori ale celor n atribute din


relaţie;

• ordinea liniilor şi coloanelor în cadrul tabelei nu este


relevantă pentru conţinutul informaţional.

• Fiecare linie a tabelei reprezintă o entitate sau un fapt al


realităţii, în timp ce o coloană reprezintă o proprietate a
acestei entităţi sau fapt.
58
Modelul relaţional - Avantaje:

• propune structuri de date uşor de utilizat;

• ameliorează independenţa logică şi fizică;

• pune la dispoziţia utilizatorilor limbaje ne-procedurale;

• optimizează accesul la date;

• îmbunătăţeşte integritatea şi confidenţialitatea datelor;

• ia în calcul o largă varietate de aplicaţii;

• abordează metodologic definirea structurii bazei de date.

59
Prima definiţie a unei Relaţii (Structura)

În general, orice relaţie R poate fi definită ca un subansamblu


al produsului cartezian de n domenii Di:
R  D1 x D2 x D3 x ...x Dn
• n este denumit gradul sau ordinul relaţiei.
• Relaţiile de grad 1 sunt unare, cele de grad 2 - binare, ...,
cele de grad n - n-are.
• Această definiţie pune în evidenţă aspectul constant al
relaţiei, de independenţă în timp (în acest caz, se spune că
relaţia este definită ca un predicat).

60
A doua definiţie a unei Relaţii (Conținut)

• A doua definiţie abordează o relaţie R ca


un ansamblu de m-tupluri (m-uplete) de
valori:
R = { t1, t 2 , ..., t k , ..., t m}

unde: t k  (dk1,dk2 , ..., dki ,...,dkn )

în care:
• dk1 este o valoare în D1, dk2 este o valoare
în D2, … , dkn este o valoare în Dn;
• m - reprezintă cardinalitatea lui R;
• n - reprezintă ordinul lui R.
61
RESTRICŢII ALE BAZEI DE DATE

• Pentru păstrarea coerenţei datelor, prevenirea


inconsistenţelor şi reflectarea corectă a fenomenelor şi
proceselor conţinute în BD, se definesc restricţiile, a
căror respectare, după declarare, cade în sarcina
SGBD-ului.

• Restricţiile semnalează existenţa unor constrângeri


instituite şi obligatorii.

• Prin restricţii, creşte gradul de corectitudine şi de


încredere al datelor din bază.

62
Cele mai importante restricţii definibile într-o BDR:

1. restricţia de domeniu,
2. restricţia de atomicitate,
3. restricţia de unicitate,
4. restricţia referenţială,
5. restricţiile utilizator.

63
Nenulitate

• Modelul relaţional acceptă ca atunci când nu se cunoaşte


valoarea unui atribut pentru o entitate, sau când atributul este
inaplicabil, să se foloseacă (meta)valoarea NULL.

• Într-o BDR se poate impune ca unele atribute să aibă


întotdeauna valori specificate, altfel spus, li se interzic valorile
nule.

• Ca regulă, atributele importante, ce ţin de identificarea sau


caracterizarea unei entităţi, proces, fenomen, precum şi cele
implicitate în calculul unor informaţii importante, sunt
declarate NOT NULL, iar atributele fără importanţă deosebită
pot fi mai “relaxate”.

64
Restricţia de unicitate

Noţiunile legate de această restricţie sunt:


– chei primare,
– chei candidat,
– chei alternative.

Cheia primară a unei relaţii (tabele) este un atribut sau un


grup de atribute care identifică fără ambiguitate fiecare tuplu
(linie) al relaţiei (tabelei).

Pot exista mai multe astfel de atribute = chei candidat.

Dintre cheile candidat, proiectantul BD alege o singură cheie


primară (simplă sau compusă). Cheile rămase = chei
alternative.
65
După E.F.Codd, există trei restricţii pentru cheia primară:

• unicitate: o cheie identifică un singur tuplu (linie) al relaţiei.


• compoziţie minimală: atunci când cheia primară este
compusă, nici un atribut din cheie nu poate fi eliminat fără
distrugerea unicităţii tuplului în cadrul relaţiei; în cazuri limită,
o cheie poate fi alcătuită din toate atributele relaţiei.
• valori non-nule: valorile atributului (sau ale ansamblului de
atribute) ce desemnează cheia primară sunt întotdeauna
specificate, deci ne-nule şi, mai mult, nici un atribut din
compoziţia cheii primare nu poate avea valori nule; această a
treia condiţie se mai numeşte şi restricţie a entităţii.

66
5. Restricţii utilizator

• Restricţiile utilizator sunt denumite şi restricţii de


comportament sau restricţii ale organizaţiei sau reguli ale
afacerii.

• De obicei, aceste restricţii iau forma unor:

– reguli de validare la nivel de atribut (pot fi mai multe reguli


într-o tabelă),

– reguli de validare la nivel de linie /înregistrare /tabelă (poate


fi o singură regulă într-o tabelă, dar implică cel puțin două
atribute),

– reguli implementate prin declanşatoare (triggere).


67
Capitolul 5

Sisteme de gestiune a bazelor de date


(ACCESS)

68
Agenda - SGBD (ACCESS)

• SGBD ACCESS – prezentare generală


• Crearea şi actualizarea bazelor de date ACCESS
• Formulare ACCESS
• Obţinerea de informaţii din baza de date ACCESS
• Construirea şi utilizarea rapoartelor ACCESS
• Aplicaţii, programe, proceduri VBA în ACCESS

69
Proiectele Access permit dezvoltarea unor aplicaţii client-
server în următoarele situaţii (mai) complexe:

• datele sunt foarte importante; nu se acceptă pierderi de


date şi nici indisponibilităţi temporare ale datelor;

• datele urmează a fi folosite simultan de către mai mulţi


utilizatori;

• BD are dimensiuni foarte mari.

70
Tipuri de obiecte în proiectele ACCESS
• Tabele (Tables) – colecţii de datele “brute” ale unei BD;
• Interogări (Queries) – tabele care conţin răspunsuri la anumite „întrebări”
despre date (filtre aplicate asupra datelor din baza de date, în funcţie de
anumite criterii);
• Formulare (Forms) – interfeţe de introducere şi afişare a datelor (formate
de ecran care permit introducerea sau vizualizarea datelor din una sau mai
multe tabele si /sau interogări);
• Rapoarte (Reports) – liste cu informaţii extrase din componentele
proiectului tip BD (facilităţi de afişare /tipărire a datelor din tabele,
interogări); Macro-uri (Macros) - liste de comenzi, grupate sub un nume,
pe care Access le salvează şi execută pentru diverse acţiuni specificate de
utilizator;
• Module (Modules) – obiecte care conţin coduri de program (declaraţii şi
proceduri), scrise în VBA. Modulele oferă utilizatorilor avansaţi posibilitatea
de a personaliza BD şi conţinutul acestora:
– Module clasă (conţin proceduri dedicate formularelor sau rapoartelor şi
sunt ataşate acestora; nu apar în panoul de lucru);
– Module standard (conţin proceduri care nu sunt asociate unui obiect;
71
apar în panoul de lucru).
5.2 CREAREA ŞI ACTUALIZAREA BD

Orice proiect de lucru cu o BD demarează cu crearea


tabelelor şi definirea restricţiilor.

La crearea tabelelor, pentru fiecare atribut (câmp) se


declară:

– Numele – Field Name,

– Tipul – Data Type,

– Lungimea – Field Size şi/sau formatul (Field Properties),

– alte proprietăţi.

72
Tipuri de date
• Short Text – şiruri de cel mult 255 de caractere alfanumerice (litere,
numere, simboluri etc.);
• LongText – şiruri care depăşesc 255 de caractere, nu sunt
structurate;
• Number – date numerice (întregi sau cu zecimale);
• Date /Time – date calendaristice şi/sau timp;
• Currency – tip de date asemănător datelor numerice; este conceput
pentru a evita erorile de rotunjire, astfel încât calculele cu bani să fie
precise;
• AutoNumber – este o variantă specială a datelor Number. Este
recomandat în procedura de stabilire a cheii primare, atunci când din
structura tabelei este dificil de ales un câmp reprezentativ;
• Yes /No - păstrează date de tip: True /False, On/Off;
• Ole Object –stocheză informaţii într-un format accesibil altor
programe (documente Word, foi de calcul Excel, imagini, fişiere cu
muzică etc.)
• Hyperlink – tip de date text special conceput pentru a stoca
hyperlink-uri către site-uri Web sau alte resurse Internet;
• Calculated – tip de date care permite construirea unor expersii de
evaluat (in expresii sunt folosite campuri din structura tabelei);
• Lookup Wizard – câmp special de căutare 73
Tabelele, fiind obiecte componente ale BD, presupun, ca
primă etapă, obţinerea bazei de date din care vor face parte.
Dacă se optează pentru Blank Desktop Database se pot
preciza:
– locaţia (pentru salvare),
– numele,
– tipul fişierului.
Implicit, ACCESS atribuie unei BD:

• numele database<n> (Access 2007) sau


db<n> (pâna la Access 2007) şi
• extensia .accdb (Access 2007) sau .mdb
(pâna la Access 2007).
74
Cea mai complexă modalitatea de obţinere a tabelelor unei BD o
oferă opţiunea Design View (din meniul rapid) sau opţiunea
Table Design (din meniul Create).

75
Crearea tabelelor folosind Design View
• Prima operaţie constă în stabilirea numelui sub care va fi
salvat tabelul.
• Numele implicit este de Table<n>.
• Sunt recomadate nume sugestive (conţinut informaţional,
aplicaţie, utilizator etc.).

76
Crearea unei tabele se realizează prin parcurgerea unor paşi
prestabiliţi:
1. Definirea (stabilirea) atributelor (câmpurilor);
2. Stabilirea cheii primare;
3. Definirea valorilor implicite;
4. Definirea regulilor de validare la nivel de atribut (câmp);
5. Definirea unei reguli de validare la nivel de înregistrare
(linie/tabelă);
6. Salvarea structurii tabelei.

77
În fereastra Design View pot fi stabilite:

• numele câmpurilor,

• tipul datelor şi proprietăţile acestora,

• cheia primară,

• reguli de validare etc.

78
5.2.3 Declararea restricţiilor
Este recomandabil ca declararea restricţiilor să fie făcută
odată cu crearea tabelelor sau imediat după (în orice caz,
înainte de preluarea vreunei înregistrări în baza de date)

preluarea corectă a tuturor informaţiilor în tabele.

Declararea restricţiilor presupune ca tabela să fie


deschisă cu Design View.

Regulile de validare (la nivel de atribut şi de tabelă/linie)


au fost prezentate şi exemplificate în cap 4.

79
Cheia primară

În Access cheia primară poate fi:

– naturală - când valorile atributului /atributelor care o compun


se stabilesc de către utilizator;

– artificială - când se foloseşte un câmp de tip AutoNumber


(în acest caz ACCESS introduce automat o valoare
consecutivă la inserarea unei înregistrări (1 pentru prima
înregistrare, 2 pentru a doua înregistrare ş.a.m.d.).

80
Cheia primară

• Access creează indecşi pentru fiecare tip de cheie primară


sau alternativă

pentru aceste tipuri de atribute proprietatea Indexed este


setată pe Yes (No Duplicates).

• Dacă o cheie primară este compusă, pentru fiecare atribut


component este asociat simbolul cheii.

81
Restricţia de integritate referenţială
• Definirea legăturilor permanente dintre tabele şi stabilirea restricţiilor de
integritate referenţială se realizează prin apelarea opţiunii Relationships
din meniul Database Tools :

82
Fereastra Edit Relationships

Restricţia de integritate referenţială se


instituie prin bifarea opţiunii Enforce
Referential Integrity

• nu se permite modificarea valorii cheii


primare din tabela părinte dacă există în
tabela copil măcar o înregistrare cu care este
în legătură;
• nu poate fi introdusă nici o valoare a unei
chei străine dacă respectiva valoare nu există
deja ca şi cheie primară în tabela părinte.

Cascade Update Related Fields – Cascade Delete Related Records -


orice modificare a unei chei primare în tabela la ştergerea unei înregistrări din tabela
părinte va atrage modificarea în cascadă a tuturor părinte se vor elimina automat toate
cheilor străine în înregistrările copil. înregistrările copil.
5.3 FORMULARE ACCESS

• Un formular reprezintă un instrument pus la dispoziţia


utilizatorului în scopul uşurării operaţiilor de accesare şi
actualizare a datelor stocate în tabelele unei BD.

• Un formular este legat de o structură de date de tip tabelă sau


cursor (query - obţinut în urma unei interogări).

• Prin intermediul formularului se asigură o “vedere” organizată


şi formatată asupra unei părţi sau asupra tuturor câmpurilor
din una sau mai multe tabele.

84
5.4 OBŢINEREA DE INFORMAŢII DIN BD
Access oferă facilităţi de obţinere a informaţiilor dintr-o BDR,
prin crearea interogărilor (Queries), care pot fi:

• Interogări tip selecţie;

• Interogări tip inserare;

• Interogări tip modificare;

• Interogări tip ştergere;

• Interogări SQL.

85
OBŢINEREA DE INFORMAŢII DIN BD
Interogările se pot defini:

– în modul de lucru Query Design, care foloseşte un limbaj


bidimensional de tip grafic asemănător limbajului QBE
(Query By Example) din gama instrumentelor RAD (Rapid
Application Development),

– în modul de lucru asistat (Wizard),

– folosind comenzi SQL (cap. 6).

86
Cele mai utilizate Interogări Access sunt:
• Interogări tip selecţie (Select Query);
• Interogări tip inserare (Append Query);
• Interogări tip actualizare (Update Query);
• Interogări tip ştergere (Delete Query);
• Interogări SQL (cap. 6).

87
• Interogările de selecţie (implicite) (Select Query) sunt
obiecte ale bazei de date folosite pentru a extrage şi afişa o
parte din BD;
• Interogările de adăugare (Append Query) presupun
completarea unor rubrici diferite de cele de la interogările de
selecţie, deoarece Access construieşte, pe baza datelor din
fereastra Query Design, o comandă INSERT; trebuie specificat
numele tabelei în care se vor introduce datele;
• Interogările de modificare (Update Query) presupun
completarea tuturor informaţiilor necesare creării unei comenzi
UPDATE;
• Interogările de ştergere (Delete Query) presupun
completarea tuturor informaţiilor necesare identificării rândului
/rândurilor de şters.
• Interogarile pot fi folosite :
• de alte interogări Access (în cazul interogărilor de selecţie);
• direct, în mod vizual, cu gestionarul bazei de date; 88
• din ferestrele, rapoartele şi modulele de cod VBA ale BD.
5.5 CONSTRUIREA ŞI UTILIZAREA RAPOARTELOR

• Informaţiile din domeniul economic sunt prezentate, cel mai


adesea, prin intermediul rapoartelor.

• Raportul reprezintă un ansamblu de informaţii conforme cu


cerinţele utilizatorilor, construit pe baza datelor din tabele
sau interogări.

• Rapoartele pot fi afişate pe ecran sau tipărite la imprimantă,


majoritatea lor având formă tabelară.

89
Rapoartele pot fi construite în trei moduri:

• Crearea rapidă pe baza unei singure tabele sau interogări, prin


opţiunea Report. Implicit, raportul obţinut va fi de tip Tabular,
rezervându-se câte o coloană pentru fiecare câmp din tabelă
sau interogare.
• Apelarea la asistent (Report Wizard). Utilizatorul va construi
raportul, pas cu pas, sub îndrumarea vrăjitorului stabilind: sursa
datelor (tabelele şi/sau interogările), câmpurile de date care vor
fi reţinute în raport, modul de grupare şi ordonare a datelor,
formatul şi titlul raportului. În acest mod pot fi create rapoarte
pe baza mai multor tabele şi /sau interogări.
• Utilizarea ferestrei de proiectare (Report Design). În acest
mod de lucru utilizatorul va avea posibilitatea să creeze
rapoarte complexe, pe care să le personalizeze conform
cerinţelor sale. Ca şi în primul caz, raportul poate conţine date
dintr-o singură tabelă sau interogare.
90
APLICAŢII, PROGRAME, PROCEDURI VBA ÎN ACCESS
• Ca orice aplicaţie din pachetul MS Office, pentru scrierea de proceduri,
Access foloseşte Visual Basic for Application.
• Programele VBA sunt numite proceduri şi sunt grupate în:
– Sub rutine - se referă la instrucţiuni VBA cuprinse între Sub … End
Sub şi care nu returnează o valoare:
Sub nume_proc()

End sub
– Funcţii procedurale - se referă la instrucţiuni VBA cuprinse între
Function … End Function şi care returnează o valoare:
Function nume_funct(param)

End Function
• Orice procedură cuprinde un set de instrucţiuni care îndeplinesc o
anumită sarcină.
• În scrierea unei proceduri se folosesc:
– cuvinte cheie - cuvinte de culoare albastră, care reprezintă
cuvintele rezervate ale mediului VBA;
– cuvinte utilizator - celelalte cuvinte, de culoare neagră, sunt de 91
natura variabilelor sau valorilor.
Agenda Interogarea bazelor de date.
Limbajul SQL

• Prezentarea generală a limbajului SQL


• Crearea tabelelor şi declararea restricţiilor
• Comenzi de actualizare a tabelelor
• Structura de bază a frazei SELECT
• Joncţiuni
• Funcţii-agregat: COUNT, SUM, AVG, MAX, MIN
• Sub-consultări. operatorul IN
• Reuniune, intersecţie, diferenţă
• Gruparea tuplurilor. Clauzele GROUP BY şi
HAVING

92
Prezentarea generală a limbajului SQL
(Structured Query Language)
• SQL a fost standardizat din 1986 (în SUA) şi 1989 (la nivel mondial
– ISO).
• Este un limbaj universal care permite:
– crearea tabelelor,
– definirea restricţiilor,
– crearea utilizatorilor şi grupurilor de utilizatori,
– definirea drepturilor fiecărui utilizator /grup la obiecte din BD,
– actualizarea înregistrărilor din tabele (inserare, modificare,
ştergere),
– extragerea şi prelucrarea datelor din BD.
SQL reprezintă cel mai important limbaj în domeniul BD, având
următoarele caracteristici:
• gama diversificată de comenzi şi opţiuni,
• standardizarea,
• portarea pe toate SGDB-urile semnificative.
93
Pentru utilizatorului final, obiectivul principal al SQL:
oferă mijloacele necesare formulării unei consultări numai
prin descrierea rezultatului dorit, cu ajutorul unei aserţiuni
(expresie logică), fără a fi necesară şi explicitarea modului
efectiv în care se face căutarea în BD.

– utilizatorul califică (specifică) rezultatul,


– sistemul se ocupă de procedura de căutare.

94
Deşi, toate clasificările îl încadrează în 4LG, totuşi, SQL :

• nu este un limbaj de programare propriu-zis, prin


comparaţie cu Basic, Pascal, C, COBOL etc.

• SQL nu conţine instrucţiuni /comenzi pentru codificarea


secvenţelor alternative şi repetititive, cu atât mai puţin
facilităţi de lucru cu obiecte vizuale, specifice formularelor
de preluare a datelor (căsuţe-text, butoane radio, liste,
butoane de comandă etc.).

Poate fi referit ca sub-limbaj orientat pe lucrul cu BD.

Comenzile SQL pot fi inserate în programe redactate în


limbaje de programare "clasice".

95
Principalele clase de comenzi SQL
Comenzi pentru manipularea datelor

• SELECT • Extragerea datelor din BD Fraza SELECT

• INSERT • Adaugarea de noi linii într-o tabelă

• DELETE • Ştegerea de linii dintr-o tabelă

• UPDATE • Modificarea valorilor unor atribute

Comenzi pentru definirea bazei de date

• CREATE TABLE • Adăugarea unei noi tabele în BD

• DROP TABLE • Ştergerea unei tabele din bază

• ALTER TABLE • Modificarea structurii unei tabele

• CREATE VIEW • Crearea unei tabele virtuale

• DROP VIEW • Ştergerea unei tabele virtuale 96


Structura de bază a frazei SELECT

Pentru interogarea bazei, adică obţinerea de informaţii din cele


mai diverse, prin prelucrări, grupări etc. se foloseşte fraza
SELECT care are trei clauze principale:
SELECT
obligatorii
FROM
WHERE

În plus, pot fi folosite şi clauzele:


ORDER BY
GROUP BY
HAVING.
97
• SELECT este utilizată pentru precizarea listei de atribute
(coloanele) din rezultat;

• FROM permite enumerarea relaţiilor/tabelelor din care vor fi


extrase informaţiile aferente consultării;

• prin WHERE se precizează condiţia (predicatul), simplă sau


complexă, pe care trebuie să o îndeplinească liniile tabelelor
(enumerate în clauza FROM) pentru a fi extrase în rezultat.

98
• Execuţia unei fraze SELECT se concretizează în
obţinerea unui rezultat de forma unei tabele (relaţii).
• Când clauza WHERE este omisă, se consideră
implicit că predicatul P are valoarea logică
"adevărat".
• Dacă în locul coloanelor C1, C2, ... Cn apare
simbolul "*", în tabela-rezultat vor fi incluse toate
coloanele (atributele), din toate relaţiile specificate în
clauza FROM.
• În tabela-rezultat, nu este obligatoriu ca atributele să
prezinte nume identice cu cele din tabelele
enumerate în clauza FROM. Schimbarea numelui se
realizează prin opţiunea AS.
99
Uneori, rezultatul interogării încalcă “poruncile” modelului
relaţional.

Conform restricţiei de entitate, într-o relaţie nu pot exista două


linii identice.

În SQL, rezultatul unei consultări poate conţine două sau mai


multe tupluri identice.

Pentru eliminarea liniilor identice (duplicatelor) este necesară


opţiunea DISTINCT:

SELECT DISTINCT C1, C2, ..., Cn

FROM R1, R2, ..., Rm

WHERE P
100
În expresiile logice (din clauzele WHERE și
HAVING) se folosesc:
• atribute,
• constante,
• operatori:
– aritmetici,
– relaţionali,
– logici,
– speciali:
• BETWEEN,
• LIKE,
• IN,
• IS NULL.
101
Operatorul BETWEEN verifică dacă valorile unui atribut
aparţin unui interval.
Operatorul BETWEEN se aplică atributelor caracter (text),
numerice sau de tip dată calendaristică.
• Operatorul LIKE se foloseşte pentru a compara un atribut de
tip şir de caractere (ex. NumeClient, Adresa, Localitate) cu
un literal (= constantă de tip şir de caractere).
În literal pot fi folosite simbolurile:
• "_" sau “?” care înlocuiesc un singur caracter,
• "%" sau “*” care înlocuiesc un şir de caractere de lungime
variabilă (între 0 şi n caractere).
102
Operatorul IN
Formatul general:
expresie1 IN (expresie2, expresie3, ...)
• Rezultatul evaluării unui predicat ce conţine operatorul IN va fi
"adevărat" dacă valoarea expresiei1 este egală cu (cel puţin)
una din valorile: expresie2, expresie3, ...
• Spre exemplu, pentru a afla care sunt clienţii din localităţile din
judeţele Iaşi şi Neamţ:
utilizând IN:
SELECT *
FROM codpost_loc
WHERE Judet IN ("Iasi", “Neamt")

103
Operatorul IS NULL
• O valoare nulă este o valoare nedefinită.
• Este posibil ca la adăugarea unei linii într-o tabelă,
valorile unor atribute să fie necunoscute. În aceste cazuri
valoarea atributului pentru tuplul respectiv este nulă.
• Reamintim că, prin definiţie, nu se admit valori nule
pentru atributul sau grupul atributelor care constituie
cheia primară a relaţiei.
• Pentru aflarea clienţilor pentru care nu s-a introdus
adresa, se poate scrie:
• SELECT *
• FROM clienti
104
• WHERE adresa IS NULL
Operatorul IS NULL
Observaţii
• Valoarea NULL nu se confundă cu valoarea zero (pentru
atributele numerice) sau cu valoarea "spaţiu" (pentru
atributele de tip şir de caractere).
• Operatorul NULL se utilizează cu IS şi nu cu semnul "=".
• Dacă s-ar utiliza expresia = NULL rezultatul evaluării va
fi întotdeauna fals, chiar dacă expresia nu este nulă !

105
Opţiunile DISTINCT şi ORDER BY
• SQL nu elimină dublurile automat

• Pentru eliminarea dublurilor se utilizează opţiunea


DISTINCT (plasată imediat după clauza SELECT).

• Prioritatea de ordonare este stabilită prin atributele din


ORDER BY

• Ex. ORDER BY Judet ASC, Localitate DESC

• Opţiunile ASCENDING (crescător) şi DESCENDING


(descrescător) indică modul în care se face ordonarea
tuplurilor tabelei-rezultat al interogării.

• Dacă în ORDER BY lipsesc opţiunile ASCENDING


/DESCENDING, ordonarea se face crescător.

106
JONCŢIUNI
Când informaţiile necesare şi condiţiile pe care trebuie să le
îndeplinească acele informaţii privesc atribute aflate în tabele
diferite, este necesară joncţiunea tabelelor.
Atunci când tabelele nu pot fi joncţionate direct, trebuie aduse
“cu forţa” în clauza FROM şi tabelele care să completeze
“lanţul”.
• Legătura dintre aceste tabele care prezintă un câmp comun se
numeşte joncţiune şi se realizează, în SQL, prin INNER JOIN.

SELECT *
FROM facturi INNER JOIN clienti ON
facturi.CodClient=clienti.CodClient
SELECT *
FROM facturi, clienti
WHERE facturi.CodClient=clienti.CodClient
107
Funcţii agregat: COUNT, SUM, AVG, MAX, MIN

• Cu funcţiile agregat se face un prim pas spre analiza datelor din


BD.

• În absenţa grupării (clauza GROUP BY) rezultatul


unei funcţii agregat este o tabelă cu o singură
linie.

108
SUB-CONSULTĂRI. OPERATORUL IN

SQL oferă posibilitatea includerii (imbricării) a două sau mai


multe fraze SELECT pot fi formulate interogări cu un
mare grad de complexitate.
Operatorul folosit este IN.
Ex. Care sunt facturile emise în aceeaşi zi în care a fost
întocmită factura 111113 ?
SELECT * FROM facturi
WHERE NrFact <> 111113
AND Data IN
(SELECT Data FROM facturi WHERE NrFact=111113)

109
Reuniune, Intersecţie, Diferenţă

Aceste operații cer respectarea principiului unicompatibilităţii.


Două relaţii, R1 şi R2 sunt unicompatibile, dacă au acelaşi
număr de atribute şi dacă acestea corespund sintactic (adică
primul atribut din R1 este de acelaşi tip cu primul atribut din
R2 ş.a.m.d.).

110
GRUPAREA TUPLURILOR. CLAUZELE GROUP BY ŞI HAVING

SQL permite utilizarea clauzei GROUP BY pentru a forma


grupuri de tupluri ale unei relaţii, pe baza valorilor comune ale
unei coloane.
Prin asocierea unei clauze HAVING la o clauză GROUP BY
este posibilă selectarea anumitor grupe de tupluri ce
îndeplinesc un criteriu prestabilit.

111
Clauza GROUP BY

Rezultatul unei fraze SELECT ce conţine GROUP BY este o


tabelă care va fi obţinută prin regruparea liniilor din tabelele
enumerate in FROM.
Tuplurile dintr-un grup prezintă o aceeaşi valoare pentru o
coloană sau un grup de coloane.
Clauza HAVING permite introducerea unor restricţii la nivel
de grup
SELECT coloană 1, coloană 2, .... , coloană m
FROM tabele
GROUP BY coloană-de-regrupare
HAVING caracteristică-de-grup

112
Clauza HAVING
• Clauza HAVING permite introducerea unor restricţii
aplicate grupurilor de tupluri, (nu tuplurilor "individuale",
aşa cum "face" clauza WHERE).

• Clauza HAVING "lucrează" împreună cu o clauză


GROUP BY, fiind practic o clauză WHERE aplicată
acesteia.

Din tabela rezultat sunt eliminate toate grupurile care nu


satisfac condiţia specificată.

113

S-ar putea să vă placă și