Documente Academic
Documente Profesional
Documente Cultură
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
– limbaje maşină,
– limbaje de asamblare,
– limbaje naturale.
Caracteristici comune limbajelor 4GL
– instrumentele CASE,
• un SGBD,
• un procesor de texte,
• 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.
=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);
Linia de structură
câmpuri
Î
N
R
E
G
I
S
T
R
Ă
R
I
Salariati_BD
Meniul Data permite:
49
CÂTE CEVA DESPRE BAZE DE DATE
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.
sau
53
Organizarea datelor în BD poate fi analizată din mai multe
puncte de vedere şi pe diferite paliere:
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ă:
59
Prima definiţie a unei Relaţii (Structura)
60
A doua definiţie a unei Relaţii (Conținut)
î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
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
64
Restricţia de unicitate
66
5. Restricţii utilizator
68
Agenda - SGBD (ACCESS)
69
Proiectele Access permit dezvoltarea unor aplicaţii client-
server în următoarele situaţii (mai) complexe:
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
– 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:
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,
• cheia primară,
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)
79
Cheia primară
80
Cheia primară
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
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 SQL.
85
OBŢINEREA DE INFORMAŢII DIN BD
Interogările se pot defini:
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
89
Rapoartele pot fi construite în trei moduri:
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.
94
Deşi, toate clasificările îl încadrează în 4LG, totuşi, SQL :
95
Principalele clase de comenzi SQL
Comenzi pentru manipularea datelor
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.
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
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
108
SUB-CONSULTĂRI. OPERATORUL IN
109
Reuniune, Intersecţie, Diferenţă
110
GRUPAREA TUPLURILOR. CLAUZELE GROUP BY ŞI HAVING
111
Clauza GROUP BY
112
Clauza HAVING
• Clauza HAVING permite introducerea unor restricţii
aplicate grupurilor de tupluri, (nu tuplurilor "individuale",
aşa cum "face" clauza WHERE).
113