Sunteți pe pagina 1din 0

INFORMATICA APLICATA I note de curs

Dragos NICULAE
Page1





Informatic aplicat I
note de curs



Drago NICULAE

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page2

CUPRINS


CUPRINS............................................................................................................................................. 2
CURS 1 ............................................................................................................................................... 6
INTERNETUL........................................................................................................................................ 6
Istorie i evoluie. .......................................................................................................................... 6
Reele de calculatoare. ............................................................................................................. 7
Infrastructura Internetului............................................................................................................ 9
Dimensiunea Internetului .......................................................................................................... 10
Reprezentarea datelor ............................................................................................................. 11
Adresele IP .................................................................................................................................. 12
DNS (Domain Name System)................................................................................................... 14
Protocoalele Internetului .......................................................................................................... 15
Motoare de cutare................................................................................................................. 16
POTA ELECTRONIC.................................................................................................................... 16
CURS 2 ............................................................................................................................................. 21
Limbajul HTML................................................................................................................................. 21
Ce este HTML?............................................................................................................................ 21
Noiuni de baz ......................................................................................................................... 22
Spaii albe................................................................................................................................... 22
Titluri de pagin.......................................................................................................................... 23
ntreruperile de rnd ................................................................................................................. 24

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page3
Text preformatat ........................................................................................................................ 25
Stiluri pentru blocurile de text .................................................................................................. 25
Stiluri logice de text ................................................................................................................... 30
Culori ............................................................................................................................................ 34
Atributele de margine .............................................................................................................. 36
Liste............................................................................................................................................... 37
Tabele.......................................................................................................................................... 41
Imagini ......................................................................................................................................... 43
Metadate.................................................................................................................................... 46
Legturi........................................................................................................................................ 46
Multimedia.................................................................................................................................. 48
Imagini hri ................................................................................................................................ 49
Formulare .................................................................................................................................... 51
Cadre........................................................................................................................................... 52
Introducere n CSS ..................................................................................................................... 53
CURS 3 ............................................................................................................................................. 56
Managementul datelor................................................................................................................ 56
Sisteme de gestiune a bazelor de date.................................................................................... 56
Ce este o baz de date? ........................................................................................................ 56
Nevoia de baze de date. ........................................................................................................ 57
Sisteme de gestiune a bazelor de date................................................................................ 58
Structura unui SGBD .................................................................................................................. 59
Tipuri de SGBD............................................................................................................................ 59
Modele de organizare a datelor n BD.................................................................................. 60

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page4
Algebra relaiilor......................................................................................................................... 60
Utilizarea aplicaiei Access ...................................................................................................... 63
Normalizarea bazei de date ................................................................................................... 69
Crearea unei baze de date.................................................................................................... 70
CURS 4 ............................................................................................................................................. 84
SQL ................................................................................................................................................... 84
Noiuni elementare de baze de date ................................................................................... 84
Ce este SQL?.............................................................................................................................. 84
Regsirea datelor ...................................................................................................................... 84
Sortarea datelor regsite......................................................................................................... 87
Sortarea n funcie de mai multe coloane............................................................................ 88
Sortarea n funcie de poziia coloanei ................................................................................. 89
Specificarea direcie de sortare............................................................................................. 90
Filtrarea datelor.......................................................................................................................... 91
Operatorii clauzei WHERE......................................................................................................... 92
Filtrarea avansat a datelor.................................................................................................... 95
Operatorul AND......................................................................................................................... 95
Operatorul OR............................................................................................................................ 97
Operatorul IN.............................................................................................................................. 98
Operatorul NOT.......................................................................................................................... 99
Operatorul LIKE.........................................................................................................................100
Crearea cmpurilor cu valoare calculat.........................................................................102
Utilizarea alias-urilor .................................................................................................................103
Efectuarea calculelor matematice .....................................................................................103

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page5
Utilizarea funciilor de manipulare a datelor ......................................................................104
Sintetizarea datelor .................................................................................................................107
Utilizarea funciilor agregat....................................................................................................107
Gruparea datelor ....................................................................................................................111
Lucrul cu sub-interogrile.......................................................................................................113
Unirea tabelelor .......................................................................................................................115
Combinarea interogrilor ......................................................................................................120
Inserarea datelor .....................................................................................................................121
Actualizarea i tergerea datelor .........................................................................................123
Crearea i manipularea tabelelor ........................................................................................125
Gestiunea prelucrrii tranzaciilor.........................................................................................127
Caracteristici avansate ale limbajului SQL..........................................................................128
Bibliografie....................................................................................................................................131


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page6

CURS 1
INTERNETUL

Istorie i evoluie.
Internetul i are originile n proiectele militare ale SUA din anii 60, perioad de vrf a
Rzboiului Rece, ca urmare a lansrii primului satelit artificial (Sputnik)
1
de ctre URSS (4
octombrie 1957).

Fig.1.
Acest fapt a declanat o ngrijorare deosebit n Statele Unite i se nfiineaz o agenie
special subordonat Pentagonului ARPA (Advanced Research Projects Agency). Aprnd
primele calculatoare, s-a pus problema interconectrii acestora, adoptndu-se soluia de
interconectare prin comutare de pachete (packet switching). Astfel, pentru a transmite informaia,
aceasta este mrunit n poriuni mici, denumite pachete. Ca i la pota clasic, fiecare pachet
conine informaii referitoare la destinatar, astfel nct el s poat fi dirijat corect prin reea. La
destinaie ntreaga informaie este reasamblat.
n 1969 ncepe astfel s funcioneze reeaua ARPANET ntre 4 noduri: Universitatea
California din Los Angeles (UCLA), Universitatea din Santa Ana, Universitatea din Utah i
Stanford Research Institute. Toate aceste reguli au fost codificate ntr-un protocol care

1
AldoileasatelitlansatdeURSS(Sputnik2)3noiembrie1957apurtatprimafiinpeorbituncine,
Laika.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page7
reglementeaz transmisia de date. n forma sa final, acesta era TCP/IP (Transmission Control
Protocol/Internet Protocol) i care este i acum baza Internetului. TCP/IP face posibil ca modele
diferite de calculatoare, folosind sisteme diferite de operare s se neleag unele cu altele.
Ca program al Ministerului Aprrii al SUA, ARPANET s-a dezvoltat foarte repede, la el
conectndu-se din ce n ce mai multe calculatoare. n 1979 ARPA decide s separe reeaua n
dou, una pentru lumea comercial i universitar, i una militar. Cele dou reele puteau
comunica n continuare, construindu-se practic o inter-reea (internet) denumit iniial DARPA
Internet i consacrat ulterior sub denumirea Internet.
n 1978 se propune separarea protocolului de utilizare a reelei n dou pri: un protocol
TCP care ordoneaz pachetele de date n vederea unor legturi fiabile ntre perechi de gazde i
un protocol IP care transmite pachetele individuale ntre calculatoare. Astfel protocolul TCP
asigur partea de transport a informaiei sub form de pachete sau datagrame, fcnd n aa fel
nct s ajung la destinaie. Pentru fiecare pachet de date transmis n reea se primete o
confirmare de primire iar dac aceasta nu este primit pachetul este retransmis. Protocolul IP se
ocup de transportul datelor de la surs la destinaie, fiecare calculator din reea avnd o adres
unic prin care poate fi identificat.
La nceputul anului 1990 are loc ncheierea oficial a ARPANET iar lumea a nceput s
foloseasc furnizorii comerciali de Internet (ISP).
Internetul nu este proprietatea niciunei persoane sau organizaii, autoritatea care dirijeaz
evoluia Internetului este ISOC (Internet Society), o organizaie de voluntari nfiinat n 1992.
Rspndirea Internetului a atras dup sine o explozie a infrastructurii de deservire, legat de
creterea permanent a numrului de utilizatori i a tipurilor de servicii oferite.
Pe scurt, Internet este numele dat unei imense interconectri de reele de calculatoare i
calculatoare individuale, care formeaz un singur sistem global de comunicare.

Reele de calculatoare.
O reea este un grup de calculatoare interconectate care partajeaz servicii i care
interacioneaz prin intermediul unor legturi de comunicaie. Astfel, o reea necesit dou sau
mai multe calculatoare care au ceva de partajat (date), sistemele trebuie s fie conectate printr-o
cale fizic (mediu de transmisie) i s respecte un set comun de reguli (protocoale) pentru ca
informaia s ajung cum trebuie i unde trebuie.
Scopul unei reele de calculatoare nu este doar simplul schimb de date ci i de a putea
nelege i folosi datele primite de la elementele reelei.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page8
Reelele permit calculatoarelor s partajeze resursele oferind servicii altor calculatoare.
Cteva dintre motivele care determin conectarea calculatoarelor n reele ar fi urmtoarele:
Partajarea fiierelor;
Partajarea imprimantelor i a altor dispozitive;
Posibilitatea administrrii n comun;
Folosirea aplicaiilor de reea gen pot electronic, servicii de baze de date etc.
n general, reelele de calculatoare pot fi grupate n dou tipuri:
Reele bazate pe server;
Reele peer-to-peer.
ntr-o reea bazat pe server, resursele sunt localizate pe un server central sau un grup de servere.
Un server este un calculator destinat s furnizeze servicii pentru celelalte calculatoare din reea.
Un client de reea este un calculator care acceseaz resursele disponibile pe server. n general
serverele sunt sisteme performante, optimizate pentru a furniza servicii altor calculatoare
(servere de fiiere, servere de email, servere de printare, servere de aplicaii).
Un server de fiiere este un server care stocheaz fiiere ale utilizatorilor reelei.
Sarcina unui server de fiiere este aceea de a aciona ca un depozit pentru fiierele care sunt
necesare utilizatorilor reelei. Este posibil ca printre acestea s se gseasc unele fiiere partajate
de mai muli utilizatori. Aceste fiiere sunt de regul depozitate ntr-un loc numit dosar public
(public folder), care poate include i dosare private, specifice unui anumit utilizator. Marele
avantaj al utilizrii unui server de fiiere este acela c fiierele importante se gsesc la un loc,
fcnd astfel extrem de uoar salvarea periodic a datelor. Dezavantajul este acela c, atunci
cnd serverul cade, utilizatorii nu-i mai pot accesa fiierele.
Un server de tiprire organizeaz accesul la resursele reelei de printare, astfel permind
utilizarea unei imprimante de ctre mai muli clieni.
Un server de aplicaii este un server care ruleaz aplicaii pentru calculatorul client. Un
server de aplicaii poate s caute ntr-o baz de date de dimensiuni considerabile pentru a
rspunde unei cereri din partea unui client sau poate s fie parte a unei aplicaii client/server n
care att clientul ct i serverul execut anumite procese.
ntr-o reea peer-to-peer resursele sunt distribuite prin reea pe calculatoare care pot s
joace att rolul de furnizori de servicii ct i de clieni. Utilizatorul fiecrui calculator este

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page9
responsabil cu administrarea i partajarea propriilor resurse.
O clasificare a reelelor dup mrime ar fi urmtoarea:
LAN local area network este un grup de calculatoare i dispozitive de
interconectare desfurate pe o suprafa geografic restrns (cldire, campus). O
astfel de reea folosete de obicei un singur tip de transmisie (cablu).
WAN wide area network interconecteaz LAN-uri. Se poate desfura n
ntregime n cadrul unei ri sau poate s fie interconectat pe tot globul.
Infrastructura Internetului
Am spus c istoria Internetului a nceput odat cu ARPAnet, dar uitm istoria de dou
secole a telegrafului care a condus la dezvoltarea primelor reele de comunicaie.
Primele forme de trimitere a mesajelor la distan au fost vizuale i acustice. Semnalele
de fum ziua i focurile noaptea au fost folosite de vechile popoare din China, Egipt, Grecia i
America.
Sistemele vizuale au avut o mai mare acoperire dect cele bazate pe sunete (tobe,
clopote) fiind stimulate i de descoperirea telescopului (secolul al XVII-lea). n 1791, inginerul
francez Claude Chappe a inventat semaforul, un sistem optic de telegrafie care putea transmite
mesaje de pe un deal pe altul utiliznd telescopul.

Fig.2.


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page10
El a fost i cel care a folosit termenul de telegraf, combinnd cuvintele greceti tele
distan i graphien scriere. Dezavantajul sistemului a fost dependena acestuia de condiiile
atmosferice i de folosirea unui numr mare de operatori.
Dezvoltarea electricitii a scos sistemul de pe pia. Un telegraf electric a fost dezvoltat
i patentat n SUA n 1837 de ctre Samuel Morse. Telegraful s-a rspndit foarte repede i o
reea de srme se ntindea n ntreaga lume. n 1866 s-a instalat un cablu transatlantic.


Fig.3.

Reeaua de telegraf a reprezentat infrastructura fizic pe care s-a aezat Internetul.

Dimensiunea Internetului
Ct de mare este Internetul? Pare o ntrebare simpl pn ncerci s rspunzi. Una dintre
probleme ar fi c Internetul este un sistem distribuit i nu centralizat (acesta fiind i unul din
motivele conceperii lui).
Conform internetworldstats.com n iunie 2010 existau 1.9 miliarde de utilizatori, la care
putem aduga 80 milioane servere, 700 000 de pagini web adugate n fiecare minut, etc.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page11


Fig.4.

Reprezentarea datelor
Calculatoarele reprezint datele reducnd toate simbolurile sau cuvintele n iruri de
numere binare. Starea de conducie ntr-un circuit semiconductor reprezint 1, iar cnd nu este n
conducie zero; n mediul magnetic, un fascicul magnetizat reprezint 1 cnd cmpul magnetic
este ntr-o direcie i zero cnd este n alt direcie.
Unitatea de baz de memorare a informaiei se numete bit (Binary DigIT). Altfel spus,
bitul nu este dect starea de nchis deschis dintr-un circuit.
n 1964 proiectanii calculatorului IBM System au stabilit drept convenie folosirea
grupurilor de 8 bii ca unitate de baz a memoriei calculatorului. Astfel a aprut octetul sau byte-
ul (1 Kilo octet (KB) = 2
10
octei, 1 Mega octet (MB) = 2
20
octei (bytes) ).
Un sistem de numeraie este format din totalitatea regulilor de reprezentare a numerelor
cu ajutorul unor simboluri numite cifre. Se numete baza sistemului de numeraie numrul total
de cifre distincte utilizate ntr-un sistem de numeraie.
Datele sunt reprezentate n calculator numai n sistem binar, sistemele octal, zecimal,
hexazecimal fiind notii folosite de ctre programatori pentru scurtarea notaiilor prea lungi care
ar rezulta n cazul reprezentrii n binar a numerelor mari.
Ex. S se converteasc numrul N=779 din baza 10 n baza 2 i 16.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page12
B10->B2 779
(10)
= 1100001011
(2)
779 2 1 2 1
2 0 2 1 2 0 2 0
2 0 2 0 2 1 2 1
0 1
2 3 4 5
6 7 8 9
= + +
+ + + + +
+ + + +

B10->B16 779
(10)
= 30B
(16)
779 16 ) 11 (
16 0 16 3
0
1 2
= +
+ +
B

1 0 2 1
1 1 2 3
0 3 2 6
0 6 2 12
0 12 2 24
0 24 2 48
1 48 2 97
0 97 2 194
1 194 2 389
1 389 2 779
+ =
+ =
+ =
+ =
+ =
+ =
+ =
+ =
+ =
+ =


3 0 16 3
0 3 16 48
11 48 16 779
+ =
+ =
+ =



Adresele IP
Fiecrui calculator conectat la Internet i este atribuit un numr unic de identificare
cunoscut ca un IP Adress. Acest numr nu este folosit exclusiv de calculatoare, el poate fi folosit
de toate dispozitivele ce aparin de tehnologia informaiei (imprimante, routere, modemuri, etc.).

Fig.5.


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page13
Adresa IP (conform standardului IPv4) se prezint sub forma a patru numere zecimale,
separate de cte un punct. Aceast notare zecimal ne arat, de fapt, adresa ntr-un format pe care
noi l nelegem mai uor. Calculatoarele i alte dispozitive din reea vd aceast adres ca un
flux de 32 de bii, fiecare dintre cele patru pri ale adresei fiind desemnate printr-un octet.
De exemplu, adresa IP 141.85.48.36 va fi folosit de dispozitivele din reea dup cum
urmeaz: 10001101.01010101.00110000.00100100.
Dispozitivele dintr-o reea trebuie s-i poat spune ce parte din adresa IP furnizeaz
informaii despre reeaua de care aparine calculatorul cu o anumit adres i ce parte a adresei se
refer de fapt la calculator sau la nodul n sine. Acest lucru se face prin masca de reea (subnet
mask). Dispozitivele din reea folosesc masca de subreea pentru a masca poriunea din adresa
IP care se refer la reeaua n care se afl calculatorul respectiv.
La nceput, adresele IP se mpreau n 5 clase de adrese, notate de la A la E. mprirea
se fcea n funcie de configuraia binar a primului octet al adresei:
Clasa Primul octet n binar Prima adres Ultima adres Observa ii
A 0xxxxxxx 0.0.0.1 127.255.255.255 folose te 8 bi i pentru re ea i
24 pentru sta ia de lucru
B 10xxxxxx 128.0.0.0 191.255.255.255 folose te 16 bi i pentru re ea i
16 pentru sta ie
C 110xxxxx 192.0.0.0 223.255.255.255 folose te 24 bi i pentru re ea i
8 pentru sta ie
D 1110xxxx 224.0.0.0 239.255.255.255 folosit pentru adresarea de tip
multicast
E 11110xxx 240.0.0.0 255.255.255.255 utilizat n scopuri experimentale

Aceast metod risipea ns multe adrese IP, iar odat cu rspndirea Internetului a aprut
pericolul epuizrii spaiului de adrese (2
32
). Pentru a elimina aceast problem au fost concepute
mai multe soluii:
- adrese private;
- subreelele;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page14
- IPv6 acesta este un protocol dezvoltat pentru a nlocui IPv4. Adresele au o lungime de
128 bii (16 octei) ceea ce este considerat suficient pentru o perioad. Teoretic exist 2
128

~3.4 10
38
adrese unice. Adresele IPv6 sunt scrise de cele mai multe ori sub forma a 8
grupuri de cte 4 cifre hexazecimale, fiecare grup fiind separat de 2 puncte:
2001:0000:5EF5:73BA:2452:1B25:72AA:CFDB

DNS (Domain Name System)
Utilizatorii prefer s foloseasc pentru adresare nu coduri numerice ci notaii simbolice,
nume, care pot fi inute minte mai uor. Un sistem de nume pentru adrese este folosit ca o carte
de telefon, cunoscnd numele persoanei se poate afla numrul de telefon. n felul acesta numele
reprezint un corespondent al adreselor numerice asigurnd utilizatorului o form mai
convenabil de adresare.
Sistemul de nume folosit pentru adresare n Internet se numete Domain Name System
(DNS) i este organizat pe domenii. Adresa numeric corespunztoare unui nume se gsete cu
ajutorul unui server de nume ce pstreaz corespondena nume adres numeric.
Un domeniu poate s conin, la rndul su, mai multe niveluri, subdomenii.
www.elth.pub.ro 141.85.254.48
n internet exist domenii dedicate (standardizate). Iat cteva dintre ele:
- .com folosit de companiile comerciale la nceput. Cu timpul extensia a nceput s fie
folosit pe scar larg de site-uri cu orice profil;
- .net vine de la network i se folosete n general pentru site-uri avnd ca domeniu de
activitate internetul i niele aferente;
- .org prescurtare pentru organizaie i se presupune c l folosesc doar organizaiile non-
profit;
- .mil organizaiile militare;
- .gov domeniul guvernamental;
- .edu organizaiile educaionale;
- .ro, .es, .us, .at, .uk domenii folosite de anumite ri ca i domenii naionale;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page15
- .biz, .info, .name, .pro sunt extensii de domenii adugate ulterior datorit faptului c au
rmas puine nume de domenii inteligibile.

Protocoalele Internetului
TCP/IP (Transfer Control Protocol/Internet Protocol) conine o serie de protocoale
membre care formeaz suita TCP/IP. Unele protocoale se ocup de accesul la reea, altele de
transportul de date i de adresarea logic a pachetelor de date cnd acestea sunt rutate printr-o
reea. TCP/IP asigur transmisia de date i corectarea erorilor, permite transferul de date de la un
calculator conectat la Internet la altul.
TCP descompune informaia n mai multe piese mici, numite pachete. Fiecare pachet este
introdus n cte un plic (IP Internet Protocol) ce conine adresa IP a destinatarului. Un router
primete pachetele i determin cea mai eficient cale de urmat pentru a ajunge la destinaie.
Dup ce au strbtut mai multe routere i ci, pachetele ajung la destinaie unde TCP verific
integritatea datelor din fiecare pachet. Dac se gsete o eroare, se trimite o cerere pentru a
retransmite pachetul respectiv.
FTP (File Transfer Protocol) reprezint un set de reguli (protocoale) pentru a copia un
fiier de pe un calculator conectat la Internet pe altul. Fiierele care pot fi transferate prin FTP se
gsesc pe servere de FTP. Un program client de FTP este o interfa care permite utilizatorului s
localizeze fiierul dorit i s iniieze transferul lui.
HTTP (HyperText Transfer Protocol) protocolul de transfer al hypertextului
definete formatul i transmisia mesajelor utilizate de serverele web i de browserele web.
Conceptul de baz n definirea hypertextului este legtura (link-ul), fie n cadrul aceluiai
document, fie ctre alt document. Un sistem hypertext permite autorului su s creeze aa numite
noduri i s le lege ntre ele, iar unui utilizator navigarea de la un nod la altul.
Termenul World Wide Web numit scurt i web este un sistem de documente i informaii
de tip hypertext care pot fi accesate prin reeaua Internet. Documentele care se afl n diferite
locaii pe diverse calculatoare-server, pot fi gsite cu ajutorul unui URL (Uniform Resource
Locator). Hypertextul este prelucrat cu un program de navigare numit browser care descarc
paginile web de pe un server web i le afieaz pe un terminal.
TELNET este protocolul care v permite s conectai un calculator local la un calculator
sau dispozitiv aflat ntr-un alt amplasament.
SMTP (Simple Mail Transport Protocol) protocol ce ofer servicii de pot
electronic.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page16
RIP (Routing Information Protocol) este un protocol utilizat de rutere pentru a stabili
traseul cel mai bun pentru pachetele cu informaii.


Motoare de cutare
Un motor de cutare este un program care acceseaz Internetul n mod automat i
frecvent i care stocheaz titlul, cuvinte cheie i parial chiar coninutul paginilor web ntr-o baz
de date. n momentul n care un utilizator apeleaz la un motor de cutare pentru a gsi o
anumit fraz sau cuvnt, motorul de cutare se va uita n aceast baz de date i n funcie de
anumite criterii de prioritate va crea i va afia o list de rezultate.



POTA ELECTRONIC

Pota electronic sau e-mail-ul reprezint modalitatea electronic de coresponden prin
care una sau mai multe persoane schimb mesaje n format text, eventual cu ataare de fiiere
(grafice, audio etc.) ntr-o reea.
E-mail-ul se bazeaz pe tehnologia client-server.
Programul client faciliteaz interaciunile dintre utilizator i serverul de e-mail i poate fi:
- gen aplicaie instalat pe computerul utilizatorului (Microsoft Outlook, Eudora, .a.);
- gen pagin web apare n fereastra unui browser web (Yahoo mail, Gmail, Hotmail, etc).
Funciile clientului de email includ abiliti de a crea noi mesaje, afiarea i salvarea
mesajelor primite, gestionarea listelor de adrese, calendare, etc.
Serverele de e-mail funcioneaz pe baza a ctorva protocoale din suita TCP/IP:
- SMTP (Simple Mail Transfer Protocol) scopul protocolului este acela de a transfera
mesajele de la un calculator expeditor la un calculator destinatar (server SMTP).

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page17
Internetul nu este un mediu n care toate calculatoarele sunt online tot timpul. A trebuit s
se dezvolte un protocol n care mesajele s poat fi pstrate pe un server pn cnd un
anumit utilizator se conecteaz pentru a-i recupera mesajele POP3;
- POP3 (Post Office Protocol) serverul POP3 funcioneaz precum o cutie potal. El va
avea o conexiune permanent la Internet, care i va permite s accepte i s pstreze
mesajele destinate clienilor care folosesc serverul. n momentul n care clientul se
conecteaz, toate mesajele de pot electronic sunt eliminate de pe server i descrcate
pe calculatorul client.
- IMAP (Internet Message Access Protocol) serverele IMAP nu descarc imediat pe
clientul IMAP toate mesajele disponibile atunci cnd clientul se conecteaz. El trimite o
list cu mesajele n ateptare i cu cele vechi, ele fiind ptrate pe server. IMAP este util
atunci cnd un cont de pot electronic poate fi accesat de pe mai multe calculatoare sau
dispozitive.
O adres de e-mail are dou pri: nume_utilizator@nume_domeniu.
Prima parte conine identificatorul utilizatorului, dup cum este el nregistrat pe serverul
unde este creat csua potal, iar a doua parte reprezint informaiile de identificare n internet
a serverului pe care este csua potal (dragos.niculae@upb.ro).
E-mailul este un mesaj format din trei zone distincte:
- antetul (header);
- corpul (body);
- semntura (signature).

Antetul este o secven standard de informaii cu care ncepe mesajul potal:
- autorul (From) definete expeditorul i va conine o adres e-mail ce trebuie folosit
dac se dorete trimiterea unui rspuns la mesaj;
- destinatarul (To) definete destinatarul mesajului prin adresa de e-mail (din fericire,
programele actuale ne permit s exprimm adresa i sub o form mai inteligibil, adic
scriind n clar numele persoanei, dac aceasta exist n lista de adrese). De remarcat c
aici pot fi trecute mai multe adrese de e-mail separate prin virgul, efectul fiind acela c
mesajul este transmis tuturor celor din list;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page18
- copie la indigo (Cc) este prescurtarea de la Carbon copy, locul unde putem scrie
adresele persoanelor care vrem s primeasc o copie a mesajului. Persoanele ale cror
adrese sunt trecute n cmpul Cc se mai numesc i destinatari secundari;
- copie confidenial (Bcc) este prescurtarea de la Blind carbon copy. Ca i n cazul
precedent, cmpul poate cuprinde adresele unor destinatari secundari. Diferena fa de
copia simpl const n faptul c destinatarii primari i secundari ai mesajului nu vor ti c
mesajul este recepionat de aceti corespondeni;
- trimis (Sent) afieaz data i ora transmisiei mesajului;
- subiectul (Subject) locul unde este descris pe scurt coninutul mesajului.
Corpul este mesajul propriu-zis. Marea majoritate a aplicaiilor de pot electronic au
propriul editor de texte cu care poate fi scris mesajul, iar ultimele versiuni de programe
permit inserarea n mesaje a informaiilor reprezentate n format multimedia i a secvenelor
HTML, la fel ca n orice pagin web.
Semntura este o secven standard de informaii (nume autor, afilierile, date de contact)
care se adaug la sfritul mesajului potal. Toate aceste informaii pot fi nregistrate ntr-un
fiier i adugate automat la sfritul mesajului.
n linii mari, un client de e-mail trebuie s permit:
- s comunicm cu serverul;

Fig.6.


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page19
- s vizualizm mesajele pe care le primim;
- s compunem mesajele pe care le expediem;
- s rspundem la mesajele primite comand disponibil cnd citim un mesaj sau cnd
am selectat un mesaj dintr-unul dintre dosarele tematice. Rezultatul comenzii este
lansarea compunerii unui nou mesaj, completndu-se automat anumite cmpuri ale
antetului;
- s trimitem acelai mesaj mai multor destinatari;
- s retransmitem corespondena (citete i d mai departe) se genereaz un mesaj n
corpul cruia este citat ntregul mesaj original, iar subiectul este prefixat cu FW
(Forward);
- ataarea fiierelor posibilitatea de a ataa unui mesaj fiiere de orice fel.
Dup o perioad de folosire intensiv a potei electronice, numrul mesajelor primite i
trimise crete i gestionarea contului devine dificil. Acest aspect este bine cunoscut de
productorii de programe client de e-mail i avem la dispoziie diferite posibiliti de organizare.
Soluia de baz o reprezint crearea unor directoare n care putem plasa aceste mesaje.
Coninutul unui director este vizualizat sub form de tabel, cu un mesaj pe fiecare rnd.
Cele mai multe programe dispun de cteva directoare predefinite. Astfel, exist
ntotdeauna un director unde sunt automat plasate noile mesaje primite (Inbox), un director unde
sunt plasate copii ale mesajelor trimise (Outbox) i un director pentru ciorne, cu mesaje
neterminate care vor fi trimise mai trziu (Draft). n fine, un alt director predefinit este cel n
care se pstreaz mesajele pe care le-am ters (Deleted Items Trash). Este bine de tiut c
mesajele pe care le tergem mai sunt disponibile pn cnd le tergem definitiv (Empty trash).
n afar de directoarele predefinite, avem posibilitatea de a ne crea propriile directoare,
specifice activitilor pe care le desfurm.
Spamming-ul (spam) este procesul de expediere a mesajelor electronice nesolicitate, de
cele mai multe ori cu caracter comercial, de publicitate pentru produse i servicii dubioase.
Detalii legale referitoare la spam sunt prevzute n Legea 506/2004 privind prelucrarea
datelor cu caracter personal i protecia vieii private n sectorul comunicaiilor electronice.
Spamming-ul este o metod foarte ieftin de a face reclam n Internet, succesul
campaniei este de obicei proporional cu numrul de destinatari, de aceea mesajul respectiv este
transmis la mii de adrese simultan.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page20
Adresele de e-mail sunt colectate automat, n cea mai mare parte a cazurilor, deoarece
spam-ul apare imediat dup ce adresa de e-mail a fost folosit n spaiul public al Internetului.
Exist cteva modaliti prin care v putei proteja de spam:
- Mascai-v adresa de e-mail implic introducerea unui cuvnt sau grup de cuvinte care
va pcli un program de colectare a adreselor dar nu i o persoan
(nume@spamaway.upb.ro).
- Folosii un nume pentru discuiile online diferit de cel al adresei de e-mail.
- Creai-v adrese de e-mail de care v putei debarasa ulterior.
- Folosii servicii de e-mail care au n sistem mecanisme de protecie mpotriva spamului.
- Creai-v adrese de e-mail folosind att litere ct i cifre anumite programe folosesc
cuvinte din dicionar n cutarea i colectarea de adrese.



INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page21


CURS 2
Limbajul HTML


Ce este HTML?
Unul dintre primele elemente fundamentale ale World Wide Web (www) este HTML
(HyperText Markup Language), care descrie formatul primar n care documentele sunt distribuite
i vzute pe Web.
HTML a fost dezvoltat iniial de Tim Berners Lee la CERN n 1989 fiind vzut ca o
posibilitate pentru fizicienii care utilizau computere diferite s schimbe ntre ei informaie
utiliznd Internetul. Erau necesare cteva trsturi:
independena de platform nseamn c un document poate fi afiat n mod
asemntor pe calculatoare diferite;
posibiliti hypertext;
structurarea documentelor.
Hypertext nseamn c orice cuvnt, fraz, imagine sau al element al documentului vzut
de utilizator poate s fac referin la un alt document, ceea ce uureaz mult navigarea ntre
documente multiple sau chiar n interiorul aceluiai document.
Tim Berners Lee a utilizat ca model SGML (Standard Generalized Markup Language),
un standard internaional n plin dezvoltare. SGML avea avantajul unei structurri avansate i al
independenei de platform. Flexibil, SGML putea fi descris ca o aplicaie pentru descrierea altor
formate. Utilizatorii puteau crea noi formate (DTD Document Type Definitions) care puteau fi
nelese de orice produs SGML pur i simplu prin citirea mai nti a definiiilor noilor formate.
HTML este un DTD, deci o aplicaie a SGML.
Documentele HTML sunt documente n format ASCII i prin urmare pot fi create cu
orice editor de texte. Au fost ns dezvoltate editoare specializate care permit editarea de tipul
WYSIWYG.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page22


Noiuni de baz
Orice document HTML ncepe cu notaia <html> i se termin cu notaia </html>.
Acestea se numesc n literatura de specialitate TAG-uri. Prin convenie, toate informaiile
HTML ncep cu o parantez unghiular deschis < i se termin cu o parantez unghiular
nchis >. TAG-urile (etichetele) dintre aceste paranteze transmit comenzi ctre browser pentru
a afia pagina ntr-un anumit mod. Unele blocuri prezint delimitatori de sfrit de bloc, n timp
ce pentru altele acest delimitator este opional sau chiar interzis.
ntre cele dou marcaje <html> i </html> vom introduce dou seciuni:
seciunea de antet <head> </head>;
corpul documentului <body> </body> - ce cuprinde coninutul propriu-zis al
paginii HTML.
O etichet poate fi scris att cu litere mari ct i cu litere mici. Adic: <HTML> =
<HtMl>=<html>.

Spaii albe
Browserul ignor toate spaiile albe introduse n fiierul HTML.
(ex1.html, ex2.html)
<html><head></head><body>Prima
pagina web </body></html>


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page23
<html> <head>
</head>
<body>
Prima
pagina
web </body>
</html>





Titluri de pagin
Putei ataa un titlu unei pagini Web. Acest titlu va aprea n bara de titlu a
browserului. n acest scop introducei un bloc nou <title></title> n interiorul blocului
<head></head>. Dac blocul <title></title> lipsete, n bara de titlu va aprea
calea i numele fiierului.
(ex3.html)
<html>
<head>
<title>
Acesta este titlul de pagin
</title>
</head>
<body>
Prima pagina web
</body>
</html>



INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page24

ntreruperile de rnd
Browserele ignor caracterul CR/LF. Pentru a obliga browserul s afieze un
element la nceputul rndului urmtor, trebuie s introducei o comand utiliznd
eticheta <br>. Eticheta <br> nu are etichet de nchidere </br>.
(ex4.html, ex5.html)
<html>
<head>
</head>
<body>
Prima restanta
A doua restanta

A opta restanta
</body>
</html>

<html>
<head>
</head>
<body>
Prima restanta <br>
A doua restanta<br>
<br>
A opta restanta <br>
</body>
</html>





INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page25


Text preformatat
Pentru a pstra formatarea utilizat n cursul editrii documentului surs, putem
folosi eticheta <pre></pre>. (ex6.html)
<html>
<head>
</head>
<body>
<pre>
------ ------- | |
| | | | |
--- | | |--|
| | | | |
------ |---- | | |
</pre>

</body>
</html>


Stiluri pentru blocurile de text
- Eticheta <i></i>
Blocul <i></i> este utilizat pentru afiarea textului cu stilul cursiv (italic) (ex7).


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page26
<html>
<head> </head>
<body>
Text normal <i> Text cursiv </i> Text normal
</body>
</html>


- Eticheta <b></b>
Textul din interiorul unui bloc <b>...</b> va fi afiat cu text ngroat (aldin) (ex8).
<html>
<head> </head>
<body>
Text normal <b> Text ingrosat </b> Text
normal
</body>
</html>




- Etichete imbricate
Stiluri de text pot fi imbricate (ex9):

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page27
<html>
<head> </head>
<body>
Text normal, <b> ingrosat, <i> italic
si ingrosat, </b> italic, </i> normal.
</body>
</html>



- Eticheta <big></big>
Textul din interiorul unui bloc <big></big> va fi afiat cu un font mai mare dect
cel current (ex10):
<html>
<head> </head>
<body>
Text normal, <big> mai mare, </big>
<big> <big> mult mai mare, </big>
</big> normal.
</body>
</html>





INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page28
- Eticheta <small></small>
Textul din interiorul unui bloc <small></small> va fi afiat cu un font mai mic dect
cel current (ex11):
<html>
<head> </head>
<body>
Text normal, <small> mai mic, </small>
<small> <small> mult mai mic, </small>
</small> normal.
</body>
</html>


- Eticheta <s></s>
Textul din interiorul unui bloc <s></s> va fi afiat tiat cu o linie (ex12):
<html>
<head> </head>
<body>
Text normal, <s> text taiat, </s> text
normal.
</body>
</html>


- Eticheta <u></u>
Textul din interiorul unui bloc <u></u> va fi afiat subliniat (ex13):

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page29
<html>
<head> </head>
<body>
Text normal, <u> text subliniat, </u> text
normal.
</body>
</html>






- Etichetele <sub> i <sup>
Textul din interiorul unui bloc <sub></sub> va fi afiat ca indice iar textul din
interiorul unui bloc <sup></sup> va fi afiat ca exponent (ex14):
<html>
<head> </head>
<body>
Puterea absorbita de resistor
P<sub>R</sub> = RI<sup>2</sup.
</body>
</html>

Unele dintre stilurile de text sunt considerate depite i se recomand folosirea
tehnologiei CSS (Cascading Style Sheets) n locul lor.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page30

Stiluri logice de text sunt utilizate pentru a preciza o destinaie specific
unui anumit bloc de text (paragraph, titluri, citate etc.).
- Eticheta <p></p>
n cazul unui text mai lung, este recomandat mprirea lui n paragrafe
(<p></p>). Eticheta <p> are un atribut numit align care se utilizeaz la definirea
unui tip de aliniere a textului (left, center, right, justify), valoarea prestabilit fiind left.
Ca s precizai o valoare pentru atributul align, utilizai sintaxa <p
align=center></p> (ex15) :
<html>
<head> </head>
<body>
<p> Acesta este un prim paragraf aliniat
implicit la stanga. </p>
<p align=right> Acesta este un alt
paragraf la care am impus alinierea la
dreapta.</p>
<p align=center> Iar acesta este un
paragraf cu alinierea centrata. </p>
</body>
</html>

- Titlurile
HTML v permite introducerea de titluri ntr-o pagin web, afiarea lor difer de
restul paginii i depinde de browserul utilizat. Exist 6 tipuri de titluri predefinite:
<h1></h1>, <h2></h2>,<h3></h3>,<h4></h4>,<h5></h5>,<h6></h6>,
primul fiind afiat utiliznd cel mai mare font i ngroat. Toate titlurile prezint
atributul align (cu valori posibile: left, right, center, justify) (ex16).

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page31
<html>
<head> </head>
<body>
<h1 align=center> TEORIA CIRCUITELOR
ELECTRICE </h1>
<h2 align=center> Regimuri de
functionare.</h2>
<h3> Regimul de curent continuu. </h3>
<h4> Elemente de circuit. </h4>
<h5> Rezistorul. </h5>
<h6 align=right> Figura 1.</h6>
</body>
</html>






- Citate
Eticheta <blockquote></blockquote> permite introducerea unor citate lungi n
cadrul paginii web. Citatul este afiat pe un rand nou nconjurat de un spaiu alb
suplimentar (ex17).

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page32
<html>
<head> </head>
<body>
Franz Kafka:
<blockquote> Sunt doua pacate
principale din care toate celelalte pacate
se nasc: nerabdarea si
lenea.</blockquote>
</body>
</html>


Eticheta <q></q> este destinat introducerii citatelor n interiorul rndului (fr s
se nceap un rnd nou) (ex18).
<html>
<head> </head>
<body>
Albert Einstein spunea: <q>Pune mana pe
o soba fierbinte un minut si ti se va parea o
ora. Stai cu o fata frumoasa o ora si ti se
va parea un minut. Asta e relativitatea.
</q>
</body>
</html>



- Linii orizontale

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page33
Putem separa diferite pri ale unei pagini web prin linii orizontale folosind eticheta
<hr> (nu necesit o etichet de nchidere). O linie orizontal ncepe pe un rnd nou
i poate avea mai multe atribute:
- align valori posibile left, right, center;
- width dac i atribuim un numr va reprezenta lungimea liniei n pixeli; dac i
atribuim un procent va reprezenta o fraciune din lungimea implicit;
- size reprezint grosimea liniei n pixeli (valoarea implicit 2);
- noshade dac acest atribut este prezent, linia va fi afiat fr umbr (nu 3D);
- color valoarea implicit este black (ex19).
<html>
<head> </head>
<body>
<hr>
<hr align=right width=30% size=7>
<hr align=right width=25 size=5>
<hr align=center color=blue width=10
noshade size=6>
<hr width=35 color=yellow size=8>
<hr align=left color=red size=10
width=50%>
<hr size=5>
</body>
</html>


- Eticheta <div>...</div>
Elementul <div> definete o poriune (o diviziune) a paginii i are mai multe atribute:
- align cu valorile posibile left,right, center, justify;
- title impune afiarea unei sugestii pe ecran atunci cnd mouse-ul rmne timp
de cteva secunde deasupra coninutului;
- style, onclick etc (ex20).

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page34
<html>
<head> </head>
<body>
Si daca...
<div title="De ce nu tai copacul?">
Si daca ramuri bat in geam...
</div>
</body>
</html>


- Elementul <span></span>
Toate observaiile prezentate pentru <div> sunt valabile i pentru elementul <span>,
diferena fiind c <span> este un element inline. (ex21)
<html>
<head> </head>
<body>
Pagina web <br>
<span
title="http://www.electro.pub.ro/">a
Facultatii de Inginerie Electrica este
OK.</span>
</body>
</html>


Culori
Culorile pot fi utilizate pentru a defini un fundal sau un tip de liter. O culoare
poate fi definit prin:
- un nume de culoare. Exist 16 nume de culori standard i implementate de
toate browserele: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy,
olive, purple, red, silver, teal, white i yellow.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page35
- modelul de culoare RGB. Conform acestui model, o culoare poate fi obinut
prin amestecul a trei culori fundamentale: rou (Red), verde (Green) i albastru
(Blue). Sintaxa este #rrggbb unde r,g i b sunt cifre hexazecimale.
Alb este #ffffff un amestec al tuturor culorilor.
Black este #000000 absena oricrei culori.
Verde este #00ff00.


Atributele elementului <body>
Eticheta <body> are dou atribute care se aplic n cazul culorilor.
- bgcolor definete culoarea de fundal a paginii web;
- text definete culoarea textului din pagina web. (ex22)
<html>
<head> </head>
<body bgcolor=red text=#FFFF00>
<b>Acesta este un text galben pe un
fundal rosu.</b>
</body>
</html>








INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page36

Atributele de margine
Browserele utilizeaz atribute de margine diferite: leftmargin, rightmargin, topmargin,
bottommargin, marginwidth, marginheight. Valoarea fiecrui atribut este un numr
ntreg, care reprezint distana n pixeli ntre coninut i marginea ferestrei browserului.
(ex23)
<html>
<head>
</head>
<body leftmargin=150 rightmargin=50
topmargin=0>
In lumea stiintifica creditul ii apartine
celui care convinge lumea si nu celui
caruia ii vine prima data ideea (Darwin).
</body>
</html>


Eticheta <basefont> sau <font>
Browserul va afia textul dintr-o pagin n funcie de parametrii si prestabilii
(size=3, color=black, style=Times New Roman). Aceti parametri pot fi redefinii folosind
eticheta <basefont> sau <font>. Aceste etichete au urmtoarele atribute:
- color definete culoarea literei;
- face definete tipul de liter, avnd valori posibile serif, sans-serif, monospace;
- size definete dimensiunea literei (1,2,...,7 sau +1, +2,...-1,-2).
Elementul <basefont> nu are etichet de nchidere, efectul elementului rmnnd
pn la apariia unui alt element <basefont> sau pn la sfritul paginii web. (ex24)

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page37
<html>
<head>
</head>
<body>
A gresi e omenesc. <font color=navy
size=+3>A da vina pe altcineva este si mai
omenesc. </font>
</body>
</html>



Liste
O list reprezint o serie de articole. ntr-o pagin pot fi inserate mai multe tipuri de
liste:
- Liste fr o ordine specificat
ntr-o astfel de list fiecare articol are acelai simbol introductiv. Articolele vor fi
afiate n ordinea n care au fost introduse. Pentru a insera o astfel de list utilizai
eticheta <ul></ul>, iar pentru a insera un articol n list folosii eticheta <li>. n faa
fiecrui articol din list exist un simbol introductiv care poate fi modificat cu
ajutorul atributului <type> (disc, circle, square). (ex25)

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page38
<html>
<head>
</head>
<body>UPB
<ul type=circle> Facultatile Universitatii
Politehnica sunt:
<li> Facultatea de Inginerie Electrica;
<li> Facultatea de Automatica;
<li> Facultatea de Electronica;
<li> etc.
</ul>
</body>
</html>


- Liste ordonate
ntr-o list ordonat, fiecare articol are un simbol introductiv, secvenial. Pentru a
insera o astfel de list utilizai eticheta <ol></ol>, iar pentru a insera un articol n list
folosii eticheta <li>. n faa fiecrui articol din list exist un simbol introductiv
secvenial care poate fi modificat cu ajutorul atributului <type>. Valorile posibile
sunt:
- 1 pentru cifre arabe (1, 2, 3,) valoare prestabilit;
- a pentru litere mici (a, b, c,);
- A pentru litere mari (A, B, C,);
- i pentru cifre romane scrise cu litere mici (i, ii, iii,);
- I pentru cifre romane scrise cu litere mari (I, II, III,). (ex26)

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page39
<html>
<head>
</head>
<body> <h3>Reteta de gogosi</h3>
<ol type=I> Pasii de lucru:
<li> Se inmoaie drojdia cu laptele;
<li> Se bat ouale cu zaharul;
<li> Se amesteca si se framanta;
<li> Se taie rondele;
<li> Se pun la copt in ulei incins.
</ol>
</body>
</html>


Primul simbol dintr-o list ordonat este 1,a, A, i sau I. Putei modifica acest
parametru prestabilit impunnd o valoare numeric atributului start. (ex27)
<html>
<head>
</head>
<body>
<ol type=I start=10> Ultimele trei luni ale
anului sunt:
<li> Octombrie;
<li> Noiembrie;
<li> Decembrie;
</ol>
</body>
</html>



- Liste ordonate i neordonate imbricate

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page40
Pentru a putea imbrica listele, inserai a doua list ca un element al primei liste.
(ex28)
<html>
<head>
</head>
<body>
<ol type=a> Elementele de circuit sunt:
<li> Rezistorul <ul> Specificatii:
<li> valoare nominala
<li> toleranta
<li> putere nominala
</ul>
<li> Condensatorul <ul> Specificatii:
<li> valoare nominala
<li> toleranta
<li> putere nominala
</ul>
</ol>
</body>
</html>



- Liste de definiii
O list de definiii reprezint o serie de termeni mpreun cu definiiile acestora. Pentru
a insera o astfel de list utilizai eticheta <dl></dl>, iar pentru termenul de definit
eticheta <dt> i pentru descriere eticheta <dd>. (ex29)

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page41
<html>
<head>
</head>
<body>
**********************
<dl> Cateva definitii hazlii:
<dt> Nanosecunda
<dd> Fractiune de timp intre momentul in
care semaforul devine verde si claxonul masinilor
din spate.
<dt> Hardware
<dd> Partea unui calculator pe care o
lovesti cand apar probleme de software.
<dt> Bancher
<dd> Cineva care iti imprumuta umbrela
lui cand afara e soare si o cere inapoi cand
incepe sa ploua.
</dl>
</body>
</html>



Tabele
Orice tabel este compus din:
- un element <table></table> - acesta este cadrul pentru celelalte elemente;
- etichete <tr> - care definesc linii din tabel;
- etichete <td> - care definesc celulele din tabel. (ex30)

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page42
<html>
<head>
</head>
<body>
Un exemplu de tabel:
<table>
<tr> <td>Euro <td>Lira <td>Dolar
<tr> <td>Leu <td>Leva <td>Rubla
</table>
</body>
</html>


Implicit un tabel este afiat fr borduri, aliniat la stnga i pe un rnd nou.
Atributele etichetei <table> sunt:
- border fixeaz bordura tabelului i poate lua valori ntregi pozitive
(reprezentnd grosimea bordurii n pixeli);
- frame v permite s precizai ce pri din bordur vor fi afiate (bellow, hsides,
box);
- rules v permite s precizai modul n care vor fi afiate bordurile pentru
celulele tabelului (groups, rows, cols);
- bordercolor pentru a seta culoarea bordurii unui tabel (red, #0000ff);
- align pentru a preciza poziia tabelului n pagin (left, center, right);
- hspace, vspace v permite s precizai spaiul alb din jurul unui tabel;
- bgcolor stabilete culoarea de fundal, ea putnd fi utilizat pentru ntreg
tabelul (<table>) sau pentru o linie (<tr>) sau pentru o celul (<td>);
- background stabilete o imagine de fundal i poate fi aplicat att tabelului
ct i unui rnd sau unei celule;
Pentru a extinde coninutul unei celule peste coninutul celulelor adiacente se utilizeaz
atributele colspan i rowspan (valorile lor reprezentnd numrul de coloane sau linii
ocupate de celula extins) n cadrul elementelor <td>. (ex31)

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page43
<html>
<head>
</head>
<body>

<table border bgcolor=gray>
<tr>
<td colspan=3 align=center>
<b>Clasament</b>
<tr>
<td rowspan=2 align=right >1.
<td rowspan=2 align=center
background=steaua.jpg> STEAUA
<td>10j
<tr>
<td> 20p
<tr>
<td rowspan=2 align=right >2.
<td rowspan=2 align=center
background=dinamo.jpg> DINAMO
<td>10j
<tr>
<td> 18p
<tr>
<td rowspan=2 align=right >3.
<td rowspan=2 align=center
background=rapid.jpg> RAPID
<td>9j
<tr>
<td> 15p

</table>


Imagini
HTML v permite s inserai imagini, sunete, animaii, filme i alte tipuri de
coninut multimedia ntr-o pagin web. Formatele de imagini acceptate (de
majoritatea browserelor) sunt:

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page44
- GIF (Graphic Interchange Format);
- JPEG (Joint Photographic Experts Group);
- PNG (Portable Network Graphics);
- TIFF (Tagged Image File Format);
- BMP (BitMaP format).
Utiliznd eticheta <img> putem insera o imagine ntr-o pagin web. Eticheta
<img> este un element inline. Un atribut al etichetei este src care definete numele i
locaia fiierului imagine (URL Uniform Resource Locator, reprezint o modalitate
standard de identificare a resurselor n internet i poate fi absolut sau relativ
http://www.pub.ro/images/stories/camine.jpg, /curs/imagini/poza1.jpg). (ex32)
<html>
<head>
</head>
<body>
In primul an studentii Facultatii de Inginerie
Electrica sunt cazati in camine
<img
src=http://www.pub.ro/images/stories/camine.
jpg width=20%><br>
iar dupa sesiune, in functie de numarul
restantelor, li se va schimba locatia.
<img src=campus.jpg width=20%>
</body>
</html>

Alte atribute ale etichetei <img> sunt:

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page45
- align (left, center, right, top, baseline, middle) pentru a stabili alinierea pe
orizontal sau vertical;
- hspace, vspace definesc dimensiunile spaiului alb dintre imagine i coninutul
paginii;
- alt permite s se ataeze o descriere la o imagine. Dac browserul nu poate
descrca o imagine el va afia valoarea atributului alt n locul imaginii. (ex33)
<html>
<head>
</head>
<body>
Gaudeamus igitur,<br>
Juvenes dum sumus;<br>
Post jucundam juventutem,<br>
Post molestam senectutem<br>
Nos habebit humus!<br>
<br>
<img src=diploma.jpg width=50%
alt="SCOPUL SUPREM" align=right
hspace=20>

Vita nostra brevis est,<br>
Brevi finietur,<br>
Venit mors velociter,<br>
Rapit nos atrociter,<br>
Nemini parcetur.<br>
<br>

Vivat academia,<br>
Vivant professores,<br>
Vivat membrum quodlibet,<br>
Vivant membra quaelibet,<br>
Semper sint in flore! <br>

</body>
</html>


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page46

Metadate
Metadatele sunt informaii inserate n antetul <head> pentru descrierea paginii
web i care transmit date motoarelor de cutare. Metadatele nu sunt afiate de ctre
browser. Pentru a insera metadata, se utilizeaz o pereche de atribute: name i
content sau http-equiv i content.
Atributul name este utilizat pentru insera date cum ar fi description (pentru
introducerea unei descrieri), keywords (pentru a defini un set de cuvinte cheie), author
(pentru a aduga informaii despre autor), refresh (pentru a actualiza o pagin n mod
automat, dup un anumit numr de secunde). Atributul content conine datele
propriu-zise.
Pentru a insera un comentariu ntr-o pagin web utilizai sintaxa:
<!-- acesta este un comentariu --> (ex34)
<html>
<head>
<meta name=author content=Dragos
NICULAE>
<meta http-equiv=refresh content="10;
url='http://www.upb.ro/'">
</head>
<body>
<!-- Aici am introdus un comentariu -->
Text scris dupa comentariu!

</body>
</html>

Legturi
Legturile sunt utilizate pentru a face posibil navigarea prin resursele
Internetului. O legtur poate fi inserat folosind eticheta <a>. Resursa din internet
indicat de ctre legtur este precizat de atributul href. Legturile pot fi definite
folosind adrese URL absolute sau relative.
Pentru a defini o legtur la o resurs de pe sistemul local, utilizai file:///.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page47
Pentru a defini o imagine ca legtur, inserai elementul <img> n interiorul
etichetei <a>.
Pentru a defini o legtur la o adres e-mail, utilizai mailto:.
Pentru a naviga n interiorul unei pagini web, utilizai elementul <a> mpreun cu
atributul name.
Pentru a defini fereastra n care va fi ncrcat noua resurs indicat de ctre
legtur, folosii atributul target al etichetei <a>. (ex35, ex36)


<html>
<head>
</head>
<body>
<a href=#p1> Legatura catre
paragraful 1. </a> <br>
<a href=#p2> Legatura catre
paragraful 2. </a> <br>
<a href=#p3> Legatura catre
paragraful 3. </a> <br>
<a
href=file:///E:\Dragos\Facultate\curs-
informatica-
aplicata\curs2\ex36.html>
Legatura catre pagina ex.36. </a>
<br>

<a name=p1>Pargaraf 1</a>
Paragraf 1. Paragraf 1. Paragraf 1.
<br>


</body>
</html>



INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page48
Putei defini legturi ctre orice tip de fiier, nu doar ctre fiiere HTML. Dac
browserul cunoate i poate lucra cu respectivul tip de fiier, el va afia corect fiierul n
fereastra sa. Dac browserul nu cunoate tipul de fiier, el va ncerca s descarce
fiierul pe sistemul client.

Multimedia
Limbajul HTML are capacitatea de a ngloba fiiere multimedia. Browserele
rezolv fiierele multimedia utiliznd programe de completare (plug-in-uri) sau aplicaii
ajuttoare. Tipul unui fiier multimedia este determinat de extensia de nume sau de
tipul MIME ataat (Multipart Internet Mail Extensions organizeaz extensiile de fiiere de
date n tipuri i subtipuri de fiiere(image/jpeg, application/pdf)). Putei crea o legtur
la un fiier multimedia utiliznd elementul <a> mpreun cu atributul href.
O resurs multimedia poate fi nglobat ntr-o pagin web utiliznd elementul
<embed> mpreun cu atributele specifice: src, type, width, height.
O metod general de inserare a oricrui tip de resurse (fiiere multimedia,
controale ActiveX, miniaplicaii Java) const n utilizarea elementului <object>
mpreun cu atributele specifice: data, type, classid, width, height, align, border.
(ex.37)
<html>
<head>
</head>
<body>

<object classid="clsid:8E27C92B-1264-
101C-8A2F-040224009C02"
id="Calendar1">
<param name="BackColor"
value="-2147483633">
<param name="Year"
value="2010">
<param name="Month" value="10">
<param name="Day" value="13">
<param name="DayLength"
value="1">
<param name="MonthLength"


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page49
value="1">
<param name="DayFontColor"
value="0">
<param name="FirstDay" value="7">
<param name="GridCellEffect"
value="1">
<param name="GridFontColor"
value="10485760">
<param name="GridLinesColor"
value="-2147483632">
<param
name="ShowDateSelectors" value="-1">
<param name="ShowDays" value="-
1">
<param
name="ShowHorizontalGrid" value="-1">
<param name="ShowTitle" value="-
1">
<param name="ShowVerticalGrid"
value="-1">
<param name="TitleFontColor"
value="10485760">
<param name="ValueIsNull"
value="0">
</object>

</body>
</html>



Imagini hri
Putei utiliza o imagine hart pentru a defini mai multe legturi ctre diferite
resurse internet. Pentru a declara o imagine ca imagine hart, utilizai eticheta <img>
mpreun cu atributul usemap. Pentru a descrie o hart, utilizai elementul <map>

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page50
mpreun cu atributul name i inserai n el elemente <area> pentru fiecare zon
activ.
Atributul <shape> al etichetei <area> se utilizeaz la definirea tipului de zon
(rect, circle, poly).
Atributul <coords> al etichetei <area> se utilizeaz la definirea coordonatelor
zonei active.
Atributul <href> al etichetei <area> se utilizeaz la definirea adresei URL a resursei
indicate de zona activ.
<html>
<head> </head>
<body>

<img src="vaca.jpg"
usemap="#vaca_id">
<map name="vaca_id">
<area href="ex1.html"
shape=polygon coords="220, 180,
250, 180, 250, 330" title="rasol">
<area href="ex2.html" shape=rect
coords="300, 70, 400,170"
title="antricot">
<area href="ex3.html" shape=circle
coords="500, 150, 100" title="fleica">
</map>

</body>
</html>






INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page51
Formulare
Formularele sunt utilizate pentru transmiterea datelor ctre o aplicaie sau la o
adres de e-mail. Pentru a insera un formular, se utilizeaz elementul <form> mpreun
cu atributele specifice.
Atributul action al elementului <form> stabilete destinatarul datelor transmise de
ctre formular (aplicaie pe partea de server sau adres e-mail). Atributul method al
elementului <form> determin metoda prin care datele sunt transmise de ctre
formular (metoda GET adaug datele la adresa URL, metoda POST transmite datele
ntr-o tranzacie separat.)
Atributul enctype al elementului <form> determin metoda de codificare
utilizat la transmiterea datelor (text/plain utilizat pentru trimiterea datelor prin pot
electronic, multiform/form-data utilizat pentru trimiterea imaginilor sau a altor fiiere
ctre server).
Putei aduga tipuri diferite de elemente de formular preciznd diferite valori
pentru atributul type al elementului <input>: text pentru cmpuri de text, password
pentru parole, checkbox pentru casete de validare, radio pentru butoane radio, file
pentru ncrcarea de fiiere, button pentru butoane generice, submit pentru butoane
de tip transmitere, etc.
Elementul <select> v permite s alegei dintr-o list de opiuni definite cu
elementul <option>.
<html>
<head> </head>
<body>

<form name="f1" method="POST"
enctype="text/plain"
action=mailto:dragos.niculae@upb.ro>

Nume: <input type="text" name="nume">
<br>
Prenume: <input type="text"
name="prenume"> <br>
Sex: <select name="sex">
<option value="1">Masculin</option>
<option


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page52
value="2">Feminin</option></select>

Click pentru trimitere: <input
type="submit">
</form>

</body>
</html>


Cadre
Cadrele sunt utilizate pentru afiarea simultan a mai multor pagini web n
aceeai fereastr de browser.
Cadrele se definesc utiliznd elementul <frame> n interiorul etichetei
<frameset>, care nlocuiete elementul <body>.
Atributele cols i rows ale elementului <frameset> v permit s mprii fereastra
browserului n cadre verticale i orizontale.
Elementul <frameset> are i alte attribute, cum ar fi border (ataeaz o bordur),
bordercolor (atribuie o culoare bordurii), frameborder (stabilete vizibilitatea bordurilor).
Elementul <frame> are atribute similare, cum ar fi bordercolor i frameborder, pe
lng acestea ar mai fi marginheight i marginwidth (care definesc spaiul alb dintre
coninut i marginile cadrului), noresize (dezactiveaz redimensionarea cadrelor cu
ajutorul mouse-ului), scrolling (ataeaz bare de derulare) i src (definete adresa URL a
paginii care va fi ncrcat n respectivul cadru).

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page53
<html>
<head> </head>

<frameset cols="210,*,20%"
frameborder ="yes">
<frame src="ex16.html" scrolling="yes"
noresize>
<frameset rows="100,*" >
<frame src="ex28.html"
scrolling="yes">
<frame src="ex26.html"
scrolling="yes">
</frameset>
<frame src="ex31.html">
</frameset>
</html>






Introducere n CSS
CSS nseamn Cascading Style Sheets (foi de stil n cascad) i v permite s
mbuntii prezentarea unei pagini web.
O foaie de stil const ntr-o serie de reguli. O regul este definit de un selector
(care precizeaz unde se aplic regula) i o declaraie. Declaraia este o serie de
perechi proprietate:valoare.
Pentru a defini un stil in-line, precizai proprietatea style a unui element HTML.
Pentru a defini un stil n interiorul unui document HTML, utilizai un element <style> plasat
n interiorul etichetei <head>. Pentru a defini un stil ntr-un fiier extern, creai o foaie de
stil i, utiliznd un element <link> plasat n interiorul elementului <head>, cerei
browserului s afieze documentul care face referire la foia de stil.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page54
Atributele obligatorii pentru elementul <link> sunt: rel cu valoarea stylesheet,
type cu valoarea text/css i href care are ca valoare adresa URL a fiierului care
conine foaia de stil.
<html>
<head> </head>
<body>

<h3 style="font-size:24pt; font-
style:italic"> Un titlu de 24 italic.</h3>
<img src="vaca.jpg" width=250 style=
"cursor:move>

</body>
</html>

<html>
<head> <style>
p {font-size:18pt; background:red}
ol {background : yellow; color : green}
</style>
</head>
<body>
<p>Acesta este un paragraf formatat.

<ol>Urmeaza o lista ordonata
<li>ala
<li>bala
<li>portocala</ol>

</body>
</html>


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page55
<html>
<head>

<LINK REL= "stylesheet" TYPE= "text/css"
HREF= "stil.css">
<title>Pagina de text stilizat</title>
</head>

<body>

<p>Acesta este un paragraf</p>

<table width="100%" border="1">
<tr>
<td align="left">Nume</td>
<td align="left">Prenume</td>
<td align="left">Telefon</td>
<td align="left">E-mail</td>
<li>Program dupamiaza</li>
.

</ul>
</body>
</html>









INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page56


CURS 3

Managementul datelor.
Sisteme de gestiune a bazelor de date


Ce este o baz de date?

n general, bazele de date sunt percepute ca nite depozite uriae
informaionale n care sunt introduse tot felul de cifre, caractere, texte, imagini etc., cu
scopul de a putea fi regsite ulterior, ordonate i grupate n funcie de nevoile
utilizatorilor.
Avantajele organizrii informaiilor n baze de date decurg din existena
unui fiier de descriere global a bazei de date, denumit dicionar de date sau catalog
de sistem. Extragerea i modificarea datelor, sau altfel spus lucrul cu fiierele de date se
deruleaz prin intermediul dicionarului n care se gsesc informaii privitoare la
structura datelor i restriciile ndeplinite de acestea.
O baz de date este un fiier sau un grup de fiiere n care este nregistrat
o mulime centralizat de date organizat, n scopul prelucrrii acestora n contextul
unui set de aplicaii.
Atunci cnd vorbim despre o baz de date, trebuie avute n vedere dou
aspecte fundamentale ale acesteia, schema i coninutul. Organizarea bazei de date
se reflect n schema sau structura sa, ce reprezint un ansamblu de instrumente
pentru descrierea datelor, a relaiilor dintre acestea, a semanticii lor i a restriciilor la
care sunt supuse. Ansamblul informaiilor stocate n baz la un moment dat constituie

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page57
coninutul, instanierea sau realizarea acesteia. n timp ce coninutul prezint o evoluie
spectaculoas n timp, schema unei baze rmne relativ constant pe tot parcursul
utilizrii acesteia. Corespunztor celor dou aspecte complementare schem /
coninut, limbajele de programare dedicate bazelor de date se mpart n limbaje de
definire a datelor (DDL Data Definition Language) i limbaje de manipulare a datelor
(DML Data Manipulation Language).


Nevoia de baze de date.

Folosim bazele de date deoarece avem memoria prea scurt, trim ntr-o lume plin
de hrtii i hroage i ne este aproape imposibil s reconstituim ceea ce am fcut n
urm cu 5 zile sau 5 ani.

nc de la nceputuri, informatica nu s-a confruntat numai cu efectuarea
de calcule sofisticate, tiinifice, ci i cu stocarea i gestionarea unui volum de informaii
din ce n ce mai mare. Astfel, apariia unor instrumente software dedicate gestiunii i
prelucrrii datelor a fost doar o problem de timp.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page58
Prin urmare, avem nevoie de baze de date pentru a pstra, ntr-un format
utilizabil, date i informaii legate de evenimente, tranzacii etc., i, la nevoie, de a le
regsi i de a le prelucra dup cum ne cer mprejurrile.
nainte de folosirea bazelor de date, datele erau organizate n fiiere
independente flat files. Specific acestui mod de lucru este faptul c fiecare dat este
descris autonom, n toate fiierele n care apare. Mai mult, descrierea fiecrui fiier de
date (cmpurile care-l alctuiesc, tipul i lungimea fiecruia) este obligatorie n toate
programele care l citesc sau modific.
Se pot desprinde cteva dezavantaje ale organizrii datelor dup modelul
fiierelor independente:
- redundana i inconsistena datelor o aceeai dat apare n mai multe fiiere;
exist riscul modificrii acesteia ntr-un fiier fr a face modificrile n toate
celelalte fiiere;
- dificultatea accesului nu faciliteaz accesul datelor dup mai multe criterii,
specifice diferiilor utilizatori sau grupuri de utilizatori;
- izolarea datelor cnd datele sunt stocate n formate diferite, este dificil de scris
programe care s realizeze accesul ntr-o manier global;
- problemele de securitate in de dificultatea crerii unui mecanism care s
protejeze pe deplin datele din fiiere de accesul neautorizat;
- inflexibilitatea fa de schimbrile ulterioare, ce sunt inerente oricrui sistem
informaional.

Sisteme de gestiune a bazelor de date

Sistemele de gestiune a bazelor de date reprezint un ansamblu de
programe ce permit utilizatorilor s interacioneze cu o baz de date n vederea crerii,
actualizrii i interogrii acesteia.
Principalele funcii ale unui SGBD vizeaz:
- descrierea ansamblului de date la nivel fizic i conceptual;
- crearea (iniializarea) i exploatarea (consultarea i actualizarea) bazei de date;
- controlul integritii bazei;
- confidenialitatea informaiilor coninute n baz;
- accesul simultan al mai multor utilizatori la informaii;
- securitatea n funcionare;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page59
- furnizarea unui set de comenzi i instruciuni, necesare att utilizatorilor pentru
consultarea direct a bazei, prin intermediul unui limbaj de manipulare, ct i
programatorilor, pentru redactarea programelor de lucru cu baza de date;
- revizia i restructurarea bazei.

Structura unui SGBD

Structura unui SGBD poate fi reprezentat astfel:
- Interfa (user interface) asigur interfaa ntre utilizator i motorul bazei de
date. Pot fi interfee tip linie de comand, interfee grafice.
- Motorul BD (Database Engine) realizeaz operaiile de gestionare a
informaiilor stocate n baza de date:
o Structura bazei de date:
Crearea/ modificarea/ tergerea tabelelor;
Crearea/ modificarea/ tergerea indecilor.
o Operaii asupra datelor:
Inserarea datelor;
Modificarea datelor;
tergerea datelor;
Controlul integritii refereniale;
Interogri.
- Datele (Data Store) aici sunt stocate datele din BD.


Tipuri de SGBD

Putem mpri sistemele de gestiune a bazelor de date n dou categorii:
- baze de date monolitice motorul bazei de date i interfaa se afl pe acelai
sistem de calcul;
- baze de date client-server unde clientul poate fi: client greu un program
dedicat, specific bazei de date; client uor un browser care interacioneaz
cu baza de date prin intermediul unei interfee software.



INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page60
Modele de organizare a datelor n BD

Nucleul unei baze de date l reprezint dicionarul de date ce conine
structura bazei. Analiza, proiectarea i implementarea structurii bazei de date se
realizeaz utiliznd un model de date, ce reprezint un ansamblu de instrumente care
permit descrierea datelor, a relaiilor dintre ele precum i a restriciilor la care sunt
supuse.
Modelul ierarhic primele SGBD uri lucrau cu baze de date ierarhice.
Structura datelor este prezentat sub forma unui arbore. Un nod-tat poate avea mai
multe noduri-fii. Un fiu nu poate exista independent de tatl su.
Modelul reea este o dezvoltare a modelului ierarhic, cu ajutorul cruia se
pot reprezenta i situaiile n care un fiu posed mai muli tai. nregistrrile sunt privite
ca o colecie de grafuri.
Modelul relaional a fost urmtorul n ordinea cronologic i rmne cel
care domin piaa bazelor de date. O baz de date relaional este alctuit din
relaii (tabele) aflate n legtur. Stabilirea legturii se bazeaz pe mecanismul cheii
strine i a restriciei refereniale.
Modelul obiectual model ce i are originile n programarea orientat pe
obiecte.
Modelul relaional-obiectual este un model mai recent ce ncearc s
valorifice deopotriv avantajele relaionalului i ale orientrii pe obiecte.

Algebra relaiilor

Restricie (selecie) selectarea acelor nregistrri care satisfac anumite criterii de
selecie.



INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page61





Proiecie Selectarea anumitor cmpuri din toate nregistrrile.








Produs cartezian concatenarea tuturor nregistrrilor din primul tabel cu toate
nregistrrile din cel de al doilea tabel.

A 1
A 1 => A 2
B 2 B 1

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page62
C B 2
C 1
C 2

Join combinarea ntre produsul cartezian i restricie.

1 A 1 M 1 A M
2 B 2 N => 2 B N
1 C 3 P 1 C M
3 D 4 Q 3 D P



Uniune reunirea ntr-un singur tabel a tuturor nregistrrilor din cele dou tabele.



=>



INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page63

Intersecie extragerea nregistrrilor comune din dou tabele.



=>



Diferena extragerea nregistrrilor dintr-un tabel care nu se gsesc n cel de-al doilea.



=>



Utilizarea aplicaiei Access

Tabele

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page64
Obiectele cele mai importante, memorate ntr-o baz de date sunt
tabelele bazei. n accepiunea programului Access, un tabel este format dintr-un
numr de linii (rnduri) i dintr-un numr de coloane. Prima linie a tabelului are un rol
special, ea este linia de antet a tabelului. Fiecare celul a liniei de antet conine un
nume de cmp. Celelalte linii ale tabelului sunt nregistrrile tabelului. Fiecrui nume de
cmp i este asociat un tip de dat i o dimensiune, exprimat n octei. Numele trebuie
s fie uor de inut minte precum i descriptiv, pentru a putea recunoate
funcionalitatea cmpului dup numele su. Access permite utilizarea a maxim 64 de
caractere pentru numele cmpului.
De asemenea, trebuie ales tipul de dat memorat pentru fiecare cmp n parte. n
Access se pot folosi urmtoarele tipuri de date:
- Text caractere alfanumerice; pn la 255 de caractere;
- Memo caractere alfanumerice; iruri de pn la 64000 de caractere;
- Number valori numerice de diferite tipuri i formate;
- Date/Time formate de dat;
- Currency date monetare;
- AutoNumber contor numeric incrementat automat;
- Yes/No valori logice;
- OLE object fiiere audio, video, foi de calul tabelar.
Lookup Wizard nu este chiar un tip de dat ci o modalitate de a memora un cmp ntr-
un anumit fel i de a afia valori asociate din alt tabel.

Validarea datelor devine important cnd populai baza de date. Se dorete ca
numai anumite date s intre n sistem date ce trec anumite teste definite. Se pot
forma diferite teste de validare a datelor (date dintr-o list predefinit sau valori ntr-un
anumit interval de valori).

NumeCmp1 NumeCmp2 ... NumeCmpN
Inreg.1
Inreg.2
...

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page65
Inreg.M


Unui tabel i pot fi adugate nu numai articole noi, ci i cmpuri noi, iar unele cmpuri
pot fi desfiinate, structura tabelului putnd fi modificat (n cazul modificrii structurii
unui tabel, interogrile, formularele i rapoartele care se bazeaz pe tabelul
reproiectat trebuie refcute!).



O baz de date poate conine mai multe tabele. Aceste tabele sunt, de regul, tabele
asociate (ntre ele exist o anumit relaie). Astfel, un prim tabel poate s conin
informaii referitoare la modelele de autoturisme achiziionate, un alt tabel poate
conine informaii despre datele tehnice ale autoturismelor, iar un al treilea tabel poate
conine informaii referitoare la oferii repartizai autoturismelor.

Interogri
Interogrile servesc la selectarea pe baza anumitor criterii a anumitor
articole din tabele sau alte interogri. Articolele selectate pot fi afiate ntr-o ordine
stabilit de utilizator. Exist posibilitatea combinrii datelor provenite din mai multe
tabele asociate, rezultatele interogrii putnd fi vizualizate ntr-o singur fereastr.
Programul Access permite editarea datelor afiate ntr-o interogare, modificrile
efectuate fiind salvate n tabelul care a furnizat datele.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page66

n acest exemplu, am
selectat autoturismele
cumprate dup 01-01-
1990.


Formulare
Formularele servesc n primul rnd pentru a facilita introducerea articolelor
unui tabel, cu ajutorul unui ablon vizibil pe ecran. Folosindu-le, este posibil i
navigarea ntre articolele deja introduse i editarea articolelor. Formularele pot afia
cte un singur articol odat, n ordinea definit de utilizator. Programul Access
realizeaz o nlnuire ntre formular i tabel, informaia tastat n formular va fi
memorat n tabelul aferent formularului. Exist posibilitatea utilizrii unui singur formular
pentru a introduce articole, simultan, n mai multe tabele.
Formularele sunt nzestrate cu o bar de instrumente, prevzute cu
butoane de comand pentru parcurgerea articolelor deja introduse, precum i cu un
buton pentru introducerea unui articol nou. Pe bar se afieaz numrul articolului
actual precum i numrul total de articole.




INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page67
Rapoarte

Rapoartele servesc la extragerea datelor din tabele i interogri i trimiterea
lor la imprimant sau n vederea afirii pe ecranul monitorului. Articolele imprimate pot
fi grupate i sortate. Rapoartele pot conine antete i subsoluri de pagin (afiate la
nceputul i la sfritul fiecrei pagini, n care pot fi introduse, de exemplu, nume de
cmpuri, numrul paginii curente) precum i un antet i un subsol de raport (afiate pe
prima, respectiv ultima pagin a raportului, n care se poate include, de exemplu, sigla
unei instituii sau un rezumat al tuturor datelor, ca sum a valorilor dintr-un cmp
specificat).

Cheia primar

Puterea sistemelor care gestioneaz baze de date relaionale const n
faptul c, n astfel de sisteme, este posibil cutarea i prelucrarea simultan a
informaiilor care sunt memorate n mai multe tabele distincte, prin intermediul
diferitelor interogri, formulare i rapoarte. Pentru realizarea tratrii simultane a
informaiilor provenite din mai multe tabele distincte, fiecare tabel trebuie s aib cel
puin un cmp (sau un numr de cmpuri) care s conin o valoare unic pentru
fiecare articol din tabel. Astfel, prin coninutul acestui cmp fiecare articol memorat n
tabel poate fi identificat n mod unic. Informaia memorat n cmpul respectiv este
denumit valoarea cheii primare, iar despre cmp se spune c are atributul de cheie
primar.
Indexarea

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page68
Un cmp al unui tabel este indexat atunci cnd se cere ca programul s
ataeze cmpului respectiv anumite tabele interne, prin care se realizeaz accelerarea
cutrilor, sortrilor, gruprilor i filtrrilor de articole.

Tabele asociate
Proiectarea eficient a unei baze de date implic separarea datelor n mai
multe tabele, fiecare tabel avnd o tem bine definit. Prin separarea datelor n mai
multe tabele se evit repetarea informaiei i utilizarea datelor redondante, astfel c se
minimizeaz spaiul necesar memorrii datelor.
Datele izolate n tabele distincte, n momentul prelucrrii lor (cnd se
creeaz interogri, formulare i rapoarte), trebuie s fie reunite. n operaia de reunire a
tabelelor se va comunica programului legturile logice existente ntre tabele. Astfel va
fi posibil tratarea simultan a informaiilor, care provin din mai multe tabele. n marea
majoritate a cazurilor, ntre dou tabele ale unei baze de date se stabilesc relaii de
tipul de la unul la mai muli. Exist i relaii de tipul de al mai muli la mai muli i unu
la unu.
Relaia de tipul de la unu la mai muli (one-to-many).
ntr-o relaie de tipul de la unu la mai muli, un articol din tabelul A poate avea mai
multe articole asociate n tabelul B, dar un articol din tabelul B poate avea un singur
articol asociat n tabelul A. Tabelul A este denumit tabel primar, iar tabelul B este
denumit tabel asociat. O cheie strin a unui tabel este un cmp care asociaz
articolul actual al tabelului respectiv (B) cu cheia primar a unui alt tabel (A).
Relaia de tipul de la mai muli la mai muli (many-to-
many).
ntr-o relaie de tipul de la mai muli la mai muli, un articol din tabelul A poate avea
mai multe articole asociate n tabelul B i un articol din tabelul B poate avea mai multe
articole asociate n tabelul A. Acest tip de relaie poate fi reprezentat numai atunci
cnd se definete i un al treilea tabel C, denumit tabel de jonciune. Rolul acestui
tabel este de a sparge relaia de la mai muli la mai muli n dou relaii de tipul de
la unu la mai muli.
Relaia de tipul unu la unu (one-to-one).

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page69
ntr-o relaie de tipul unu la unu, un articol din tabelul A poate avea un singur articol
asociat n tabelul B i un articol din tabelul B poate avea un singur articol asociat n
tabelul A. Acest tip de relaie este utilizat destul de rar, deoarece informaiile asociate
n acest fel pot fi memorate n acelai tabel. Relaia de tipul unu la unu este utilizat
n urmtoarele cazuri:
- numrul cmpurilor fiind foarte mare se dorete divizarea tabelului n mai multe
subtabele;
- se dorete izolarea unor cmpuri ale unui tabel, din motive de siguran;
cmpurile care se izoleaz se vor memora ntr-un alt tabel.



Normalizarea bazei de date

Normalizarea bazei de date poate fi definit ca procesul de optimizare a
modului n care sunt nregistrate i folosite datele n tabelele bazei de date. E. F. Codd
(IBM) a propus procesul de normalizare n 1972, definind iniial trei forme normale:
prima, a doua i a treia form normal. Mai trziu s-au propus alte dou forme, a patra
i a cincia, bazate pe concepte mai obscure de dependen.

Prima form normal
Prima form normal presupune c exist o singur valoare la fiecare
intersec ie dintre un rnd i o coloan din tabel, i niciodat o list de valori. De
exemplu, nu poate exista un cmp denumit Pre n care s plasa i mai multe pre uri.
Dac privi i intersec ia dintre un rnd i o coloan ca pe o celul, atunci fiecare
celul poate con ine o singur valoare.
A doua form normal
A doua form normal necesit ca fiecare coloan care nu este cheie s
depind complet de cheia primar, nu doar de o parte a cheii. Aceast regul se
aplic cnd se utilizeaz o cheie primar care con ine mai multe coloane. De

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page70
exemplu, s presupunem c ave i un tabel care con ine urmtoarele coloane, dintre
care ID comand i ID produs alctuiesc cheia primar:
ID comand (cheie primar)
ID produs (cheie primar)
Nume produs
Acest proiect ncalc a doua form normal, deoarece Nume produs depinde de ID
produs, dar nu i de ID comand, a adar nu depinde de ntreaga cheie primar.
Nume produs trebuie eliminat din tabel. Apar ine de alt tabel (Produse).
A treia form normal
A treia form normal necesit ca fiecare coloan care nu este cheie s
depind de ntreaga cheie primar, dar i ca toate coloanele care nu sunt chei s fie
reciproc independente.
Un alt mod de a spune aste este c fiecare coloan care nu este cheie trebuie s
depind de ntreaga cheie primar i numai de cheia primar. De exemplu, s
presupunem c ave i un tabel care con ine urmtoarele coloane:
ID produs (cheie primar)
Nume
PSV
Reducere
S presupunem c Reducere depinde de pre ul sugerat de vnzare (PSV). Acest tabel
ncalc a treia form normal, deoarece o coloan care nu este cheie, Reducere,
depinde de alt coloan care nu este cheie, PSV. Independen a coloanelor
nseamn c se poate modifica orice coloan care nu este cheie fr a afecta alte
coloane. Dac se modific o valoare din cmpul PSV, se modific n mod
corespunztor Reducere, a adar nclcndu-se regula. n acest caz, Reducere trebuie
mutat n alt tabel pentru care PSV este cheie.

Crearea unei baze de date

n cele ce urmeaz s ncercm s realizm o baz de date pentru o
clinic veterinar. O prim form a bazei de date ar reprezenta-o un tabel cu
urmtoarele cmpuri:


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page71
Nume_Anima
l
Tip_Animal DataN_Anim
al
Culoare_An
m
Lung_Anm


Greutate_An
m
Boli_Anm Alergii_Anm Fotogr_Anm Nume_Pro
p


Adresa_Prop Telefon_Pro
p
Tip_vizita Tip_Med Pret_Vizita



Numrul cmpurilor putnd crete, devine aproape imposibil de completat
toate cmpurile la fiecare vizit a unui animal la clinic. Astfel, mprim acest tabel n
mai multe tabele relaionale (un tabel cu descrierea animalului, altul cu datele
proprietarului, un tabel cu apartenena animalelor, un tabel cu informaiile legate de
vizit, etc.).
Sunt mai multe variante pentru a crea o baz nou de date n Access.
Vom urma calea meniului File - New Blank Database, o vom numi PetVet.mdb i o
vom salva apsnd butonul Create.
Fereastra ce se deschide este format din trei pri principale. O bar de
meniu pentru diferite obiecte ale bazei de date (tabele, formulare, rapoarte, macrouri,
etc.), o bar de instrumente cu butoanele Open, Design, New i o parte n care sunt
afiate toate obiectele tipului afiat (tabele, rapoarte, etc.).


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page72


Meniul Groups este folosit pentru a pstra legturi ctre diferite obiecte ale bazei de
date (tabele, formulare) cu scopul de a avea un acces mai rapid la acestea dintr-un
singur loc.

Crearea unui tabel nou
Crearea unui nou tabel este un proces cu mai muli pai:
- introducerea numelor pentru fiecare cmp, tipul de dat i descrierea;
- setarea unei chei primare;
- crearea de indeci pentru anumite cmpuri;
- salvarea tabelului.
Se poate alege una din cele patru metode de creare a unui tabel:

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page73
Butonul New din bara de
instrumente

Meniul Insert - Table


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page74
Butonul New Object New Table

Create table in Design view


Cnd creai un tabel nou, putei introduce n fiecare cmp, tipul de dat,
dimensiunea i alte informaii sau putei folosi Table Wizard pentru a selecta dintr-o list
lung de tabele i cmpuri predefinite.

Putei folosi caseta de dialog pentru a selecta una din cele cinci variante:
- Datasheet View Pentru a introduce datele ntr-o foaie de calcul;
- Design View Creai tabelul n Design view;
- Tabel Wizard Selectai un tip de tabel predefinit;
- Import Table Importai formate de date externe;
- Link Table Realizeaz legtura ctre o surs de date externe.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page75


Crearea unui tabel nou cu Datasheet view:
Apare un tabel gol, pregtit pentru introducerea datelor i crearea de noi
nregistrri. Fiecare coloan va deveni un cmp i fiecare linie va deveni o nregistrare.
Antetele coloanelor ce vor deveni cmpuri sunt etichetate Field1, Field2, Field3, etc. Se
pot schimba numele cmpurilor printr-un dublu-click i editnd valoarea respectiv.

Fereastra Table Design
Fereastra Table Design este mprit n dou zone:
- zona pentru introducerea cmpurilor se introduc numele, tipul de dat,
precum i o scurt descriere;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page76
- zona cu proprietile cmpurilor pentru introducerea altor opiuni pentru
fiecare cmp (dimensiunea cmpului, formatul, masca, valori implicite, reguli de
validare, etc.).


Pentru completarea acestor cmpuri trebuie respectate urmtoarele reguli:
- numele cmpului poate avea de la 1 la 64 de caractere;
- numele cmpului poate include litere, cifre i caractere speciale;
- numele cmpului nu trebuie s conin (.), (!), ([]) sau (`) i nu trebuie s nceap
cu spaiu alb.
Dup ce ai numit cmpurile, trebuie s selectai tipul de date ce vor fi memorate n
cmpul respectiv.
Tipul de dat Tipul de dat memorat Dimensiunea datei
Text Caractere alfanumerice 0-255 caractere
Memo Caractere alfanumerice 0-65.536 ch.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page77
Number Valori numerice 1, 2, 4, 8, 16B
Date/Time Data 8B
Currency Valori monetare 8B
AutoNumber Numere automate 4B
Yes/No Valori logice 1 bit
OLE Object Figuri, imagini, video Pn la 1GB
Hyperlink Legtur ctre o resurs
Internet
0-64000 ch
Lookup Wizard Afieaz date din alt
tabel
4B

Descrierea cmpului este opional, se folosete pentru a reaminti scopul pentru care a
fost creat cmpul respectiv.

Fiecare cmp are anumite proprieti i difer de la un tip la altul:
- Field Size pentru un cmp de tip text limiteaz dimensiunea cmpului la un
anumit numr de caractere (1-255), valoarea implicit este 50;
- Format Modific modul de afiare a datelor introduse;
- Input Mask este folosit pentru a introduce datele ntr-un format predefinit;
- Decimal Places specific numrul de zecimale;
- Default Value valoarea completat automat n cmpul respectiv;
- Validation Rule valideaz datele pe baza unor reguli create cu ajutorul
expresiilor sau macrourilor;
- Validation text afieaz un mesaj cnd data introdus nu este valid;
- Etc.

Determinarea cheii primare
Fiecare tabel trebuie s aib o cheie primar unul sau mai multe cmpuri cu o
valoare unic pentru fiecare nregistrare (principiul integritii entitii). Dac nu atribuii

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page78
unui cmp o cheie primar, Access creeaz un cmp nou de tip AutoNumber i l
adaug la nceputul tabelului.

Manipularea tabelelor n BD.
Odat create mai multe tabele, se pot executa mai multe operaii asupra acestora:
- redenumirea tabelelor;
- tergerea tabelelor;
- copierea tabelelor n baza de date (doar structura, structura i datele,
adugarea datelor la un tabel existent);
- copierea tabelelor dintr-o alt baz de date.

Setarea relaiilor ntre tabele
Pentru a stabili relaii ntre tabele, trebuie stabilit o legtur ntre cmpuri
ce conin informaii comune. Cmpurile nu trebuie s aib acelai nume, dar este
necesar s fie acelai tip de dat i lungime. n general, o relaie este stabilit prin
legarea cmpului cheie primar dintr-un tabel cu cheia strin din alt tabel. Cheia
primar garanteaz unicitatea nregistrrilor din tabel, iar cmpul comun din cellalt
tabel de care se leag este cunoscut ca fiind cheie strin.
Se pot crea relaii ntre tabele n dou locuri 1 n fereastra Relationship
denumite i legturi la nivel de tabel; 2- cnd creai interogri pentru a afia informaii
din aceste tabele cunoscute ca legturi la nivel de interogri.
Cnd tabelele sunt legate, unul din tabele este denumit printe iar cellalt
(tabelul legat de primul) este denumit copil. Integritatea referenial garanteaz c nu
va exista niciun orfan, o nregistrare-copil fr o nregistrare-printe.
Fereastra de definire a relaiilor ntre diferite tabele n Access este prevzut
i cu o caset de selectare, etichetat cu Enforce Referential Integrity (impunerea
integritii refereniale a relaiei) prin care utilizatorul poate s stabileasc tipul de
asociere predefinit.
Caseta de selectare poate fi folosit numai atunci cnd sunt ndeplinite
urmtoarele trei condiii:
- cmpul care a fost selectat din tabelul primar al relaiei are atributul de cheie
primar (sau are un index unic);

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page79
- cmpurile puse n coresponden au acelai tip;
- att tabelul primar ct i tabelul asociat sunt memorate n aceeai baz de
date.

n aceste condiii, impunerea integritii refereniale a relaiei ne asigur
urmtoarele trei verificri:
- n cmpul tabelului asociat pot fi introduse numai valori care aparin mulimii de
valori a cheii primare din tabelul primar. Se permite ns introducerea unei valori
nule, ceea ce nseamn c se permite necompletarea valorii articolul
respectiv fiind interpretat ca fiind un articol neasociat;
- dac unui articol din tabelul primar i corespunde unul sau mai multe articole din
tabelul asociat, atunci utilizatorul nu poate terge sau modifica articolul
respectiv. Aceast verificare poate fi abrogat, ceea ce va permite tergerea n
cascad a articolelor asociate, dac se selecteaz caseta Cascade Delete
Related Records;
- Dac unui articol din tabelul primar i corespunde unul sau mai multe articole din
tabelul asociat, atunci valoarea cheii primare nu poate fi modificat. Aceast
verificare poate fi abrogat, ceea ce va permite editarea cheii primare i
actualizarea automat, n cascad, a valorilor din cmpurile asociate, dac se
selecteaz Cascade Update Related Fields.



Formularele

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page80
Formularele furnizeaz calea cea mai uoar pentru vizionarea,
adugarea, editarea i tergerea datelor. Exist mai multe tipuri de formulare:
- columnar;
- datasheets;
- tabular;
- pivot table forms;
- pivotchart.

Pentru crearea unui formular putei alege mai multe metode:
- butonul New din bara de instrumente;
- meniul Insert Form;
- butonul New Object New Form
Form Wizard simplific procesul de creare al unui formular. Fereastra de selectare a
cmpurilor v permite s alegei orice cmp din mai multe tabele sau interogri. Cu
ajutorul a patru butoane se pot alege sau terge diferite cmpuri selectate (> adaug
cmpul selectat, >> adaug toate cmpurile, < terge cmpul selectat, << terge
toate cmpurile).



INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page81
Interogri
Scopul primar al unei baze de date l reprezint stocarea i extragerea de
informaii. Adevrata putere a bazelor de date const n capacitatea de a examina
informaiile introduse, n orice modalitate dorit de utilizator. Interogrile, prin definiie,
formuleaz cerine asupra datelor memorate. Dup ce s-a format o interogare, putei
folosi datele extrase pentru rapoarte, formulare sau grafice.
Instrumentele interogrilor sunt cele mai puternice caracteristici ale bazei
de date. Iat cteva metode:
- alegerea tabelelor putei s obinei informaii dintr-un singur tabel sau din mai
multe tabele ce sunt legate prin anumite date comune.
- alegerea cmpurilor putei specifica ce cmp din ce tabel vrei s vedei;
- alegerea nregistrrilor putei selecta nregistrrile prin specificarea anumitor
criterii;
- sortarea nregistrrilor putei vedea informaiile obinute sortate dup o ordine
specificat;
- efectuarea de calcule putei folosi interogrile pentru a efectua diferite
calcule asupra datelor rezultate;
- crearea de tabele putei forma un nou tabel n baza de date cu rezultatele
obinute din interogare;
- crearea de formulare i rapoarte bazate pe o interogare;
- crearea de grafice bazate pe interogri;
- utilizarea unei interogri ca surs pentru o alt interogare;
- efectuarea de modificri n tabele.


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page82

Rapoarte
Rapoartele sunt folosite pentru a prezenta o form personalizat a datelor.
Raportul poate fi vizualizat pe ecran sau imprimat. Se poate calcula totalul, media sau
alte valori statistice i afia datele grafic.
Diferena dintre formulare i rapoarte este c primele sunt folosite cu
precdere pentru introducerea datelor, iar celelalte pentru vizualizarea datelor.
Putei alege din mai multe variante de a crea un nou raport:
- meniul Insert Report;
- butonul New din fereastra obiectului Report;
- butonul New Object New Report.


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page83


Operatori, funcii i expresii
Tipuri de operatori folosii n Access:
- aritmetici (*, +, -, /, ^, Mod)
- relaionali (=, <>, !=, <, >, <=)
- operatori pentru iruri de caractere (&, Like, NOT Like)
- logici (And, Or, Eqv, Not)

Funciile sunt mici programe care, prin definiie, returneaz o valoare
bazat pe anumite calcule, comparaii sau evaluri. Valorile returnate pot fi iruri, valori
logice, valori numerice, depinznd de tipul de funcie.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page84


CURS 4
SQL

Noiuni elementare de baze de date
Indiferent dac o tii sau nu, folosii baze de date tot timpul. De fiecare dat
cnd selectai un nume din agenda cu adrese de e-mail, folosii o baz de date. Dac
efectuai o cutare ntr-un site specializat din Internet, folosii o baz de date. Cnd
ncepei sesiunea de lucru n reea, v validai numele i parola prin comparaie cu
datele dintr-o baz de date. Chiar i atunci cnd v folosii cardul ATM la un
bancomat, utilizai baze de date pentru confirmarea codului PIN i verificarea strii
contului.

Ce este SQL?
SQL reprezint o abreviere de la Structured Querry Language. SQL este un limbaj
special conceput pentru comunicarea cu bazele de date. Spre deosebire de alte
limbaje, SQL este alctuit dintr-un numr foarte redus de cuvinte. SQL este proiectat
pentru a v furniza o modalitate simpl i eficient de a citi i a scrie date ntr-o baz
de date.

Regsirea datelor

Instruciunea SELECT
Instruciunile SQL sunt alctuite din termeni simpli, n limba englez. Aceti
termeni se numesc cuvinte cheie, fiecare instruciune SQL fiind alctuit din unul sau
mai multe cuvinte cheie (nu denumii niciodat un tabel sau un cmp folosind un
cuvnt cheie). Instruciunea SQL pe care o vei folosi probabil cel mai frecvent este

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page85
instruciunea SELECT. Rolul su const n regsirea informaiilor dintr-unul sau mai multe
tabele.
Pentru a utiliza instruciunea SELECT n vederea regsirii datelor dintr-un tabel,
trebuie s precizai cel puin dou informaii: ce anume dorii s selectai i locaia de
unde dorii s selectai.

SELECT nume_student
FROM Studenti

Exemplul de mai sus folosete instruciunea SELECT pentru a regsi o singur
coloan, denumit nume_studenti, din tabelul Studenti. Numele coloanei dorite este
specificat imediat dup cuvntul cheie SELECT, iar cuvntul cheie FROM indic numele
tabelului din care vor fi regsite datele. Rezultatul acestei instruciuni este prezentat n
continuare:




INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page86
O instruciune SELECT simpl, precum cea prezentat anterior, returneaz toate
rndurile dintr-un tabel. Datele nu sunt filtrate i nici sortate.
Toate spaiile albe suplimentare incluse ntr-o instruciune SQL vor fi ignorate la
prelucrarea instruciunii respective. Instruciunile SQL pot fi specificate ntr-o singur linie
lung sau pot fi divizate pe mai multe linii. Instruciunile multiple trebuie separate prin
caractere punct i virgul (;). Este important de reinut c instruciunile SQL nu fac
diferena ntre majuscule i minuscule (este posibil ca acest lucru s nu fie valabil pentru
numele tabelelor sau ale cmpurilor, depinznd de programul dumneavoastr SGBD).
Pentru a regsi mai multe coloane dintr-un tabel, se folosete aceeai
instruciune SELECT specificnd mai multe nume de coloane, iar fiecare nume de
coloan trebuie separat de urmtorul printr-o virgul (nu i dup numele ultimei
coloane).

SELECT nume_studenti, prenume_studenti, varsta
FROM Studenti;





INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page87
Instruciunile SELECT pot solicita afiarea tuturor coloanelor, fr a fi necesar
menionarea individual a numelor lor. Aceasta se realizeaz cu ajutorul caracterului
de nlocuire asterisc (*) plasat n locul numelor efective ale coloanelor.

SELECT *
FROM Studeni;




Sortarea datelor regsite

Instruciunile SQL sunt alctuite din clauze, unele obligatorii, altele opionale. De
obicei, o clauz este compus dintr-un cuvnt cheie i datele furnizate. Un exemplu n
acest sens l reprezint clauza FROM a instruciunii SELECT.
n vederea sortrii n mod explicit a datelor regsite folosind o instruciune
SELECT, se va folosi clauza ORDER BY. Aceasta preia numele uneia sau mai multor
coloane n funcie de care urmeaz s se sorteze datele de ieire.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page88

SELECT nume_studenti, prenume_studenti
FROM Studenti
ORDER BY nume_studenti;




Instruciunea SELECT din exemplu conine o clauz ORDER BY prin care sistemului
de gestiune a bazelor de date i se indic s sorteze datele n ordine alfabetic, n
funcie de coloana nume_student. Destul de frecvent, coloanele folosite ntr-o clauz
ORDER BY vor fi dintre cele selectate pentru afiare. Totui, acest lucru nu este o
necesitate i este posibil s se sorteze date n funcie de o coloan care nu este afiat.

Sortarea n funcie de mai multe coloane
Deseori este necesar sortarea n funcie de mai multe coloane. Pentru acest
lucru specificai numele coloanelor, separate prin virgul, secvena de sortare
corespunznd specificaiilor.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page89
SELECT id, nume_studenti, prenume_studenti, varsta
FROM Studenti
ORDER BY varsta, nume_studenti;




Sortarea n funcie de poziia coloanei
n afar de posibilitatea de a specifica ordinea de sortare folosind numele
coloanelor, clauza ORDER BY permite i ordonarea specificat prin poziia relativ a
coloanei.
SELECT id, nume_studenti, prenume_studenti, varsta
FROM Studenti
ORDER BY 4, 2;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page90



Rezultatul instruciunii este acelai, diferena constnd n faptul c n loc de a
specifica numele coloanelor dup care se face sortarea, se specific poziiile relative
ale coloanelor din lista SELECT.
Principalul avantaj al acestei tehnici const n scutirea reintroducerii de la
tastatur a numelor coloanelor. Dar exist i unele dezavantaje. Mai nti, neprecizarea
n mod explicit a numelor coloanelor mrete probabilitatea de specificare, din
greeal, a unei alte coloane. n al doilea rnd, este foarte uor ca datele s fie
reordonate, tot din greeal, la efectuarea de modificri n lista SELECT. i, n final, este
clar c nu se poate folosi acest procedeu cnd se sorteaz dup coloane care nu se
gsesc n lista SELECT.
Specificarea direcie de sortare
Sortarea datelor nu este limitat la ordinea de stocare cresctoare (de la A la Z).
Dei aceasta este ordinea prestabilit de sortare, clauza ORDER BY poate fi de
asemenea utilizat pentru a sorta n ordine descresctoare (de la Z la A). Pentru a sorta
n ordine descresctoare, este necesar specificarea cuvntului cheie DESC.
SELECT id, nume_studenti, prenume_studenti
FROM Studenti
ORDER BY nume_studenti DESC;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page91



Cuvntul cheie DESC se aplic numai datelor din coloana al crei nume l
precede direct. Dac dorii s sortai n ordine descresctoare pe mai multe coloane,
asigurai-v ca numele fiecrei coloane s fie nsoit de cuvntul cheie DESC.

Filtrarea datelor

Utilizarea clauzei WHERE

De obicei, tabelele dintr-o baz de date conin cantiti mari de date i deseori
nu avei nevoie s regsii toate rndurile unui tabel. Vei dori s extragei un subset al
datelor din tabel, conform necesitilor, pentru anumite operaii sau pentru rapoarte.
Regsirea numai a datelor dorite implic specificarea unor criterii de cutare,
cunoscute i sub numele de condiie de filtrare.
n cadrul unei instruciuni SELECT, datele sunt filtrate prin specificarea criteriilor de
cutare n clauza WHERE. Clauza WHERE este specificat imediat dup numele
tabelului (clauza FROM), aa cum se vede i n exemplul urmtor:

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page92

SELECT nume_studenti, prenume_studenti, varsta
FROM Studenti
WHERE varsta = 20;



Aceast instruciune regsete trei coloane din tabelul Studenti, dar, n loc s
returneze toate rndurile, va afia numai rndurile care prezint valoarea 20 n coloana
varsta.
Cnd se utilizeaz att clauza ORDER BY ct i clauza WHERE, verificai ca
ORDER BY s fie plasat dup WHERE, deoarece n caz contrar va fi generat o eroare.

Operatorii clauzei WHERE

SQL accept o ntreag gam de operatori condiionali, aa cum se poate
observa din tabelul urmtor:

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page93
Operator Descriere
= Egalitate
<> Diferit de
!= Diferit de
< Mai mic
<= Mai mic sau egal
!< Nu mai mic
> Mai mare
>= Mai mare sau egal
!> Nu mai mare
BETWEEN ntre dou valori specificate
IS NULL Este o valoare NULL

n situaia n care comparai o valoare cu o coloan care conine date de tip
caracter, ghilimelele de delimitare sunt obligatorii. Ghilimelele nu se folosesc pentru
delimitarea valorilor utilizate n coloanele numerice.
SELECT id, nume_studenti, prenume_studenti, grupa
FROM Studeni
WHERE grupa <> 112A;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page94



Pentru a verifica ncadrarea ntr-un interval de valori, putei folosi operatorul
BETWEEN. Sintaxa sa este uor diferit de a altor operatori ai clauzei WHERE, deoarece
necesit dou valori: nceputul i sfritul intervalului.

SELECT id, nume_studenti, prenume_studenti, varsta
FROM Studenti
WHERE varsta BETWEEN 21 AND 23;

Cele dou valori trebuie separate de cuvntul cheie AND, iar
operatorul BETWEEN regsete toate valorile din interval, inclusiv
valorile de nceput i cele de sfrit.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page95



La crearea unui tabel, proiectantul tabelului poate specifica
dac anumite coloane pot s nu conin nicio valoare. Cnd o
coloan nu conine nicio valoare, se spune c include o valoare
NULL (cu totul altfel dect un cmp care conine 0 sau spaiu).
Instruciunea SELECT are o clauz WHERE special, care se
poate utiliza pentru a detecta coloanele care conin valori NULL, i
anume clauza IS NULL.

Filtrarea avansat a datelor


Operatorul AND


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page96
n vederea filtrrii n funcie de mai multe coloane, vei folosi
operatorul AND pentru a ataa condiii la clauza dumneavoastr
WHERE.

SELECT nume_studenti, prenume_studenti
FROM Studenti
WHERE grupa = 111A AND varsta > 21;

AND este un cuvnt cheie folosit n cadrul unei clauze WHERE
pentru a specifica faptul c vor fi regsite numai acele rnduri care
satisfac toate condiiile menionate.





INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page97
Operatorul OR

Operatorul OR indic sistemului de gestiune a bazelor de date
s regseasc rndurile care satisfac una din condiii.

SELECT nume_studenti, prenume_studenti, grupa, varsta
FROM Studenti
WHERE grupa = 111A OR varsta < 21;




Clauzele WHERE pot conine un numr orict de mare de
operatori AND i OR. Prin combinarea celor doi operatori, avei
posibilitatea de a efectua operaii de filtrare sofisticate i complexe.
Ori de cte ori scriei clauze WHERE care folosesc att operatorul

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page98
AND ct i operatorul OR, utilizai parantezele pentru a grupa
operatorii n mod explicit.

Operatorul IN

Operatorul IN este folosit la specificarea unui domeniu de
condiii, din care poate fi satisfcut oricare. Operatorul IN este
urmat de o list (ntre paranteze) a valorilor valide delimitate prin
virgul.

SELECT nume_studenti, prenume_studenti, varsta
FROM Studenti
WHERE varsta IN (20, 21, 22);




INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page99

Operatorul NOT

Operatorul NOT al clauzei WHERE are o singur funcie, i
anume aceea de a nega orice condiie pe care o precede.
Deoarece NOT nu este niciodat folosit singur (ntotdeauna cu un alt
operator), sintaxa sa este uor diferit de a tuturor celorlali
operatori. NOT se poate folosi i nainte de coloana n funcie de
care se va efectua filtrarea, nu numai dup aceasta.

SELECT nume_studenti, prenume_studenti, varsta
FROM Studenti
WHERE NOT varsta = 20;





INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page100
Operatorul LIKE

Toi operatorii pe care i-am studiat execut filtrarea folosind ca
referin valori cunoscute. n cazul n care nu se tie valoarea
exact, se pot folosi caractere de nlocuire. Pentru a folosi caractere
de nlocuire n clauze de cutare, trebuie utilizat operatorul LIKE.
Cutarea prin intermediul caracterelor de nlocuire se poate
folosi numai n cazul cmpurilor de tip text.

Caracterul de nlocuire procent (%).
Caracterul de nlocuire cel mai utilizat l reprezint simbolul
procent (%). n interiorul unui ir de cutare, % are semnificaia
urmtoare: gsete orice caracter, indiferent de cte ori apare.

SELECT nume_studenti, prenume_studenti, grupa
FROM Studenti
WHERE prenume_studenti LIKE S%;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page101



La evaluarea acestei clauze, se gsesc toi studenii al cror
prenume ncepe cu S.
Dac utilizai Microsoft Access, va trebui s folosii * n loc de %.
Caracterele de nlocuire pot fi utilizate oriunde n interiorul
modelului de cutare, dup cum pot fi utilizate i mai multe
asemenea caractere.

Caracterul de nlocuire liniu de subliniere (_)
Acest caracter se folosete ca i simbolul procentului, dar, n
loc de a substitui mai multe caractere, poate nlocui un singur
caracter.
Dac utilizai Microsoft Access, va trebui s folosii ? n loc de _.

SELECT nume_studenti, prenume_studenti, varsta, grupa

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page102
FROM Studenti
WHERE grupa LIKE 11_ _;




Crearea cmpurilor cu valoare calculat

Datele stocate n interiorul tabelelor unei baze de date nu se
gsesc ntotdeauna exact n formatul cerut de aplicaiile
utilizatorilor:
- avei nevoie ca datele extrase din coloane separate ale
tabelului s fie grupate ntr-un singur cmp;
- dorii ca datele s fie extrase cu majuscule;
- avei nevoie de total, de medii sau de alte calcule pe
baza datelor din tabel.


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page103
Cmpurile cu valoare calculat nu exist efectiv n tabelele
dintr-o baz de date, ele sunt create instantaneu n cadrul unei
instruciuni SQL SELECT.

Utilizarea alias-urilor
Un alias este un nume alternativ al unui cmp sau al unei valori.
Alias-urile se atribuie prin intermediul cuvntului cheie AS.

SELECT nume_studenti, varsta AS VARSTA STUDENTULUI
FROM Studenti;



Efectuarea calculelor matematice
O alt utilizare frecvent a cmpurilor cu valoare calculat
const din realizarea de operaii matematice cu datele regsite.
SELECT nume_studenti, 2010-varsta AS AN NASTERE

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page104
FROM Studenti;



SQL recunoate operatorii matematici elementari (+, -, *, /). De
asemenea, se pot folosi paranteze pentru stabilirea ordinii de
preceden.

Utilizarea funciilor de manipulare a datelor

Ca aproape orice alt limbaj de calculator, SQL permite
utilizarea funciilor pentru manipularea datelor.
Spre deosebire de instruciunile SQL (de exemplu SELECT), care,
n majoritatea cazurilor, sunt acceptate de toate programele SGBD
n mod similar, funciile prezint tendina de a fi specifice unui anumit
SGBD (ex. preluarea datei curente NOW() n Access,
CURRENT_DATE() n DB2, CURDATE() n MySQL, GETDATE() n SQL
Server, SYSDATE n Oracle).

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page105
Majoritatea implementrilor SQL recunosc urmtoarele tipuri
de funcii:
- funciile pentru manipularea irurilor de text (eliminarea
sau completarea cu valori, conversia n majuscule sau
minuscule);
- funciile pentru efectuarea de operaii matematice cu
date numerice (returnarea de valori absolute, calcule
algebrice);
- funciile de tip dat i or;
- funciile sistem.

Funcii frecvent utilizate la manipularea textelor:
LENGTH() returneaz lungimea unui ir;
LOWER() convertete irul n minuscule;
UPPER() convertete irul n majuscule;
RTRIM() elimin spaiile albe de la dreapta irului.

SELECT CONCAT(UPPER(nume_studenti), , prenume_studenti) AS
NUME
FROM Studenti;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page106




Funciile de manipulare numeric sunt folosite cu precdere
pentru calcule algebrice, trigonometrice sau geometrice, cele mai
utilizate fiind:
ABS() returneaz valoarea absolut a unui numr;
COS() returneaz valoarea cosinusului trigonometric al unui anumit
unghi;
EXP() returneaz valoarea funciei exponeniale aplicate unui
anumit numr;
PI() returneaz valoarea lui PI;
SQRT() returneaz valoarea rdcinii ptrate a unui numr
specificat;

SELECT PI(), SQRT(625), SIN(PI()/2);

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page107




Sintetizarea datelor

Utilizarea funciilor agregat

Funciile agregat sunt funcii care lucreaz cu un set de rnduri
pentru a calcula i returna o singur valoare. Utiliznd aceste funcii,
interogrile SQL sunt frecvent folosite la regsirea datelor pentru
analiz i includerea n rapoarte. Printre exemplele din aceast
categorie de operaii se numr:
- determinarea numrului de rnduri dintr-un tabel (sau a
numrului de rnduri care satisfac o anumit condiie);
- obinerea sumei unui set de rnduri dintr-un tabel;
- determinarea valorii maxime, minime sau medii din
coloana unui tabel.


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page108
Funcia AVG()
Funcia AVG() este utilizat pentru calculul mediei valorilor
dintr-o anumit coloan.
SELECT AVG(varsta) AS Varsta medie
FROM Studenti;



Funcia AVG() ignor, dintr-o coloan, rndurile care conin valori
NULL.
Funcia COUNT()
Folosind funcia COUNT() putei determina numrul de rnduri
dintr-un tabel sau numrul de rnduri care satisfac un anumit criteriu.
Funcia COUNT() se poate folosi n dou moduri:
- Formatul COUNT(*) se utilizeaz la numrarea rndurilor
dintr-un tabel, indiferent dac avem valori NULL prin
coloane;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page109
- Formatul COUNT(coloana) se utilizeaz la numrarea
rndurilor care conin valori dintr-o anumit coloan,
ignornd valorile NULL.

SELECT COUNT(nume_studenti) AS Numarul_studentilor
FROM Studenti;




Funciile MAX(), MIN()
Funcia MAX(), MIN() returneaz cea mai mare, respectiv cea
mai mic valoare dintr-o coloan specificat.

SELECT MAX(varsta) AS Varsta_maxima
FROM Studenti;


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page110



Funcia SUM()
Funcia SUM() este utilizat la calculul sumei valorilor dintr-o
anumit coloan. Funcia SUM() se poate folosi i la totalizarea
valorilor calculate (SUM(pret_unitar*cantitate)).

Cele cinci funcii agregat se pot folosi n dou moduri:
- pentru efectuarea de calcule cu toate rndurile, se
specific argumentul ALL sau nu se specific niciun
argument (deoarece ALL reprezint comportarea
prestabilit);
- pentru a include numai valori distincte, specificai
argumentul DISTINCT.

SELECT AVG(DISTINCT varsta) AS Varsta medie
FROM Studenti;


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page111



Aa cum se poate observa, n acest caz vrsta medie este mai
mare folosind argumentul DISTINCT, deoarece exist mai muli
studeni cu aceeai vrst mic. Prin excluderea acestora, vrsta
medie crete.

Gruparea datelor


Grupurile v permit s mprii datele n seturi logice, pentru a
putea s efectuai calcule de sintez cu fiecare grup. Grupurile se
creeaz cu ajutorul clauzei GROUP BY n cadrul instruciunii
dumneavoastr SELECT. Clauza GROUP BY trebuie s fie plasat
dup toate clauzele WHERE i anterior tuturor clauzelor ORDER BY.


SELECT grupa, SUM(restante) AS Restante_grupa

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page112
FROM Studenti
GROUP BY grupa;




n afar de posibilitatea de a grupa datele folosind GROUP BY, SQL
mai permite i filtrarea grupurilor care vor fi incluse, respectiv a celor
care vor fi excluse. n acest scop, SQL pune la dispoziie clauza
HAVING. Aceasta este foarte asemntoare cu clauza WHERE.
Singura diferen este aceea c, n timp ce WHERE filtreaz rnduri,
HAVING filtreaz grupuri.

SELECT grupa, SUM(restante) AS Restante_grupa
FROM Studenti
GROUP BY grupa
HAVING SUM(restante) >= 5;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page113




Ca regul practic, ori de cte ori folosii o clauz GROUP BY,
trebuie de asemenea s specificai o clauz ORDER BY. Aceasta
reprezint singura modalitate de a v asigura c datele vor fi sortate
n mod corespunztor.

Lucrul cu sub-interogrile

SQL permite crearea sub-interogrilor, adic a interogrilor
care sunt nglobate n alte interogri.

SELECT nume_ang, prenume_ang, tel_ang
FROM Angajati
WHERE id_functie IN (SELECT id_functie

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page114
FROM Posturi
WHERE sal_min >= 4000);




Sub-interogrile sunt ntotdeauna prelucrate pornind de la
instruciunea SELECT interioar nspre exterior.
O alt modalitate de a utiliza sub-interogrile const n crearea
cmpurilor cu valoare calculat.

SELECT den_post, (SELECT COUNT(*)
FROM Angajati
WHERE Angajati.id_functie = Posturi.id_posturi)
FROM Posturi;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page115




Aceast sintax numele tabelului i numele coloanei,
separate printr-un punct trebuie utilizat ori de cte ori exist
posibilitatea unei neclariti n ceea ce privete numele coloanelor
(n special cnd exist coloane cu acelai nume n tabele diferite).

Unirea tabelelor

Una dintre cele mai puternice funcionaliti ale limbajului SQL
o reprezint capacitatea de unire instantanee a tabelelor n cadrul
interogrilor de regsire a datelor.
Este important de reinut c o uniune nu reprezint o entitate
fizic altfel spus, nu exist n tabelele reale din baza de date. O
uniune este creat de programul SGBD conform necesitilor i
persist pe durata execuiei interogrii. Pentru a crea o uniune,
trebuie s specificai toate tabelele care urmeaz a fi incluse,
precum i legtura dintre ele.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page116

SELECT nume_ang, prenume_ang, den_post, sal_min
FROM Angajati, Posturi
WHERE Angajati.id_functie = Posturi.id_posturi;



Cnd unii dou tabele, de fapt alctuii perechi formate din
fiecare rnd al primului tabel i fiecare rnd al celui de-al doilea
tabel (produs cartezian). Clauza WHERE acioneaz ca un filtru,
pentru a se include numai acele rnduri care corespund condiiei
de filtrare.

SELECT nume_ang, prenume_ang, den_post, sal_min
FROM Angajati, Posturi;


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page117



Uniunea pe care ai folosit-o pn acum se numete echi-uniune
adic o uniune bazat pe verificarea egalitii valorilor cuprinse n
dou tabele. Aceast categorie de uniune se mai numete i uniune
interioar. Pentru aceste uniuni se mai poate folosi o sintax uor
diferit, n care se specific n mod explicit tipul uniunii.


SELECT nume_ang, prenume_ang, den_post, sal_min
FROM Angajati INNER JOIN Posturi

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page118
ON Angajati.id_functie = Posturi.id_posturi;




n exemplul de mai sus, relaia dintre cele dou tabele face
parte din clauza FROM, specificat sub forma INNER JOIN. Cnd
folosii aceast sintax, condiia de unire este specificat folosindu-
se clauza special ON, n locul clauzei WHERE.

Majoritatea uniunilor stabilesc legturi ntre rndurile dintr-un
tabel i rndurile dintr-un alt tabel. Dar, uneori, se dorete includerea
rndurilor care nu sunt corelate cu alte rnduri. n aceste cazuri, se
folosesc uniuni exterioare, care pot fi folosite pentru executarea, de
exemplu, a urmtoarelor operaii:
- stabilirea numrului comenzilor emise de fiecare client,
inclusiv de clienii care nu au emis nc nicio comand;

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page119
- enumerarea tuturor produselor, alturi de cantitile n
care au fost comandate, inclusiv produsele pe care nu
le-a comandat nimeni;
- calcularea cifrei medii de vnzri, lundu-i n calcul i pe
clienii care nu au emis nc nicio comand.
n fiecare dintre aceste exemple, uniunea include rnduri din tabel
care nu dispun de rnduri asociate n tabelul conex.

SELECT nume_ang, prenume_ang, den_post
FROM Angajati RIGHT OUTER JOIN Posturi
ON Angajati.id_functie = Posturi.id_posturi;




Asemntor uniunii interioare, instruciunea SELECT folosete
cuvinte (dreapta) sau LEFT (stnga) pentru a specifica tabelul din
care urmeaz a se include toate rndurile.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page120

Combinarea interogrilor

SQL permite efectuarea mai multor interogri i returnarea
rezultatelor sub forma unui singur set. Aceste interogri combinate
poart numele de reuniuni sau interogri compuse.
Interogrile SQL se combin folosind operatorul UNION.
Operatorul UNION se plaseaz ntre instruciunile SELECT.

SELECT nume_ang, prenume_ang, varsta_ang
FROM Angajati
WHERE varsta_ang > 40
UNION
SELECT nume_ang, prenume_ang, varsta_ang
FROM Angajati, Posturi
WHERE Angajati.id_functie = Posturi.id_posturi AND
spor_noapte > 15;


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page121




Inserarea datelor

Instruciunea INSERT este utilizat pentru a insera (aduga)
rnduri ntr-un tabel dintr-o baz de date. Aceast instruciune se
poate folosi n mai multe moduri:
- pentru a insera un singur rnd complet;
- pentru a insera un singur rnd parial;
- pentru a insera rezultatele unei interogri.

Cea mai simpl modalitate de a insera date ntr-un tabel const din
utilizarea sintaxei elementare a instruciunii INSERT, care impune
specificarea numelui tabelului i a valorilor care urmeaz a fi inserate
n noul rnd.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page122

INSERT INTO Angajati
VALUES (Cristea, Dan, Str. Uverturii, nr.22, NULL, 23, NULL);

Datele care urmeaz a fi stocate n fiecare coloan a tabelului
sunt specificate n clauza VALUES, iar pentru fiecare coloan trebuie
specificat o valoare. Dac ntr-o coloan nu se gsete nicio
valoare, se va folosi valoarea NULL. Coloanele trebuie populate n
ordinea n care apar n definiia tabelului. Dei aceast sintax este
ntr-adevr simpl, nu este deloc sigur i trebuie, n general, evitat.
Instruciunea SQL anterioar este dependent n cel mai nalt grad
de ordinea n care coloanele sunt definite n tabel.
Metoda mai sigur de a scrie instruciunea INSERT este
urmtoarea:

INSERT INTO Angajati (nume_ang, prenume_ang, adresa_ang,
tel_ang, varsta_ang, id_functie)
VALUES (Cristea, Dan, Str. Uverturii, nr.22, NULL, 23, NULL);

Prima intrare din lista VALUES corespunde primului nume de
coloan specificat, a doua intrare corespunde celui de-al doilea
nume de coloan etc. Deoarece numele coloanelor sunt indicate,
valorile din lista VALUES trebuie s corespund numelor de coloan
specificate n ordinea n care sunt precizate acestea, dar nu
neaprat n ordinea n care apar coloanele n tabelul propriu-zis.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page123
Avantajul acestui procedeu este c, n eventualitatea unei
modificri a machetei tabelului, instruciunea INSERT va continua s
funcioneze corect. Folosind aceast sintax, avei de asemenea
posibilitatea de a omite coloane (dac definiia tabelului o
permite).
De obicei, instruciunea INSERT insereaz un singur rnd. Pentru
a insera mai multe rnduri putei folosi instruciunea INSERT SELECT,
cu ajutorul creia toate datele returnate de instruciunea SELECT vor
fi inserate prin intermediul instruciunii INSERT.

Actualizarea i tergerea datelor

Pentru a actualiza (modifica) datele dintr-un tabel se utilizeaz
instruciunea UPDATE. Formatul fundamental al unei instruciuni
UPDATE este alctuit din trei componente:
- tabelul care urmeaz a fi actualizat;
- numele coloanelor i noile valori ale acestora;
- condiia de filtrare care determin rndurile ce urmeaz
a fi actualizate.
UPDATE Angajati
SET tel_ang = 07112233
WHERE id_angajati = 7;


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page124



Clauza SET atribuie coloanei valoarea specificat.
Cnd se actualizeaz coloane multiple, se folosete o singur
comand SET, iar fiecare pereche coloan=valoare este separat
de urmtoarea printr-o virgul.
Pentru a terge date dintr-un tabel se folosete instruciunea
DELETE.

DELETE FROM Angajati
WHERE id_angajati = 8;

Instruciunea DELETE nu preia nume de coloane i nici
caractere de nlocuire. DELETE terge rnduri, nu coloane. Pentru a
terge anumite coloane folosii instruciunea UPDATE (atribuind valori
NULL).
Dac omitei clauza WHERE, operaiile de actualizare,
respectiv tergere vor fi aplicate tuturor rndurilor din tabel.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page125


Crearea i manipularea tabelelor


Pentru a crea un tabel folosind instruciunea CREATE TABLE,
trebuie s specificai urmtoarele informaii:
- numele noului tabel, indicat dup cuvintele cheie
CREATE TABLE;
- numele i definiiile coloanelor din tabel, separate prin
virgule.


CREATE TABLE Angajati
(
id_angajati INT(11) NOT NULL AUTO_INCREMENT,
nume_ang VARCHAR(20),
prenume_ang VARCHAR(20),
adresa_ang VARCHAR(40),
tel_ang VARCHAR(10),
varsta_ang INT(2),
id_functie INT(3)
);

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page126

Fiecare coloan a unui tabel este de tip NULL sau NOT NULL, iar
aceast stare este specificat n definiia tabelului, la creare. Nu
confundai valorile NULL cu irurile vide. O valoare NULL reprezint
lipsa unei valori i nu un ir vid.
SQL permite specificarea unor valori prestabilite, care urmeaz
a fi utilizate dac nu este specificat nicio valoare la inserarea unui
rnd. Valorile prestabilite sunt precizate folosind cuvntul cheie
DEFAULT n definiiile coloanelor incluse n instruciunea CREATE
TABLE.

Pentru a actualiza definiiile tabelelor, se folosete instruciunea
ALTER TABLE.

ALTER TABLE Angajati
ADD email_ang VARCHAR(25);

ALTER TABLE Angajati
DROP COLUMN spor_noapte;

tergerea tabelelor este o operaie foarte simpl i se
realizeaz folosind instruciunea DROP TABLE.


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page127
DROP TABLE AngajatiCopie;

Aceast instruciune terge tabelul AngajatiCopie. Nu vei primi
nicio confirmare i nici nu exist posibilitatea de anulare, executarea
acestei instruciuni are ca efect eliminarea definitiv a tabelului.

Gestiunea prelucrrii tranzaciilor

Prelucrarea tranzaciilor este utilizat pentru conservarea
integritii bazelor de date, prin garantarea faptului c grupurile de
operaii SQL se execut n totalitate sau deloc.
Cnd lucrai cu tranzacii exist cteva cuvinte cheie care vor
aprea n mod repetat:
- tranzacie un bloc de instruciuni SQL;
- revenire procesul de anulare a unor instruciuni SQL;
- angajare scrierea instruciunilor SQL nesalvate n
tabele;
- punct de salvare un nlocuitor temporar ntr-un set de
tranzacii pn la care se poate executa o revenire.
Unele programe SGBD impun marcarea explicit a nceputului i a
sfritului blocurilor de tranzacie. n SQL Server se procedeaz astfel:

BEGIN TRANSACTION
...
COMMIT TRANSACTION

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page128

n acest exemplu, toate instruciunile SQL cuprinse ntre BEGIN i
COMMIT trebuie executate fie n totalitate, fie deloc.
Echivalentul n MySQL al acelorai comenzi este:

START TRANSACTION
...

Comanda SQL ROLLBACK este folosit pentru anularea instruciunilor
SQL. n interiorul unui bloc de tranzacie, operaiile de tergere,
inserare sau actualizare nu sunt irevocabile.

Pentru a permite revenirea tranzaciilor pariale, trebuie s avei
posibilitatea de a plasa nlocuitori n poziii strategice din blocul de
tranzacie. Apoi, dac este necesar o revenire, putei reveni la unul
dintre nlocuitori. n SQL aceti nlocuitori se numesc puncte de
salvare. Pentru a crea un asemenea punct de salvare se folosete
instruciunea SAVEPOINT.


Caracteristici avansate ale limbajului SQL


INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page129
Bazele de date relaionale stocheaz date divizate n tabele
multiple, fiecare din tabelele respective coninnd date corelate.
Pentru crearea referinelor de la un tabel la altul se folosesc chei.

Chei primare
O cheie primar este o constrngere special, folosit pentru a
garanta c valorile dintr-o coloan (sau set de coloane) sunt unice
i nu se modific niciodat. n absena cheilor primare, este dificil s
se actualizeze, respectiv s se tearg anumite rnduri fr a le
afecta pe altele.

CREATE TABLE Angajati
(
id_angajati INT(11) NOT NULL PRIMARY KEY,
....);

Sau

ALTER TABLE Angajati
ADD CONSTRAINT PRIMARY KEY (id_angajati);

Chei externe

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page130
O cheie extern reprezint o coloan dintr-un tabel ale crei valori
trebuie s fie enumerate n cadrul unei coloane cheie primar dintr-
un alt tabel.

CREATE TABLE Angajati
(
...
id_functie INT(4) NOT NULL REFERENCES Posturi(id_posturi)
);

Sau

ALTER TABLE Angajati
ADD CONSTRAINT
FOREIGN KEY (id_funcie) REFERENCES Posturi(id_posturi);




Securitatea bazelor de date

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page131
Nimic nu este mai valoros pentru o organizaie dect datele
acesteia, motiv pentru care datele trebuie ntotdeauna protejate.
Evident, n acelai timp datele trebuie s fie accesibile utilizatorilor,
iar majoritatea programelor de tip SGBD furnizeaz administratorilor
mecanisme de acordare, respectiv de limitare a accesului la date.
Fundamentul oricrui sistem de securitate l reprezint
autorizarea i autentificarea utilizatorilor. Acesta este procesul prin
care un utilizator este confirmat, pentru a exista certitudinea c are
identitatea pe care i-o asum i c are permisiunea de a executa
operaia pe care o dorete s o execute. Unele programe se
integreaz, n acest scop, cu securitatea sistemului de operare, iar
altele folosesc propriile lor liste cu utilizatori i parole.
Securitatea este gestionat prin intermediul instruciunilor SQL
GRANT sau REVOKE.

Bibliografie

[1] Teodoru Gugoiu HTML, XHTML, CSS si XML prin exemple
Teora, 2009;
[2] Ben Forta SQL in lectii de 10 minute Teora, 2008;
[3] Marin Fotache SQL, Dialecte DB2, Oracle, PostgreSQL si
SQLServer Polirom, 2009;
[4] Cezar Fluerasu Managementul datelor si al cunostintelor
note de curs, Bucuresti, 2003;
[5] Douglas Comer Internetworking with TCP/IP vol.1,
Prentice Hall, New Jersey, 2000.

INFORMATICA APLICATA I note de curs
Dragos NICULAE
Page132

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