Sunteți pe pagina 1din 110

1. Cum se definete logica?

LOGICA este tiina demonstraiei al crui obiect este stabilirea condiiilor corectitudinii gndirii, a
formelor i legilor generale ale raionrii corecte, conforme prin ordinea ideilor cu organizarea legic
a realitii obiective

2. Dai exemple de utilizare a logicii n informatica economic i de afaceri!

- baze de date i de cunotine, a cror interogare se bazeaz pe logic.


- SE, SSD, SSE, dar i deciziile de zi cu zi ale managerului sau omului de afaceri se bazeaz pe
raionamente logice.
- Practic nu exist domeniu de afaceri n care logica s nu joace un rol major

3. Cum se definete logica formal i prin ce se deosebete de cea clasic?

Se mai numeste si logica matematic, logica formal sau simbolic


Logica simbolic fundamentul raionamentului uman - avantaje:
asigur expresivitatea i rigurozitatea n reprezentarea cunotinelor;
asigur deducerea unor cunotine noi pe baze altora deja existente.
Utilizeaz simboluri - reprezentarea obiectelor i a operaiilor executate asupra simbolurilor.
Pentru informatic i pentru IE n special, logica formal prezint un interes aparte. Dicionarele de
informatic se mrginesc n general numai la acestea:"logica = substantiv, tiina care se ocup cu
gndirea i raionamentele; logica formal = tratarea formei i structurii, ignornd coninutul";

4. Care este deosebirea esenial ntre tratarea logic i cea gramatical a propoziiilor?

n PL, valoarea de adevr a propoziiei este calitatea acesteia de a fi adevrat sau fals n ntregul ei
i nu intereseaz obiectele constitutive ale sale. Exemplu: propoziia Ionescu este managerul
societii comerciale sau Ionescu manager.

5. Ce este logica bivalent i ce extensii ale ei cunoatei?

Orice propoziie poate fi T sau F, dar nu amndou deodat (legea terului exclus) - logic bivalent.

6. Ce este teoria logic i care sunt abordrile sale?

Teoria logic este n esen un limbaj de reprezentare a cunotinelor. Ca orice limbaj, are dou
aspecte eseniale: - aspectul semantic sau abordarea semantic; - aspectul sintactic sau abordarea
sintactic.

7. Definii noiunile de tautologie i de teorem.

Tautologie - Greeal de limb care const n repetarea inutil a aceleiai idei, formulat cu alte
cuvinte
Teorema reprezint o afirmaie al crei adevr se stabilete prin demonstraie.

8. Ce este abordarea semantic i care sun elementele sale de baz?

Dupa cum se stie, semantica unui limbaj se ocupa de aspectele intime(interne) ale universului
problemei.
n cadrul abordrii semantice trebuie fixate 5 elemente de baz :
- limbajul de descriere a formulelor logice (alfabetul limbajului);
- valoarea de adevr a simbolurilor ataate propoziiilor (respectiv predicatelor);
- funciile de evaluare;
- mecanismul de raionament reprezentat de consecinele logice;
- principiile teoriei logice

9. Ce simboluri propoziionale cunoatei?

Alfabetul este format din simboluri propoziionale definite astfel:


- litere mici, p,q,r,sau mari P,Q,R,... ataate propoziiilor;
- conectori logici: ~ sau, - negaia, ^ - conjuncia, V disjuncia, - implicaia, - echivalena
- alte simboluri, cum ar fi de exemplu: (, )

10. Ce este un wff n PL?

Formulele corecte, corect formulate sau bine formulate, notate n literatur cu wff well formatted
formulas

11. Care este semnificaia negaiei logice?

Negaia unei propoziii, non P - [French91]: "not.P", P, P , sau ~P. Operaiile logice - cu ajutorul
tablelor de adevr (corespunztoare tablelor operaiilor aritmetice elementare). Aceste table indic
valoarea de adevr a rezultatului n funcie de valorile de adevr ale componentelor.

P ~P
F T
T F

Exemplu: P = Bugetul trebuie aprobat anual, care are valoarea T, negaia ~P, Bugetul nu trebuie
aprobat anual, are valoarea F.

12. Care este semnificaia conjunciei a dou propoziii?

Conjuncia propoziiilor P i Q - P i Q - se noteaz cu P Q. Notaii [French91]: P.Q, P .and. Q sau


P&Q. Exemplu: P = Pmntul este rotund i Q= impozitul este o datorie fa de stat. P&Q va fi
Pmntul este rotund i impozitul este o datorie fa de stat.

13. Care este semnificaia disjunciei a dou propoziii i prin ce se deosebete disjuncia de sau
exclusiv?

Disjuncia P sau Q i se noteaz cu P Q. Notaii i cu: P+Q, P.or.Q sau P Q. P Q = T dac


P=T, sau Q=T, sau ambele propoziii sunt T. Sau exclusiv sau Cezar sau nimic. sau logic trebuie
interpretat n sensul limbajului curent astfel: dac P este propoziia Firma X practic comer en-
gros i Q este propoziia Firma X practic comer en-detail, propoziia P sau Q - sau exclusiv i
se noteaz cu xor.

14. Ce este o propoziie compus i cum se determin valoarea sa de adevr?

Propoziiile compuse sunt wff-uri care se realizeaz pe baza unor conectori sau operatori logici.
Principalii operatori logici, aa dup cum s-a prezentat mai sus, sunt: negaia, conjuncia i disjuncia.
O propoziie compus care este adevrat dac cele dou propoziii P i Q sunt concomitent
adevrate sau false

15. Ce logici polivalente cunoatei?

logica bivalent
logica trivalenta
logicile neclasice
logicile fuzzy

16. Cum se clasific wff-urile dup domeniul de interpretare a funciilor de evaluare?

Pe baza domeniilor de interpretare i a funciilor de evaluare, wff urile se clasific n:


- tautologii sau formule valide T indiferent de interpretare;
- consistente care iau valoarea T pentru unele interpretri;
- inconsistente (invalide) F pentru unele interpretri;
- contradicii - F pentru orice interpretare

17. Ce este raionamentul i ce este consecina logic a unei propoziii?

Realizarea raionamentului ntr-un sistem logic obinerea unor formule noi pe baza celor existente
o extindere consistent a cunotinelor despre universul problemei.
O formul Q - consecin logic a unei formule P, dac Q ia valoarea T pentru toate interpretrile
pentru care P ia valoarea T.

18. Care sunt legile algebrei Booleene?

1 comutativitatea: P ^ Q = Q ^ P, respectiv P Q = Q P

2 asociativitatea: P ^ ( Q ^ R) = ( P ^ Q )^ R, respectiv P ( Q R) = ( P Q ) R

3 proprietatea lui ^ i , adic: P ^ T = P i P ^ F = F, respectiv P T = T i P F = P

4 proprietatea negaiei, adic: P ^ ~P = F respectiv P ~P=T

5 distributivitatea lui ^ fa de i a lui fa de ^, adic: P^ ( Q R) = ( P ^ Q ) ( P ^ R ),


respectiv P ( Q^ R) =( P Q ) ^ ( P R).

19. Ce alte logici bivalente cunoatei?

- legea dublei negaii sau a complementului ~~P=P;


- idempotena: P^P=P, respectiv P P=P;
- legea absorbiei, P ^ (P Q)=P.

20. Enunai principiul dualitii i legile lui DeMorgan!

In orice teorem din algebra boolean dac se nlocuiete cu ^ i invers, teorema rmne
adevrat.
Legile lui DeMorgan: ~( P ^ Q ) = ~P ~Q, respective dualul, ~( P Q ) = ~P ^ ~Q
Prin inducie complet -> generalizarea legilor lui DeMorgan la n propoziii: ~ (P1 ^ P2 ^ ^Pn ) =
~P1 ~P2 ~Pn, respectiv ~ (P1 P2 Pn ) = ~P1 ^ ~P2 ^ ^ ~Pn
Pentru a nega o formul, schimb semnul i operatorul cu complementarul. De exemplu:
~(P~Q)=~P ~(~Q)= ~PQ.

21. Definii forma normal conjunctiv i cea disjunctiv!

Forma normal conjunctiv - forma (C1C2 C3 ) unde Ci se numete clauz; fiecare clauz - din
propoziii simple sau disjuncii de propoziii i eventual negaii ale acestora. Forma normal
conjunctiv - teoria demonstraiei, deoarece propoziia scris sub form clauzal este adevrat
dac i numai dac toate propoziiile componente sunt adevrate i invers.
Forma normal disjunctiv expresia sub forma unor disjuncii de expresii, expresiile din propoziii
simple sau conjuncii de propoziii i eventual negaii ale acestora. Aceast form este util n teoria
circuitelor.

22. Cte funcii logice binare se pot construi n logica bivalent?

n logica bivalent propoziiile au dou feluri de valori: adevrat sau fals. Propoziii bivalente =>
dou valori.
23. Cum se definesc implicaia i echivalena?

Implicaia - inferena logic - operaia principal n domeniul bazelor de cunotine; notat cu i


are semnificaia dac P, atunci Q. Propoziia PQ ia valoarea fals numai dac din P adevrat
rezult Q fals. Avem, deci, urmtoarele situaii posibile: o dac P este adevrat, atunci i Q
trebuie s fie adevrat; o dac P este fals, Q poate fi adevrat sau fals;
Echivalena logic echivalena - notat cu - reprezentat de dubla implicaie i deci, genereaz
o propoziie compus care este adevrat dac cele dou propoziii P i Q sunt concomitent
adevrate sau false.

24. n ce const principiul fixrii numrului de valori logice?

Teoriile logice - un numr fixat, n de valori logice distincte cu 2 n . |V| cardinalul mulimii V - de
cele mai multe ori acest cardinal are o valoare finit. Exist ns i logici infinite.
Logic este cea bivalent, n care V = {T,F} i deci |V|=2
n general se consider 3 conectori de baz i anume: ~, V, ^ cu tablele de adevr:
P ~P P^Q T F PVQ T F
T F T T F T T T
F T F F F F T F

25. Ce logici trivalente cunoatei?

Sistemul lui Klee cu V={T,F,U}, unde U este necunoscut, avnd 2 conectori de baz, ~ i ^.
Sistemul Lukasiewicz, are V= {T,F,I}, unde I indic un eveniment din viitor nerealizabil n prezent, dar
nu un necunoscut. n acest caz conectorii sunt ~ i .
Sistemul Bochvar, creat pentru explicarea unor paradoxuri semantice, are V={T,F,M}, cu M indicnd
absurd i cu conectorii ~ i .

26. Ce este logica fuzzy?

Logicile fuzzy n care pot exista o infinitate de valori de adevr, logici bazate pe teoria introdus de
Lotfi Zadeh

27. n ce const principiul consistenei?

Pentru un domeniu de interpretare dat, o propoziie - o valoare unic din V principiul valorizri
non-contradictorii i consistente. Cu alte cuvinte, fie D mulimea propoziiilor, considernd V={T,F} i
DT={pD | pV=T}, respectiv DF={pD | pV=F}; se obine DT DF= Logicile polivalente, cu V={v1,
v2, , vn}, Di={pD | pV=vi},condiia de consisten se poate scrie: Di Dj = , pentru ij.

28. n ce const principiul excluderii celei de a n+1-a valori?

Unui atom i se poate asocia o valoare din mulimea V, pe domeniul de interpretare funcia de
evaluare este total definit pe domeniul de interpretare. Principiul excluderii celei de a n+1-a valori -
n logica bivalent, legea terului exclus: DT U DF = D orice propoziie este ori adevrat, ori fals,
nu poate lua o a treia valoare. n general, legea excluderii celei de a (n+1)-a valori logice are forma: n
30 U Di = D, pentru V = {v1, v2, , vn}. i=1

29. n ce const principiul constanei de valorizare?

Unei valori de adevr unei propoziii elementare date trebuie s rmn aceeai la toate apariiile
acesteia atta timp ct se consider o anumit interpretare. Renunarea la acest principiu duce la
logici paraconsistente sau relevante

30. Enunai propoziiile fundamentale ale consecinei logice!

O formul Q - consecin logic a unei formule P, dac Q ia valoarea T pentru toate interpretrile
pentru care P ia valoarea T. n general, Q - consecin logic a unei mulimi de formule P1, P2, , Pn,
dac Q primete valoarea T pentru orice interpretare pentru care P1, P2, , Pn iau valoarea T.
Consecina logic se noteaz n general cu simbolul implicaiei .

(P1). Q este consecina logic a lui P1, P2, , Pn este echivalent cu faptul c P1 ^ P2 ^ ^ Pn Q
este valid.

Pe baza proprietilor implicaiei, propoziia de mai sus mai poate fi enunat i astfel:

(P2). Q este consecina logic a lui P1, P2, , Pn este echivalent cu faptul c P1^ P2^ ^ Pn~Q este
inconsistent.

(P1), (P2) - constituie baza raionamentului logic i a demonstrrii corectitudinii, deoarece reduce
problema consecinelor logice la cea a demonstrrii validitii sau inconsistenei unor formule.

31. Enunai cele dou reguli infereniale ale logicii propoziiilor!

1. modus-ponens sau mod-pons, care se enun astfel:


Fiind dat P adevrat P
din PQ . notat i cu PQ
rezult Q adevrat Q

2. regula de nlnuire a inferenelor sau nchiderea tranzitiv a inferenelor. Ea permite


ca pe baza a dou implicaii s se deduc o a treia. Astfel, aceast regul se poate scrie:
dac PQ i QR atunci PR

32. Ce forme normale cunoatei i cum se poate aduce un wff la forma normal?

Forma normal conjunctiv (FNC): Dac F1,F2,..,Fn sunt formule bine formate care conin doar literale
(atomi sau negaie de atomi) i sunt de forma L1vL2v...vLm (disjuncie de literale), atunci F1^F2^...^Fn
este o fnc.
Forma normal disjunctiv (FND): Dac F1,..,Fn sunt formule bine formate care conin doar literale
(atomi sau negaii de atomi) i sunt de forma L1^L2^..^Lm (conjuncie de literale) atunci F1vF2v...vFn
este o fnd.
Exemple: - fnc: (PvQv~R) ^ (Pv~QvR) ^ (~PvQvR); - fnd: (P ^ ~Q) v (~P ^ ~Q) v (P ^ Q).
Algoritm de transformare a unei formule bine formate ntr-o form normal:
Pas 1: Se elimin echivalena i implicaia:
F<->G = (F->G) ^ (G->F)
F ->G = ~F v G
Pas 2: Se elimin dubla negaie i se distribuie negaia (Legile lui de Morgan):
~(~F)=F
~(FvG)=~F ^ ~G
~(F^G)=~F v ~G
Pas 3: Se aplic distributivitatea pentru separarea operaiilor ^,v:
Fv(G^H)=(FvG)^(FvH)
F^(GvH)=(F^G)v(F^H)

33. Definii noiunea de predicat!

Predicatele - simboluri prin care se noteaz relaii sau funcii definite pe elementele domeniului
discursului i care iau valorile adevrat (T) sau fals (F).

34. Definii noiunile de cuantificator universal i existenial!

Mulimea din care ia valori x se numete universul discursului sau domeniul discursului. indic
faptul c valorile sunt variabile i c predicatul se aplic tuturor valorilor din domeniul discursului.
Cuantificatorul existenial indic faptul c exist valori n domeniul discursului pentru care predicatul
ia valoarea T, deci domeniul discursului nu este vid.

35. Ce sunt logicile de ordin superior i cum pot fi traduse formulele din aceste logici n FOPL?

Logicile formale care nu respect regulile de formare a cuantificatorilor se numesc logici de ordinul
superior.
n FOPL se folosete ntre predicate pentru a evita trecerea la logici de ordin superior.

36. Cum se definesc termenii n FOPL?

In formulele din FOPL termenii pot fi constante, variabile sau funcii

37. Care sunt regulile de combinare a cuantificatorilor cu conectorii logici?

n cazul cuantificatorilor se aplic o serie de reguli, dintre care amintim:


Parantezele scrise n jurul cuantificatorilor pot fi neglijate deci n loc de ( x) se poate scrie x.
Un ir de cuantificatori de acelai tip poate fi nlocuit cu unul singur, n locul lui xyz se poate
scrie x,y,z.
Cuantificatorul universal se utilizeaz pentru reunirea unor propoziii.

38. Cum se utilizeaz funciile n combinaie cu predicatele?

Logica predicatelor cuprinde logica functiilor de adevar. Ea foloseste un limbaj specific si un sistem
de simboluri speciale.

Un predicat sau o funcie trebuie s aib acelai numr de argumente, indiferent unde se utilizeaz.
Constantele, variabilele i argumentele funciei sau predicatele trebuie s ia valoarea din universul
peste care s-a definit funcia sau predicatul respectiv.

39. Ce este o aseriune n FOPL?

O aseriune n FOPL este o formul n care toate variabilele sunt calificate, deci nu exist nici o
variabil liber.

40. Enunai modul de aplicare a formulelor lui DeMorgan generalizate pentru FOPL!
Putem deci enuna Generalizarea formulei lui De Morgan: Pentru a nega o expresie cuantificat se
parcurg urmtorii pai: 1. Se schimb cuantificatorii ntre ei. 2. Se schimb semnul literalelor 3. Se
schimb conectorii n conectorii complementari

41. Care sunt problemele referitoare la relaia dintre limbajul natural i FOPL?

Formalizarea unor probleme neformale sau parial formalizabile;


Trecerea de la n principiu la realizare , adica complexitatea calcului la cteva sute de fapte.

42. Ce problem ridic echivalena wff-urilor n FOPL?

Numrul aseriunilor din FOPL este foarte mare deoarece, predicatele pot conine variabile care, la
rndul lor, pot lua multe valori. probabilitatea de a aduce aceste aseriuni la aceeai form
normal, astfel nct s se poat compara textual formele obinute i s se poat spune dac formele
respective sunt sau nu echivalente este lucru complicat, sau chiar imposibil. Dac wff-urile sunt
transcrise din limbaj natural problema este i mai complicat. Astfel, se poate ca formulele s nu se
bazeze pe acelai predicat sau funcie.

43. Definii forma clauzal i modul n care se aduce o formul la forma clauzal!

1. Se transform echivalena n 2 implicaii, adic P(...)Q(...) se nlocuiete cu P(...)Q(...) i


Q(...)P(...)
2. Se elimin implicaiile cu ajutorul formei disjunctive, adic, P(...)Q(...) se nlocuiete cu ~P(...)
Q(...)
3. Se mut negaia imediat naintea atomilor, utiliznd formulele lui DeMorgan generalizate. n cazul
expresiilor complexe este bine s se aplice algoritmul din exterior spre interior.
4. Se redenumete variabila dac apare n 2 termeni cuantificai fr a avea legtur unul cu cellalt.
Redenumirea se folosete pentru a pune n eviden independena unui termen fa de cellalt.
Astfel, de exemplu, x(P(x)) (xQ(x)) se rescrie astfel x (P(x)) ( y Q(y))
5. Se elimin cuantificarea existenial. Se poate aplica numai dup pasul 3, deoarece formulele
DeMorgan genereaz transformarea cuantificatorului n i invers. Aceast eliminare se
realizeaz prin skolemizare. Scolemizarea se aplic astfel: - Dac o variabil x - cuantificat i nu se
afl sub aciunea unui , orice apariie a lui x cuantificat cu x se nlocuiete cu constanta Skolem,
adic cu o liter mic de la nceputul alfabetului: 'a', 'b',... constanta reprezint un parametru pentru
care, se presupune aseriunea adevrat. Problema este c toate apariiile lui x se nlocuiesc cu
constanta Skolem respectiv. - Dac x este sub incidena unui , de exemplu, y,z, atunci n locul
constantei Skolem se consider c x este funcie de y i z, deci se nlocuiete cu f(y,z), denumit
funcia Skolem. nseamn c alegerea lui x depinde de alegerea lui y i z, dar pentru o alegere a lui y
i z corespunde un x univoc determinat.
6. Se scoate n factor cuantificarea universal n faa formulei.
7. Se aplic distributivitatea lui - sau fa de - i se scriu factorii pe linii separate

44. Cum se enun regula modus ponens n cazul FOPL?

Regula modus ponens n FOPL are deci forma generic: P(a) ( x) P(x) Q(x) Q(a)

45. Ce este substituia i unificarea n FOPL i cum se utilizeaz pentru simplificarea expresiilor?

n FOPL apare deci necesitatea substituiei. Observaii. 1. Dac se aplic de mai multe ori substituia
ea permite simplificarea expresiei datorit posibilitii apariiei unor literale complementare. 2. O
substituie este definit cu o pereche ti, vi, unde ti este un termen i vi este o variabil; ele satisfac
condiia: ti nu conine vi. 3. Reamintim - termenul se definete atfel: :: = | | funcie ( <lista de
termeni>)

O substituie care face ca dou sau mai multe expresii s fie egale se numete unificare. Observaie.
Unificarea este necesar cnd exist atomi care conin variabile neinstaniate i care prin substituie
suplimentar pot duce la literele complementare, deci la simplificarea expresiei. Teoria unificrii, i
algoritmul de determinare al unificatorului cel mai general (mgu) se utilizeaz n aplicarea teoriei
rezoluiei n FOPL.

46. Definii noiunea de agent rational i dai un exemplu.

Pentru fiecare secven de percepii posibil, un agent raional ar trebui s selecteze o aciune care
se ateapt s maximizeze msura sa de performan, avnd n vedere informaiile pe care i le d
secvena de percepii i orice alte cunotine pe care le are. Exemplu ce am dat la examen

47. Definii i explicai noiunea de msur de performan a unui agent.

Nu exist o masur a performanei fix pentru toi agenii i activitile. n mod normal, un designer
va decide o masura potrivit n funcie de circumstane. Cnd vine vorba de un agent raional, ceea
ce ceri este ceea ce primesti. Este mai bine s decizi o masur de performan n funcie de ceea ce
vrea cineva n mediu, dect n funcie de cum crede cineva c trebuie s se comporte agentul.

48. Definii proprietile mediului n care acioneaz agenii i explicai-le pe un exemplu.

Un mediu este complet observabil dac senzorii agentului detecteaza toate aspectele mediului care
sunt relvante i determin alegerea aciunii. Practic senzorii au acces la ntregul univers n 62 fiecare
moment de timp. Alegerea aciunii este un aspect care este influenat de relevana acesteia i de
asemenea depinde de performan. Un astfel de mediu este necesar pentru ca agenii nu trebuie s
menin starea intern pentru a ine pasul cu lumea. Un mediu este considerat parial observabil
datorit inacurateii senzoriilor sau deoarece lipsesc pri din datele senzoriilor. De asemenea mai
apare situaia in care lipsesc senzorii i atunci mediul este considerat neobservabil

Un mediu este considerat deterministic atunci cnd urmtoarea stare a mediului este determininat
de starea curent i de aciunile selectate de ageni.Daca un mediu este complet observabil i
deterministic rezultatul este inexitena incertitudinii. Un mediu stochastic poate sa fie un mediu
parial observabil. De exemplu sofer de taxi automat care nu poate sa prezic exact cum o s fie
traficul pe parcursul cursei. Pentru situaiile complexe este convenabil s fie considerate stochastice.

n ceea ce priveste un mediu episodic, ntreaga experien a agentului este mprit in episoade
atomice. n fiecare episod agentul primeste o percepie (input) i realizeaz o singur aciune . n
acest caz este crucial ca urmtorul episod sa nu depind de cel anterior. Aceste medii sunt mai
preferabile deoarece agenii nu trebuie s se gndeasca inainte la ce urmeaz. n cadrul unui mediu
secvenial , decizia curent afecteaza toate deciziile viitoare. Se merge pe ideea " aciunile pe termen
scurt pot avea consecine pe termen lung". Att in ceea ce priveste exemplu cu soferul de taxi
automat ct i un simplu joc de sah , putem vorbi despre medii secventiale, deoarece orice decizie
curenta va afecta deciiziile viitoare.

Ne putem referii la un mediu ca fiind dinamic dac mediul se poate schimba n timp ce agentul
hotraste ce actiune va face in continuare, iar in caz contrat mediul este static. Acesta din urm 63
este mai preferabil deoarece agenii nu trebuie s tot fie atenti la mediu sau s i fac griji n
privinta timpului. Un mediu dinamic intreab constant agentii ce vor face in continuare, dac acestia
nu actioneaza se presupune ca nu vor face nimic.Aici apare notiunea de mediu semidinamic atunci
cand mediul nu se schimba ns performanta agentului se schimb.

Aceasta distincie se aplic strii mediilor, n felul in care timpul este administrat i pe baza la
imputurile si actiunile agentiilor. Dac timpul, numrul de percepii sau aciuni diferite sunt finite
atunci mediul este discret. Spre exemplu , ahul are un numr finit de stri diferite si un set discret
de perceptii si actiuni. Sper deosebire de jocul de ah, n cazul oferul de taxi automat putem vorbi
despre o stare continu la care se adaug i o problem constant cu timpul.

Aceast proprietate se refer la starea de cunotiine ale agentiilor despre legile fizici ale mediilor:
Mediu cunoscut rezultatele pe toate aciunile sunt date Mediu necunocut- agentii trebuie s
nvee cum funcioneaz pentru a lua decizii bune.

Fiecare mediu poate s aib mai unul sau mai muli agenti. De exemplu un rebus sau o integram
reprezinta un mediu cu un singur agent , pe cnd un joc ah impune din strat 2 ageni.

49. Noiunea de multiagent i clasificarea mediilor acestuia

n cadrul mediilor multiagent apar o nou clasificare: Medii competitive jocul de ah Putem
vorbi aici de Comportament random- pentru evitarea predictibilitatii in mediile competive Medii
cooperative evitarea unui accident in trafic , creste performanta tuturor soferilor.

50. Prezentai noiunea de agent inteligent i structura acestuia.

Agentul inteligent are caracteristicile agentului simplu i n plus poate comunica direct cu ali ageni,
este reactiv la modificrile mediului, poate avea iniiative sau oferi servicii fiind proactiv, dispune de
o reprezentare cel puin parial a mediului, este condus de un ansamblu de scopuri, are resurse
proprii, poate percepe complex mediul, dezvolt competene sau nva, se poate multiplica, se
caracterizeaz prin comportament (determinat de eluri, resurse, competene, percepii i
reprezentarea mediului, etc.). Agenii inteligeni se clasific de regul n cognitivi i reactivi.

51. Definii i exemplificai noiunea de Agent reflex simplu.

Aceti ageni selecteaz aciunea pe care o returneaz, bazndu-se doar pe percepia curent,
ignornd istoria de percepii. Agentul percepe starea curent a mediului prin intermediul senzorilor,
iar pe baza unei reguli a crei condiie se potrivete cu starea curent, selecteaz aciunea pe care o
realizeaz prin intermediul efectorilor. Sunt simpli i cu inteligen limitat.

52. Definii i exemplificai noiunea de Agent reflex cu stare intern

Cel mai eficient mod al unui agent de a rezolva problemele referitoare la observabilitatea parial
este de a pstra urma prii mediului pe care nu o vede. Astfel agentul menine o stare intern care
depinde de istoria de percepii, i care reflect unele aspecte neobservate ale strii curente.
Actualizarea strii interne se realizeaz innd cont att de modul n care mediul evolueaz
independent de agent.

53. Definii i exemplificai noiunea de Agent cu scop exact

n anumite situaii, nu este suficient s fie cunoscut doar starea curent a mediului pentru a decide
ce trebuie fcut. Pe lng descrierea strii curente, agentul, are nevoie de informaie n ceea ce
privete scopul care s descrie situaia care este dorit s se ntmple. Dei pare mai puin eficient ,
furnizeaz mai mult flexibilitate, deoarece cunoaterea pe baza creia se ia o decizie este
reprezentat cu exactitate i poate fii modificat.
54. Definii i exemplificai noiunea de Agent bazat pe funcionalitate

n cele mai multe medii , doar scopurile nu sunt suficiente pentru a genera comportamente de nalt
calitate. Scopul are rolul doar de a face distincia dintre o stare fericit i o stare nefericit. O msur
de msurare a performanei mai general trebuie s permit s stabilim exact ct de fericit va face
agentul, n urma aciunilor alese . Un agent bazat de funcionalitate , folosete un model al mediului
mpreun cu o funcie a utilitii care i masoar preferina n ceea ce privete strile mediului.
Ulterior este aleas aciunea care conduce la cea mai bun utilitate asteptat, unde utilitatea
ateptat este calculat. Funcia de utilitate a unui agent este o internalizare a msurii de
performan ; dac funcia de utilitate intern este n concordan cu msura de performan
extern , atunci agentul care alege s acioneze astfel nct s i maximizeze utilitatea va fi raional
conform msurii de performan extern.Asemenea agenilor cu un scop exact , exist avantaje n
ceea ce privete flexibilitatea i nvarea. Exista situaii n care scopurile sunt inadecvate , dar un
agent bazat pe funcionalitate poate s ia decizii raionale: scopurile aflate n conflict (viteza si
sigurana) , sau n cazul n care exist mai multe scopuri cerute , dar niciunul nu poate fi atins cu
certitudine.

55. Definii i exemplificai noiunea de Agent rezolvator de probleme

Un agent este o entitate care percepe mediul nconjurtor prin senzori i acioneaz asupra lui prin
efecotori.

Cel mai eficient mod al unui agent de a rezolva problemele referitoare la observabilitatea parial
este de a pstra urma prii mediului pe care nu o vede. Astfel agentul menine o stare intern care
depinde de istoria de percepii, i care reflect unele aspecte neobservate ale strii curente.

Ex: Un agent american venit n Romnia cu scopul de a vizita ara, aflndu-se momentan la Arad. n
ziua urmtoare el trebuie s ajung la Bucureti.

O schem simpl pentru un agent const n: formularea problemei, cutarea i execuia.

Agentul trebuie s decid traseul de la Arad la Bucureti, el avnd posibilitatea de-a alege ntre cele
trei ieiri din Arad: Sibiu, Timioara sau Zerind. Din cauza c agentul nu are cunotine adiionale
despre Romnia, el nu poate decide calea optim petru atingea scopului.

Dac agentul are o hart, el poate examina diferite secvene de aciuni posibile care duc la starea
final, apoi alege cea mai bun secven de aciuni. Cutarea este procesul de a examina secvene
de aciuni pentru alegerea celei mai bune dintre ele. Cutarea poate fii realizat prin intermediul
unui algoritm de cutare, care are ca intrare o problem i ntoarce o soluie sub forma unei
secvene de aciuni. Dup gsirea soluiei se trece la faza de execuie.
56. Definii cele patru tipuri de probleme rezolvabile de ctre ageni

- cu o singura stare: Agentul stie exact in ce stare se va gasi; solutia secventa;


- cu mai multe stari: Agentul nu stie in ce stare se gaseste;
- contingente: Perceptorii aduc informatie noua despre starea curenta;
- explorative: spatiul starilor necunoscut

57. Definii i exemplificai Problema cu o stare

n cazul problemei cu o singur stare, mediul este determinist, complet observabil, agentul tie exact
n ce stare se va gsi, el tie exact ce efecte au aciunile sale, iar soluia este o secven. 58. Definii i
exemplificai Problema cu mai multe stri

59. Definii i exemplificai Problema contingent

In cazul prblemelor contigente, mediul este unul nedeterminist, parial observabil, iar perceptorii
ofer agentului informaii noi despre starea curent.

60. Definii i exemplificai Problemele explorative

La problemele explorative, spaiul strilor este unul necunoscut, de aceea agentul trebuie s
experimenteze, s descopere gradual care sunt efectele aciunuilor lui i ce tipuri de stri exist.

Capitolul 1- Algoritmi si structuri de date


1. Ce este un algoritm?
Un algoritm este o procedur de calcul bine definit care primete o valoare sau o mulime de valori
ca date de intrare i produce o valoare sau mulime de valori ca date de ieire. Este deci un ir de pai
care transform datele de intrare n date de ieire.
Putem lua ca exemplu definirea problemei de sortare a unui ir de numere. Datele de intrare (inputul)
l reprezint o secven de n numere (a1, a2, an).
Datele de ieire (outputul) l reprezint o permutare (sau o reordonare) (a1, a2,an) a secvenei de
numere furnizat la intrare astfel nct a1< a2< <an.
Un algoritm de sortare, pentru o anumit secven de numere (reprezentnd inputul) 31, 41, 59, 26
va produce la ieire drept output secvena 26, 31, 41, 59.

2. Ce este o instan a unei probleme?

O instan a problemei reprezint mulimea tuturor datelor de intrare (care satisface restriciile
impuse n definirea problemei) date necesare pentru a determina o soluie a problemei.

3. Ce este pseudocodul?

Pseudocodul este o modalitate de a descrie algoritmi; este similar cu schemele logice. Un algoritm
descris n pseudocod poate apoi s fie implementat n orice limbaj de programare (C, Pascal etc).

4. Ce nseamn studierea eficienei unui algoritm?

Eficiena unui algoritm se refer la resursele de calcul i memorie necesare pentru execuia
algoritmului. Practic este un studiu teoretic al performanei (n primul rnd) i al resurselor utilizate.
Progresele tehnologice din ultima perioad fac ca importana mrimii memoriei solicitate de un
algoritm s scad ca importan. Ceea ce trebuie s intereseze programatorul este reducerea timpului
de execuie al programului. Exist aplicaii real time la care constrngerile de timp sunt cruciale.

5. Cum se definete operaia de sortare?

Sortarea este o operaie des ntlnit n rezolvarea problemelor de natur algoritmic. Problema
sortrii unei mulimi de obiecte se poate reduce la problema sortrii cheilor asociate acestora. Dup
ce cheile sunt sortate, folosind informaia de asociere (care leag cheia de obiectul creia i aparine),
se pot rearanja obiectele n ordinea n care au fost aranjate cheile lor.

6. Cnd spunem despre o metod de sortare c este stabil i cnd spunem c ea este in situ?

O metod de sortare se spune c este stabil dac dup sortare, ordinea relativ a elementelor cu
chei egale coincide cu cea iniial, element esenial n special n cazul n care se execut sortarea dup
mai multe chei.
O cerin fundamental care se formuleaz fa de metodele de sortare a tablourilor se refer la
utilizarea ct mai economic a zonei de memorie disponibile. Astfel, algoritmii care utilizeaz doar
zona de memorie alocat tabloului, fr a fi necesar un tablou suplimentar se numesc sortri "n situ".

7. Prezentai principiul i pseudocodul algoritmului de sortare prin inserie.

Principiul sortrii prin inserie este urmtorul:


Pornim cu un ir gol de numere
Lum cte un numr din irul iniial i l plasm n irul sortat la poziia corespunztoare
Plasarea numrului n ir la poziia corespunztoare se face prin comparare succesiv de la
stnga la dreapta sau invers
Pseudocodul aferent sortrii prin inserie este prezentat n figura 1
8. Care sunt principiile i n ce condiii se poate aplica metoda Divide and Conquer?

Numit i divide et impera (divide i stpnete), aceasta este o tehnic sau o metod de programare
n care - principii:
problema iniial se sparge n subprobleme cu structur similar cu problema original, dar
de dimensiune mai mic.
aceste subprobleme sunt rezolvate recursiv
soluiile recursive sunt combinate pentru a produce soluia problemei iniiale
Metoda se poate aplica n rezolvarea unei probleme care ndeplinete urmtoarele condiii:
se poate descompune n dou sau mai multe subprobleme
aceste suprobleme sunt independente una fa de alta (o subproblem nu se rezolv pe baza
alteia i nu folosete rezultatele celeilalte)
aceste subprobleme sunt similare cu problema iniial
la rndul lor subproblemele se pot descompune (dac este necesar) n alte subprobleme mai
simple
aceste subprobleme simple se pot soluiona imediat prin algoritmul simplificat

9. Prezentai principiul i pseudocodul algoritmului de sortare prin interclasare.

Sortarea prin interclasare se bazeaz pe urmtorul principiu: pentru a sorta un vector cu n elemente,
l mprim n 2 vectori, care, odat sortai, se interclaseaz. Conform strategiei Divide and Conquer,
descompunerea unui vector n ali doi vectori care urmeaz a fi sortai are loc pn cnd avem de
sortat vectori de un element.
Sortarea prin interclasare are deci 3 pai:

Divide irul A de n elemente se mparte n dou subiruri de n/2 elemente (n cazul n care n
este impar dimensiunea primului ir este cu 1 mai mare dect dimensiunea celui de al doilea
ir)
Conquer se sorteaz recursiv cele dou subiruri
Combine se combin prin interclasare cele dou iruri sortate obinute la pasul Conquer,
rezultnd un singur ir sortat
Recursivitatea se ncheie la iruri de lungime 1, care sunt implicit deja sortate.
n continuare vom descrie procedura MERGE(A,p,q,r) care primete ca i parametruirul A, poziia p
de la care ncepe sortarea, poziia r la care se ncheie sortarea i q o valoare ntre p ir, valoare care va
mpri irul A[p]..A[q] n dou subiruri A[p..q] i A[q+1]..A[r].
Complexitatea procedurii Merge este (n) unde n=r-p+1 este numrul elementelor interclasate.
Merge sort nu este o sortare in situ, ea necesit spaiu suplimentar pentru a pstra subirurile care
apoi se vor interclasa.
Figura 1 prezint algoritmul procedurii MERGE(A,p,q,r):

n figura 2 este prezentat algoritmul procedurii Merge-Sort:

10. Ce este un heap i ce proprieti ndeplinesc elementele lui?

Un heap (o movil) este un vector care poate fi vizualizat sub forma unui arbore binar aproape complet
cu proprietatea c cheia fiecrui nod din arbore este mai mare dect cheile descendenilor (deci
fiecare nod are o cheie mai mic sau egal cu cea a tatlui su). Ultimul rnd al arborelui se
completeaz de la stnga la dreapta.
Un heap poate fi reprezentat sub forma unui arbore binar sau sub forma unui vector. Astfel, dac v
este un vector care conine reprezentarea unui heap avem urmtoarea proprietate:
Elementele v[left]..v[n] ndeplinesc condiia de structur a heapului:
i>left avem: v[i]>v[2*i], dac 2*in, respectiv
v[i]>v[2*i+1] dac 2*i+1n.
Evident, pentru valori ale lui i mai mari dect n/2 nu se pune problema ndeplinirii condiiilor de mai
sus.

11. Prezentai i explicai algoritmul de transformare a unui ir de intrare ntr-un heap i algoritmul
de creare a unui heap.

Ca s putem folosi Heap Sort va trebui s transformm irul de intrare ntr-un heap.
Vom crea iniial procedura MAX-HEAPIFY(A,i) care primete ca i parametri un vector A i un indice i
din vector.
Atunci cnd apelm MAX-HEAPIFY se presupune c subarborii avnd ca rdcini nodurile Left(i) i
Right(i) sunt heapuri.
Dac elementul A(i) este mai mic dect cel puin unul din descendenii Left(i) i Right(i), nseamn c
acest element nu respect proprietatea de heap (deci nu avem un heap i va trebui transformat ca s
devin heap).
Sarcina procedurii MAX-HEAPIFY este s scufunde n heap valoarea A(i) astfel nct subarborele care
are n rdcin valoarea eleme ntului de indice i sa devin un heap.

Figura 1 prezint algoritmul MAX-HEAPIFY:

Vom construi heapul de jos n sus (de la frunze) (care sunt heap-uri de heapsize=1) (figura 2).

12. Prezentai i explicai algoritmul de sortare utiliznd un heap.


Algoritmul de sortare utiliznd un heap bazat pe algoritmii BUILD-MAX-HEAP i MAX-HEAPIFY.
13. Prezentai principiul i algoritmul sortrii rapide.
Quick Sort este un algoritm de sortare care pentru un ir de n elemente are un timp de execuie (n2)
n cazul cel mai defavorabil. n ciuda acestei comportri proaste pentru cazul cel mai defavorabil, acest
algoritm este deseori cea mai bun soluie practic deoarece are o comportare medie remarcabil:
timpul mediu de execuie este (nlgn) i constanta ascuns n formula lui (nlgn) este destul de mic.
Este o sortare in situ (adic e o sortare n spaiul alocat irului de intrare).

Algoritmul Quick Sort se bazeaz pe tehnica de programare Divide and Conquer, bazndu-se pe
urmtorii 3 pai:
Divide: irul A[p..r] este mprit (rearanjat) n dou subiruri nevide A[p..q-1] i A[q+1..r] astfel
nct fiecare element al subirului A[p..q-1] s fie mai mic sau egal cu A[q] (element denumit
element pivot) i orice element al subsirului A[q+1..r] este mai mare sau egal cu A[q]. Indicele
q este calculat de procedura de partiionare. Deci elementele mai mici dect pivotul vor fi
mutate n stngam pivotului iar elementele mai mari dect pivotul vor fi mutate n dreapta
pivotului.
Conquer: Cele dou subiruri A[p..q-1] i A[q+1..r] sunt sortate prin apeluri recursive ale
algoritmului de sortare rapid
Combine: Cele dou subiruri sunt sortate pe loc, nu este nevoie de nici o combinare, irul
A[p..r] este ordonat.

Algoritmul procedurii QUICKSORT

14. Prezentai i explicai algoritmul de partiionare a unui ir n cazul sortrii rapide (ambele
variante, inclusiv cel cu alegerea aleatoare a elementului pivot).
Algoritmul procedurii PARTITION care realizeaz partiionarea irului:
n Quick Sort vom selecta aleator un element din subirul A[p..r] care va juca rolul pivotului. La fiecare
pas al sortrii rapide, nainte de partiionarea vectorului vom interschimba elementul A[p] cu acest
element aleator ales. Practic, aceast modificare a algoritmului asigur c elementul pivot x=A[p] s
fie cu aceeai probabilitate orice element dintre cele r-p+1 elemente ale vectorului A[p..r]. Rezultatul
este c partiionarea vectorului de intrare va fi n medie, rezonabil de echilibrat. Modificrile n
algoritmul deja prezentat sunt minore. Vom avea implementat schimbarea elementului ce va deveni
pivot nainte de apelul propriu zis al procedurii PARTITION.
Algoritmul de alegere aleatoare a elementului pivot:

De asemenea, noua procedur QUICKSORT va apela procedura RANDOMIZED-PARTTION n loc de


vechea procedur PARTITION. Algoritmul noii proceduri denumit RANDOMIZED-QUICKSORT:

15. Ce sunt tehnicile de programare?


Tehnicile de programare sunt modaliti generale de elaborare a algoritmilor. Ele reprezint doar nite
tipare de organizare a aciunilor ("scheme" de algoritmi), nu garanteaz i succesul acestora. Pentru a
avea succes trebuie ndeplinite nite condiii suplimentare, care sunt specifice i se demonstreaz
separat pentru fiecare problem n parte.

16. Principiile programrii dinamice.


Programarea dinamic este o tehnic de proiectare a unui algoritm care permite rezolvarea unei clase
de probleme. Programarea dinamic, la fel ca i metoda Divide and Conquer, rezolv problemele
combinnd soluiile unor subprobleme. Spre deosebire de abordarea din Divide and Conquer,
programarea dinamic este aplicabil atunci cnd subproblemele nu sunt independente, adic
subproblemele au n comun sub-subprobleme.
Astfel, un algoritm de tipul Divide and Conquer ar presupune mai multe calcule dect ar fi necesar
dac s-ar rezolva repetat aceste sub-subprobleme comune. Programarea dinamic rezolv fiecare sub-
subproblem o singur dat i salveaz rezultatul ntr-o tabel cu rezultate. Se evit astfel ca o sub-
subproblem s fie rezolvat de mai multe ori.
Programarea dinamic se aplic la probleme de optimizare, probleme cu urmtoarele caracteristici:
Au mai multe soluii posibile, fiecare caracterizate printr-o valoare
Dorim s identificm o soluie cu valoarea cea mai mic/cea mai mare. O asemenea soluie
se numete o soluie optim a problemei, prin contrast cu soluia optim deoarece pot
fi mai multe soluii care realizeaz soluia optim.

17. Prezentai i explicai algoritmul recursiv al tierii barei de oel.


Compania Sterling Enterprises cumpr bare de oel lungi i le taie n buci mai scurte pe care apoi le
revinde. Se cunoate preul pi cu care compania vinde o bar de lungime i (i este o valoare ntreag).
Se cere determinarea locurilor unde se vor face tieturile la o bar de lungime n, astfel nct s se
obin ctigul maxim rn.
Input: n ca fiind lungimea iniial a barei precum i preurile pi pentru i=1..n. Deci pi este preul
unei bare de lungime i.
Output: Soluia optim va nsemna tierea barei n k buci, deci obinerea partiiei i1, i2, ik
cu i1+i2+ik=n astfel nct suma rn=pi1+pi2++pik s fie maxim.
Avnd n vedere c din 1 n 1 avem posibilitatea de a tia sau nu bara, nseamn c pentru n-1 poziii
avem posibilitatea de a tia sau nu. Numrul maxim de partiii posibil pentru o bar de lungime n este
deci 2n-1.

Problema tierii barei de oel este o problem cu structur optim: soluia optim a acestei probleme
incorporeaz soluii optime ale subproblemelor. Rezolvarea problemei se va baza pe o soluie
recursiv. Descompunerea recursiv a problemei tierii barei de oel se va face astfel:
Se taie o pies de lungime i
Bara rmas de lungime n-i se taie n mod recursive
rn= max1<=i<=n(pi+rn-i)

Algoritmul recursiv de tiere a barei de oel:

18. Prezentai i explicai algoritmul tierii barei de oel utiliznd metoda top-down din
programarea dinamic.
Abordarea top-down cu memo-izare: se scrie procedura recursiv n mod obinuit, dar o modificm
astfel nct s salvm rezultatul fiecrei subprobleme ntr-un ir. nainte s se apeleze recursivitatea,
se verific dac rezultatul droit este deja salvat n ir
Algoritmul de tiere a barei de oel utiliznd programarea dinamic cu o abordare top-down:
19. Prezentai i explicai algoritmul tierii barei de oel utiliznd metoda bottom-up
din programarea dinamic cu memorarea mrimilor bucilor ce vor fi tiate
Abordarea bottom-up: sortm subproblemele n funcie de ordinul lor de mrime i le rezolvm cele
mai mici la nceput.

Algoritmul de tiere a barei de oel utiliznd programarea dinamic cu o abordare top-down:

20. Prezentai i explicai algoritmul bottom-up de determinare a costurilor nmulirii


unui ir de matrici.
Se d un ir (o secven A1, A2, An) de n matrici care trebuie nmulite, dorindu-se calcularea
produsului A1A2 An

Pentru a calcula AiAi+1..Aj (vom nota acest produs cu Ai..j) va trebui s gsim un k optim astfel nct
s punem o parantez ntre Ak i Ak+1. n consecin:
Costul lui Ai..j este egal cu costul lui Ai..k plus costul lui Ak+1..j plus costul nmulirii acestor
dou matrici
Dac costurile lui Ai..k i Ak+1..j sunt optime, atunci i costul lui Ai..j este optim.

O soluie optim a unei instane a problemei nmulirii irului de matrice conine soluii optime pentru
instane ale subproblemelor. Existena substructurilor optime n cadrul unei soluii optime este una
din caracteristicile cadrului de aplicare a metodei programrii dinamice.
Algoritmul bottom-up de determinare a costurilor nmulirii irului de matrici precum i a indicilor
pentru care s-a obinut costul optim.

21. Prezentai i explicai algoritmul recursiv de afiare a parantezrii optime pentru un produs de
n matrici.
Algoritmul recursiv prezentat n figura urmatoare ne ofer afiarea parantezrii optime a produsului
(AiAi+1Aj) pe baza tabelului s calculate de procedura MATRIX-CHAIN-ORDER i a indicilor i i j. Apelul
initial PRINT-OPTIMAL-PARENS(s,1,n) ne ofer parantezarea optima pentru produsul (A1A2..An).

22. Principiile metodei greedy.


Metoda Greedy (greedy = lacom) este o metod general de proiectare a algoritmilor care const n
construirea soluiei globale optimale printr-un ir de soluii cu caracter de optim local atunci cnd este
posibil exprimarea optimului global ca o combinaie de o optime locale. Algoritmii greedy sunt
n general simpli i sunt folositi la probleme de optimizare, cum ar fi: s se gseasc cea mai bun
ordine de executare a unor lucrri, s se gseasc cel mai scurt drum ntr-un graf etc.

23. Prezentai cum se utilizeaz metoda greedy n cazul problemei seleciei activitilor.
Se pune problema planificrii unor activiti care necesit utilizarea unei resurse comune.

Datele de intrare (inputul) este reprezentat de o mulime S={a1, a2, an} de activiti care
necesit o resurs ce poate fi utilizat doar de o singur activitate la un moment dat. Fiecare
activitate ai are un moment de start si i un moment de terminare fi cu 0<=si<fi<.
O activitate ai are loc n intervalul [si,fi). Dou activiti ai i aj sunt compatibile dac si>=fj sau sj>=fi
(intervalele lor nu se suprapun).
Datele de ieire (outputul) reprezint subsetul maximal de activiti compatibile.
Prezentm n figura urmtoare un exemplu format din 11 activiti (i=1,2, ..11) fiecare cu momentul
su de start si i momentul de terminare fi.
Un exemplu de 11 activiti avnd irul momentelor de terminare sortat ascendant:

n exemplul prezentat {a3, a9, a11} reprezint un subset de activiti compatibile; acesta nu este un
subset maximal deoarece {a1, a4, a8, a11} este mai mare. Acesta din urm este cel mai mare subset
de activiti compatibile; n acelai timp un alt subset maximal este i {a2, a4, a9, a11}.

24. Prezentai i explicai algoritmul recursiv greedy de selecie a activitilor.


O soluie greedy recursiv care rezolv problema seleciei activitilor este prezentat n figura 2.12.
Procedura RECURSIVE-ACTIVITY-SELECTOR primete ca parametric timpii de nceput i de sfrit al
activitilor (reprezentai de vectorii s i f), indicele i care definete subproblema care trebuie rezolvat
i mrimea j a problemei originale. Aceast procedur va returna mulimea maxim de activitilor
compatibile din Si. Presupunem c cele j activiti primite ca date de intrare sunt deja ordonate
cresctor dup timpul de terminare a lor. Dac nu sunt sortate, am putea face sortarea lor ntr-un
timp de complexitate O(nlgn).

25. Prezentai i explicai varianta greedy iterativ a algoritmului de selecie a activitilor.


Procedura GREEDY-ACTIVITY-SELECTOR este o versiune iterativ a procedurii RECURSIVE-ACTIVITY-
SELECTOR. i ea presupune c pornim de la un ir de activiti sortat ascendent dup timpul de
finalizare a activitilor. Procedura prezentat n figura urmatoare colecteaz activitile selectate ntr-
o mulime A i o returneaz cnd aceast activitate este finalizat:

26. Care sunt paii pe care i vom utiliza ntr-o strategie greedy?
Proprietatea alegerii greedy poate fi enunat astfel: alegem alternativa care apare ca i cea mai
promitoare la problema curent, fr a rezolva subproblemele. De fapt, aceasta difereniaz tehnica
greedy de programarea dinamic prin faptul c aceasta din urm rezolv subproblemele (cte o
singur dat) pentru a putea decide care este cea mai bun alegere. Utiliznd greedy, facem alegerea
care ni se pare cea mai bun la un anumit moment, dup care rezolvm subproblema rmas.
Intuitiv, alegerea greedy este acea activitate care las resursele disponibile pentru ct de multe
activiti disponibile, deci vom alege activitatea cu cel mai devreme moment de terminare (dac mai
mult de o activitate din S are cel mai devreme moment de terminare atunci vom putea alege oricare
din aceste activiti). Altfel spus, dac activitile sunt sortate n ordinea cresctoare a timpului de
terminare, atunci alegerea greedy este activitatea a1.
Fcnd o alegere greedy, ne rmne o singur subproblem de rezolvat: gsirea activitilor care
pornesc dup ce a1 s-a terminat. Nu putem considera activitile care se termin nainte ca a1 s
nceap, deoarece avem s1<f1 i f1 este cel mai devreme moment de terminare al oricrei activiti
i deci nici o activitate nu poate avea timp de terminare mai mic sau egal dect s1. Deci toate
activitile compatibile cu a1 trebuie s nceap dup ce a1 se termin.
Condiia structurii optimale ne spune c dac alegerea greedy este optimal atunci i rezultatul optim
al problemei se compune din alegerea greedy i rezultatul optimal al subproblemei rmase.

27. Principiile i algoritmul metodei backtracking.

Principii
n practic se ntlnesc un numr mare de probleme care au un numr mare de variante ce se pot
ncerca, dar doar o parte din ele ndeplinesc condiiile specific problemei.

O astfel de problem poate fi caracterizat astfel:


soluia lor poate fi pus sub forma unui vector
mulimile S1,S2,S3Sn sunt multimi finite, iar elementele lor se consider c se afl ntr-o
relaie de ordine bine stabilit exist anumite relaii ntre componentele v1, v2, vn, numite
condiii interne
Practic, dac nu cunoatem tehnica backtracking, suntem tentai s generm toate elementele
produsului cartezian S1xS2xS3xSn i fiecare element s fie testat dac este soluie.
n cadrul tehnicii backtracking nu se genereaz toate soluiile posibile, ci numai acelea care ndeplinesc
anumite condiii specifice problemei, numite condiii interne (n unele lucrri de specialitate acestea
mai
sunt numite i condiii de validare). n cadrul acestei tehnici, elementele vectorului x primesc pe rnd
valori, n sensul c lui vk i se atribuie o valoare numai dac au fost atribuite deja valori lui v1, v2, vk-1.
Odat o valoare pentru vk stabilit, nu se trece direct la atribuirea de valori lui vk+1, ci se verific
condiiile de continuare referitoare la v1, v2, vk care stabilesc situaiile n care are sens s trecem la
determinarea unei valori pentru vk+1. Conceptual, tehnica backtracking caut sistematic soluia ntr-
un spaiu al soluiilor organizat sub forma unui arbore. Fiecare nod din arbore definete o stare a
problemei.
Toate drumurile de la rdcin la frunze formeaz spaiul strilor. O soluie a problemeireprezint
acele stri pentru care exist drum de la rdcin la un nod etichetat cu un nuplu.
Pot exista arbori statici (n cazul n care arborele astfel construit nu depinde de instana problemei) i
arbori dinamici (n cazul n care alegerea valorii vi depinde de una sau mai multe valori din mulimea
{v1, v2, vi-1})

Algoritmul acestei tehnici poate fi descris astfel:


1)se alege primul element v1 ce aparine lui S1
2)se presupun generate elementele v1,v2,v3vk-1 aparinnd mulimilor S1 S2 S3Sk-1 pentru
generarea lui vk se alege primul element din Sk disponibil i pentru valoarea aleas se,testeaz
ndeplinirea condiiilor de continuare. Pot aprea urmtoarele situaii :
a)nu s-a gsit un astfel de element, caz n care se reia cutarea considernd generate
elementele v1,v2,v3vk-1 iar vk se reia de la urmatorul element al mulimii Sk rmas netestat
b)a fost gsit, caz n care se testeaz dac acesta ndeplinete condiiile de continuare,
aparnd astfel alte dou posibiliti:
b1) vk ndeplinete condiiile de continuare. Dac s-a ajuns la soluia final (k=n)
atunci se afieaz soluia obtinut. Dac nu s-a ajuns la soluia final se trece la generarea
elementului urmtor vk+1;
b2) vk nu ndeplineste condiiile de continuare. Se ncearc urmtoarea valoare
disponibil din Sk. Dac nu se gsete nici o valoare n Sk care s ndeplineasc
condiiile de continuare, se revine la elementul vk-1 i se reia algoritmul pentru o nou
valoare a acestuia.
Algoritmul se ncheie cnd au fost luate n considerare toate elementele lui v1.

28. Prezentai i explicai algoritmul nerecursiv de rezolvare a problemei damelor.


Problema reginelor (sau a damelor) are urmtorul enun: S se afieze toate posibilitile de a aeza pe o
tabl de ah de dimensiune nxn, n dame astfel nct oricare 2 din acestea s nu se atace reciproc. Dou
dame se atac una pe cealalt dac sunt aezate pe aceeai linie sau pe aceeai coloan sau pe aceeai
diagonal (principal sau secundar).
Vom considera xi linia pe care vom aeza dama de pe coloana i. Printr-o astfel de reprezentare ne
asigurm c nu vom aeza dou dame pe aceeai coloan. Atunci, pentru o soluie parial Sk={x1, x2, xk}
condiiile de continuare includ:
xixj oricare ar fi j=1,..k {i} (sau altfel spus 1<=ij<=k) (prin acesta verificm c nu am aezat
dama k pe o linie pe care s se gseasc deja o alt dam)

|xi-xj||i-j| pentru orice j=1,..k-{i} (prin aceasta ne asigurm c dama k pe care am aezat-o nu
se atac pe una din diagonale cu damele deja aezate).

Un algoritm nerecursiv de rezolvare a problemei damelor se prezint astfel:


29. Ce este un tip de date i ce este un tip abstract de date (ADT Abstract Data Type)?

Tipurile de date reprezint tipul de informaie care poate fi stocat ntr-o variabil. Un tip de data
definete att gama de valori pe care o poate lua o variabil de un anume tip ct i operaiile care se
pot efectua asupra ei.Exemplu: char, int, etc

Un tip abstract de date (Abstract Data Type ADT) este un tip de date necesar unui analist, dar care
este posibil s nu existe n limbajul de programare ceea ce impune necesitatea implementrii lui.

30. Ce este o list, cum se poate implementa o list i ce avantaje i dezavantaje are fiecare
modalitate de implementare?
O list este o secven de 0 sau mai multe elemente de acelai tip denumite noduri noduri ntre care
exist o relaie de ordine determinat de poziia lor relativ. Ea este deci o mulime ealonat de
elemente de acelai tip avnd un numr arbitrar de elemente.
Numrul n al nodurilor se numete lungimea listei. Dac n=0, lista este vid. Dac n>=1, a1 este primul
nod iar an este ultimul nod. Pentru 1<i<n, ai precede pe ai+1 i succede pe ai-1.

O list se poate implementa n 2 moduri: folosind un ir sau folosind pointeri.

Implementarea unei liste utiliznd un ir prezint avantaje i dezavantaje.


Avantajul este accesul rapid la oricare din elementele listei, acces care se face cu ajutorul
indicelui elementului din ir. Dac dorim o regsire pe baza numrului de ordine al
elementelor, vom utiliza indici (sau indeci), n acest caz timpul de acces la oricare din
elementele listei (elemente de tablou) este constant, indiferent de poziie.
Dezavantajul unei astfel de structuri statice de memorie este c dimensiunea ei trebuie
specificat la compilare, nemaiputndu-se apoi modifica aceast dimensiune. Deci este
necesar estimarea dimensiunii tabloului (cu ajutorul creia se va implementa lista) nainte de
compilare. Tot ca dezavantaj, operaiile de insert i delete sunt de complexitate sporit.

n cazul implementrii unei liste ca i structura dinamic (utiliznd pointeri)


Dezavantaje: accesul la elementele unei liste liniare se face secvenial, pornind de la capul
listei (adresa primului nod al listei) pn la ultimul element al ei, ceea ce mrete uneori
considerabil timpul de acces la un anumit element. Regsirea unui element se face destul de
ncet, vorbind de o complexitate O(n).
Avantaje: operaiile de insert i delete se fac uor. Un alt avantaj al implementrii unei liste
folosind pointeri este c nu trebuie specificat dimensiunea maxim, gestiunea spaiului de
stocare este optim, utiliznd alocarea dinamic de memorie.

31. Prezentai i explicai algoritmii de cutare, inserare n capul listei i stergere ntr-o
list nlnuit.
Lista nlnuit este o structur de date n care obiectele sunt aranjate ntr-o ordine liniar. La
implementarea prin iruri, ordinea este determinat de indici n timp ce la implementarea prin
pointeri, ordinea este determinat de un pointer care arat ctre obiectul urmtor.
Pentru o list liniar este obligatoriu s existe o variabil, declarat n timpul compilrii, denumit cap
de list (head) care s pstreze adresa primului element al listei. Pierderea acestei valori va duce la
imposibilitatea accesrii elementelor listei liniare.
Algoritmul de cautare a elementului k n lista L folosind o cutare liniar simpl i returnnd un pointer
ctre primul element cu cheia k din lista L. Dac nu se gsete nici un obiect cu cheia k n list, atunci
se returneaz NIL.

Algoritmul de inserare in capul listei:

Algoritmul de stergere:
Pentru a terge un element dintr-o list avem nevoie de un pointer ctre acesta. Dac nu avem acest
pointer, atunci va trebui gsit prin LIST-SEARCH.

32. Prezentai i explicai algoritmul de cutare respectiv inserare ntr-o list dublu nlnuit
circular cu santinel
Santinela este un obiect dummy care marcheaz nceputul sau sfritul listei. De exemplu, noi vom
introduce n lista L un obiect L.NIL care reprezint un NIL dar care are toate atributele celorlalte
elemente din list. De cte ori vom avea n pseudocod o referin ctre NIL noi o vom nlocui cu o
referin ctre L.NIL.
Atributul L.nil.next indic capul listei (head) iar L.nil.prev indic coada (sfritul) listei (tail). Atributul
next al lui tail respectiv atributul prev al lui tail indic spre L.nil.
Procedura de cutare respectiv inserare ntr-o list dublu nlnuit circular cu santinel.

33. Ce este o stiv i care sunt procedurile de depunere i extragere dintr-o stiv?
Stiva este o structur de tip LIFO (Last In First Out) elementul ce ar urma s fie ters este ultimul
element adugat ntr-o astfel de structur. Exist dou modaliti de a implementa o stiv: folosind
un ir (un array) sau folosind o structur nlnuit cu pointeri.
Operaia de inserare ntr-o stiv este cel mai adesea denumit PUSH iar operaia de extragere este
denumit POP. irul are un atribut S.top care indexeaz ultimul element adugat n stiv. Stiva conine
elementele S[1..S.top], unde S[1] este elementul de la baza stivei iar S[S.top] este elementul din vrf.
Cnd S.top=0 stiva nu conine nici un element i este deci goal.

34. Ce este o coad i care sunt procedurile de depunere i extragere dintr-o coad?
Coada este o structur de tip FIFO (First In First Out). ntr-o elementul care va fi ters este ntotdeauna
cel mai vechi element adugat n coad. Operaia de adugare a unui element ntr-o coad se numete
ENQUEUE iar operaia de extragere a unui element dintr-o coad se numete DEQUEUE. La fel ca
operaia POP de extragere a unui element dintr-o stiv, i operaia DEQUEUE de extragere a unui
element dintr-coad nu primete nici un argument.
35. Ce este o tabel direct adresabil i care sunt operaiile ntr-o tabel direct adresabil?
Adresarea direct este o tehnic care funcioneaz bine dac universul U al cheilor este rezonabil de
mic. Presupunem c o aplicaie necesit elemente dintr-un dicionar n care fiecare element are o
cheie asociat din mulimea U={0,1,m-1}. Vom presupune c nu exist dou elemente cu aceeai
cheie. Pentru reprezentarea mulimii dinamice se folosete un ir (o tabel direct adresabil) T[0..m-
1] n care fiecare poziie (sau slot) corespunde unei chei din U.
Exemplu:

Fiecare element din universul U={0,1,9} corespunde unui index n tabela direct adresabil T.
Mulimea
K={2,3,5,8} a elementelor mulimii determin sloturi n tabel care conin pointeri ctre elemente.
Slotul k pointeaz spre un element din mulime avnd cheia k. Dac mulimea K nu conine un element
cu cheia k, atunci valoarea din tabela T este T[k]=NIL.

36. Ce este o tabel de dispersie, ce este o funcie de dispersie, ce sunt i cum se rezolv coliziunile?

O tabel de dispersie (hash table) este o structur de date care implementeaz dicionare. Dei
cutarea unui element ntr-o tabel de dispersie poate ine (n anumite condiii) la fel de mult ca i
cutarea unui element ntr-o list nlnuit ((n)), n practic aceast structur se comport foarte
bine.
Dac universul de chei U este mare (adic m are o valoare mare), alocarea unui ir de dimensiune m
nu este fezabil iar uneori este imposibil. n general n aceste cazuri, numrul de chei K care se
stocheaz este mic n comparaie cu mrimea lui U.

n cazul tabelelor de dispersie, pentru a determina locul n care va fi stocat elementul cu cheia k, vom
utiliza o funcie de dispersie (hash function): h:U->{0,1,m-1}
Funcia h mapeaz universul U al cheilor n sloturile tabelei hash T[0..m-1]. Mrimea m a tabelei T este
n mod obinuit mult mai mic dect universul U. Fiecare element cu cheia k este salvat n locaia
T[h[k]]. Se spune c h[k] este valoarea hash a cheii k.

Exemplu:

Cheile k2 i k5 ocup acelai slot n acest caz spunem c cele 2 valori intr n coliziune. Exist tehnici
de rezolvare a conflictelor create de coliziuni.
Cea mai folosit tehnic de rezolvare a coliziunilor este cea prin nlnuire. Toate elementele care au
acelai cod hash vor fi plasate n aceeai list nlnuit. Slotul j conine un pointer ctre lista care
salveaz elementele care au j ca i valoare hash. Dac nici un element nu are valoare de hash pe j,
atunci T[j] = NIL.
Exemplu:

37. Prezentai i explicai procedurile de inserare i cutare ntr-o tabel de dispersie.


Presupunem c elementele tabelei de dispersie T sunt chei fr informaii adiionale, cheile k sunt
identice cu elementele coninnd coninnd cheia k. Fiecare slot conine o cheie sau NIL dac slotul
este gol.

38. Ce este un arbore binar de cutare?


Un arbore binar de cutare se poate reprezenta ca o structur nlnuit n care fiecare nod este un
obiect. Fiecare nod al arborelui conine cheia, date auxiliare i 3 referine: left care pointeaz spre
nodul copil stnga, right care pointeaz spre nodul copil dreapta i p care pointeaz spre nodul
rdcin. Dac un copil lipsete atunci referina spre acel copil va fi NIL.

39. Prezentai modalittile de traversare a unui arbore binar i algoritmii pentru fiecare din aceast
modalitate.
Traversare n preordine: se viziteaz nodul rdcin, apoi subarborele stng i n final
subarborele drept (R St Dr).
Traversare n inordine: se viziteaz subarborele stng, apoi nodul rdcin i n final
subarborele drept (St R Dr)
Traversare n postordine: se viziteaz subarborele stng, apoi subarborele drept i n final
nodul rdcin (St Dr R)
Pentru fiecare din cele 3 traversri, la vizitarea fiecrui subarbore se aplic din nou aceeai regul de
vizitare.
Algoritmul de afiare a elementelor unui arbore binar traversat n inordine:

40. Prezentai i explicai algoritmii iterativ respectiv recursiv de cutare ntr-un arbore binar de
cutare.

Algoritmul recursiv de cutare ntr-un arbore binar de cutare:


Procedura primete un pointer ctre rdcina arborelui i o cheie dat k care urmeaz s fie cutat
n arbore. Procedura va returna un pointer ctre nodul cu cheia k (dac acest nod exist) sau NIL n
caz contrar.

Algoritmul iterativ de cutare ntr-un arbore binar de cutare:

41. Prezentai i explicai algoritmii de cutare a minimului, a maximului i a succesorului ntr-un


arbore binar de cutare.
ntr-un arbore binar de cutare, ntotdeauna vom putea gsi elementul minim folosind un pointer
care pornete de la rdcin i urmeaz ntotdeauna copilul din stnga.

Elemenul maxim: de data aceasta se urmareste copilul din dreapta:

Succesorul intr-un arbore de cautare:


Dndu-se un nod ntr-un arbore binar de cutare, uneori dorim s cunoatem succesorul acestui
element n ordinea sortat determinat de parcurgerea n inordine a acestui arbore. Dac toate cheile
sunt distincte, atunci succesorul unui nod cu cheia x este nodul cu cea mai mic cheie mai mare dect
x.key. Proprietatea unui arbore binar de cutare ne permite s determinm succesorul unui nod fr
s comparm cheile. Procedura prezentat n figura 4.7 returneaz un pointer ctre succesorul nodului
x (dac acesta exist) i NIL n cazul n care x deja conine cea mai mare cheie n arborele binar de
cutare.
42. Prezentai i explicai algoritmul de inserare ntr-un arbore binar de cutare.
Inserarea unui element va trebui s menin proprietatea de baz a unui arbore binar de cutare.
Procedura TREE-INSERT din figura de mai jos primete ca i parametru un nod z pentru care z.key=v
(unde v este valoarea care urmeaz s fie inserat), z.left=NIL i z.right=NIL.

43. Prezentai i explicai algoritmul de tergere ntr-un arbore binar de cutare.


In cadrul operaiei de tergere a unui nod ntr-un arbore binar de cutare vom avea nevoie de un
algoritm care nlocuiete un subarbore cu un alt subarbore.
Procedura TRANSPLANT din figura 1 nlocuiete un subarbore ca i copil al printelui su cu un alt
subarbore. Procedura nlocuiete subarborele avnd ca rdcin nodul pointat de u cu subarborele
pointat de v. Astfel, printele nodului u va deveni printele nodului v.

Figura 2 prezint algoritmul de tergere a unui nod dintr-un arbore binar de cutare.
44. Ce este un arbore rou i negru i ce proprieti are?
Un arbore rou-i-negru este un arbore binar de cutare la care fiecare nod are bit suplimentar,
reprezentnd culoarea: rou sau negru. Fiecare nod de arbore conine urmtoarele campuri: cheia,
culoarea, nodul stng, nodul drept i printele.
Un arbore rou i negru este un arbore binar de cutare cu urmtoarele proprieti:
1. Fiecare nod este sau rou sau negru
2. Rdcina este negru
3. Fiecare frunz (NIL) este neagr
4. Dac un nod este rou, atunci amndoi copii sunt negrii
5. Pentru fiecare nod, toate cile simple de la nodul respectiv la frunzele descendentemconin acelai
numr de noduri negre

45. Prezentai i explicai algoritmul de rotaie la stnga ntr-un arbore binar de cutare.
Cnd facem o rotaie la stnga a unui nod x, presupunem c copilul dreapta y nu este T.nil; x poate fi
orice nod n arbore a crui copil dreapta nu este T.nil. Operaia de rotaie la stanga l face pe y noua
rdcin a subarborelui, cu x ca i copilul stnga a lui y iar copilul stnga a lui y (adic ) devine copilul
dreapta a lui x.
Algoritmul LEFT-ROTATE din figura urmatoare presupune c x.rightT.nil i c printele rdcinii este
T.nil.

46. Prezentai i explicai algoritmul de inserare ntr-un arbore rou i negru.


Procedura de inserare va insera n arborele rou i negru T nodul z (cu cheia deja ncrcat n acest
nou nod):

47. Prezentai i explicai algoritmul de restaurare a proprietilor unui arbore rou i negru dup
inserarea unui nod.
Datorit faptului c colorarea n rou a nodului proaspt inserat ar putea nclca proprietatea de
colorare a arborilor rou i negru, vom apela procedura RB-INSERTFIXUP(T,z) (prezentat n figura de
la pct 46) la linia 17 pentru a restaura aceast proprietate.
48. Prezentai i explicai algoritmul de restaurare a proprietilor unui arbore rou i negru dup
tergerea unui nod.
Procedura de nlocuire a unui arbore cu un alt subarbore pentru un arbore rou i negru:

49. Ce este un graf i care sunt cele dou moduri de a reprezenta un graf?

Vom considera un graf G=(V,E) unde V reprezint mulimea nodurilor iar E reprezint mulimea arcelor
(sau mulimea muchiilor).
Exist dou moduri standard de a reprezenta un graf G: ca o mulime de liste de adiacen sau ca o
matrice de adiacen.
O list de adiacen ca modalitate de reprezentare a unui graf reprezint un ir Adj de V liste, cte
una pentru fiecare nod din graf. Pentru fiecare nod uV, Adj[u] conine toate nodurile v din graf pentru
care exist o muchie (un arc) (u,v)E. Deci Adj[u] este format din totalitatea vrfurilor adiacente lui u
n G. Notaia G.Adj[u] se folosete pentru a ne referi la lista de adiacen a nodului u.
Dac G este un graf orientat, suma lungimilor tuturor listelor de adiacen este |E| deoarece un arc
(u,v) este reprezentat doar prin v Adj[u]. Dac G este un graf neorientat, suma lungimilor tuturor
listelor de adiacen este 2|E| deoarece un arc (u,v) apare att in lista de adiacen a lui u (v apare n
Adj[u]) ct i n lista de adiacen a lui v (u apare n Adj[v]).

ntr-o matrice de adiacen presupunem c nodurile sunt numerotate arbitrar cu 1,2,|V|. Vom
folosi o matrice A de dimensiuni |V|x|V| astfel nct elementele aij ndeplinesc condiia

La un graf neorientat, (u,v) i (v,u) reprezint aceeai muchie, n consecin matricea este simetric
fa de diagonala principal (deci matricea de adiacen este propria sa transpus AT=A).

50. Prezentai i explicai algoritmul de parcurgere n lime pentru un graf reprezentat cu liste de
adiacen.
n cazul parcurgerii n lime, pornind de la un graf G(V,E) i un nod s de start, vom explora n mod
sistematic arcele din G pentru a descoperi fiecare nod care este accesibil pornind de la nodul s.
Algoritmul calculeaz distana (cel mai mic numr de muchii) de la nodul s la fiecare nod care este
conectat la s. Algoritmul exploreaz frontiera dintre nodurile descoperite i cele nedescoperite n
lime, adic descoper toate nodurile la distan k, apoi cele la distan k+1 etc. Algoritmul este
funcional att pentru un graf neorientat ct i pentru un graf orientat.
Parcurgerea n lime coloreaz fiecare nod cu alb, gri sau negru pentru a ine evidena avansrii. Se
presupune c iniial toate nodurile din graf sunt colorate n alb (adic sunt nedescoperite), devin mai
trziu gri i apoi negre. Nodurile gri i negru sunt noduri care au fost descoperite. Dac avem arcul
(u,v)E i u este nod negru, atunci v va fi negru sau gri (toate nodurile adiacente unui nod negru au
fost descoperite).
Algoritmul produce un arbore de lime avnd ca rdcin nodul s, care conine toate aceste vrfuri
conectate la s. Pentru fiecare vrf v accesibil din s, calea din arborele de lime de la s la v
corespunde celui mai scurt drum de la s la v n G, adic un drum care conine un numr minim de
muchii. De fiecare dat cnd cutarea descoper un nod alb v n cursul scanrii listei de adiacen al
unui nod deja descoperit u, nodul v i arcul (u,v) este adugat n acest arbore. Vom spune c u este
predecesorul sau printele lui v n arborele de lime.

51. Ce este drumul de lungime minim i care este algoritmul de afiare a drumurilor de lungime
minim?
Vom defini calea cea mai scurt (sau drumul de lungime minim) (s,v) din s n v ca fiind numrul
minim de muchii ale oricrui drum de la s la v sau dac nu exist un drum de la s la v.
Dac avem un graf G=(V,E) i s un nod arbitrar din V, atunci pentru orice arc (u,v)E avem
(s,v)<=(s,u)+1. (dac u este accesibil din s atunci i v este accesibil din s. n acest caz, cel mai scurt
drum de la s la v nu poate fi mai lung dect cel mai scurt drum de la s la u la care se adaug 1
corespunztor muchiei (u,v)).
Dac se execut BFS pornind de la un nod s, la terminare, pentru fiecare nod v pentru care exist o
cale de la s, valoarea v.d calculat de algoritmul BFS satisfice v.d=(s,v).
Procedura PRINT-PATH din figura urmatoare prezint algoritmul de afiare a drumurilor de lungime
minim pornind de la nodul surs s pn la nodul destinaie v.
52. Prezentai i explicai algoritmul de parcurgere n adncime pentru un graf reprezentat cu liste
de adiacen.
Parcurgerea n adncime presupune o cutare n graf ct mai adnc oricnd acest lucru este posibil.
n cutarea in adncime, muchiile sunt explorate pornind de la vrful v cel mai recent descoperit care
mai are nc muchii neexplorate care pleac din el.
Dac toate muchiile unui nod v au fost explorate, atunci algoritmul face back-tracking la
urmtorul nod care trebuie explorat dup v. Aceast operaie continu pn cnd au fost descoperite
toate nodurile accesibile din vrful surs iniial.
Vom folosi aceeai convenie de colorare i anume alb, gri i negru. Pentru fiecare nod folosim 2
tampile de timp:
v.d momentul n care nodul a fost descoperit pentru prima dat (cnd este marcat gri)
v.f momentul n care parcurgerea termin lista de adiacen a lui v (cnd nodul va fi marcat
negru)
Acest marcaj de timp este o valoare ntreag cuprins ntre 1 i 2|V| deoarece exist un moment de
descoperire i un moment de terminare pentru fiecare din cele |V| noduri ale grafului.

53. Ce este o sortare topologic i care este algoritmul simplu de sortare topologic?
O sortare topologic a unui graf orientat aciclic G=(V,E) este o ordonare liniar a tuturor vrfurilor
sale astfel nct, dac G conine o muchie (u,v) atunci u apare naintea lui v n ordonare. Dac graful
nu este aciclic, atunci nu este posibil sortarea topologic. O sortare topologic a unui graf poate fi
vzut ca o ordonare a vrfurilor sale de-a lungul unei linii orizontale astfel nct toate muchiile sale
merg de la stnga la dreapta.
Algoritmul simplu de sortare topologic a unui graf orientat acyclic

54. Ce este o component tare conex i care este algoritmul de determinare a componentelor tare
conexe dintr-un graf orientat?
O component tare conex a unui graf orientat G=(V,E) este o mulime maximal de vrfuri U V, astfel
nct, pentru fiecare pereche de vrfuri u i v din U exist un drum de la u la v precum i de la v la u.
Altfel spus, ntre oricare dou noduri din component exist cel puin un drum i nu mai exist nici un
nod n afara componentei legat printr-un drum de un nod al componentei.

Algoritmul de determinare a componentelor tare conexe dintr-un graf orientat:

55. Ce este un arbore de acoperire minim i care este algoritmul generic de determinare a unui
arbore de acoperire minim?
Vom folosi un graf neorientat conex, G=(V,E) unde V este mulimea pinilor i E este mulimea
interconectrilor posibile dintre perechile de pini; pentru fiecare pereche de pini (u,v)E, avem un cost
w(u,v) ce reprezint costul cablului de la pinul u la pinul v. Dorim s determinm submulimea aciclic
T E care conecteaz toate nodurile din V i al crei cost total w(T)=(u,v)T w(u,v) este minim.
Deoarece mulimea T este aciclic i conecteaz toate nodurile, ea trebuie s formeze un arbore care
va fi denumit arbore de acoperire deoarece acoper graful G.
Problema determinrii arborelui T va fi numit problema arborelui de acoperire minim.
Algoritmul generic de determinare a unui arbore de acoperire minim:

56. Prezentai i explicai algoritmul lui Kruskal de determinare a unui arbore de acoperire minim.
Algoritmul lui Kruskal de determinare a unui arbore de acoperire minim se bazeaz pe algoritmul
generic.
Algoritmul gsete o muchie sigur (u,v) dintre toate muchiile care conecteaz 2 arbori n pdurea de
arbori pentru a o aduga la pdurea dezvoltat. Muchia sigur (u,v) este muchia cu costul minim care
unete doi arbori din pdurea respectiv.
Algoritmul lui Kruskal, prezentat n figura urmatoare folosete o structur de date pentru mulimi
disjuncte pentru a reprezenta mai multe mulimi de elemente disjuncte. Fiecare mulime conine
vrfurile unui arbore din pdurea curent. Funcia FIND-SET(u) returneaz un element reprezentativ
din mulimea care l conine pe u. Astfel, putem determina dac dou vrfuri u i v aparin aceluiai
arbore testnd dac FIND-SET(u) este egal cu FINDSET( v). Combinarea arborilor este realizat de
procedura UNION.

57. Prezentai i explicai algoritmul lui Prim de determinare a unui arbore de acoperire minim.
Algoritmul lui Prim este un caz particular al algoritmului generic pentru determinarea unui arbore de
acoperire minim pentru un graf conex. Algoritmul lui Prim are proprietatea c muchiile din mulimea
A formeaz ntotdeauna un singur arbore. Arborele se formeaz pornind de la un vrf arbitrar r i
crete pn acoper toate vrfurile din V. La fiecare pas, se adaug arborelui o muchie uoar care
unete mulimea A cu un vrf izolat din GA=(V,A). La fel ca algoritmul lui Kruskal, algoritmul lui Prim
folosete o tehnic gredy deoarece arborelui ii este adugat la fiecare pas o muchie care adaug cel
mai mic cost la costul total al arborelui. n procedura MST-PRIM din figura urmatoare graful G, rdcina
r a arborelui minim de acoperire care urmeaz s fie dezvoltat i costurile w sunt parametri de intrare.
n timpul execuiei, toate vrfurile care nu sunt n arbore sunt ntr-o coad de prioritate Q bazat pe
un cmp cheie. Pentru fiecare vrf v, atributul v.key este costul minim al oricrei muchii care unete
pe v cu un vrf din arbore.
58. Ce este un drum minim ntr-un graf i care sunt variantele problemei drumului minim?
Problema drumului minim apare deseori n practic. Un exemplu ar fi gsirea drumului cel mai scurt
dintre 2 orae.
Fiind dat un graf orientat cu costuri G=(V,E) i avnd funcia de cost w:E->R care asociaz fiecrei
muchii cte un cost exprimat printr-un numr real. Costul w(p) al unei ci p={v0, v1, vk} este suma
costurilor de pe calea p :

Costul unui drum minim (costul optim) de la u la v se definete:

Un drum minim de la u la v este orice drum p cu proprietatea w(p)=(u,v).


n continuare ne vom axa pe problema drumului minim de surs unic. ns, exist mai multe variante
ale problemei drumului minim, i anume:
Problema drumurilor minime de destinaie unic: S se gseasc de la fiecare nod vV drumul
minim pn la un vrf destinaie t prestabilit. Aceast problem poate fi pus i invers: calea
cea mai scurt de la o surs s la fiecare nod v dintr-un graf.
Problema drumurilor minime de surs i destinaie unic: S se determine un drum minim de
la u la v pentru u i v date. Dac rezolvm problema drumurilor minime de surs unic pentru
vrful u atunci rezolvm i aceast problem.
Problema drumurilor minime pentru surse i destinaii multiple: S se determine drumul
minim de la u la v pentru fiecare pereche de vrfuri u i v. Aceast problem poate fi rezolvat,
de exemplu, prin aplicarea algoritmului pentru surs unic pentru fiecare vrf al grafului.

59. Ce este relaxarea i care este procedura de relaxare a unei muchii (u,v) ntr-un graf cu costuri
Termenul de relaxare semnific de fapt o operaie care determin decrementarea unei margini
superioare. n procesul de relaxare a unei muchii (u,v) se verific dac drumul minim pn la vrful v
(determinat pn n acel moment) poate fi mbuntit pe baza unui drum care s treac prin u, i
dac da, atunci se reactualizeaz v.d i v.. Practic, un pas de relaxare poate determina descreterea
valorii v.d reprezentnd valoarea drumului minim de la s la v i reactualizarea cmpului v. care
conine predecesorul vrfului v. Procedura RELAX:

60. Prezentai i explicai algoritmul Bellman-Ford de rezolvare a problemei drumurilor minime cu


surs unic n cazul general al unui graf care poate avea i costuri negative.

Algoritmul Bellman-Ford rezolv problema drumurilor minime cu surs unic n cazul general al unui
graf care poate avea i costuri negative. Dndu-se un graf orientat G=(V,E), un vrf surs s i funcia
de cost w:E->R, algoritmul Bellman Ford returneaz o valoare boolean indicnd dac exist sau nu
un ciclu de cost negativ accesibil din vrful surs s considerat. n cazul n care un astfel de ciclu exist,
algoritmul semnaleaz c nu exist soluie iar dac nu exist un astfel de ciclu, algoritmul produce
drumurile minime i costurile corespunztoare lor.
Algoritmul utilizeaz tehnica relaxrii prin descreterea estimrii valorii v.d adic valoarea drumului
minim de la vrful surs s pn la fiecare vrf vV pn la obinerea adevratului cost minim (s,v).
Algoritmul returneaz TRUE dac i numai dac nu conine cicluri de cost negativ accesibile din surs:

61. Prezentai i explicai algoritmul de cutare a drumurilor minime ntr-un graf orientat acyclic.

Algoritmul ncepe prin sortarea topologic a grafului pentu impunerea unei ordini liniare a vrfurilor.
Dac exist un drum de la u la v atunci u precede v n ordinea topologic. Algoritmul efectueaz o
singur trecere peste vrfurile sortate topologic i pe msur ce fiecare vrf este procesat, sunt
relaxate toate muchiile care pornesc din acel vrf.

62. Prezentai i explicai algoritmul lui Dijkstra de determinare a drumurilor de lungime minim.
Algoritmul lui Dijkstra rezolv problema drumurilor de lungime minim cu surs unic ntr-un graf
orientat G=(V,E) cu costuri nenegative. Deci n acdrul acestui algoritm vom avea w(u,v)>=0 pentru
orice arc (u,v)E.
Algoritmul lui Dijkstra gestioneaz o mulime S de noduri pentru a crui elemente algoritmul a calculat
deja costurile finale ale drumurilor minime de la sursa s. Algoritmul selecteaz cte un vrf u din
mulimea V-S pentru care estimarea drumului minim este minim, introduce acest vrf u n mulimea
S i relaxeaz arcele divergente din din vrful u.
1. Care sunt dezavantajele utilizrii sistemelor clasice de fiiere?

Redundanta, inconsistenta, validarea datelor, disponibilitatea si securitatea datelor.

2. Definii noiunea de baz de date!

Baza de date este un sistem integrat, coerent i partajat de fiiere. Integrat - nseamn c baza de
date poate fi gndit ca o unificare a mai multor fiiere distincte de date, unde fiecare utilizator are
viziunea sa proprie asupra datelor. Partajat - nseamn c pri distincte din baza de date pot fi
folosite de ctre mai muli utilizatori. Coerent nseamn c se asigur caracterul neredundant i
coerent al datelor.

3. Ce este schema (intensia) i coninutul (extensia) unei baze de date?

Structura datelor mpreun cu legturile dintre entiti i restriciile de integritate formeaz schema
(denumit i intensia) bazei de date, care, de obicei, rmne constant pe durata utilizrii bazei de
date. Totalitatea informaiilor stocate n baza de date la un moment dat reprezint coninutul
(denumit i extensia) bazei de date.

4. Definii noiunea de SGBD.

Un SGBD reprezint un ansamblu de programe pentru gestiunea datelor sau un mediu de


programare destinat gestiunii datelor din baza de date. Prin urmare, el este cel care asigur
ncrcarea bazei de date, actualizarea i interogarea acesteia, ct i interfaa cu sistemul de operare
n vederea simplificrii accesului la date.

5. Care sunt componentele unui SGBD?

- sistemul de gestiune a fiierelor i suporturilor la nivel fizic, care se ocup cu afectarea spaiilor de
memorie pe disc, structurile fizice de date i gestionarea acestora la nivelul fizic;
- sistemul de gestiune a fiierelor la nivel logic, care face legtura dintre datele fizice i structurile
bazei de date;
- limbajul de manipulare a datelor (LMD) i translatorul aferent;
- limbajul de descriere a datelor (LDD) i translatorul aferent;
- limbajul de consultare sau interogare (Query Language) i procesorul aferent, care traduce
instruciunile limbajului de consultare n instruciuni inteligibile pentru sistemul de gestiune la nivel
logic;
- componente de interfa cu programele de aplicaii;
- componente de serviciu, legate de jurnalizri, securitate etc.

6. Care sunt funciile unui SGBD?

- Funcia de descriere date, care permite descrierea structurii datelor i a legturilor dintre entiti.
Pentru a realiza aceast funcie, SGBD-urile dispun de un limbaj de descriere date LDD (Data
Description Language - DLL), care este specific fiecrui SGBD.

- Funcia de manipulare date, care permite crearea, consultarea (interogarea) i actualizarea bazei
de date. Aceast funcie se realizeaz prin intermediul limbajului de manipulare date LMD (Data
Manipulation Language - DML), numit adesea i limbaj de interogare. Acesta conine un set de
comenzi necesare exploatrii n condiii optime a bazei de date.

- Funcia de utilizare, care permite comunicarea dintre utilizator i baza de date prin intermediul
unei interfee ct mai simple i mai apropiate de utilizator (ferestre, meniuri etc.).
7. Ce deosebiri exist ntre baze de date i bnci de date?

Bazele de date conin informaii directe (factuale), n timp ce bncile de date conin informaii
refereniale. Astfel, interognd o baz de date referitor la numrul , aceasta va returna valoarea
3,14159 sau faptul c informaia n-a fost introdus. Adresnd aceeai cerere unei bnci de date,
aceasta va indica bibliografia care ar trebui consultat.

8. Ce este nivelul intern din arhitectura bazelor de datelor?

Nivelul intern (baza de date fizic) definete baza de date ca fiind o colecie de fiiere, coninnd
datele din cadrul bazei de date, la care se adaug i alte structuri auxiliare de date i un set de
programe, care interacioneaz cu sistemul de operare pentru mbuntirea managementului bazei
de date. La acest nivel structura bazei de date se concretizeaz n schema intern. Aici apare
independena fa de cile de acces, adic utilizatorul nu trebuie s fie preocupat de organizarea i
modul de acces la date la nivel fizic.

9. Ce este nivelul conceptual i ce deosebiri exist ntre entiti i relaii?

Nivelul conceptual este nivelul imediat superior celui fizic, datele fiind privite prin prisma semanticii
lor, respectiv a coninutului i relaiilor cu alte date. Acesta este i primul nivel de abstractizare a
lumii reale, avnd ca obiectiv principal modelarea realitii existente prin definirea i descrierea
unitilor logice cu care se lucreaz i a legturilor dintre acestea. Aceast schem este descris n
general de administratorul bazei de date, el fiind singurul care cunoate i manipuleaz schema
conceptual a bazei de date, degrevnd utilizatorii de cunoaterea ntregii structuri a bazei de date.

10. Ce este nivelul extern din arhitectura unei baze de date?

Nivelul extern este ultimul nivel de abstractizare la care se poate descrie o baz de date. Nivelul
extern conine, deci, o parte din unitile logice descrise la nivel conceptual, dar poate include i
uniti logice care nu apar la nivel conceptual i care nu au corespondent direct n baza de date
fizic, obinute de exemplu prin calcule. Ca urmare, nivelul extern este derivat din nivelul conceptual
i reprezint ceea ce vede utilizatorul din baza de date.

11. Ce sunt vederile i care este rolul lor?

Unitile logice folosite la nivel extern se numesc uniti logice virtuale, imagini sau vederi i
formeaz o baz de date virtual. Vederile asigur, printre altele, urmtoarele funcii n cadrul unei
baze de date: 1) securitatea bazei de date, prin limitarea accesului la datele din baza de date a
anumitor categorii de utilizatori. 2) definirea modului de acces la date; astfel, pentru unele vederi
utilizatorii pot avea doar drept de consultare, iar n cazul altor vederi pot avea drept de modificare
sau tergere; 3) ofer utilizatorului o viziune simplificat i personalizat asupra bazei de date

12. Ce nivele de independene cunoatei n cazul bazelor de date?

Independenta fata de caile de acces, adica utilizatorul nu trebuie sa fie preocupat de organizarea si
modul de acces la date la nivel fizic.Independenta fizica- In acest sens, nivelului conceptual i se
ataseaza o transformare prin care se defineste modul in care structura conceptuala se transpune in
structura fizica de memorare a datelor si care reprezinta interfata dintre cele doua nivele.
Independenta logica se refera la imunitatea modelului propriu extern si deci a programelor de
aplicatie fata de modificarile din structura globala a bazei de date.

13. Ce este un model i ce pri are?


Un model reprezinta un ansamblu de instrumente conceptuale, care permit descrierea datelor, a
relatiilor dintre ele, a semanticii lor, cat si a restrictiilor la care sunt supuse aceste date. Un model de
date include urmatoarele componente: 1.un set de reguli de structurare a datelor, numite si reguli
generatoare si 2.un set de reguli de manipulare a datelor

14. Care sunt modelele bazate pe obiecte i care sunt cele orientate pe nregistrri?

Modelele bazate pe obiect permit descrierea datelor la nivel conceptual i extern. Din aceast
categorie fac parte: a) modelele entitate-asociaii (E-A), entitate-relaie (E-R) sau obiect-
entitaterelaie (OLE) b) modelul semantic c) modelul funcional d) modelul orientat pe obiecte.

Din categoria modelelor orientate pe nregistrri fac parte: a) modelul ierarhic b) modelul reea c)
modelul relaional.

15. Ce generaii de SGBD-uri cunoatei i prin ce se caracterizeaz ele?

Prima generatie de BDD a fost cea bazata pe structuri arborescente, adica relatii de tip 1:n. A doua
generatie de BDD a fost cea bazata pe retele sau relatii de tip n:m. A treia generatie de BDD este
modelul relational, adica de tip n:1, al carui obiectiv este acela de simplificare a accesului la date de
catre utilizatorii finali.

16. Care sunt diferenele dintre entiti i tipuri de entiti?

O entitate este o realitate obiectiv care exist prin ea nsi. Orice entitate, aa dup cum s-a mai
artat, se caracterizeaz prin anumite proprieti, care n cadrul modelului de date sunt
reprezentate prin atribute. Entitile la rndul lor sunt reprezentate prin tipuri de entiti. Un tip de
entitate este o reprezentare a unei categorii de obiecte din lumea real sau a unei mulimi de
entiti de acelai fel i atributele sale reprezint caracteristicile generale (intensionale) ale acelei
categorii

17. Ce este o baz de date relaional?

O baz de date relaional este definit ca fiind un ansamblu de tabele sau relaii ntre care exist
anumite legturi, fiecare tabel fiind alctuit din coloane, denumite atribute, i linii, denumite i
tuple.

18. Care sunt conceptele cu care se opereaz n domeniul relaional?

Conceptele cu care se opereaz n cadrul modelului relaional n vederea definirii entitilor i


structurii acestora sunt urmtoarele:
1. linia sau tuplul
2. atributul sau caracteristica
3. domeniul
4. nregistrarea logic
5. cardinalitatea relaiei
6. rangul relaiei
7. cheia relaiei

19. Definii noiunile de tuplu, atribut i domeniu.

Linia sau tuplul reprezint o succesiune de valori de diferite tipuri i conine informaii referitoare la
un obiect sau la o entitate.
Atributul reprezint o caracteristic sau o proprietate a unui tip de entitate sau clase de entiti i
definete ansamblul valorilor de acelai tip din cadrul unei coloane a tabelului.

Domeniul reprezint totalitatea valorilor acceptate sau autorizate pentru un atribut al relaiei.

20. Cum se definete matematic o relaie i care-i legtura ntre tabele i relaiile finite?

Din punct de vedere matematic, prin relaie se nelege o submulime a produsului cartezian al unor
domenii. Avand domeniile D1D2.Dn, produsul lor cartezian se defineste astfel:
V=D1xD2X..xDn={(d1,d2,..,dn)} si reprezinta o asociere intre elementele fiecarui domeniu, sau
mai exact este multimea tuturor combinatiilor sau tuplelor de forma {d1,d2,.dn} unde di apartine
lui Di.

21. Ce este antetul i ce este corpul unei relaii?

Antetul relaiei este o mulime de atribute definite pe cte un domeniu (nu neaprat distinct).
Corpul relaiei este o mulime de tuple, fiecare tuplu coninnd o mulime de valori aferente
atributelor definite n antetul relaiei,

22. Enunai proprietile relaiilor.

1. Ordinea atributelor n cadrul unei relaii este nesemnificativ (atributele nu sunt ordonate).
2. Atributele unei relaii trebuie s fie distincte, chiar dac pe acelai domeniu sunt definite mai
multe atribute.
3. Orice atribut are valori atomice, adic la intersecia dintre o linie i o coloan se afl o singur
valoare i nu o colecie de valori sau grupuri repetitive. In acest caz, se consider c relaia se afl n
forma ntia normal.
4. In cadrul corpului relaiei, tuplele nu sunt ordonate n mod obligatoriu.
5. Intr-o relaie nu exist tuple duplicate.

23. Cum se definete o cheie?

O cheie reprezinta un atribut sau o multime de atribute cu urmatoarele proprietati:


1.identificare unica, ceea ce inseamna ca multimea de atribute K identifica in mod unic fiecare tuplu
din relatie
2.ireductibilitatea, ceea ce inseamna ca nu exista nici o submultime proprie a multimii K, care sa
identifice in mod unic un tuplu al multimii R
3.valorile atributului sau ale ansamblului de atribute care definesc cheile candidat sunt intotdeauna
specificate, adica nu pot fi nule

24. Ce este o cheie primar, una candidat i una strin?

O entitate poate conine mai multe chei candidat, dar numai una dintre ele se alege pentru a fi
folosit la identificarea tuplelor. Aceast cheie se numete cheie primar.

Dac ntr-o relaie exist mai multe atribute sau combinaii de atribute care permit identificarea
unic a tuplelor, acestea sunt denumite chei candidat.

Cheia straina se utilizeaza la stabilirea legaturilor dintre doua tabele, numite tabela principala sau
parinte si tabela secundara sau copil. Valoarea cheii straine trebuie sa se regaseasca in multimea
cheilor primare ale tabelei principale.

25. Cum se definesc legturile 1:n, m:n i n:1?


legturi de tip 1-1, prin care unei entiti din mulimea sau clasa M1 i corespunde o singur entitate
n mulimea sau clasa M2.

legturi de tip 1-n, prin care unei entiti din mulimea M1 sau din tabelul M1 i corespund mai
multe entiti n mulimea sau tabelul M2, iar unei entiti din M2 i corespunde o singur entitate n
M1.

legturi de tip m-n, prin care unei entiti din M1 i corespund mai multe entiti n M2 i reciproc;
relaiile sociale de acest tip se numesc relaii de grup sau hyppie.

26. Ce este integritatea referenial?

Integritatea referenial se definete ca fiind un ansamblu de reguli impuse tabelelor ntre care s-au
stabilit anumite legturi. Astfel, pentru a asigura integritatea referenial trebuie ca atunci cnd se
fac modificri ale valorii unui cmp de tip cheie primar sau strin dintrun tabel, s nu fie afectat
relaia dintre cele dou tabele, adic s se modifice automat valorile cheii n toate tuplele
corespunztoare.

27. Cum se reflect integritatea referenial n cazul tabelei principale?

In tabela principal (tabela referit sau printe):


a. operaia de adugare se va face fr nici un fel de restricii din punct de vedere al condiiilor de
integritate referenial;
b. operaia de tergere - deoarece prin tergerea unui tuplu din relaia sau tabela principal, n
relaia secundar pot rmne tuple care fac referire la tuplul ters, pentru a menine integritatea
referenial se poate introduce tergerea restricionat sau n cascad;
- n primul caz, nu se poate terge un tuplu din tabela principal dac acesta are corespondent tuple
n tabela secundar, deoarece tuplele din tabela secundar rmn orfane, adic vor avea referine
nesatisfcute;
- n al doilea caz, tergerea unui tuplu din tabela principal va fi urmat de tergerea tuturor tuplelor
din relaia secundar care fac referire la tuplul ters;
c. operaia de modificare poate fi privit ca i n cazul operaiei de tergere, iar restriciile
refereniale sunt cele folosite la operaia de tergere.

28. Cum se reflect integritatea referenial n cazul tabelei secundare?

n tabela secundar (de referin sau tabela copil):


a. operaia de adugare se poate face numai dac valorile cheii strine pentru articolele adugate se
regsesc printre valorile cheii primare din tabela principal, altfel operaia de adugare este
interzis;
b. operaia de tergere se poate realiza fr nici o restricie din punct de vedere al condiiilor de
integritate referenial;
c. operaia de modificare se poate realiza cu condiia s nu apar nregistrri fr corespondent n
tabela principal.

29. Ce este schema relaional i cum se poate reprezenta?

Schema relaional sau intensia unei baze de date poate fi definit ca un ansamblu de relaii asociate
semantic prin domeniul de definiie i prin restricii de integritate.
Schema relaional poate fi reprezentat grafic prin mai multe metode. Una dintre ele se bazeaz pe
urmtoarele reguli:
a. o tabel se reprezint pe dou linii, unde prima linie conine numele tabelei, iar a doua linie,
numele atributelor;
b. cheia primar este plasat n stnga tabelei, reprezentat de primul atribut;
c. numele atributului sau atributelor care formeaz cheia primar se subliniaz;
d. o restricie se indic printr-o sgeat care pleac de la numele coloanei de referin (care
reprezint cheia strin) spre coloana refereniat (care reprezint cheia primar).

30. Cum se realizeaz legtura ntre elementele unei entiti i ale unei tabele?

1. n timp ce relaia este o mulime teoretic, tabela este un obiect concret cu o anumit
reprezentare (tablou bidimensional);
2. n timp ce ntr-o relaie ordinea atributelor sau tuplelor nu este semnificativ, ntr-o tabel exist
o ordonare att a coloanelor, dat de ordinea acestora la creare, ct i a nregistrrilor, dat de
ordinea n care au fost introduse n tabel sau ca urmare a indexrii tabelei;
3. n timp ce o relaie teoretic este format ntotdeauna din tuple distincte, n practic o tabel
poate conine i linii duplicat, aa dup cum s-a mai menionat n cazul SQL Server.
n acest context, noiunea de relaie se identific cu cea de tabel sau fiier, atributele, cu denumirea
coloanelor unei tabele sau cu cmpurile unui fiier, iar tuplele, cu liniile tabelei sau cu articolele
(respectiv nregistrrile) unui fiier.

31. Care este schema general a unei baze de date?

Asigurarea independenei logice i fizice a datelor impune adoptarea unei arhitecturi a bazei de date
pe trei nivele astfel:

1. nivelul intern

2. nivelul conceptual

3. nivelul extern

32. Definii noiunile de ntreprindere, model, respectiv model conceptual.

Prin ntreprindere se nelege o structur organizat n vederea realizrii unor produse sau servicii.
Model este un ansamblu de reguli pentru formalizarea ntreprinderii. n practic exist: modele
matematice, economice, contabile, de date etc. Modelele de date reprezint un ansamblu de reguli
prin care ntreprinderii i se ataeaz structuri de date. Aa dup cum se tie, modelele de date se
clasific dup nivel i semantic n: modele conceptuale, logice, fizice, respectiv externe.
Modelul conceptual, fiind primul nivel i cel mai general de abstractizare a ntreprinderii, se
realizeaz fr utilizarea calculatorului i poate lua diferite forme cum ar fi: modelele de tip E-R sau
OLE. Imaginea ntreprinderii prin modelul conceptual este schema conceptual, care este format
din obiecte i relaii sau legturi ntre acestea.
La nivelul logicii globale modelul conceptual se traduce n: modele arborescente, n reea sau
relaionale.

33. Ce modele de date cunoatei?

Modelele utilizate de bazele de date se pot grupa n trei categorii: modele bazate pe obiect, modele
bazate pe nregistrare i modele fizice.
Modelele bazate pe obiect permit descrierea datelor la nivel conceptual i extern.
Din aceast categorie fac parte:
a) modelele entitate-asociaii (E-A), entitate-relaie (E-R) sau obiect-entitaterelaie (OLE)
b) modelul semantic
c) modelul funcional
d) modelul orientat pe obiecte.
Din categoria modelelor orientate pe nregistrri fac parte:
a) modelul ierarhic
b) modelul reea
c) modelul relaional.

34. Ce este schema sau structura unei baze de date?

Structura datelor mpreun cu legturile dintre entiti i restriciile de integritate formeaz schema
(denumit i intensia) bazei de date, care, de obicei, rmne constant pe durata utilizrii bazei de
date.

35. Ce sunt redundana i inconsistena?

redundana este proprietatea unei informaii de a se repeta nejustificat; de exemplu codul


materialelor, care poate ajunge la 20-30 de cifre, se repet n majoritatea acestor fiiere, mrind
nejustificat spaiul fizic ocupat;
inconsistena este legat de apariia distorsionat a unor informaii n diferite contexte; una dintre
cauzele inconsistenei este redundana, deoarece este suficient ca la o apariie (copie) a informaiei
redundante, aceasta s fie introdus greit i informaia poate deveni inconsistent;

36. Care sunt anomaliile de stocare?

anomalii de inserare - s presupunem c se construiete o nou sal de curs; aceasta nu poate fi


introdus n tabelul orarului pn nu se primete o valoare pentru cheia primar Sala#, deoarece
cheia primar nu poate fi vid;
anomalii de tergere s presupunem c sala 022 trebuie scoas din orar datorit unor reparaii;
prin tergerea liniilor respective se va putea pierde legtura (Sala, Capacitate) care n-are o legtur
semantic cu reparaia din acest caz i ar trebui s rmn n baza de date.
anomalii de modificare s presupunem c s-a extins capacitatea slii 022 la 120 de locuri. Rezult
c trebuie s se urmreasc toate tuplele din tabel care conin relaia (022,100), deoarece altfel
apare o anomalie generat de faptul c aceeai sal poate apare cu dou capaciti diferite.

37. n ce const anomalia de reconexiune?

s presupunem c descompunem tabelul 3.4 n dou tabele (vezi tabelul 3.5). Dac se recompun
prin echijoin (asociere pe baza de egalitate) cele dou tabele, se obine tabelul 3.6. Deoarece fiecare
tuplu din tabelul din stnga se combin cu fiecare tuplu din tabelul din dreapta i pe baza egalitii
valorilor cheii comune, nu se ajunge la tabelul iniial.

Sala# Capacitatea Orar An Materia Cadrul didactic

Zi Ora

026 100 Luni 8 IE IV Baze de date Ionescu

026 100 Luni 10 MF III MRU Popescu

...

022 150 Luni 8 CIG III Contabilitate Georgescu

022 150 Luni 10 IE IV CSBD Ionescu


... .. ...

033 150 Luni 8 IEIII CSBD Apolodor

033 150 Luni 10 MKIII Cercetri de Alexa

marketing
... .. ...

Tabelul 3.4 Orarul slilor de curs

Sala1 Sala 2

Sala Capaci

tatea Capaci Orar An Materia Cadru didactic

026 100 Zi Ora


Tatea
026 100
100 Luni 8 IE IV Baze de date Ionescu

100 Luni 10 MF III MRU Popescu


022 150
...
022 150
150 Luni 8 CIG III Contabilitate Georgescu

150 Luni 10 IE IV CSBD Ionescu


033 150
... .. ...
033 150
150 Luni 10 IE IV CSBD Apolodor

150 Luni 10 IE IV CSBD Alexa

... .. ...

Tabelul 3.5 Descompunerea relaiei orarul slilor

Sala# Capacitate Orar An Materia Cadru didactic

Zi Ora

026 100 Luni 8 IE IV Baze de date Ionescu

026 100 Luni 10 MF III MRU Popescu

...

026 100 Luni 8 IE IV Baze de date Ionescu

026 100 Luni 10 MF III MRU Popescu

...
022 150 Luni 8 CIG III Contabilitate Georgescu

022 150 Luni 10 IE IV CSBD Ionescu

... .. ...

022 150 Luni 8 CIG III Contabilitate Georgescu

022 150 Luni 10 IE IV CSBD Ionescu

... .. ...

Tabelul 3.6 Relaia orarul slilor recompus


38. Care este scopul i definiia normalizrii?

Normalizarea este o operatie prin care se urmareste:


- transformarea tabelelor in relatii
- inlaturarea redundantelor
- inlaturarea dependentelor interne intre atreibutele unei relatii
- inlaturarea diferitelor anomalii (de inserare, modificare sau stergere)
- asigurarea descompunerilor fara pierderi
Normalizarea este procesul iterativ prin care baza de date se aduce la o forma standard in care
dispare fenomenul de redundanta, nu exista anomalii si fiecare tabel contine o singura entitate
semantica (nu exista dependente intre atribute)

39. Definii noiunea de dependen funcional, dependen funcional total i dependen


funcional parial.

Dependenta functionala, fiind o dependenta univoca, seamana cu functia din matematica, deoarece
uneia sau mai multor valori ale primului atribut ii corespunde 0 sau 1 valoare din al doilea atribut.
Deosebirea dintre cele doua este ca in timp ce functia matematica este atemporala, dependenta
functionala depinde de timp.
Fie R o relatie, A si B doua multimi de atribute ale ei. Se spune ca intre A si B exista o dependenta
functionala totala si se noteaza cu DFT: A->B, daca si numai daca au loc urmatoarele conditii:
(i) Exista DF: A->B
(ii)Nu exista nici o submultime proprie A a lui A astfel sa existe DF:A->B
O dependenta functionala care nu este totala este o dependenta partiala.

40. Enunai axiomele lui Armstrong.

A1: Reflexivitatea A->A, sau mai general, daca A este o parte a lui A, rezulta A->A
A2: Cresterea determinantului:
- daca exista DF:A->B
-A este o submultime a lui C, rezulta ca are loc si DF: C->B
A3: Tranzitivitatea:
- din A->B
- si B->C, rezulta A->C

41. Ce este un sistem complet i ce este un sistem nchis de axiome?

mulime de axiome este complet dac i numai dac pornind de la o mulime de dependene E se
pot obine pe baza axiomelor toate dependenele nchiderii lui E.
O mulime de axiome este nchis, dac i numai dac, pornind de la mulimea E a dependenelor nu
se pot deduce, cu ajutorul axiomelor, dependene care nu fac parte din E.

42. Enunai teorema lui Ullman.

Enunm fr demonstraie teorema lui Ullman dat n 1980: Mulimea axiomelor lui Armstrong este
complet i nchis.

43. Ce este nchiderea tranzitiv a unei dependene, respectiv nchiderea unei mulimi de
dependene?

Tranzitivitatea din AB i BC rezult AC.


DF:AC se mai numete nchiderea tranzitiva primelor dou dependene, respectiv se spune c C
depinde tranzitiv de A.
Fie E o mulime de dependene (univoce sau multivoce). Mulimea E+ a tuturor dependenelor
tranzitive obinute din E se numete nchiderea lui E. Fie acum dou mulimi de relaii E i E, unde E
conine dependenele din E precum i unele dependene obinute din E aplicnd proprietile
acestor dependene. E se numete acoperire a lui E dac i numai dac, E i E au aceeai nchidere.

44. Ce este o acoperire i o acoperire minimal a unei mulimi de dependene?

Fie acum doua multimi de relatii E si E, unde E contine dependente din E precum si unele
dependente obtinute din E aplicand proprietatile acestor dependente. E se numeste acoperire a lui
E daca si numai daca, E si E au aceasi inchidere.
E se numeste o acoperire minimala a lui E daca si numai daca este o acoperire a lui E si nicio parte a
lui E nu are aceasta proprietate. Referitor la acoperirea minimala trebuie remarcate urmatoarele:
- acoperirea minimala joaca un rol important in descompunerea relatiilor
- o multime de aplicatii poate avea mai multe acoperiri minimale.

45. Ce este o relaie ireductibil? Dar o descompunere atomic?

O relaie se numete ireductibil dac nu mai poate fi descompus n mod reversibil. Se poate
observa c o relaie ireductibil definete o singur entitate semantic i, deci, relaiile ireductibile
pot fi considerate module logice pe baza crora se modeleaz ntreprinderea.
Se numete o descompunere atomica unei relaii R, o descompunere reversibil a lui R n relaii
ireductibile.

46. Dai definiia unei relaii n 1NF.

O relaie este n prima form normal (1NF) dac fiecare atribut (cmp) este atomic i nu conine
grupuri repetitive.

47. Cum se transform o tabel ntr-o relaie 1NF?

Trecerea unui tabel la prima forma normala se realizeaza astfel:


- atributele care nu sunt atomice se transforma in campuri atomice prin proiectare (descompunere)
si eventual redenumire.
- pentru campurile repetitive se introduc atatea tuple cate aparitii are campul respectiv, fiecare
tuplu continand o aparitie a campului.

48. Dai definiia unei relaii n 2NF.


O relaie se consider n a doua form normal (2NF), dac este n prima form normal i orice
atribut care nu face parte din cheia primar, depinde funcional total de cheia primar; cu alte
cuvinte, nici un atribut care nu face parte din cheia primar nu depinde funcional de o parte a cheii
primare.

49. Cum se aduce o relaie din 1NF n 2NF?

Pentru nlturarea anomaliilor, relatiase aduce la a doua form normal, prin aplicarea teoremei
descompunerii lui Delobel.

Teorema de
descompunere
Relaie 1NF Relaie 2NF
Se izoleaz dependena
parial de cheia primar

50. Care sunt cele 3 definiii pentru 3NF?

O relatie este in 3NF daca este in 2NF si intre doua atribute care nu sunt cheie nu exista o
dependenta tranzitiva.
O a doua definitie pentru forma a 3-a normala a fost data de Boyce si Codd, ea se numeste forma
BCNF sau Boyce-Codd Normal Form si se defineste astfel: o relatie R este in BCNF daca pentru orice
multime de atribute A pentru care exista un atribut din C(A), unde C(A) este multimea atributelor din
R care nu fac parte din A si care depind functional de A, are loc proprietatea ca orice atribut din R
depinde functional de A.
O a treia definitie a formei a 3-a normale este cea data de Sharman si se enunta astfel: O relatie este
in 3NF daca orice determinant este o cheie (prima sau candidat).

51. Cum se trece de la 2NF la 3NF?

Putem deci spune c trecerea de la 2NF la 3NF se realizeaz prin izolarea DF tranzitive i aplicnd
teorema de descompunere. Schematic fenomenul se reprezint astfel:

Teorema de
descompunere
Relaie 2NF Relaie 3NF
Se izoleaz dependenele
tranzitive ntre atribute
care nu sunt chei

52. Ce este BCNF i cum se aduce o relaie din 3NF la BCNF?

O a doua definiie pentru forma a 3-a normal a fost dat de Boyce i Codd n 1971; ea se numete
forma BCNF sau Boyce-Codd Normal Form i se definete astfel: o relaie R este n BCNF dac pentru
orice mulime de atribute A pentru care exist un atribut din C(A), unde C(A) este mulimea
atributelor din R care nu fac parte din A i care depind funcional de A, are loc proprietatea c orice
atribut din R depinde funcional de A.

Schematic operaia se poate reprezenta astfel:


Teorema de
descompunere
Relaie 3NF Relaie BCNF
Se izoleaz dependenele
dintre atributul non -cheie
i o parte a cheii primare

53. Definii descompunerea fr pierderi a relaiilor i enunai teorema lui Ullman.

Se observ c astfel s-au obinut dou tabele n prima form normal, iar prin recompunerea
tabelelor (prin echijoin) se ajunge la relaia iniial, deci descompunerea este fr pierderi, adic:
PERSONAL = PERS1 [MARCA# = MARCA#] COPII
Teorema de descompunere
Descompunerea se utilizeaz pentru a evita anomaliile de stocare mai sus amintite.
Teorema de descompunere reversibil se mai numete teorema lui Delobel i se enun astfel: Fie R
o relaie definit pe mulimea atributelor , R() i fie A,B,C o partiionare a lui , as el nct s
existe DF:AB. Atunci R() poate fi descompus fr pierderi n dou relaii R(1 ) i R(2 ), unde
1=A U B este reuniunea atributelor din DF
2=A U C- este reuniunea lui A cu atributele care nu fac parte din DF.
Descompunerea permite izolarea a dou concepte care iniial se gseau n acelai tabel, adic
transform o dependen intra-relaie ntr-o dependen inter-relaie.
Teorema lui Ullman. Fie o descompunere al lui R n dou relaii R1i R2. Dac se noteaz cu D
mulimea tuturor dependenelor funcionale din R, descompunerea este fr pierderi de date, deci
reversibil, dac i numai dac dependenele funcionale de la R1 R2 la R1- R2 , respectiv R2- R1, fac
parte din nchiderea lui D.
Observaie. Teorema lui Delobel satisface condiiile teoremei lui Ullman. ntradevr, DF aplic A=
R1 R2 n B= R1- R2. Din cele de mai sus rezult c descompunerea pe baza teoremei lui Ullman
conserv datele.

54. Definii descompunerea care conserv dependenele i enunai teorema lui Rissanen.

Fie R o relaie, F, o mulime de dependene de tip DF n R i A un grup de atribute. Se numete


proiecia mulimii F pe A i se noteaz cu F(A), mulimea tuturor dependenelor din nchiderea lui F,
de forma, DF:BC, cu B,C submulimi din A.
Fie {R1, R2,..., Rn} o partiionare a lui R. Aceast partiionare conserv dependenele dac i numai
dac nchiderea lui F , notat cu F+ este egal cu reuniunea dependenelor F(Ri) pentru i=1,2,...,n.
Cele de mai sus se pot concluziona sub forma teoremei lui Rissanen (1978): Fie R1, R2 o
descompunere a lui R i F mulimea dependenelor din R. Descompunerea este reversibil i
conserv dependenele din F dac i numai dac:
F poate fi dedus din F(R1) i F(R2) (conserv dependenele).
Atributele comune ale lui R1 i R2 formeaz o cheie cel puin n una din relaiile R1 sau R2, adic
exist o dependen de la R1 R2 la R1- R2 sau
R2- R1.

1. Ce este o baz de date distribuit?

O baz de date distribuit e un ansamblu de baze de date administrate de diferite situri, dar care
apar pentru utilizator ca o baz unic. Ele sunt proiectate sub forma unor colecii de date integrate,
omogene sau nu, mprtiate cu discernmnt ntr-o reea de calculatoare sub forma unei baze de
date globale.
2. Care sunt elementele care caracterizeaz sistemele distribuite i la care fac referire n general
definiiile?

Definitiile surprind doua aspecte ale bazelor de date distribuite si anume integrarea logica si
repartizarea fizica.
Integrarea logica se refera la faptul ca datele inmagazinate nu sunt simple colectii de fisiere ci
reprezinta o structura bine organizata pe care utilizatorul o percepe ca o singura baza de date.
Repartizarea fizica se refera la faptul ca baza de date nu este stocata intr-o singura locatie fizica ci
este impartita pe mai multe statii de lucru.Dispersarea poate sa se faca depasind bariera unui birou
sau a unei cladiri.

3. Ce este un SGBDD?

Un sistem de gestiune al bazelor de date distribuite reprezint sistemul software care permite
gestiunea bazelor de date distribuite, fcnd distribuirea fizic transparent pentru utilizatori.

4. Ce se nelege prin fragmentarea bazelor de date i de cte tipuri este aceasta?

Fragmentarea reprezint procedeul de spargere a relaiilor utilizate ntrun sistem distribuit prin
operaiuni relaionale de proiecie i selecie controlate, n vederea plasrii aa-numitelor partiii
(fragmente) rezultate n locul n care sunt cel mai frecvent solicitate datele pe care le conin.
In funcie de operatorii relaionali care se aplic asupra relaiilor, fragmentarea (partiionarea) poate
fi de mai multe tipuri: Orizontal, Vertical, Mixt
Pe lng aceste tipuri clasice, uneori situaia impune necesitatea unor fragmentri derivate sau chiar
a unor relaii nefragmentate.

5. Care sunt argumentele n favoarea fragmentrii?

Uzanta- in aplicatiile proiectate pentru baze de date se folosesc frecvent tabelele virtuale in
detrimentul relatiilor intregi.De cele mai multe ori un operator nu are nevoie de toate relatiile si
informatiile pe care le ofera o relatie intreaga. Astfel unitatea atomica de proiectare si utilizare nu va
fi relatia ci o subdiviziune a acesteia.
Eficienta-Distribuirea unor relatii intregi pe diferite statii de lucru ar anula aspectul semantic al
siturilor in functionalitatea sistemului distribuit.
Paralelismul-mai multe fragmente ale unei baze de date sporesc accesul concurent. Mai multe cereri
la care sistemul raspunde in acelasi timp.
Securitatea-Un atac nu ar afecta functionarea intregului sistem ci poate doar un sit, care oricum isi
replica informatia.
Complexitatea proiectarii- este mult mai greu de proiectat decat un sistem nedistribuit.
Performanta-mult mai sporita datorita alocarii eficiente a fragmentelor.
Controlul integritatii- este aspectul primordial al oricarei baze de date.

6. Ce reguli stau la baza fragmentrii?

Completitudinea fragmentarii fragmentele trebuie sa acopere intreaga relatie initiala. Trebuie sa


elimine pierderile de date .
Refacerea relatiei initiale fragmentarea se face in asa fel incat in orice moment sa poata fi refacuta
relatia initiala.
Caracterul disjunct fragmentele provenite din aceeasi relatie nu trebuie sa se suprapuna.

7. Descriei fragmentarea orizontal. Exemplificai.

Fragmentarea orizontal, dup cum sugereaz numele, se face de-a lungul tuplelor unei relaii.
Aadar, un fragment orizontal, este format dintr-o submulime a tuplurilor unei relaii, submulime
obinut n urma unei operaii de restricie. Restricia trebuie s asigure o descompunere ortogonal
n fragmente orizontale.

S presupunem c n relaia STUDENT avem atributul Locatia, a crui valori indic locul unde
urmeaz cursurile studenii de la FSEGA Cluj-Napoca. Considernd c acetia pot s fie ntr-una din
cele dou locaii posibile, avem fragmentele: CJ_STUD: Locatia = Cluj-Napoca(STUDENT)
SM_STUD: Locatia = Sighetu Marmatiei(STUDENT) Deci, vom avea dou fragmente. Fragmentul
CJ_STUD pentru studenii nscrii la FSEGA Cluj-Napoca i urmeaz cursurile n Cluj-Napoca i
fragmentul SM_STUD pentru studenii nscrii la FSEGA Cluj-Napoca, dar care frecventeaz cursurile
n Sighetu Marmaiei. Cele dou fragmente ndeplinesc cele trei reguli de baz. Dup cum s-a vzut,
fragmentarea orizontal se realizeaz prin operaiuni de selecie aplicate relaiei globale. n
proiectarea fragmentelor se ine cont de aspectul logic i cel statistic.

8. Ce sunt predicatele minterm?

Predicatele minterm sunt predicatele pe baza carora se abordeaza fragmentarea orizontala. Sunt
conjunctii de predicate simple sau negatii ale acestora.

9. Descriei fragmentarea vertical. Exemplificai.

Fragmentarea vertical reprezint o descompunere de-a lungul atributelor unei relaii. Realizarea
acesteia presupune operaii de proiecie asupra atributelor, prin includerea n cazul fiecrui
fragment a unei chei alternative a relaiei. Scopul includerii acesteia este obinerea unei
descompuneri fr pierderi, deci una care s verifice fr probleme cele trei condiii impuse
fragmentrii, de orice fel ar fi ea.

EXEMPLU: Vom lua cazul relaiei LOCALITATI(CodLoc, Loc, CodJud). Putem avea urmtoarele
fragmente:
L_LOC: CodLoc, Loc(LOCALITATI)
J_LOC: CodLoc, CodJud(LOCALITATI)
n ambele fragmente a trebuit s includem cheia primar a relaiei LOCALITATI i respect cele 3
reguli, recompunerea relaiei iniiale presupunnd operaia de JOIN. Partiionarea vertical e mult
mai complex dect cea orizontal.

10. Descriei fragmentarea mixt. Exemplificai.

Fragmentarea mixt reprezint un tip special de fragmentare, ci o combinaie a celorlalte dou


enunate anterior. Combinaia se datoreaz aplicrii celor doi operatori din algebra relaional
utilizai pentru fragmentarea pe orizontal i pentru cea pe vertical. n funcie de ordinea n care
sunt aplicai, putem s avem dou tipuri de fragmentri mixte. Dac mai nti avem o operaie de
selecie, urmat apoi pentru fiecare fragment, de operaii de proiecie obinem fragmente orizontale
partiionate vertical.

11. Ce este fragmentarea derivat

Fragmentarea derivat este o fragmentare orizontal care se face ntre dou relaii: una printe i
cealalt fiu. Se va porni de la relaia copil, care va fi fragmentat conform predicatului prestabilit.
Predicatul implic n mod obligatoriu cheia extern.

12. Cnd se utilizeaz relaiile nefragmentate?


Nu ntotdeauna fragmentarea va fi eficient i de aceea nici nu va fi aplicat. Relaiile care se
preteaz la o astfel de abordare sunt acelea care au un numr relativ mic de nregistrri. n astfel de
situaii se recomand fie replicarea acestora pe fiecare sit n parte.

13. Ce este replicarea?

Replicarea presupune copierea unor fragmente n mai multe locaii.

14. Care sunt nivelele de replicare pe care le cunoatei? Sisteme de baze de date distribuite

-baze de date centralizate(o singura baza de date stocata pe nodul central, un singur SGBD,
securitatea , fiabilitatea si disponibilitatea sunt scazute.Cost de comunicatie ridicat.)
-baze de date partitionate,fragmentate sau nereplicate(sunt acele baze de date in care toate
fragmentele apar o singura data. )
-baze de date replicate integral( orice sit contine cate o copie a intregii baze de date,
disponibilitatea, fiabilitatea si securitatea sunt maxime.Cost mare al echipamentelor de stocare.)
-baze de date replicate partial( anumite fragmente sunt replicate altele nu. Sunt replicate
fragmentele utilizate cel mai des.Aceasta forma de replicare preia avantajele celor de mai sus si
incearca sa elimine dezavantajele.

15. Ce este alocarea i ce metode de alocare cunoatei?

Alocarea reprezint procesul de repartizare a fragmentelor pe situri. Alocarea poate s fie


neredundant sau redundant. Alocarea redundant este o problem de proiectare mult mai
complex. Exist dou variante de abordare a proiectrii n acest caz:
a) Metoda selectrii. Identificarea acelor situri pentru care beneficiul alocrii unei copii depete
costul alocrii;
b) Metoda alocrii progresive. Se implementeaz mai nti o alocare neredundant. Apoi, n funcie
de gradul de profitabilitate al staiilor se vor rspndi replici ale fragmentelor deja alocate, pn
cnd nu mai exist candidai.

16. Desenai i descriei arhitectura de referin a sistemelor distribuite.

Arhitectura este format din:


- schemele externe globale, care reprezint viziunea fiecrui utilizator asupra sistemului;
- o schem conceptual global, adic o imagine complet a ntregii baze de date
- schema de fragmentare, ce reprezint ideea proiectantului de partiionare a ntregii baze de date;
- schema de alocare - se refer la modul de amplasare fizic a fragmentelor i replicilor acestora n
vederea deservirii optime a interogrilor i tranzaciilor sistemului distribuit;

Pentru fiecare sit avem o arhitectur ANSI-SPARC pe trei nivele:


- schema de transformare reflect o armonizare de interese ntre fragmentele amplasate conform
schemei de alocare i vederile utilizatorilor bazei de date locale;
- schema conceptual local este descrierea logic a bazei de date amplasate pe un anumit sit;
- schema intern local indic modalitatea de stocare a datelor local

17. Enumerai principiile lui Date referitoare la sistemele distribuite.

Principiul fundamental al bazelor de date distribuite stipuleaz c pentru utilizator, sistemul


distribuit trebuie s arate am completa noi: i s se comporte la fel cu unul nedistribuit.
Detaliere a tuturor aspectelor de ordin mai tehnic, pe care regula de aur le presupune: autonomia
local, absena unei dependene de un sit central, operarea continu, independena de
fragmentare11 , independena de localizare, independena de replicare, prelucrarea distribuit a
interogrilor, gestionarea distribuit a tranzaciilor, independena de hardware, independena de
sistemul de operare, independena de reea i independena de sistemul SGBD.

18. Care sunt etapele de procesare a cererilor ntr-un sistem distribuit?

Procesarea interogrilor presupune 4 etape importante:


1. Descompunerea interogrilor
2. Localizarea datelor,
3. Optimizarea cererilor globale
4. Optimizarea cererilor locale.

19. Dai exemple de protocoale de gestiune a accesului concurent ntr-un mediu distribuit.

n sistemele distribuite controlul accesului concurent se poate face prin: blocare (Protocolul 2PL
centralizat, Protocolul 2PL de copie primar, Protocolul 2PL distribuit i Protocolul de zvorre a
majoritii) sau prin utilizarea mrcilor de timp.

20. Care sunt avantajele i dezavantajele sistemelor distribuite?

Avantajele se refer la urmtoarele aspecte: Structura organizaional, Caracterul partajabil i


autonomia local, Disponibilitate i fiabilitate crescute, Performane mbuntite, Dezvoltare
modular, Economie.
Dezavantajele sistemelor distribuite sunt: Complexitatea, Lipsa de standarde, Securitatea,
Dificultatea controlului integritii i a concurenei, Lipsa de experien, Dificultatea de nlocuire sau
schimbare.

21. Ce este un sistem de baze de date federative? Dai exemple de situaii la care acestea se
preteaz.

Un sistem de baze de date federative este o colecie de sisteme de baze de date colaborative care
sunt autonome i posibil heterogene.
Cea mai sugestiv exemplificare a conceptului o reprezint nsui Internetul, care, la rndul su,
reprezint un sistem federativ de dimensiuni mari.
Un sistem de baze de date federative al unei agenii de turism interconecteaz sistemele unor tipuri
de instituii cu domenii de activitate diferite (hoteluri, agenii de turism, sisteme de rezervare etc).

22. Ce sunt sistemele nefederative?

Sisteme de baze de date multiple n care nu avem utilizatori locali.

23. Care sunt caracteristicile sistemelor federative?

Autonomia. Fiecare baz de date a fost proiectat autonom i i pstreaz libertatea de a-i
modifica sau nu design-ul
Heterogenitatea. Se concretizeaz n diferene de hardware, sisteme de operare, SGBD
(heterogenitate de sistem); modele de date i limbaje i dialecte (heterogenitate sintactic)
Distribuirea. Un numr de baze de date separate pot fi localizate n diferite noduri ale unui sistem
distribuit
24. Ce este wrapper-ul?

Este cel mai popular concept atunci cand se vorbeste de interconectarea bazelor de date
heterogene, mai este cunoscut sub numele de mediator.Acestea sunt niste straturi software
intermediare ce transparentizeaza nivele ale heterogenitatii.
25. Ce este heterogenitatea semantic? Exemplificai.

Heterogenitatea semantic se refer la numele obiectelor, valorile pe care pot s le ia datele i


structura conceptual.
Un exemplu care ar putea s dezvluie o parte din problemele heterogenitii semantice, ar fi
interconectarea sistemelor educaionale naionale ntr-o federaie internaional. Dac vrem s
analizm doar sistemul de evaluare al elevilor, studenilor, masteranzilor, doctoranzilor etc. am
constata c i n cadrul aceleiai regiuni geografice modalitile de evaluare sunt heterogene: note,
calificative, admis/respins, premii, titluri dobndite. Asta ca s nu mai vorbim de stelue, buline roii
sau negre, porcuori etc. utilizate n primele etape ale stadiului didactic.

26. Ce sunt depozitele de date?

Depozitele de date sunt colecii de date nevolatile, orientate spre subiect, integrate, variabile n timp
care sprijin managementul firmei n procedeul de luare a deciziilor.

27. Ce reprezint pieele de date?

Pieele de date sunt submulimi ale depozitelor de date, particularizate n vederea ndeplinirii
nevoilor unui departament sau care acoper un subiect.

28. Ce operaiuni presupune nmagazinarea datelor?

Prin intermediul inmagazinarii datelor volume imense de date sunt extrase, n general prin
intermediul unui proces batch.

29. Ce este OLAP?

OLAP este o tehnologie ce suport faciliti analitice asupra uneia sau mai multor surse de date. n
general, sistemele OLAP implic analiza datelor ce-i au originea n baze de date tradiionale, dar au
fost ulterior transformate n structuri multidimensionale pentru o vizualizare i o analiz mai facil.

30. Ce sunt cuburile de date?

In cadrul sistemelor multidimensionale, reprezentarea intuitiv a datelor se face prin intermediul


cuburilor de date. Cuburile de date sunt uor de extins pentru noi dimensiuni. Navigarea prin
intermediul cuburilor este facil.

31. Ce este datamining-ul?

Data mining, extragerea de cunotine sau mineritul datelor, const ntr-o analiz automat a
datelor electronice structurate, precum n cadrul unui depozit de date, cu intenia de a descoperi
tipare anterior necunoscute i relaii dintre date pentru a putea fi folosite n adoptarea unor decizii
importante necesare eficientizrii activitii economice.

32. n ce domenii se poate aplica mineritul datelor?

Domenii in care este aplicat cu succes: comertul cu amanuntul/marketing, domeniul bancar,


asigurari, medicina.

33. Care sunt principalele operaii de extragere a datelor?

Modelarea predictiv, Segmentarea bazei de date, Analiza legturilor i Detectarea deviaiilor.

34. Comentai integrarea bazelor de date.


Integrarea bazelor de date presupune un proces n urma cruia informaiile din bazele de date
participante pot fi nglobate ntr-o singur definiie coerent acceptat de un sistem de baze de date
federative. Este, de fapt procesul de constituire a schemei conceptuale globale. Integrarea trebuie s
se poat face ntre diferitele modele de date pe baza crora bazele de date locale sunt constituite.

35. Care sunt caracteristicile Big Data?

4 caracteristici cunoscute generic ca 4V:


Volum - Datele ncearc s surprind ct mai fidel realitatea, de aceea trebuie s fie mai detaliate,
complexe, presupunnd un volum ridicat de atribute
Viteza - datele cresc ca volum cu o vitez foarte mare
Varietate - Datele pot proveni din diverse surse i pot avea formate i tipuri multiple
Veracitate - datele luate individual nu au nicio relevan fr aportul celorlalte

36. Menionai pe scurt tipurile de baze de date NoSQL.

La ora actual exist urmtoarele categorii de baze de date NoSQL:


Key-/Value-stores cel mai simplu model pentru date nestructurate. Foarte eficient i flexibil.
Document databases pentru depozite XML i obiecte care se autodescriu.
Column-Oriented Databases (Baze de date pe coloane) model foarte bun folosit n cadrul
depozitelor de date pentru date rarefiate.
Graf un model relativ nou, bun pentru parcurgerea relaiilor, dar nu pentru cutri generale.

1. Descrieti metodele GET si POST.

Cu metoda POST valorile sunt trimise prin intermediul antetelor HTTP, sau transfera un flux de octeti
la bufferul de intrare al serverului. Cu metoda (GET) datele sunt codificate intr-un sir de caractere care
se alipeste URL-ului specificat in action. URL-ul scriptului de prelucrare contine un sir de caractere ce
incepe cu ?, continua cu perechi de forma numeElementFormular = valoareElementFormular,
despartite prin &. Acest sir de caractere va fi preluat pe server, de catre scripturile aflate pe server, in
vederea prelucrarii informatiilor.

2. Descrieti si exemplificati 3 elemente de input, introduse in HTML5, care pot fi folosite in cadrul
formularelor.

Elementul <input type="text"> defineste un camp de introducere care se intinde pe o singura linie, in
care utilizatorul poate introduce text.

Elementul <input type="password"> defineste un camp de tip parola. Este similar cu tipul text, cu
diferenta ca mascheaza caracterele.

Elementul <input type="file"> defineste un camp pentru selectarea fisierelor si un buton "Browse..."
(pentru incarcarea fisierelor). Permite alegerea si incarcarea fisierelor grafice, video, mp3, pdf, etc.

3. Descrieti si exemplificati selectorii CSS.

Selectorul universal - se aplica la toate elementele din document


* {}
Se aplica tuturor elementelor din pagina

Selectorul de tip - se aplica numelor de elemente


h1, h2, h3 {}
Se aplica elementelor <h1>, <h2> si <h3>
Selectorul de clasa - se aplica unui element al carui atribut clasa are o valoare care se potriveste cu
cel specificat dupa simbolul . (punct)
.azorel {}
Se aplica tuturor elementelor care au atributul class egal cu azorel
p.azorel {}
Se aplica doar elementelor <p> a caror atribut class este egal cu azorel

Selectorul ID - se aplica unui element al carui atribut id are o valoare care se potriveste cu cel
specificat dupa simbolul # (diez)
#cnp {}
Se aplica elementului al carui atribut id este egal cu cnp

Selectorul copil - se aplica unui element care este un copil direct al unui alt element
li>a {}
Se aplica elementelor <a> care sunt continute in cadrul unui element <li>

Selectorul descendent - se aplica unui element care este un descendent din cadrul unui alt element
specificat (nu doar unui copil direct al acestui element)
p a {}
Se aplica elementelor <a> care sunt continute in cadrul unui element <p>, chiar daca exista si alte
elemente imbricate intre ele
Selectorii grupati- se aplica numelor de elemente specificate
h1, p, em, img {}
Se aplica elementelor <h1>, <p>, <em> si <img>

4. Explicati agregarea in cascada a stilurilor.

Agregarea in cascada se refera la ceea ce se intampla atunci cand mai multe declaratii de stil lupta
pentru controlul elementelor de pe o pagina. Declaratiile de stil se propaga in cascada, in jos, pana
cand vor fi suprascrise de o declaratie de stil cu o greutate mai mare.

5. Explicati mostenirea in CSS. (23)

Mostenirea este folosita pentru a crea un avantaj in scrierea foilor de stil. In loc sa scriem declaratii
de stil pentru fiecare element HTML atunci cand elementele au declaratii comune, putem crea o
singura regula de stil care sa fie mostenita de mai multe elemente de tip HTML.

6. Descrieti si exemplificati Box Model.

Acest model stabileste ca fiecare element de structura din cadrul unei pagini Web poate fi vazut ca o
cutie/caseta (dreptunghi) definita prin urmatoarele proprietati:
Margin permite stabilirea unei zone libere transparente in exteriorul bordurii
Border permite adaugarea unei borduri in jurul elementului luat in considerare
Padding permite stabilirea unei zone libere transparente in interiorul bordurii
Content permite introducerea unui continut in cadrul elementului

7. Descrieti si exemplificati declararea variabilelor si tipurile de date in JavaScript.

O variabila este ca un container de informatii. In primul rand trebuie sa o definim si sa ii dam un


nume. Pe urma putem sa ii atribuim o valoare care poate fi un numar, un text, un element din DOM
sau chiar si o functie. Orice variabila se declara folosind cuvantul cheie var, urmat de numele
variabilei. Semnul egal "=" indica faptul ca se atribuie o valoare. Orice declaratie se termina prin
adaugarea la sfarsitul liniei a semnului punct si virgula ";".
Exemplu: var varsta = 20; var nume = "Andrei";

Tipule de date sunt:


undefined - var suma;
number - var suma = 20;
string - var nume = "Andrei";
boolean - var x = true;
array - var culori = ["Rosu", "Verde", "Mov"];
object - var client = {Nume:"Popescu", Prenume:"Ion", Varsta:20};

8. Descrieti variabilele globale si locale.

Variabile globale
- variabila declarata in exteriorul unei functii, devine GLOBALA.
- variabila GLOBALA este vizibila si poate fi accesata de catre toate script-urile si functiile din
cadrul paginii web.
- variabilele globale sunt sterse in momentul in care se inchide pagina web.

Variabile locale
- variabila declarata in interiorul unei functii JavaScript, folosind var, va fi LOCALA.
- variabila LOCALA este vizibila si poate fi accesata numai in interiorul functiei.
- variabilele locale pot avea acelasi nume in diferite functii, deoarece sunt recunoscute numai
de functia in care au fost declarate.
- argumentele (parametri) se comporta ca variabile locale in interiorul functiilor.
- variabilele locale sunt create atunci cand functia incepe si sterse in momentul in care functia
este finalizata.

9. Descrieti functiile in JS.

O functie JavaScript este:


- un bloc de cod programat pentru a indeplini o anumita sarcina;
- executata in momentul in care este invocata de catre un anumit eveniment;
- definita prin intermediul cuvantului cheie al functiei function, urmat de un numele functiei,
de paranteze (), iar codul se gaseste intre acolade {}:
- intre paranteze se pot gasi zero sau mai multi parametri (parametrul1, parametrul2, ...,
parametruln)
- codul care va fi executat de catre functie este plasat in interiorul acoladelor {}

Functiile definite de catre utilizator au forma:


function numeFunctie ( parametri ) {
codul care va fi executat;
}

Pe langa functiile definite de catre utilizator, in JavaScript exista si o serie de functii native. Functiile
JavaScript native sunt cele care vin "out-of-the-box".
In JavaScript exista sute de functii predefinite precum:
- alert(), confirm(), si prompt() - aceste functii declanseaza casete de dialog la nivel de
browser.
- Date() - returneaza data si ora curenta.
- sqrt() - returneaza radacina patrata a unui numar.
- max() - returneaza cea mai mare valoare dintre mai multe numere.
- min() - returneaza cea mai mica valoare dintre mai multe numere.

10. Descrieti evenimentele in JS.

- un eveniment este o actiune care poate fi detectata de catre JavaScript.


- JavaScript permite executarea unui cod in momentul in care sunt detectate anumite
evenimente.
- un eveniment HTML poate fi creat de catre browser, sau de catre actiunile utilizatorului.
- in JavaScript un eveniment este identificat de catre un handler de evenimente.
- un eveniment are loc in momentul in care se incarca o pagina web, cand utilizatorul da clic pe
un element sau misca cursorul mouse-ului peste el.
<elementHTML eveniment="cod JavaScript">

Exista trei metode prin intermediul carora se poate reactiona la evenimentele din JavaScript:
- Ca un atribut HTML
- Ca metoda atasata la element
- Utilizarea addEventListener

11. Descrieti JavaScript + DOM.

Document Object Model (DOM) este atat un model cat si o interfata, neutra din punct de vedere al
limbajului de programare folosit, care permite programelor si scripturilor sa acceseze si actualizeze
continutul, structura si stilul unui document in mod dinamic.
Cu modelul de obiecte, JavaScript poate crea HTML in mod dinamic. Astfel, JavaScript poate:
- schimba toate elementele HTML din pagina
- schimba toate atributele HTML din pagina
- schimba toate stilurile CSS din pagina
- elimina elemente si atribute HTML existente
- adauga noi elemente si atribute HTML
- reactiona la toate evenimentele HTML existente in pagina
- crea noi evenimente HTML in pagina

Pentru a putea manipula elementele HTML, JavaScript trebuie sa poata, in primul rand, sa gaseasca
elementele. Acest lucru se poate realiza in mai multe feluri prin intermediul id-ului, tag-ului, sau
numelui clasei.

12. Enumerati si descrieti metodele de accesare a elementelor.

Accesarea elementelor pe baza atributului ID - document.getElementById ("idElement")


Metoda getElementById() returneaza elementul care are atributul de identitate egal cu valoarea
specificata.

Accesarea elementelor pe baza numelui elementului -


document.getElementsByTagName("numeTag")
Metoda returneaza o colectie cu toate elementele din document, cu tagul specificat, sub forma unui
obiect NodeList.

Accesarea elementelor pe baza numelui clasei - getElementsByClassName("numeClasa")


Metoda returneaza o colectie cu toate elementele din document, cu clasa specificata, sub forma
unui obiect NodeList.
13. Enumerati si descrieti metodele de manipulare a elementelor.

elementHTML.innerHTML="text"
innerHTML ne ofera o metoda simpla pentru accesarea si modificarea textului si elementelor din
interiorul unui element.

element.setAttribute(numeAtribut, valoareAtribut)
Metoda setAttribute() adauga atributul specificat, in cazul in care nu exista, si il seteaza la valoarea
specificata.

document.getElementById("idElement").style.proprietateCss = "valoare"; DOM permite adaugarea,


modificarea, sau eliminarea unui stil CSS de la un element folosind proprietatea style. Acesta
functioneaza in mod similar cu aplicarea unui stil cu atributul de stil inline. Proprietatile individuale
CSS sunt disponibile ca proprietati ale proprietatii style.

1. Care este rolul unui client, n cadrul modelului Client-Server?

Modelul client-server sta la baza tuturor aplicatiilor electronice si serviciilor internet. Clientul, in
general, ruleaza pe calculatorul utilizatorului si este folosit pentru a accesa informatii sau alte
aplicatii din cadrul retelei internet. Exemplul de client este browser-ul care poate indeplini cu
success urmatoarele sarcini: Emite cererile si receptioneaza datele care se vor afisa; Formateaza
documentele pe baza tag-urilor HTML; Afiseaza documentele
Clientul folosit pentru accesarea serverului web poate fi atat un browser cat si un alt program
capabil sa se conecteze la un port TCP (telnet, ftp etc.).

2. Ce se nelege prin server de web?

Serverul ruleaza, in general, pe un calculator, in cazul in care se utilizeaza mecanisme de comunicatie


locala, sau pe calculatoare diferite, atunci cand se folosesc mecanisme de comunicatie in retea.
Un server web este unde program care ruleaza pe un calculator, asteapta pe un port o conexiune
TCP venita de la un client si serveste acestuia pagini web folosind protocolul HTTP.
Serverul web este un software, un program de sine statator, un executabil cu o functie bine stabilita;
aceea de a servi la cerere pagini de internet intr-un mod bine determinat. Acest software poate fi:
Apache HTTP Server, Microsoft Internet Information Services (IIS), iPlanet Web Server, Roxen
WebServer, Zeus WebServer etc. serverul web ruleaza pe un calculator.

3. Care este clientul n cadrul modelului Client-Server folosit n programarea web? Descriei
caracteristicile acestui.

Clientul folosit pentru accesarea serverului web poate fi atat un browser cat si un alt program
capabil sa se conecteze la un port TCP (telnet, ftp etc.)
Browserul este un program folosit la afisarea de continut web. Acesta se impune sa poata sa
interpreteze pagini HTML, sa afiseze imagini si alte forma de continut multimedia, sa foloseasca
referinte (link-uri) etc. cea mai importanta caracteristica a sa este capacitatea lui de a se conecta
prin protocolul TCP la un server web. Metoda de conectare s-a prezentat anterior.

4. Enumerai activitiile ndeplinite de browser cnd joac rolul de client.

- Browser-ul determina protocolul pe care il va folosi in dialogul cu serverul web


- Browser-ul determina adresa web a serverului (www.ubbcluj.ro)
- Browser-ul determina ce anume trebuie sa ceara de la serverul web, adica pagina html numita
exemplu.html
- Brwserul determina adresa IP a masinii pe care ruleaza serverul web prin interogari DNS pe baza
adresei web introdusa in address bar
- Pe baza adresei IP determinate anterior, brwserul va crea o conexiune TCP pe portul specificat in
URL sau implicit pe portul 80
- Browser-ul lanseaza cerere GET sau POST catre server specificand fisierul dorit: GET /exemplu.html
- Serverul web raspunde trimitand fisierul dorit sau o eroare corespunzatoare in cazul in care
trimiterea nu este posibila (lipsa fisierului, drepturi de acces insuficiente etc.). aici conexiunea dintre
client si server se incheie
- Browser-ul analizeaza fisierul primit si il afiseaza corespunzator.

5. Descriei arhitectura client-server.

Client 1 Browser

raspuns
cerere

raspuns
Retea
Client 2 Browser
cerere Server BD
raspuns

cerere

Client 3 Browser

6. Definii noiunea de server web i exemplificai.

Serverul ruleaza, in general, pe un calculator, in cazul in care se utilizeaza mecanisme de comunicatie


locala, sau pe calculatoare diferite, atunci cand se folosesc mecanisme de comunicatie in retea.
Un server web este unde program care ruleaza pe un calculator, asteapta pe un port o conexiune
TCP venita de la un client si serveste acestuia pagini web folosind protocolul HTTP.
Serverul web este un software, un program de sine statator, un executabil cu o functie bine stabilita;
aceea de a servi la cerere pagini de internet intr-un mod bine determinat. Acest software poate fi:
Apache HTTP Server, Microsoft Internet Information Services (IIS), iPlanet Web Server, Roxen
WebServer, Zeus WebServer etc. serverul web ruleaza pe un calculator.
7. Definii noiunea de browser i exemplificai.

Browserul este un program folosit la afisarea de continut web. Acesta se impune sa poata sa
interpreteze pagini HTML, sa afiseze imagini si alte forma de continut multimedia, sa foloseasca
referinte (link-uri) etc. cea mai importanta caracteristica a sa este capacitatea lui de a se conecta
prin protocolul TCP la un server web. Metoda de conectare s-a prezentat anterior.
Browserele cele mai cunoscute si deci cele mai folosite sunt: Microsoft Internet Explorer, Mozilla,
Netscape, Opera, Lynx etc.

8. Enumerai limbajele de scripting nvate.

C, C#, Java, JavaScript, PHP, Prolog, XHTML, SQL etc.

9. Ce se petrece pe server atunci cnd se introduce n bara de adrese a browser-ului urmtoarea


adres http://www.localhost/proiectphp/Index.php?

- Browser-ul determina protocolul pe care il va folosi in dialogul cu serverul web


- Browser-ul determina adresa web a serverului
- Browser-ul determina ce anume trebuie sa ceara de la serverul web, adica pagina html numita
exemplu.html
- Brwserul determina adresa IP a masinii pe care ruleaza serverul web prin interogari DNS pe baza
adresei web introdusa in address bar
- Pe baza adresei IP determinate anterior, brwserul va crea o conexiune TCP pe portul specificat in
URL sau implicit pe portul 80
- Browser-ul lanseaza cerere GET sau POST catre server specificand fisierul dorit: GET /exemplu.html
- Serverul web raspunde trimitand fisierul dorit sau o eroare corespunzatoare in cazul in care
trimiterea nu este posibila (lipsa fisierului, drepturi de acces insuficiente etc.). aici conexiunea dintre
client si server se incheie
- Browser-ul analizeaza fisierul primit si il afiseaza corespunzator.

10. Enumerai caracteristicile server-ului Apache.

Apache furnizeaza o implementare robusta a protocolului HTTP. Apache suporta o mare varietate de
module care ii extend functionalitatea, acestea variaza de la sserver side programming si pana la
scheme de autentificare si anume: mod_ssl ofera support SSL si TLS modulul proxyun, modul de
rescriere URL (cunoscut ca un motor de rescriere mod_reqrite), custom log files (mod_log_config) si
support de filtrare (mod_include si mod_ext_filter). Apache este virtual hosting (gazduirea virtuala),
care consta in posibilitatea de a gazdui mai multe site-uri simultan pe acelasi server. Apache ramane
o platform pe baza careia indivizii si institutiile pot sa construiasca sisteme in scopuri experimentale
si nu numai. Apache este o entitate organica, cei care beneficiaza de ea prin utilizare contribuie de
cele mai multe ori la dezvoltarea ulterioara a platformei. Daca cineva plateste pentru un produs
software, nu va dori dupa aceea sa ii repare defectele. Limbajele suportate de serverul Apache sunt:
PHP, PERL, PYTHON.

11. Ce reprezint proiectul Apache?

Proiectul Apache reprezinta dezvoltarea unui soft colaborativ care urmareste cererea si utilizarea
unui Web Server puternic si robust. Proiectul era condus de catre voluntary din intreaga lume. Acest
grup de voluntary foloseste internet-ul pentru comunicare, planificari si dezvoltarea serverului si a
documentatiei de rigoare. Ei sunt cunsocuti sub denumirea de Grupul Apache. In plus, sute de
utilizatori au contribuit cu idei, coduri si documentatie la acest proiect.
12. Care sunt caracterisiticile serverului Apache? Argumentai.

Apache furnizeaza o implementare robusta a protocolului HTTP. Apache suporta o mare varietate
de module care ii extend functionalitatea, acestea variaza de la sserver side programming si pana la
scheme de autentificare si anume: mod_ssl ofera support SSL si TLS modulul proxyun, modul de
rescriere URL (cunoscut ca un motor de rescriere mod_reqrite), custom log files (mod_log_config) si
support de filtrare (mod_include si mod_ext_filter). Apache este virtual hosting (gazduirea virtuala),
care consta in posibilitatea de a gazdui mai multe site-uri simultan pe acelasi server. Apache ramane
o platform pe baza careia indivizii si institutiile pot sa construiasca sisteme in scopuri experimentale
si nu numai. Apache este o entitate organica, cei care beneficiaza de ea prin utilizare contribuie de
cele mai multe ori la dezvoltarea ulterioara a platformei. Daca cineva plateste pentru un produs
software, nu va dori dupa aceea sa ii repare defectele. Limbajele suportate de serverul Apache sunt:
PHP, PERL, PYTHON. Argumentare personala?

13. Care este rolul unui server de web?

Serverul ruleaza, in general, pe un calculator centralizator sau aflat la distanta, furnizand sau oferind
informatii/servicii clientilor. Exemple de servere folosite in present sunt: Apache, IIS etc.
Serverul ruleaza, in general, pe un calculator, in cazul in care se utilizeaza mecanisme de comunicatie
locala, sau pe calculatoare diferite, atunci cand se folosesc mecanisme de comunicatie in retea.
Un server web este unde program care ruleaza pe un calculator, asteapta pe un port o conexiune
TCP venita de la un client si serveste acestuia pagini web folosind protocolul HTTP

14. Care este protocolul folosite de serverul web n furnizarea paginilor web? Descriei
caracteristicile acestuia.

Protocolul este http:// = HTTP HyperText Transfer Protocol.


Este cel mai importanti cel mai des folosit protocol al Reelei Mondiale (Web). Este un protocol
rapid, special proiectat pentru mediul interactiv, hipermedia din Web. Este un protocol de nivel
aplicaie, ce ofer uurinai viteza necesare dezvoltrii aplicaiilor hipermedia. Este un protocol
generic, orientat obiect, care poate fi folosit cu uurin de multe task-uri, cum ar fi servere de
numei sisteme de management distribuit, cu extensiile cerute de metodele sale. Permite tiprireai
negocierea reprezentrii datelor, construirea de sisteme independente de date care vor fi
transferate. Este orientat pe conexiunei asigur recepionarea sigur a pachetelor de date, oferindi
o metod de control al fluxului ntre hosturile sursi destinaie. Este construit peste serviciile
protocolului TCP/IP, care garanteaz c datele au fost recepionate corect, nu au fost pierdute,
duplicate sau recepionate n alt ordine fa de cea n care au fost transmise. Procesul de recepie
are controlul asupra vitezei la care se recepioneazi se transmit datele, prin mecanismul de
fereastr glisant. Cnd se starteaz o aplicaie, modulul HTTP al calculatorului- clienti modulul
HTTP al calculatorului-server ncep s comunice unul cu altul. Aceste dou module (clienti server)
conin informaii de stare care definesc un circuit virtual. Acest circuit virtual consum resursele att
ale serverului, cti ale clientului. Circuitul virtual este full-duplex, datele pot circula n ambele
direcii simultan.

15. Ce este MySQL? Definii acest concept.

MySQL este cel mai popular sistem de management pentru baze de date relationale deoarece este
open-source. MySQL Server a fost creat pentru a lucre cu baze de date mai rapid decat solutiile deja
existente la ora actual ape piata.
MySQL este un sistem de gestiune a bazelor de date. Pentru a adauga, insera si procesa datele
memorate pe un calculator este nevoie de astfel de sistem de gestiune a datelor. Avand in vedere ca
toate calculatoarele sunt destinate pentru memorarea informatiilor, managementul bazelor de date
joaca un rol decisive, atat in gestiunea datelor ca activitate de sine statatoare , cat si in cadrul
aplicatiilor ample.
MySQL este un sistem multiuser (permite sa fie folosit concomitant de mai multi utilizatori) si
multithread (prezinta mai multe fire de executie). Utilizeaza SQL, limbajul standard de interogare a
bazelor de date.
MySQL este un sistem de gestiune a bazelor de date relationale. Tabelele sunt conectate prin relatii
predefinite, fapt ce face posibila combinarea datelor din mai multe tabele, la crere,. MySQL este un
produs open-source.
MySQL este un sistem client-server care este alcatuit dintr-un server SQL multithread care are
facilitate pentru mai multi utilizatori, mai multe programe si biblioteci client, instrumente de
administrare si un numar mare de interfete de programare. Avand in vedere ca MySQL suporta o
gama variata de produse software, exista posibilitatea ca multe din limbajele de programare deja
folosite de anumiti utilizatori sa suporte deja interfata cu acest produs.

16. Care este modul de funcionare a unui server de baze de date pentru Web

Functionarea unui server de baze de date pentru web, in cazul nostru MySQL, implica existenta a
doua elemente: un browser web si un server. Intre aceste doua elemente se impune sa existe un
canal de comunicare. Serverul de web functioneaza in moduri diferite in urmatoarele situatii:
- In cazul in care server-ul lucreaza cu pagini web statice, un browser web (clientul) formuleaza
cererea catre server, iar serverul trimite inapoi un raspuns
- In cazul in care server-ul lucreaza cu pagini web dinamice care preiau datele dintr-o baza de date si
le afiseaza se realizeaza urmatorii pasi:
- Browser-ul web al unui utilizator emite o cerere HTTP pentru o anumita pagina web
- Serverul web receptioneaza cererea si transfera fisierul catre motorul PHP, in cazul nostrum pentru
prelucrare
- Motorul PHP incepe analiza paginii. In interiorul unei pagini web dinamice exista o comanda care
realizeaza legatura la baza de date si executa interogarile pe care le trimite serverului MySQL
- Serverul MySQL receptioneaza interogarea bazei de date si o prelucreaza, iar apoi trimite
rezultatele motorului PHP
- Motorul PHP afiseaza rezultatele furnizate de serverul MySQL, formatate intr-un cod HTML pe care
il returneaza serverului web, in cazul nostru Apache
Serverul web transmite codul HTML browserului unde utilizatorului I se afiseaza rezultatul dorit de
acesta.

17. Enumerai i descriei faciliti oferite de MySQL.

- Posibilitatea accesului concurrent la date de catre un numar nelimitat de utilizatori


- Capacitatea de a gestiona pana la 50 milioane de inregistrari si chiar mai multe
- Executia foarte rapida a comenzilor, poate chiar cea mai rapida din cele existente pe piata
- Sistem usor si efficient de gestiune a drepturilor utilizatorilor
- Este gratuit, fapt ce a atras extinderea fara precedent a folosirii acestui server de baze de date

18. Enumerai principalele motive pentru folosirea pe scar larg a MySQL.

- Posibilitatea accesului concurrent la date de catre un numar nelimitat de utilizatori


- Capacitatea de a gestiona pana la 50 milioane de inregistrari si chiar mai multe
- Executia foarte rapida a comenzilor, poate chiar cea mai rapida din cele existente pe piata
- Sistem usor si efficient de gestiune a drepturilor utilizatorilor
- Este gratuit

19. Explicai mecanismul de funcionare a unui server Web.


Functionarea unui server de baze de date pentru web, in cazul nostru MySQL, implica existenta a
doua elemente: un browser web si un server. Intre aceste doua elemente se impune sa existe un
canal de comunicare. Serverul de web functioneaza in moduri diferite in urmatoarele situatii:
- In cazul in care server-ul lucreaza cu pagini web statice, un browser web (clientul) formuleaza
cererea catre server, iar serverul trimite inapoi un raspuns
- In cazul in care server-ul lucreaza cu pagini web dinamice care preiau datele dintr-o baza de date si
le afiseaza se realizeaza urmatorii pasi:
- Browser-ul web al unui utilizator emite o cerere HTTP pentru o anumita pagina web
- Serverul web receptioneaza cererea si transfera fisierul catre motorul PHP, in cazul nostrum pentru
prelucrare
- Motorul PHP incepe analiza paginii. In interiorul unei pagini web dinamice exista o comanda care
realizeaza legatura la baza de date si executa interogarile pe care le trimite serverului MySQL
- Serverul MySQL receptioneaza interogarea bazei de date si o prelucreaza, iar apoi trimite
rezultatele motorului PHP
- Motorul PHP afiseaza rezultatele furnizate de serverul MySQL, formatate intr-un cod HTML pe care
il returneaza serverului web, in cazul nostru Apache
Serverul web transmite codul HTML browserului unde utilizatorului I se afiseaza rezultatul dorit de
acesta.

20. Enumerai tipurile de date numerice cunoscute. Dai un exemplu de asociere a unui tip de date
pentru un cmp al unei tabel.

Tipuri de date numerice: TINYINT, SMALLINT, MEDIUMINT, INT sau INTEGER, BIGINT, FLOAT, REAL
sau DOUBLE, NUMERIC.
Exemplul: CREATE TABLE nume_tabela (nume_camp1 tip_camp1, nume_camp2 tip_camp2);

21. Enumerai tipurile de date calendaristice cunoscute.

Tipuri de date calendaristice: DATETIME, DATE, TIMESTAMP, TIME, YEAR

22. Enumerai grupurile n care se mpart de irurile de caractere?

Sirurile de caractere se impart in 3 grupuri si anume: siruri normale definite prin tipul CHAR (fixed
length character), respective VARCHAR (variable length character), siruri text definite prin tipul TEXT
respective BLOB (pentru siruri lungi sau date binare) si sirurile care folosesc SET respectiv ENUM
pentru valori predefinite.

23. Definii conceptul de baz de date.

MySQL este cel mai popular sistem de management pentru baze de date relationale deoarece este
open-source. MySQL Server a fost creat pentru a lucre cu baze de date mai rapid decat solutiile deja
existente la ora actual ape piata.
MySQL este un sistem de gestiune a bazelor de date. Pentru a adauga, insera si procesa datele
memorate pe un calculator este nevoie de astfel de sistem de gestiune a datelor. Avand in vedere ca
toate calculatoarele sunt destinate pentru memorarea informatiilor, managementul bazelor de date
joaca un rol decisive, atat in gestiunea datelor ca activitate de sine statatoare , cat si in cadrul
aplicatiilor ample.
MySQL este un sistem multiuser (permite sa fie folosit concomitant de mai multi utilizatori) si
multithread (prezinta mai multe fire de executie). Utilizeaza SQL, limbajul standard de interogare a
bazelor de date.
MySQL este un sistem de gestiune a bazelor de date relationale. Tabelele sunt conectate prin relatii
predefinite, fapt ce face posibila combinarea datelor din mai multe tabele, la crere,. MySQL este un
produs open-source.
MySQL este un sistem client-server care este alcatuit dintr-un server SQL multithread care are
facilitate pentru mai multi utilizatori, mai multe programe si biblioteci client, instrumente de
administrare si un numar mare de interfete de programare. Avand in vedere ca MySQL suporta o
gama variata de produse software, exista posibilitatea ca multe din limbajele de programare deja
folosite de anumiti utilizatori sa suporte deja interfata cu acest produs

24. Definii conceptul de relaie ntre tabele.

Crearea unnei baze de date relationale presupune crearea unuia sau mai multor tabele legate intre
ele. In procesul de creare a unui table are loc stabilirea numelor campurilor acestuia cat si a tipurilor
de date prin care unui utilizator I se indica ce date are voie sa introduca in acestea. In functie de
tipurile de date alese pentru fiecare coloana a tabelei se aloca pe disc un spatiu de memorie. In
aceasta situatie este indicate o cunoastere aprofundata a acestora, deoarece acest fapt va permite
creatorului tabelei sa aleaga tipul de date potrivit pentru fiecare coloana a tabelei astfel incat
aceasta sa ocupe un spatiu de memorie optim pe disc si in acelasi timp sa raspunda nevoilor
utilizatorilor acesteia.

25. Enumerai i explicai tipurile de relaii ce se pot stabili ntre dou sau mai multe tabele ale
unei baze de date.

Exista 3 tipuri de relatii intr-o BD relationala:


Relatie una-la-una - Exista cate una/unul din fiecare in relatie (dcaca am fi pus adresele intr-o tabela
separata intre CLIENTI si ADRESE ar fi existat un corespondent pentru fiecare inregistrare).
Relatie una-la-mai-multe - O linie dintr-o tabela e legata la mai multe linii din alta tabela (un client ar
putea face mai multe comenzi).
Relatie mai-multe-la-mai-multe - Mai multe linii din tabela 1 sunt legate la mai multe din tabela 2 (de
exemplu, in cazul a doua tabele, CARTI si AUTORI, o carte ar putea fi scrisa de doi coautori, fiecare
dintre ei mai avand si alte carit scrise).

26. Enumerai operaiile care se pot realiza asupra unei tabele dintr-o baz de date i
exemplificai.

CREATE TABLE nume_tabela(nume_camp tip_camp)


In procesul de creare a unui table activitatile sunt:
- Denumirea campurilor
- Alegerea unui tip de date potrivit pentru fiecare camp
- Definirea atributelor pentru fiecare camp in parte
- Stabilirea coloanei care va juca rolul de cheie primara sau secundara cu ajutorul careia se va stabili
legatura catre alte tabele ale bazei de date
Indexii pentru o tabela se pot crea astfel:
- Fie adaugand la sfarsitul instructiunii CREATE TABLE comanda INDEX(nume_coloana_index);
- Fie folosind comanda CREATE [UNIQUE\FULLTEXT] INDEX nume_index ON nume_tabela
(nume_coloana_index[(lungime)[ASC\DESC]],)
Stergerea unui table, index, baza de date sau o coloana dintr-un table se face folosind comanda
DROP astfel:
DROP TABLE nume_tabel
DROP DATABASE nume_baza_de_date
Popularea tabelelor cu inregistrati se face prin comanda INSERT care are urmatoarea sintaxa
INSERT INTO nume_table (camp1, camp2, camp3) values (valoare1, valoare2, valoare3);
Comanda SELECT se foloseste pentru a afisa toate intregistrarile dintr-o tabela:
Mysql>SELECT*FROM nume_tabela
Modificarea continutului unei inregistrari se face utilizand comanda UPDATE care are sintaxa
UPDATE nume_table SET numa_coloana1=`noua valoarea a coloanei 1` WHERE conditii
Stergerea inregistrarilor dintr-o tabela se face prin DELETE
DELETE FROM nume_tabel WHERE conditii

27. Care sunt activittiile necesare pentru creare a unui tabel n MySql.

CREATE TABLE nume_tabela(nume_camp tip_camp)


In procesul de creare a unui table activitatile sunt:
- Denumirea campurilor
- Alegerea unui tip de date potrivit pentru fiecare camp
- Definirea atributelor pentru fiecare camp in parte
- Stabilirea coloanei care va juca rolul de cheie primara sau secundara cu ajutorul careia se va stabili
legatura catre alte tabele ale bazei de date

28. Care sunt principiile ce se impun a fi respectate n procesul de proiectare a unei baze de date.

O regula de baza in MySQL este ca majoritatea comenzilor testate in monitorul MySQL de client
pentru a fi transmise serverului se termina cu ;. Acest character indica serverului de baze de date
mysql ca s-a terminat introducerea unei comenzi si deci o poate procesa si afisa rezultatul.
Crearea unei aplicatii Web dinamice, in marea majoritate a lor, implica crearea unei baze de date
alcatuita din una sau mai multe tabelle legate intre ele. Crearea unei astfel de baza de date in mysql,
pentru un magazine virtual care se ocupa cu comercializarea produselor IT, se realizeaza cu
comanda:
Mysql> create database nume_baza_de_date;

29. Care sunt situaii n care serverul de Web funcioneaz n moduri diferite?

Functionarea unui server de baze de date pentru web, in cazul nostru MySQL, implica existenta a
doua elemente: un browser web si un server. Intre aceste doua elemente se impune sa existe un
canal de comunicare. Serverul de web functioneaza in moduri diferite in urmatoarele situatii:
- In cazul in care server-ul lucreaza cu pagini web statice, un browser web (clientul) formuleaza
cererea catre server, iar serverul trimite inapoi un raspuns
- In cazul in care server-ul lucreaza cu pagini web dinamice care preiau datele dintr-o baza de date si
le afiseaza se realizeaza urmatorii pasi:
- Browser-ul web al unui utilizator emite o cerere HTTP pentru o anumita pagina web
- Serverul web receptioneaza cererea si transfera fisierul catre motorul PHP, in cazul nostrum pentru
prelucrare
- Motorul PHP incepe analiza paginii. In interiorul unei pagini web dinamice exista o comanda care
realizeaza legatura la baza de date si executa interogarile pe care le trimite serverului MySQL
- Serverul MySQL receptioneaza interogarea bazei de date si o prelucreaza, iar apoi trimite
rezultatele motorului PHP
- Motorul PHP afiseaza rezultatele furnizate de serverul MySQL, formatate intr-un cod HTML pe care
il returneaza serverului web, in cazul nostru Apache
Serverul web transmite codul HTML browserului unde utilizatorului I se afiseaza rezultatul dorit de
acesta.

30. Definii noiunea de limbaj PHP.

PHP este un limbaj de scripting folosit pentru crearea paginilor web dinamice. PHP poate fi folosit
pentru scrierea unor programe stocate pe serer ce acceseaza baze de date. PHP este un limbaj
efficient si securizat. Aplicatiile PHP sunt usor de configurat pentru exploatare. PHP asigura timpi de
raspuns competitive la rularea aplicatiilor web, asigurand in acelasi timp securitatea informatiilor si
transparenta fata de utilizator.

31. Enumerai facilitile oferite de limbajul PHP.

-manipularea continutului pagini web


-transmiterea headerelor HTTP pentru autentificare
-setarea cooki-urilor
-redirectionarea utilizatorilor
-asigurarea spargeri(parser) fisierelor XML (asigura transformarea fis XML)
-crearea si manipularea imaginilor, animatilor si a PDF-urilor
-conectarea la un server de email
(atat este in carte dar mai sunt facilitate importante cum ar fi: conectarea si manipularea unei baze
de date)

32. Enumerai caracteristicile limbajului PHP.

-este interpretativ
-executie rapida datorita interpretorului inclus in serverul web
-bogat in facilitati, contine multe functii utile
-are o sintaxa simpla(var nu trebuie declarate, sipul stabilit la initializare)

33. Descriei principiul de funcionare a limbajului PHP.

Clientul(browser-ul) trimite o cerere HTTP la server serverul lanseaza interpretatorul(parserul) PHP,


acesta prelucreaza tot ce este intre <?php ?> si trimite raspunsul la server care il trimite inapoi la
client pentru afisare.

34. Care este efectul comenzii echo();?

Afisarea parametrilor.
echo(A,b); va returna A b

35. Exist diferene ntre comanda echo(); i print();? Dac da enumeraile?

Da. Echo ruleaza mai repede decat print.


Echo nu are tip returneaza tip void pe cand print returneaza 1(deci poate fi folosit in expresii). Echo
poate primi mai multi parametri.

36. Ce sunt variabilele PHP? Scriei sintaxa i exemplificai.

Variabila este o mrime care poate s aib diferite valori, de la caz la caz, sau i n funcie de timp.
Variabilele se folosesc n formule i ecuaii algebrice i matematice, unde se noteaz n general cu
litere.
$nume_variabila=valoare
$x,$_GET(variabila superglobala)

37. Care sunt structurile de control complexe prezente n PHP?

1. IF structura alternativa
2.while,for, foreach str repetitiva conditionata anterior
3. Do-while str repetitiva conditionata anterior
4. Switch structura selectiva
5. Continue, break si return instructiuni folosite pt a da o flexibilitate mai mare ciclurilor
38. Definii noiunea de constant PHP?

Constanta PHP este o marime care nu se schimba.Ea este initializata la inceput si nu mai isi schimba
valoarea in timp.

39. Enumerai i explicai 2 funcii PHP predefinite.

Max(x,y)- returneaza maximul dintre x si y


Count(string sir)- are rolul de a Numara elementele unui sir si a returneaza nr lor.

40. Care este rolul operatorii relaionali n programarea PHP?

Operatori relationali se folosesc in procesul de comparare a doua valorii,variabile,constant s.a.

41. Care este efectul funcie strcmp()?

Compara doua stringuri primite ca parametri. Strcmp(string s1, string s2). Valoarea returnata este <0
daca s1<s2, =0 daca s1=s2 si >0 daca s1>s2

42. Care este efectul funcie substr()?

Returneaza un subsir incepand cu pozitia n pna la pozitia m. Substr(Sir s,int n,int m ).

43. Ce aciuni se pot realiza asupra fiierelor n PHP.

Adugarea de noi nregistrri ntr-o tabel a unei baze de date se face cu comanda INSERT. INSERT
INTO nume_tabel (coloana_1, coloana_2,..., coloana_n) values
('valoare_1','valoare_2',...,'valoare_n');
Aciunea de modificare efectiv se va realiza cu ajutorul comenzii UPDATE a crei sintax este :
UPDATE nume_tabel SET coloana_1='$valoare_1', coloana_2= '$valoare_2',...,
coloana_n='$valoare_n' WHERE condiie;
Aciunea de tergere efectiv se va realiza cu ajutorul comenzii DELETE a crei sintax este :
DELETE FROM nume_tabel WHERE condiie;
O ultim aciune ce se impune a fi executat ntr-un web site este cea de cutare. Aceast aciune se
realizeaz cu ajutorul instruciunilor SQL i a comenzii LIKE. Comanda LIKE are rolul de a cuta o
valoare prin compararea acesteia cu un model. Modelele se formeaz fie cu caracterul procent (%) i
un text fie cu caracterul liniu de subliniere ( _ ) i un text. Procentul se folosete n cazul n care se
dorete o cutare pe un spectru mai larg adic, se furnizeaz ca rezultat al cutrii toate construciile
care conin n componen textul care noete acest caracter neinndu-se cont de numrul de
caractere. Liniua de subliniere se folosete pentru a indica o potrivire a caracterului de nlocuire cu
un singur caracter.

44. Care este mecanismul de creare a unei sesiuni? Exemplificai.

O sesiune este creata,deschisa,initializata sau reinitializata cu cu session_start().Daca nu exista o


sesiune ea este create daca exista este reinitializata.

45. Care este mecanismul de creare a unei cookies? Exemplificai.

setcookie(name, value, expire, path, domain);


<?php
setcookie("user", "Alex Porter", time()+3600);
?>
<html>
46. Ce este un tablou bidimensional? Care este rolul unui tablou unidimensional? Creai un tablou
unidimensional.

Creati un tablou unidimensional.


Un tablou unidimensional este un sir.Un sir este creat folosind o constructive a limbajului PHP,
array().Un tablou unidimensional stocheaza mai multe elemente.$plante=array(flori,iarba).
Tabloul unidimensional are un index. Daca acesta nu este folosit pozitia primului element va fi 0 si
celui de-al doile 1. <?$sir=array(10=>a, 30=>b)?>

47. Care sunt operaiile ce se pot realiza cu un tablou unidimensional? Exemplificai.

Creareea tablourilor: .$plante=array(flori,iarba).


Modificarea datelor: $nume_tablou[indice]=valoare sau $nume_tablou[]=valoare
Stergerea datelor:unset($plante)- sterge tabloul
<?$sir=array(10=>a, 30=>b)
unset($sir);?>
Unset($sir[10])- sterge valoare de pe pozitia 10

48. Care este rolul instruciunii For n programarea php? Exemplificai.

FOR este o constructie repetitiva conditionata anterior. Se foloseste doar cand se stie numarul de
iterati care vor fi facute.FOR($i=0;$i<30;$i++).
<?$sir=array(10=>a, 30=>b)
FOR($i=0;$i<30;$i++)
{echo $sir[$i];}
?>

49. Care sunt pai de realizare a accesului la bazele de date relaionale din pagini PHP

Prima data se face conectarea la baza de date cu ajutorul lui


$con=mysql_connect(nume_gazda,utilizator,parola).
Apoi se selecteaza baza de date cu ajutorul lui mysql_select_db(nume_db,$con).
Pentru aplicarea interogarilor se foloseste mysql_query($sql); unde $sql= cu o interogare sql.
Pentru inchiderea conexiuni se foloseste mysql_close().

50. Enumerai i descriei paii de modificarea datelor n cadrul unei tabele a unei baze de date.
Exemplificai

- Modificarea datelor dintr-o tabela a unei baze de date baze de date presupune conectarea la baza
de date si efectuarea unui SELECT in functie de o conditie pt a se obtine inregistrarea care se
doreste modificata.
- Crearea unui formular in care sa se afiseze datele care urmeaza a fi modificate.
- Modificarea se va face cu ajutorul lui UPDATE; UPDATE nume_tabel SET coloana_1=$val1,
coloana_2=$val2coloana_n=$valn
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{die('Could not connect: ' . mysql_error());}
mysql_select_db("my_db", $con);
mysql_query("UPDATE Persons SET Age=36
WHERE FirstName='Peter' AND LastName='Griffin'");
mysql_close($con);
?>

51. Enumerai i descrii paii de afiare a datelor n cadrul unei tabele a unei baze de date.
Exemplificai

- Afisarea datelor dintr-o tabela a unei baze de date conectarea la baza de date.
- Crearea unui formular in care sa se afiseze datele ;
- Afisarea se va face cu ajutorul lui SELECT;Sintaxa: SELECT coloana FROM nume_tabel
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{die('Could not connect: ' . mysql_error()); }
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM Persons");
while($row = mysql_fetch_array($result))
{echo $row['FirstName'] . " " . $row['LastName'];
echo "<br />";
}
mysql_close($con);
?>

52. Enumeri i descrieti paii de tergere a datelor n cadrul unei tabele a unei baze de date.
Exemplificai

- Stergerea datelor dintr-o tabela a unei baze de date presupune conectarea la baza de date si
efectuarea unui SELECT in functie de o conditie pt a se obtine inregistrarea care se doreste stearsa.
- Stergerea se va face cu ajutorul lui DELETE. Sintaxa: DELETE FROM nume_tabel WHERE conditie.
<?php
$con = mysql_connect("localhost","peter","abc123");
mysql_select_db("my_db", $con);
mysql_query("DELETE FROM Persons WHERE LastName='Griffin'");
mysql_close($con);
?>

53. Enumeri i descrieti paii de inserare a datelor n cadrul unei tabele a unei baze de date.
Exemplificai

- Inserarea datelor intr-o tabela a unei baze de date baze de date presupune conectarea la baza de
date
- Inserarea se va face cu ajutorul lui INSERT;Sintaxa: INSERT INTO table_name
VALUES (value1, value2, value3,...)
<?php
$con = mysql_connect("localhost","peter","abc123");
mysql_select_db("my_db", $con);
mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Peter', 'Griffin',35)");
mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Glenn', 'Quagmire',33)");
mysql_close($con);
?>
54. Descriei metodele de baz pentru colectarea informaiei din formulare HTML folosind PHP.

Trimiterea informatiei din formele HTML in PHP se face cu ajutorul metodelor GET si POST.

55. Cum se transmit datele dintr-un formular existent ntr-o pagin Web ctre server Web?

Datele dintr-un formular existent se trimt spre server cu ajutorul atributelor ACTION unde se pune
numele fisierului php si METHOD care poate primi valorile GET sau POST. Fiecare obiect din
formular are un nume si valoarea lor va fi timisa in variabilele superglobale $_GET sau $_POST de
unde vor fi preluate.

56. Descriei mecanismul de funcionare a prelucrrii datelor din cadrul unui formular.

Browserul trimite datele la server cu ajutorul metodelor get sau post. Serverul trimite la fisierul php
apelata in atributul ACTION , aceasta preia datele din variabilele superglobale $_POST sau $_GET ;
datele sunt prelucrate de scriptul PHP si trimise inapoi.

57. Care sunt metodele folosite din cadrul unei pagini PHP pentru a transmite datele ctre server?
care este rolul acestei aciuni?

_construct(), _ destruct()

58. Care este rolul interfaelor CGI, Perl, ASP i PHP n programare?

Web-ul a dobndit un plus de interactivitate prin utilizarea programelor create, folosind interfae
CGI, Perl, ASP i PHP. Aceaste programe au permis scrierea de coduri surs cu rolul de a trimite de la
browser spre server-ul WEB att a informaiilor standard coninute n antetul HTTP al cererii ct i
informaii n alte dou moduri i anume:

printr-un formular ;

ca un ir de cereri adugate la sfritul URL-ului.

59. Care este rolul Variabilele superglobale $_POST i $_GET?

Rolul varibilelor este de a prelua datele trimise din formularele HTML. $_GET preia date din
formulare care au atributul method=GET iar post de la cele ceu method=POST.

60. n procesul de creare a unui proiect web este necesar o baz de date creat cu MySql? Dac
da argumentai.

NU este obligatoriu sepoate folosi si stocarea datelor in formular XML. Dar pentru proiectelor web
complexe care vor inregistra o cantitate mare de date este necesara crearea unei baze de date
create cu MYSQL.

1. Ce este un sistem, un sistem informaional i un sistem informatic?

Sistem ansamblu de elemente, care interrelaioneaz n interior i cu mediul nconjurtor i care


acineaz n comun sub un aspect unitar pentru a ndeplini obiective bine definite. Orice sistem are
un comportament specific, determinat de natura elementelor din care este compus i de relaiile
dintre acestea.
Sistem informaional o restrngere a noiunii de sistem=ansamblul elementelor de structur
organizatoric din seciunea societatii umane (precum o organizaie), mpreun cu legturile
funcional-informaionale dintre ele i cu contextul n care se afl, care acioneaz n comun pentru
ndeplinirea obiectivelor propuse. Rolul sistemului informaional: obine, stoca, prelucra i livra
informaii factorilor de decizie din organizaie.
Sistem informatic partea automatizat a sistemului informaional (cu toate componentele sale de tip
hardware, software) responsabil cu stocarea i prelucrarea informaiilor utile factorilor de decizie.

2. Descriei analiza de sistem.

Pentru realizarea unui produs software este necesara parcurgerea mai multor etape. Acestea
formeaza ciclul de viata al produsului.in prima faza, analiza software, analistii descriu spatiul
problemei si elaboreaza un set de cerinte care descriu ce se doreste de la noual sistem informatic.
Analiza software este asadar faza initiala a ciclului de dezvoltare al produsului. Scopul analizei este
de a produce un document numit raport de analiza si care sa contina specificatii complete cu privire
la sistemul informatic dorit. Natura informatiilor este de batura CE trebuie sa ofere viitorul sistem
utilizatorilor sai si ignorand complet CUM le va oferi acesta.

3. Ce conine un raport de analiz?

1 introducere se prezinta scurt proiectul


2 Analiza problemei
2.1 Context - descrierea contextului in care va functiona sistemul, fatetele
2.2 Motivatie - digrama Fishbone, obiective
2.3 delimitarea sistemului de context activitati, procese
2.4 activitati si procese diagrame de flux, diagrame de activitate
3 Cerinte
3.1 Elicitatia cerintelor
3.1.1 Surse de cerinte - sursele de cerinte identificate, sunt descrise si se justifica d ece au fost alese
3.1.2 Procesul de elicitatie a cerintelor se descriu stakeholderii, metode: model de business,
cazuri de utilizare, metoda interviului; cazuri de utilizare + diagrame UML
4 Cerinte software informatiile sunt TRADUSE aplicand metode de elicitatie in trasaturi de sistem,
cerinte functionale, cerinte non-functionale si constrangeri(limitari)
Glosar definitii, explicatii, descriere (lista)

4. Descriei structura de baz a unui raport de analiz.

1 introducere se prezinta scurt proiectul


2 Analiza problemei
2.1 Context - descrierea contextului in care va functiona sistemul, fatetele
2.2 Motivatie - digrama Fishbone, obiective
2.3 delimitarea sistemului de context activitati, procese
2.4 activitati si procese diagrame de flux, diagrame de activitate
3 Cerinte
3.1 Elicitatia cerintelor
3.1.1 Surse de cerinte - sursele de cerinte identificate, sunt descrise si se justifica d ece au fost alese
3.1.2 Procesul de elicitatie a cerintelor se descriu stakeholderii, metode: model de business,
cazuri de utilizare, metoda interviului; cazuri de utilizare + diagrame UML
4 Cerinte software informatiile sunt TRADUSE aplicand metode de elicitatie in trasaturi de sistem,
cerinte functionale, cerinte non-functionale si constrangeri(limitari)
Glosar definitii, explicatii, descriere (lista)

5. Ce este ciclul de via al unui produs informatic?

Ciclul de via al unui produs software este o structur care este urmat n vederea realizrii
produsului informatic. Ciclul de via cuprinde etape n care sunt realizate aciuni specifice.

6. Descriei modelul prototipizrii.


Proces:-stabilirea cerinelor iniiale,-realizarea concepiei (proiectarea)-implementarea versiunii
iniiale de sistem.-sistemul este supus evalurilor -> feedback-revinea asupra cerinelor-reluarea
ciclului pn rezultatele evalurii sunt satisfctoare (ndeplinete performana dorit)-trecerea
sistemului n faza de dezvoltare propriu-zis (n scopul obinerii produsului software final)-Testare,
mentenan
Caracteristici: folosit n general n situaiile cnd sistemul vizat este complex, cerinele sunt greu de
identificat corect i n ntregime n faza de analiz.
-folosit pentru sisteme cu grad mare de noutate fie din punct de vedere al funcionalitilor oferite,
fie al tehnologiei adoptate.
-are o abordare de la simplu la complex, ntruct la fiecare iteraie, versiune de prototip, sunt
adugate funcionaliti noi. Core + ...

7. Descriei modelul cascad.

Parcurgere succesiv a fazelor: Analiza (specificarea cerinelor) Concepia (designul) Implementarea


i integrarea componentelor software Testarea Instalarea Mentenana(ntreinerea)
Caracteristici:fiecare etap este parcurs complet, dup care se trece la urmtoarea etap.
-n urma parcurgerii fiecrei etape pot aprea ajustri la rezultatul produs, ns cu toate acestea
modelul nu ncurajeaz revenirea la etape anterioare pentru modificarea rezultatelor.
-aplicat n general pentru sisteme simple n care cerinele pot fi formulate (corect i complet) n faza
de analiz.

8. Descriei modelul spiral.

Caracteristici: -reprezint o combinaie a elementelor folosite de modelele n cascad i prototipului;


+ trateaz riguros riscul la fiecare etap de dezvoltare - utilizat n dezvoltarea sistemelor informatice
mari, complexe, realizate cu costuri semnificative, de obicei soluii dedicate
Proces:-stabilirea obiectivelor pentru sistem, analiza cerinelor, identificarea surselor de risc
posibile.-pentru fiecare surs de risc se realizeaz o analiz i se ncearc gsirea unei metode de
minimizare/ excludere a sa.-n funcie de rezultatul analizei de risc se consult clientul care poate
alege ntre a opri proiectul sau a continua asumndu-i riscurile identificate. n aceast faz se poate
construi un prototip (care presupune costuri mai reduse) pentru a evalua riscul (simulri).

9. Descriei activitatea de proiectare a sistemului informatic.

Proiectarea = faza in care proiectantii hotarasc modul de realizare a cerintelor primite din faza
anterioara, stabilind tehnologiile ce urmeaza a fi folosite la nivell sistemului informatic creat.

10. Ce este proiectarea logic?

Activitatea prin care se stabilesc intrarile sistemului informatic, prelucrarile pe care acesta le
realizeaza si iesirile acestuia, pentru toate nivelurile de granularitate specificate mai sus(subsisteme,
aplicatii, unitati functionale, unitati de prelucrare-proceduri)
Baza informaional: date de intrare i ieire pentru componentele unui sistem informatic.
- sist. de gestiune a fiierelor/ bazelor de date

11. Ce rol are etapa de proiectare a unui sistem informatic?

Proiectarea = faza in care proiectantii hotarasc modul de realizare a cerintelor primite din faza
anterioara, stabilind tehnologiile ce urmeaza a fi folosite la nivell sistemului informatic creat.

12. Cum interrelaioneaz componentele unui sistem?


Relatiile dintre diverse componente ale unui sistem se bazeaza pe mecanismul de intrari-prelucrari-
iesiri. Daca o componenta A pentru a putea realiza functionalitatea sa are nevoie de functionalitatea
componentei B, o va apela(executa, rula) pe aceasta din urma cu anumite date de intrare si va
astepta de la aceasta un rezultat
date de intrare i ieire pentru componentele unui sistem informatic repr baza informaional.

13. Ce este proiectarea fizic (sau tehnic)?

= faza in care sunt cautate solutiile tehnice efective pt a obtine functionalitatile cerute
1. Structura fizica a programelor algoritmii efectivi care prelucreaza datele
2. Structura fizica a datelor- colectii de date pe care componentele identificate sa le foloseasca in
procesare
3. Inlantuirea operatiilor
4. Tehnologii harware folosite
5. Documentatie cu specificatii de executie pt toate aspectele stabilite, care este utila mai departe
programatorilor, testerilor si celor care vor intretine sistemul

14. Enumerai aspectele pentru care un proiectant caut n general soluii n cadrul unui proiect
informatic.

NU STIU!!!

15. Enumerai activitile realizate de proiectant n cadrul dezvoltrii unui proiect informatic.

Proiectarea logica (conceptuala) a sistemului informatic


Proiectarea tehnica (fizica) a sistemului informatic
Proiectarea implementarii a sistemului informatic
Proiectarea testarii sistemului informatic
Proiectarea intretinerii sistemului informatic

16. Cum se controleaz riscurile ntr-un proiect informatic?

Parti afectate semnificativ de viitorul sistm informatic


- Identificarea partilor afectate semnificatic de viitor sistem informatic
- Identificarea persoanelor cu drept de decizie din partile afectate semnificativ
- Intalnirea in persoana a persoanelor afectate
- Obtinerea de informatii despre partile afectate de sistem preferinte, obisnuinte, antecedente,
cultura organizationala, obiceiuri etc

17. Dai exemple de ntrebri care ajut la identificarea riscurilor pentru un proiect informatic.

Ce se ntmpl dac activitatea eueaz?

Ce puncte slabe sunt n proiectarea activitii?

Suntem capabili s respectm termenele stabilite?

Ce instrumente i metode se pot utiliza?

Au fost corect estimate veniturile proiectului?

Proiectul nostru are cutare pe pia?


A fost corect estimat cererea de pe pia?

Proiectul se adreseaz unei piee adecvate?

Au fost bine definite ateptrile clienilor?

18. Alegei o categorie de riscuri pentru proiectul informatic i explicai impactul acestora asupra
proiectului.

Frici, retineri, dorinte


-identificarea ideilor de care partile afectate se tem in general in legatura cu proiectul informatic
-identificarea posibilelor grupari de persoane afectate de sistem in functie de temerile pe care le au
-identificarea dorintelor partilor implicate in legatura cu proiectul
Produs informatic si cerinte de sistem
-scop, motivatie- sa fie clare
- identificarea partilor din proiect care nu pot fi schimbate pe parcursul excutiei
Procesul de business
-identificarea limitarilor legate de resurse: timp, bani, personal disponibil
-estimarea masurii in care aceste limitari pot fi influentate
Mecanisme de reactie si analiza
-asigurarea de mecanisme de reactie si analiza; lipsa acestora- disfunctionalitati

19. Prezentai o categorie de riscuri i dai exemple aciuni care ajut la evitarea lor.

Frici, retineri, dorinte


-identificarea ideilor de care partile afectate se tem in general in legatura cu proiectul informatic
-identificarea posibilelor grupari de persoane afectate de sistem in functie de temerile pe care le au
-identificarea dorintelor partilor implicate in legatura cu proiectul
Produs informatic si cerinte de sistem
-scop, motivatie- sa fie clare
- identificarea partilor din proiect care nu pot fi schimbate pe parcursul excutiei
Procesul de business
-identificarea limitarilor legate de resurse: timp, bani, personal disponibil
-estimarea masurii in care aceste limitari pot fi influentate
Mecanisme de reactie si analiza
-asigurarea de mecanisme de reactie si analiza; lipsa acestora- disfunctionalitati

1. Descriei tehnica CSMA/CD.

Aceasta tehnica rezulta din utilizarea tehnicii CSMA impreuna cu tehnica asculta ce transmiti.
Principiul de baza este ca dupa ce sursa transmite pachetul, asteapta un interval foarte scurt de
timp, iar mai apoi isi asculta propria transmisie. Avantajul essential al acestei tehnici consta in faptul
ca ea permite detectarea prompta a unei coliziuni, adica imediat ce ea apare si nu dupa un interval
de timp, evitandu-se transmiterea complete a pachetelor colizionate si se reduc nu numai intarzierile
din retea datorate coliziunilor, dar si canalul de difuzare devine disponibil mai repede.

2. Descriei formatul pachetului Ethernet IEEE 802.3

Standardul Ethernet curent, este utilizat pe peste 40% din LAN-urile din lume. Aceste reele
opereaz n mod curent la viteza de 10Mbps.

3. Descriei comparativ funcionarea unui HUB i a unui comutator(SWITCH).


Hubul este cunoscut sub numele de repetor sau concentrator. Prima lui functiune este sa primeasca
sis a regenereze semnalele de la dispozitivele conectate, pe cand switchul face posibil ca fiecare
statie sa obtina in intregime banda alocata, fara a mai fi nevoie sa o imparta cu alte statii. Acest lucru
este realizat prin utilizarea unei magistrale de semnale extreme de rapide aflata in comutatorul
Ethernet si poate avea viteze de peste 2GB/s

4. Enumerai i descriei funciile nivelului reea

Asigura dirijarea pachetelor de date intre nodurile sursa si destinatie, trecand prin noduri
intermediare. Decizia este luata astfel incat sa nu existe in acelasi timp legaturi supraincarcate si
legaturi neutilizate, evitandu-se deci congestionarea retelei. O alta functie importanta a nivelului
retea este de interconectare a retelelor cu arhitecturi diferite.

5. Desenai i descriei suita de protocoale TCP/IP

Seria de protocoale TCP/IP este publica si poate fi implementata pe orice tip de calculator, de la
calculatoare personale la supercalculatoare si se poate utilize atat pentru retele locale cat si pentru
retele pe arii extinse. De asemenea, este utilizat atat de agentii guvernamentale cat si de multe
retele comerciale. Aceasta serie s-a folosit la reteaua ARPANET din care s-a nascut o retea mai mare
care conecteaza mai multe retele individuale si care se numeste INTERNET. Functia primara consta in
dirijarea pachetelor de date de la sursa la destinatie.

TCP presupune ca la nivelul imediat inferior (retea) exista o modalitate, chiar neglijabila, de
transmitere a pachetelor in retea. El a fost gandit ca avand la nivelul retea un modul Internet (IP) dar
poate functiona si cu alte protocoale. Interfata dintre modulul TCP si modulele de nivel superior se
face prin apeluri similare celor pe care un sistem de operare le ofera pentru manipularea fisierelor.

Protocolul TCP trebuie sa asigure urmatoarele: a)transfer de date, in mod continuu, in ambele
directii, intre doua procese. b)fiabilitate; c)controlul fluxului de date; d)servicii orientate pe
conexiune; e)prioritate si securitate.

6. Descriei tipurile de adrese IP

O adres IP const dintr-un numr pe 32 de bii. Bitii din primul camp indica daca adresa face parte
din clasele A, B, C sau daca este o adresa multicast. O clasa A de retele poate contine pana la 224
gazde, o clasa de retele B pina la 216 gazde si o clasa de retele C pina la 28 gazde. Sunt posibile 228
adrese multicast. Versiunea curenta este 4(IPv4). S-a propus pentru Internet un protocol imbunatatit
caruia i s-a dat numele de IPv6(IP versiunea 5 era deja utilizat pentru un protocol pentru fluxuri in
timp real). Adresele sursa si destinatie la acest nou protocol au lungimi de 16 octeti, deci un spatiu
de adrese practic nelimitat. Pentru scrierea adreselor pe 16 octeti se folosesc grupuri de cate patru
cifre hexazecimale cu semnul : intre grupuri.
7. Desenai i explicai antetul unui pachet IP.

Ver: Versiunea, identificator de 4 bii, coninnd versiunea protocolului IP al acestui cadru. Prin
verificarealui Ver-id, un nivel protocol nivel IP poate implementa mai multe versiuni ale protocolului
IP. Versiunea curent este 4(IPv4). S-a propus pentru Internet un protocol mbuntit cruia i s-a
dat numele de IPv6(IP versiunea 5 era dejautilizat pentru un protocol pentru fluxuri n timp real).
Adresele surs i destinaie la acest nou protocol au lungimi de16 octei, deci un spaiu de adrese
practic nelimitat. Pentru scrierea adreselor pe 16 octei se folosesc grupuri de cte patru cifre
hexazecimale cu semnul: ntre grupuri.
IHL: cmp de 4 bii care d lungimea antetului din cuvintele de 32 de bii. Acest cmp este cerut din
cauzalungimii variabile a cmpului opiune. Dac nu este prezent nici un cmp opiune, valoarea
minim a cmpului va fi 5.
TOS: Tipul serviciului, cmp de 1 octet, specificnd tipul de serviciu cerut de acest cadru. Biii 0-2
specific precedena cadrului care e de la 0 (normal) - 7 (control reea).
Bit 3 - indic cerere pentru ntrziere mic (D-delay)
Bit 4 - indic cerere pentru debit mare (T-traffic)
Bit 5 - indic cerere pentru siguran mare (R-reliability)
Biii D, T, R pot fi utilizai de ctre o poart IP pentru a selecta o cale spre nodul destinaie care
satisface serviciul cerut. Trebuie notat c n implementrile curente cmpul T, S, O este ignorat de
ctre porile IP i nodurile reele.
Lenght: conine lungimea total a cadrului Ethernet, incluznd haderul i data.
Ident: cmpul ident mpreun cu cmpurile adresa surs i destinaie, identific n mod unic
datagrama n timpul existenei pachetului IP.
Flags: cmpul flags conine cmpurile More i Fragment. Aceti bii indic dac un mesaj este
transmis ntrun singur pachet IP sau este fragmentat n mai multe pachete.
Foff: cmpul fragment offset poziioneaz octeii din cadrul IP n articolul de date original.
TTL: timpul de trit d timpul maxim de existen al cadrului IP. Acest cmp este utilizat pentru
evitarea buclelor infinite pentru pachetele IP. Fiecare ruter IP care gestioneaz un cadru descrete
adresarea cu 1 i trimite cadrul cnd valoarea este 0.
Prot: cmpul protocol identific protocolul datei coninute n cadrul IP. Normal, acesta va fi TCP sau
UDP.
Chek: suma de control a antetului IP (excluznd cmpul de date).
Source: adresa IP a nodului de reea IP transmitor.
Destination: adresa IP a nodului de reea IP destinaie.
Options: cmpul acesta de lungime variabil poate conine opiuni IP.
Data: cmpul data nu este o parte din antetul IP i conine articole de date de transmis. Datorit
limitei impare a cmpului Lenght, ntregul cadru IP are o lungime maxim de 216. Aceasta limiteaz
de asemenea i lungimea cmpului de date.

8. Descriei protocolul ICMP; la ce folosete.

ICMP utilizeaza serviciile nivelului IP pentru a trimite mesaje ICMP, dar este vazut adesea ca parte a
nivelelor IP. Serviciile ICMP-ului sunt utilizate de catre nivelul IP pentru a mentine operarea corecta a
retelei IP.

9. Protocoalele ARP i RARP.

Protocoalele TCP/IP lucreaza numai cu adrese IP si cadrele Ethernet lucreaza numai cu adrese
Ethernet. Diversele tipuri de adrese reprezinta o problema a comunicatiei in retea. Protocolul de
rezolutie adresa(ARP) si Protocolul de rezolutie adresa inversa(RARP) rezolva aceasta problema prin
conversia adreselor. Acestea transforma adresa IP intr-o adresa a nivelului legatura de date si invers.

10. Funciile nivelului transport

Nivelul transport este un strat important avand rolul de asigurare a unui transfer de date corect.
Nivelul transport realizeaza o comunicare sigura intre doua calculatoare gazda detectand si
corectand erorile pe care nu le trateaza nivelul retea. In functie de caracteristicile traficului generat
utilizatorii nivelului transport pot cere stabilirea unei conexiuni transport cu o anumita calitate a
serviciului furnizat. Una din functiile importante a nivelului transport este multiplexarea
conexiunilor. La fel de important este controlul fluxului datelor, aspect intalnit si la nivelul legaturii
de date.

11. Desenai i descriei antetul protocolului TCP.

Semnificatia campurilor
Portul sursa (16 biti) -impreuna cu adresa sursei formeaza soclul sursei.
Portul destinatie (16 biti) -numarul portului destinatie selecteaza procesul din calculatorul destinatie
cu care s-a stabilit o conexiune.
Numarul de secventa (32 biti) - reprezinta numarul primului octet de date din cadrul segmentului de
date curent. Daca bitul de control SYN este setat, numarul de secventa este adus la valoarea sa
initiala.
Numarul de confirmare (32 biti) -contine valoarea urmatorului numar de secventa pe care trebuie
sa-l primeasca.
Lungime antet date (offset date) (4 biti) contine lungimea antetului TCP in cuvinte de 32 biti indicand
de unde incep datele.
Rezervat (6 biti) -initializati cu 0.
Bitii de control
URG- se ia in considerare campul indicator urgent; ACK- valideaza numar confirmare;
PSH- cere anuntarea imediata a utilizatorului destinatie de primirea mesajului; RST- resetare
conexiune;
SYN- cere sincronizarea numerelor de secventa;
FIN- anunta terminarea fluxului de date de la transmitator.
Fereastra ( 16 biti)- reprezinta numarul de octeti, incepand cu cel imediat din numarul de confirmare
pe care cel ce trimite mesajul il poate receptiona.
Suma de control (16 biti)- este calculata pentru toate cuvintele din antet si din blocul de date. Daca
numarul de octeti de date este impar se completeaza cu octet nul.
Indiacator urgent (Pointer urgent )(16 biti) reprezinta offset-ul fata de numarul de secventa al
datelor ce trebuie transmise urgent.
Optiuni - au lungimi diferite, apar sau nu in antet.

12. Descriei i desenai antetul protocolului UDP.

Portul sursa - n adresarea bazata pe IPv4 acest cmp este opional. Daca nu este utilizat acest cmp,
are valoarea zero; cnd reprezinta informaie semnificativa, el va indica portul iniiator al procesului
de transmisie a datagramelor.
Portul destinaie - spre deosebire de portul sursa, cmpul este obligatoriu i indica portul de recepie
Lungime - acest cmp indica lungimea n octei a datagramei: antet plus seciune de date (valoarea
minima a lungimii este 8).
Suma de control - asigura imunitatea la erori; se calculeaz ca fiind complementul fata de 1 (pe 16
bii) a pseudo-antetului cu informaii extrase din antetul IP, antetului UDP i a cmpului de date,
eventual se completeaz cu zerouri pentru a atinge lungimea stabilita.

13. Enumerai i descriei funciile sistemului de gestionare a reelelor.

Gestinea configuratiei implica legarea prin punti si reconfigurarea sistemelor utilizator precum si a
subretelelor, incluzand punti si rutere, gestiunea folosirii numelor si asocierea acestora cu adresele
de retea.
Gestiunea defectelor este implicate in intretinerea subretelelor prin detectarea defectelor, izolarea
cererilor, izolarea erorilor si corectarea defectelor de comunicatie.
Gestiunea performantei trebuie sa urmareasca cresterea performantelor, astfel incat sa creasca
eficienta retelei prin evitarea gatuirilor in noduri si pe rute.
Gestiunea costurilor retelei ajuta la definirea bugetului pentru retea. Utilizatorii sunt informati
asupra costurilor pentru resursele consummate precum si alocarea acestor costuri pe diverse
departamente.
Gestiunea securitatii retelei este necesara pt monitorizarea si controlarea mecanismelor de
protective a datelor.

14. Funcia de gestiune a configuraiei la reelele de calculatoare.


Gestinea configuratiei implica legarea prin punti si reconfigurarea sistemelor utilizator precum si a
subretelelor, incluzand punti si rutere, gestiunea folosirii numelor si asocierea acestora cu adresele
de retea. Acest bloc este fundamental pt buna functionare a sistemului si include urmatoarele
functiuni:
- Gestionarea de attribute ale dispozitivelor, setarea si modificarea valorilor individuale, collective
sau predefinite ale acestora
- Gestionarea initializarii si a opririi in totalitate sau a anumitor parti din retea
- Actualizarea topologiei de gestionare prin identificarea tuturor relatiilor de interconectare

15. Modelul de organizare a gestiunii reelelor de calculatoare

Functionarea gestiunii unei retele trebuie combinata cu organizarea la nivel informational privind
situatia actual si de perspectiva. Gestiunea retelei contine aplicatii care sunt distribuite in ambele
sisteme si anume: in sistemul de gestiune sunt urmarite procesele, iar in sistemul gestionat
procesele agent si obiectele. Activitatile de gestionare sunt realizate printr-un manager de procese
care comunica cu procesele din sistemul gestionat, astfel incat sa se controleze obiectele gestionate.
Pt fiecare obiect gestionat sunt definite atributele, operatiile valide asupra lor si notificarea
obiectelor de iesire.

16. Enumerai provocrile principale i principalele standardele ale reelelor de calculatoare fr


fir(radio).

Unele dintre principalele provocari carora trebuie sa le faca fata retelele fara fir privitor la transmisie
sunt: deficitul latimii de banda, acces multiplu, pierderea de cale, directii multiple, diminuarea
semnalului, mobilitatea, securitatea si calitatea serviciului.

Principalele standard sunt: HiperLan II, HomeRF, IEEE802.16.

17. Desenai i explicai principalele topologii ale reelelor de calculatoare fr fir.

O retea fara fir poate fi formata dintr-o singura celula cu unul sau nici un punct de acces. Cele mai
multe topologii au mai multe celule unde toate punctele de acces sunt conectare printr-o magistrala
denumita DS(Distribution System) formata dintr-o retea cablata sau una fara fir ( wireless). Avem
topologie structurata atunci cand o retea wireless are cel putin un punct de acces conectat la o retea
cablata si mai multe statii conectate wireless. Modalitatea ad-hoc ( fig 11..16 ) apare cand un grup
de statii de tip 802.11 wireless comunica direct unul cu altul fara sa foloseasca un punct de access
sau conexiunea printr-o retea cablata.

18. Desenai i explicai rolul nivelului fizic n cazul reelelor de calculatoare fr fir.
Nivelul fizic (PHY) acopera interfata fizica intre dispositive si este in legatura directa cu transmiterea
sirului de biti de-a lungul canalului de comunicare. Nivelul fizic este divizat in 2 subnivele:
-subnivelul PLCP pentru incapsularea datelor la nivel fizic;
-subnivelul PMD pt codificarea datelor si trnasmitarea lor pe canalele de cumunicatie;

19. Desenai i explicai rolul subnivelului MAC n cazul reelelor de calculatoare fr fir.

La subnivelul MAC are loc incapsularea datelor ce vin de la nivelul retea in cadre. Subnivelul MAC
foloseste protocolul CSMA/CA si deasemenea este responsabil de fragmentare si de criptare. In
standardul 802.11 subnivelul MAC, pe langa functiile obisnuite, trebuie sa se ocupe de fragmentarea
pachetelor, retransmiterea lor si confirmarea primirii lor.

20. Desenai i explicai metoda CSMA/CA n cazul reelelor de calculatoare fr fir.

Detectarea coliziunilor nu poate fi folosita de catre protocoalele wireless din urmatoarele motive:
Detectarea coliziunilor solicita implementarea unui semnal radio full duplex capabil sa trimita sis a
receptioneze in acelasi timp. Aceasat implementare ar costa prea mult.
Premisa majora in detectarea coliziunilor este ca o statie poate sa asculte pe oricare alta. Aceasta
premise nu se aplica si in mediul wireless. Daca o statie detecteaza mediul liber aceasta nu inseamna
ca in mod necesar mediul din jurul receptorului este liber.

21. Desenai i explicai rolul nivelului fizic n cazul reelelor de calculatoare fr fir.
Nivelul fizic (PHY) acopera interfata fizica intre dispositive si este in legatura directa cu transmiterea
sirului de biti de-a lungul canalului de comunicare. Nivelul fizic este divizat in 2 subnivele:
-subnivelul PLCP pentru incapsularea datelor la nivel fizic;
-subnivelul PMD pt codificarea datelor si trnasmitarea lor pe canalele de cumunicatie;

22. Desenai i explicai problema nodurilor ascunse n cazul reelelor de calculatoare fr fir.

Cele 2 statii nu se aud, dar fiecare aude punctual de acces.


Cand o statie doreste sa transmita un pachet, ea trimite un pachet de control denumit RTS(Request
To Send) care include sursa, destinatia si durata urmatoarei tranzactii. Daca mediul este liber statia
receptoare raspunde cu un pachet de control denumit CTS(Clear To Send) care include acceasi
durata a informatiei.

23. Desenai i explicai modul cum se realizeaz securitatea IEEE 802.11 n cazul reelelor de
calculatoare fr fir.
IEEE 802.11 are doua subtipuri de autentificari: system deschis si cheie partajata. Autentificarea este
facuta intre doua statii. De aici rezulta ca se poate face numai in cazul cadrelor unicast dar nu si la
cele muticast. Pentru statiile care folosesc autentificarea cheilor partajate trebuie sa se
implementeze WEP. WEP este protocolul de incapsulare pentru 802.11 al cadrelor de date. Scopul
este sa furnizeze securitate datelor la nivelul unei retele cablate. WEP este un algoritm simetric in
care acceasi cheie este folosita atat pentru criptare cat si pentru decriptare.

24. Descriei modul de lucru al protocolului de autentificare 802.1x n reelele fr fir

Standardul de autentificare 802.1x este relativ simplu si initial nu a fost destinat comunicatiilor fara
fir. Pentru 802.1x autentificarea clientilor se face printr-un server de autentificare extern.
Autentificarea 802.1x este un dialog intre un system care doreste sa se conecteze la serviciile retelei
si retea. Acest dialog foloseste protocolul extensibil de autentificare EAP. 802.1x consta dintr-un PAE
in toate statiile(STA) si punctele de acces(AP), incapsularea EAP a retelei (EAPOL) si un server de
autentificare RADIUS (AS).

25. Descriei sistemul de autentificare WPA ce folosete TKIP, utilizat n reele fr fir

Protocolul de integritate cu cheie temporara (TKIP-Temporal Key Integrity Protocol) este folosit de
WPA pt recodificarea cheii de criptare a traficului unicast. Fiecare cadru de date transmis prin spatial
fara fir este recodificat de catre TKIP. TKIP sincronizeaza schimbul de chei intre client si AP. Cheile de
criptare globala sunt schimbate, printr-un anunt catre toti clientii conectati, de catre protocolul
WPA.

26. Descriei protocolul 802.11i, utilizat n reele fr fir

Curnd dup succesul rsuntor al reelelor locale (LAN) fr fir, a devenit foarte evident lipsa
securitii acestora. Dup civa ani, a fost introdus un standard IEEE 802.11i(numit i WPA2) pentru
a asigura o securitate robust acestor reele. mbuntirea principal a 802.11i pentru WLAN-uri
este definirea unor reele cu servicii robuste de securitate(RSN-Robust Security Netwok). Standardul
IEEE 802.11i urmrete rezolvarea deficienelor asociate cu confidenialitatea datelor n mediul fr
fir. O reea RSN este o reea sigur care permite crearea de asocieri n RSN (ARSN). O ARNS definete
un numr de trsturi cum ar fi mecanisme de autentificare mbuntite pentru staii, algoritmi
criptografici i mecanisme de ncorporare a datelor mbuntite care asigur confidenialitate
crescut, numite CCMP i opionalul TKIP. ntr-o reea cu securitate robust, IEEE 802.11i asigur
funcii de protecie pentru secevenele de date, 802.1X asigur autentificarea i controlul porturilor,
iar IEEE 802.11i i IEEE 802.1X colaboreaz pentru a furniza managementul parolelor. Reelele
capabile RSN adaug elemente speciale secvenelor lor, promovndu-le capabilitile. n continuare
nu se va discuta despre elementele de baz ale autentificrii 802.1x, ntruct acestea au fost tratate
anterior. Vom face o descriere a cheilor ierarhice din RSN-uri. Aceste procese se reunesc n
protocolul handshake pe 4 ci i a cheilor stabilite cu acestea. n final, se va aborda utilizarea cheilor
generate n cele dou moduri confideniale. RSN-urile utilizeaz protocolul 802.1X pentru a asigura
autentificare puternic , managementul cheilor i controlul accesului. Aplicaiile variaz de la
confidenialitate spre eviden, funcie de modelul de afacere. Asocierile RSN nlocuiesc
mecanismele clasice de asociere.

25. Descriei serviciile criptografice

Autentificarea datelor - const din: faptul c datele nu au fost modificate (integritatea datelor) i
faptul c se tie cine este expeditorul (autentificarea datelor de origine).

a)Integritatea datelor.

Serviciul de integritate al datelor garanteaz faptul c, coninutul masajelor, care au fost transmise,
nu a fost atins de nimeni. Integritatea datelor n sine nu are un sens precis: nu te ajut s tii c
datele pe care le-ai receptat nu au fost modificate, doar dac tii sigur c i-au fost trimise direct de
la persoana n cauz. O persoan A transmite un mesaj unei persoane B. Poate exista un adversar
care le poate intercepta mesajul. Dac nu exist integritatea datelor, inamicul poate doar schimba
mesajul i apoi s-l transmit lui B. B nu va observa c mesajul a fost transformat i va presupune c
A a scris ntr-adevr mesajul aa cum l-a primit el.

b)Autentificarea datelor de origine.

Cineva dorete s se asigure c o persoan care susine c este transmitorul mesajului n sine, este
cel cruia i aparine n original. Dac A i trimite un mesaj lui B, dar inamicul intercepteaz mesajul i
l retransmite lui B susinnd c l-a transmis A, nu se stie daca B este sigur de originea datelor. O
variant a acestei probleme este: inamicul poate transmite lui B un mesaj susinnd c A este
autorul. Mulumit criptografiei, exist tehnici de asigurare mpotriva acestor tipuri de fraude.

Acceptarea originii - protejeaz mpotriva refuzului uneia dintre entiti care este implicat ntr-o
convorbire, de a participa n totalitate sau parial la comunicaie. Acceptarea unei dovezi a originii,
protejeaz mpotriva oricrei intenii a transmitorului de a respinge trimiterea unui mesaj, n timp
ce acceptarea unei dovezi a livrrii, protejeaz mpotriva oricrei tentative a destinatarului de
negare, falsificare a mesajului recepionat. Un exemplu va ilustra importana acceptrii originii.
Presupunem c B este proprietarul unei companii de coresponden prin mail. Pentru el este foarte
important s poat arta unei a treia pri c A ntr-adevr a cerut lucrurile pe care le presupune el,
altfel, i-ar fi foarte uor unui client s nege achiziionarea bunurilor. n limbajul cuvintelor scrise pe
hrtie, acceptarea originii este furnizat de semntura manual.

Confidenialitatea datelor - Acest aspect al securitii datelor este cu siguran cel mai vechi i mai
cunoscut. Exemplul cifrului lui Caesar, dat n introducere demonstreaz acest lucru.
Confidenialitatea a fost considerat a fi mult mai important dect autentificarea, att din punct de
vedere al datelor ct i din punct de vedere al transmiterii. Astfel o scrisoare era scris lizibil, cu un
sigiliu i o semntur. Dac A trimite un mesaj lui B pe care l intercepteaz un inamic, se dorete ca
inamicul s nu poat nelege niciodat coninutul mesajului. Confidenialitatea datelor este foarte
important in lumea medical i de asemenea n sectorul bancar.

b)Criptare simetric - n esen exist dou tipuri de scheme de criptare. Cele mai vechi i cele mai
folositoare pn n prezent sunt criptrile simetrice. n aceste scheme, cheia folosit pentru
decriptarea textului cifrat este echivalent cu cea folosit pentru criptarea textului iniial. Algoritmii
cu cheie secret sunt simetrici, n sensul c ambii participani angajai n comunicaie partajeaz o
singur cheie.
Cel mai bun algoritm din aceast categorie este Data Encription Standard (DES), care a fost adoptat
n 1977 de ctre American NBS. Algoritmul DES folosete o cheie pe 56 de bii care din pcate este
scurt. O mai bun securitate poate fi realizat folosind algoritmul DES triplu. n acest mod se obine
efectiv o cheie de 112 bii care este suficient de mare. Depinznd de natura canalului de comunicare
sau de spaiul de stocare, se poate alege ntre Cipher-BlockChaing (CBC), Cipher-Feedback (CFB), i
Output-Feedback (OFB). Criptarea bloc cu bloc (sau Electronic Code Book (ECB)) va fi folosit doar
pentru criptarea cheilor.

j)Criptare asimetric.

Algoritmii de criptare asimetric sau de criptare cu chei publice sunt cele mai recente unelte
criptografice. Astfel, fiecare dintre parteneri are dou chei. Se ine o cheie secret i cealalt se face
public. Dac A dorete s transmit un mesaj lui B, acesta doar cripteaz mesajul cu cheia public a
lui B. Deoarece B este singurul care are acces la cheia secret, acesta este singurul care poate
decripta i citi coninutul mesajului.

Pe de alt parte, criptografia cu cheie public implic faptul ca fiecare participant s aib o cheie
privat care nu este partajat cu nimeni i o cheie public care este publicat, astfel nct toat
lumea tie de ea. Pentru a trimite un mesaj sigur la un asemenea participant, se cripteaz mesajul
folosind cheia cunoscut (cheia public). Participantul decripteaz mesajul folosindu-i cheia privat.

Cel mai cunoscut algoritm de criptare cu cheie public este metoda RSA. Lungimea minim absolut
a cheilor sistemului RSA trebuie stabilit la 640 bii; 768 sau 1024 bii si sunt necesari pentru orice
sistem care cere securitate pentru mai mult de cteva luni. Exist un al treilea tip de algoritm
criptografic, numit funcie hash sau message digest. Folosirea unei funcii hash nu implic folosirea
unor chei. Aceast metod calculeaz o sum de control criptografic (cryptographic checksum) a
unui mesaj. Cel mai folosit algoritm pentru a calcula suma de control este MD5(Message Digest
versiunea 5). O proprietate important a algoritmului MD5, n plus fa de cele enumerate mai
nainte, este c e mult mai eficient de calculat dect DES sau RSA.

26. Criptarea cu cheie simetric i asimetric

In esenta exista doua tipuri de scheme de criptare. Cele mai vechi si cele mai folositoare pana in
present sunt criptarile simetrice. In aceste scheme, cheia folosita pt decriptarea textului cifrat este
echivalenta cu cea folosita pt criptarea textului initial. Algoritmii cu cheie secreta sunt simetrici, in
sensul ca ambii participant angajati in comunicatie partajeaza o singura cheie.
Algoritmii de criptare asimetrica sau de criptare cu chei publice sunt cele m ai recente unelte
criptografice. Din contra, pt sistemele asimetrice cheia folosita pt criptare sic ea folosita pt
decriptare sunt diferite. Astfel, fiecare dintre parteneri are 2 chei. Se tine o cheie secreta si cealalata
se face publica.

27. Algoritmul DES i variante

Obiectivul unui sistem criptografic este de a face extrem de dificila decripatarea unui mesaj pt care
nu se cunosc cheile potrivite. Pt atingerea acestui obiectiv, proiectarea este confruntata cu doua
cerinte contradictorii: sa asigure o criptoanaliza foarte dificila si sa certifice nivelul de securizare
realizabil. In prezent se prefer criptarea care opereaza in mod repetat, in multe runde, asupra unui
bloc de simboluri din mesajul de transmis. Aceste coduri sunt de tipul bloc cu iteratii. Folosirea unui
numar redus de operatii este de dorit si din punctt de vedere al componentelor hardware necesare
implementarii unui algoritm de codificare. Tot din motive de simplitate constructive (si implicit cost
redus) se foloseste o acceasi portiune de program sau un acelasi cip atat la codificare, cat si la
decodificare.
28. Algoritmul RSA Noiuni privind arhitectura i securitatea reelelor de calculatoare

RSA este folosita in sute de produse software si poate fi folosita pt schimbul de chei, semnaturi
digitale sau criptarea unor blocuri mici de date. RSA foloseste un bloc de criptare de dimensiune
variabila, iar cheia este si ea de dimensiune variabila. Perechea de chei este derivata dintr-un numar
foarte mare, n, care este produsul a 2 numere prime alese dupa anumite reguli special, aceste
numere pot avea fiecare mai mult de 100 de cifre, numarul n avand mult mai multe cifre. Cheia
publica contine numarul n si un derivat al unuia dintre factorii folositi pt determinarea lui n; astfel un
atacator nu poate determina factorii primi ai lui n, (nu poate afla cheia privata) numai din aceste
informatii din acest motiv, algoritmul RSA este atat de sigur.

29. Protocolul de autentificare n trei faze.

Un protocol simplu de autentificare este posibil cand cei doi participant care doresc sa se autentifice
unul pe celalalt, clientul si serverul, partajeaza o cheie secreta. Aceasta situatie este analoaga cazului
in care utilizatorul (clientul) are un cont pe un sistem (pe server) si atat clientul cat si serverul stiu
parola pt acel cont.
Clientul si serverul se autentifica unul pe celalalt folosind un protocol simplu in 3 faze. In
continuare vom folosi E(m.k) pentru a numi criptarea mesajului m cu cheia k iar D(m.k) pentru a
numi decriptarea mesajului m cu cheia k.

30. Protocolul de autentificare folosind ncrederea n a treia persoan.

Un scenariu mai plauzibil este ca cei doi participant nu stiu nimic unul despre celalalt, dar amandoi
au incredere intr-o terta persoana. Aceasta terta persoana este cateodata numita server de
autentificare si foloseste un protocol pt a ajuta cei doi participant sa se autentifice unul pe celalalt.
Sunt dealtfel mai multe variatiuni ale acestui protocol.

31. Protocolul de autentificare cu cheie public

Un alt protocol de autentificare foloseste cripatarea cu cheie public. El este mai utilizat deoarece
cele doua parti nu trebuie sa partajeze o cheie secreta, ele trebuie doar sa cunoasca cheia puplica a
celeilalte parti. Participantul A cripteaza un numar aleator x, folosind cheia publica a lui B, iar B
demonstreaza ca, cunoaste cheia private corespunzatoare decriptand mesajul si trimitand x inapoi
lui A. A poate sa se autentifice fata de Bz in acelasi mod.

32. Protocoale de asigurare a integritii mesajelor

Cateodata celor doi participant care comunica, nu le pasa daca cineva este capabil sa citeasca
mesajele pe care si le trimit unul celuilalt, dar sunt ingrijorati de perspective ca un impostor sa se
dea drept unul din ei. Mai pe scurt, participantii sunt interesati de integritatea mesajelor. Pentru
asigurarea integritatii mesajelor sunt folosite 3 metode: prima foloseste RSA pt a produce o
semnatura digitala. RSA folosit singur este destul de incet, dar folosit impreuna cu MD5 este mult
mai efficient. A doua si a treia abordare foloseste MD5 impreuna cu RSA, pt a garanta integritatea
mesajului.

33. Semntura digital

O semnatura digitala este un cod special, necesar pentru pastrarea integritatii mesajului, codul
putand fi generat de catre un participant unic. Algoritmul cel mai usor de inteles este cel ce creeaza
o semnatura RSA, care functioneaza in mod evident, deoarece participantul este unica persoana care
isi cunoaste cheia privata, si foloseste acea cheie pentru a produce acea semnatura. Oricare alt
participant poate verifica acea semnatura folosind cheia publica corespunzatoare.
34. Descriei principalele protocoale de securitate a aplicaiilor

Securizarea se poate face la diferite nivele. La nivel aplicatie se pot securiza mesajele e-mail folosind
sistemul PGP(pretty good privacy) care este standarul de facto in acest caz. La nivel transport avem
securizarea privind comertul electronic cu ajutorul protocoalelor:
SSL(Security socket layer) cu varianta mai noua TLS (Transport layer security) este utilizat intre
navigatoarele web si serverele pentru e-commerce. Serviciile de securitate ale protocolului SSL
asigura: autentificarea serverului, criptarea datelor, autentificarea clientului (optional).
Securizarea tranzactiilor electronice(SET-Secure electronic transactions)-protocolul a fost proiectat
pt tranzactii facute pe internet si platite cu carduri. Asigura servicii de securitate pt 2 participanti:
consumatorul, comerciantul si banca comerciantului.
Securitatea la nivel de retea(NLS-Network layer security) trimite gazdei date criptate in pachete de
tip IP. Autentificarea la nivel retea se face de gazda destinatie care poate autentifica adresa sursa IP.

1. Care sunt funciile de baz ale Sistemelor de operare?

Sistemele de operare realizeaza doua functii de baza: extinderea functionalitatii masinii si


gestionarea resurselor.

2. Ce este un proces?

Procesul reprezinta un program in executie. Este o grupare de resurse inrudite si are spatiu de
adrese ce contine textul programului si date, precum si alte resurse.

3. Ce este un fir de excuie?

Firul de execuie (thread) are un contor de program care ine evidena urmtoarei instruciuni de
executat, totodat deine i registre care in variabilele curente de lucru. Are de asemenea o stiva
care conine istoricul execuiei, cu un cadru pentru fiecare procedura apelat din care nu s-a revenit
nc.

4. Care sunt diferenele ntre sistemul de fiiere FAT32 vs NTFS?

NTFS (New Technology File System) este sistemul de fiiere standard pentru Windows NT i
predecesoarele sale Windows 2000 i Windows XP; capacitatea de a recupera automat dup
anumite erori legate de disc, ceea ce FAT32 nu poate realiza. Suport mbuntit pentru hard disk-uri
mai mari. Are securitate mai bun, deoarece avei posibilitatea s utilizai permisiuni i criptare
pentru a restriciona accesul la anumite fiiere numai la utilizatorii autorizai.

5. Cte tipuri de memorie exist?

-putina memorie cache foarte rapida, scumpa si volatila


-mult RAM de viteza medie, nu foarte scumpa si volatila
-foarte mult spatiu de stocare pe disc lent, ieftin si nevolatil

6. Ce este memoria interna?

Este memoria n care se in minte" instruciunile & datele necesare rezolvrii problemei (intern
sau memorie operativ).

7. Cte tipuri de RAID sunt i care anume?


Sapte tipuri: RAID 0, RAID 1, RAID 5, RAID 6, RAID 10, RAID 50, RAID 60 (INTR-UN TABEL SCRIE SI
RAID 3)

8. Definii RAID 1.

Este oglindirea dispozitivelor (mirroring). Dac se folosesc dou discuri n RAID1 informaia va fi
stocat pe ambele, n oglind;

9. Definii RAID 5.

Prezinta o redundanta de nivel N+1. Este viabil de la mai mult de 3 discuri/partitii intr-o
matrice. Scrierea informatiilor de paritate se face pe toate discurile. Este cea mai eficienta
metoda pentru un nr. mare de discuri. Capacitatea de stocare este data de (capacitatea unui
disc) X (numarul de discuri - 1)
10. Care sunt tipurile de atacuri?

Atacuri DOS, Atacuri asupra protocoalelor de autentificare (Atacuri prin inundare (flooding), Smurf
Flood, TCP SYN, UDP Flood (Fraggle), ICMP Flood, E-mail bombing), Atacuri prin pachete modificate
(Ping of Death, Chargen, Teardrop, Land, WinNuke).

11. Ce este un firewall?

n reelele de calculatoare, un firewall, denumit i paravan de protecie este un dispozitiv sau o serie
de dispozitive configurate n aa fel nct s filtreze, s cripteze sau s intermedieze traficul ntre
diferite domenii de securitate pe baza unor reguli predefinite. Scopul acestuia este de a proteja
reeaua (sau un singur calculator personal) de eventualele atacuri ce vin din exterior i pot
compromite datele/informaiile stocate.

1. Explicai principiul subiectivitii n Web-ul Semantic. - Principiul AAA (al subiectivitii)

Acronimul AAA nseamn Anyone may state Anything about Anything7. Aa cum oricine poate
scrie orice n propriile pagini Web, oricine trebuie s poat stoca orice afirmaii ntr-o baz de
cunotine. Aadar, principiul e puternic legat de cel precedent, al validitii implicite: orice afirmaie
e considerat valid pn cnd intr n contact cu o afirmaie contradictorie. Motivele sunt legate de
principiul precedent:
- WWW este un mediu liber, nimeni nu trebuie s cenzureze informaia pe care o conine.
Consumatorii informaiei din Web trebuie s decid singuri asupra credibilitii surselor de
informaie. Modelele de reputaie (note acordate de cititori, butoane Like/Dislike etc.) pot ajuta n
aceste decizii. Ele se adreseaz att cititorilor umani, ct i agenilor software autonomi care vor
trebui s ia decizii n numele oamenilor;
- Cunotinele nu trebuie neaprat s reflecte realitatea, trebuie s poat exprima i realiti
alternative (lumi fantastice din lucrri literare, mitologii, viziuni alternative asupra istoriei sau pur i
simplu opinii neconformiste);
- Nimeni nu este creditat cu deinerea adevrul absolut. n istoria umanitii au fost momente n care
afirmaia Pmntul este plat avea valoare axiomatic, autoritativ. Semantic Web trebuie s fie
pregtit pentru orice rsturnri de situaie, cnd teorii aparent general acceptate sunt brusc
invalidate de noi evidene i experiene (sau pur i simplu de interesul individual al unui creator de
cunotine);
- Autoritile ce controleaz informaie tind s o cenzureze, s o deformeze sau pur i simplu aplic
un anumit nivel de subiectivitate n mod involuntar. E preferabil ca subiectivitatea s fie echitabil
aplicabil n tot Internetul.

2. Explicai principiul identitii multiple n Web-ul Semantic.


E permis posibilitatea ca un acelai concept s aib mai muli identificatori! Acesta e principiul
identitii multiple, care l completeaz pe cel al identitii nonambigue: Un identificator nu poate fi
folosit pentru mai multe concepte diferite, dar un concept poate avea mai muli identificatori!
Acest principiu permite ca diferii creatori de cunotine s poat stoca afirmaii despre aceleai
concepte fr a se pune de acord n prealabil asupra identificatorilor (aspect care nici nu ar fi posibil
la nivelul ntregului Internet!). Fiecare va folosi identificatori convenabil alei, fr a se ngrijora dac
nu cumva altcineva a memorat afirmaii despre acelai concept.
Ulterior, dac se dorete fuzionarea afirmaiilor din mai multe surse, i fiecare surs a folosit ali
identificatori pentru aceleai concepte, se pot insera n baza de cunotine relaii de echivalen8.
Mai mult, exist chiar situaii n care se urmrete deducerea de astfel de relaii de echivalen.

3. Explicai principiul identitii nonambigue n Web-ul Semantic precum i tipurile de


identificatori ce pot fi folosii (cu exemple).

Nu e permis s se foloseasc acelai identificator pentru concepte diferite. Dac se fac afirmaii
despre oameni diferii cu acelai nume, vor trebui s se construiasc identificatori diferii pentru
fiecare individ. Aceast difereniere trebuie s fie garantat pentru ntreaga reea WWW!
n baze de date, identitatea e asigurat la nivelul unei baze de date (valori-cheie unice, nume unice
de tabele etc.). Cheia primar e o coloan creat special pentru a aloca identificatori diferii fiecrui
individ/obiect din tabel, evitnd riscul ca ali identificatori tradiionali, precum numele, s se repete
n cadrul aceluiai tabel. n programare datele sunt stocate n variabile cu nume unice ntr-un
domeniu de vizibilitate. n aceste cazuri, identitatea e asigurat cel mult la nivelul unei aplicaii
software, alte aplicaii i alte baze de date ar putea reutiliza aceiai identificatori. n Semantic Web
ns, identitatea trebuie asigurat la nivelul ntregului Internet! Creatorii de cunotine trebuie s
foloseasc identificatori despre care au garania c nimeni altcineva din Internet nu i va folosi n alte
scopuri.

4. Explicai i exemplificai modelul de date RDF

n RDF, terminologia oficial numete cele 3 componente, n ordinea:


- predicat, numit i proprietate (conceptul prin care se descrie subiectul);
- obiect (conceptul care asigur descrierea).
Reprezentarea abstract a afirmaiilor RDF se realizeaz cu ajutorul grafurilor

5. Explicai noiunea de cunotine contextuale i dai un exemplu n mod grafic i n sintaxa TriG.

Contextul poate fi considerat orice concept ce caracterizeaz o afirmaie n ansamblu su, nu doar o
parte a unei afirmaii. Interpretarea pe care o acordm contextului poate s varieze:
- contextul ca surs a afirmaiei, a unei credine sau a unei citri:
Marian crede c Alin este frate cu Andrei.
- contextul ca loc/timp n care e valabil afirmaia poate servi i la precizarea timpului
gramatical al afirmaiilor:
Maria i Alin sunt cstorii din 2010.
Maria lucreaz pentru firma ABC n Cluj Napoca.
- contextul ca evaluare a unei relaii:
Soarele se rotete n jurul Pmntului este o afirmaie fals.
Pmntul se rotete n jurul Soarelui cu 30 km/s.
E important de sesizat diferena semantic ntre a caracteriza o afirmaie/relaie i a
caracteriza doar o parte a unei afirmaii. Considerm exemplele:
Maria lucreaz pentru firma ABC din Cluj Napoca.
Maria lucreaz pentru firma ABC n Cluj Napoca.
6. Exemplificai i explicai sintaxa N-triples.

N-triples10 este sintax brut de serializare RDF. Aceasta e cea mai primitiv sintax i are un set
minim de reguli cu privire la scrierea afirmaiilor (reguli pe care le-am folosit deja n cteva exemple
anterioare):
- ntre concepte trebuie s apar minim un spaiu sau un Tab;
- Orice afirmaie (triplet) trebuie s se ncheie cu un spaiu urmat de un punct i un
salt la rnd nou (Enter);
- Identificatorii de tip URI se ncadreaz ntre <...>;
- Identitatea resurselor anonime e asigurat prin nume prefixate de _:;
Obiectele-valoare sunt implicit de tip text (se trec ntre ghilimele indiferent de tipul/semnificaia lor)
dar pot fi nsoite de:
- Un cod de limb (care precizeaz n ce limb e scris valoarea);
- Un tip de dat, de obicei dintre cele oferite de limbajul XML Schema (dac dorim ca valoarea s fie
considerat de alt tip dect string); unicul tip oferit de RDF este XMLLiteral (un ir de caractere ce
conine cod XML bine format).

7. Exemplificai i explicai sintaxa Turtle.

Turtle este o versiune optimizat sintactic pentru N-triples, creat cu scopul de a face cunotinele
mai uor de tastat i de citit. Scopul acestei sintaxe a fost s ofere o serie de abrevieri, iar fiierele se
salveaz cu extensiile .ttl sau .n3.
Cea mai important facilitate sintactic e posibilitatea de a evita repetarea poriunilor comune din
identificatorii URI, cu ajutorul unui prefix (spaiu de nume). De exemplu, n loc de:
<http://expl.ro#Alin> <http://expl.ro#esteFrateCu> <http://expl.ro#Andrei> .
<http://expl.ro#Alin> <http://expl.ro#locuiesteIn> <http://expl.ro#Anglia> .
<http://expl.ro#Alin> <http://expl.ro#areNumele> "Alin .

...vom putea defini un prefix lociitor pentru partea de URI care se repet (de
asemenea nu mai sunt necesare parantezele ascuite):
@prefix x: <http://expl.ro#>. x:Alin x:FrateCu x:Andrei . x:Alin x:locuiesteIn x:Anglia . x:Alin
x:areNumele "Alin .
...sau, i mai simplu, definim un prefix vid:
@prefix : <http://expl.ro#>.
:Alin :FrateCu :Andrei .
:Alin :areVarsta 20 .

8. Exemplificai i explicai inferenele permise de proprietatea funcional i proprietatea invers


funcional n OWL.

Deducerea echivalenei indivizilor din proprietatea funcional (owl:FunctionalProperty).


Proprietatea funcional se comport ca o funcie matematic: oricrui subiect i poate aloca un
singur obiect. Dac i aloc mai multe, se va deduce c acestea sunt identiti multiple ale unui
acelai obiect.
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:Alin :areMamaPe :Ana.
:Alin :areMamaPe :Aneta.
:areMamaPe a owl:FunctionalProperty.
se va deduce:
:Ana owl:sameAs :Aneta.
O persoan nu poate avea dou mame naturale, deci cele dou mame trebuie s fie una i aceeai.
Dac ajungem pe alte ci i la concluzia c :Ana i :Aneta nu au cum s fie aceeai persoan, ajungem
la contradicie. Acest aspect e valabil pentru toate exemplele ce urmeaz: regulile prezentate vor
detecta echivalene atta timp ct nu exist alte reguli care s detecteze distincia ntre aceiai
indivizi. Altfel se vor produce contradicii. Detectarea automat a echivalenelor poate automatiza
maparea semantic ntre baze de cunotine din surse diferite, genernd automat echivalene.
Deducerea echivalenei indivizilor din proprietatea invers funcional
(owl:inverseFunctionalProperty).
Aceasta se comport invers fa de cea funcional: pe orice obiect l poate pune n relaie cu un
singur subiect. Dac apar mai multe subiecte, se va deduce echivalena lor.
@prefix : <http://expl.ro#>.
@prefix alt: <http://altdomeniu.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:Ana :areEmail <mailto:ana@expl.ro>.
alt:Aneta :areEmail <mailto:ana@expl.ro>.
:areEmail a owl:InverseFunctionalProperty.
se va deduce:
:Ana owl:sameAs alt:Aneta.
(ne bazm pe prezumia c dou persoane nu pot avea acelai e-mail, deci dac apare o astfel de
situaie e vorba de aceeai persoan)

9. Exemplificai i explicai inferenele permise de domeniu i codomeniu n RDF/S

Proprietatea unei proprieti de a avea domeniu (rdfs:domain) i codomeniu (rdfs:range)


Dup ce s-au creat taxonomiile de clase i de proprieti, se recomand ca acestea s fie conectate.
Aceasta presupune ca pentru fiecare proprietate din taxonomie s se indice cu ce fel (clas) de
subiecte (domeniul) i cu ce fel de obiecte (codomeniul) va fi folosit.
Pornind de la afirmaia
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
:JamesCameron :ARegizat :Terminator.
:ARegizat rdfs:domain :Regizor; rdfs:range :Film.
regulile vor deduce:
:JamesCameron a :Regizor.
:Terminator a :Film.
Regulile aplicate sunt:
Dac avem:
?x ?p ?y
?p rdfs:domain ?c
Rezult:
?x a ?c
Dac avem:
?x ?p ?y
?p rdfs:range ?c
Rezult:
?y a ?c

10. Exemplificai i explicai diferena ntre liste i containere n RDF.


Listele sunt mai apropiate claselor dect containerele, prin aceea c de obicei elementele enumerate
ntr-o list au o semnificaie comun, ar putea deveni elementele unei clase. De aceea, vom vedea
mai trziu, OWL se bazeaz pe liste la definirea claselor: permite ca o clas s fie creat prin
enumerarea listei elementelor sale (i prin aceasta aplic i o nchidere clasei); n plus mai permite ca
o clas s fie definit prin intersecie sau reuniune aplicate asupra unei liste de alte clase.

11. Exemplificai i explicai 3 tipuri de relaii (proprieti) introduse de vocabularul OWL

Proprietatea de simetrie a unei relaii (owl:SymmetricProperty)


O variaie a situaiei precedente este situaia n care dorim s afirmm c relaia funcioneaz n
ambele sensuri fr a i se schimba identificatorul. n mod implicit tripletul RDF e unidirecional
pentru a afirma c dou persoane sunt cstorite trebuie s facem dou afirmaii, indicnd relaia de
cstorie n ambele sensuri. Ca i n cazul precedent, putem rezolva aceast situaie la momentul
interogrii, sau stabilind de la bun nceput o regul OWL care s genereze automat relaiile inverse.
Din exemplul
@prefix : <http://expl.ro#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:eRudaCu a owl:SymmetricProperty.
:Ana :eRudaCu :Alin.
se va deduce:
:Alin :eRudaCu :Ana.

Proprietatea de reflexivitate a unei relaii (owl:ReflexiveProperty)


Aceasta este o submulime a lui owl:SymmetricProperty i conine acele relaii care conecteaz un
individ cu el nsui. Cu alte cuvinte, toate lucrurile din univers au aceiasi relaie cu ele nsele. De
exemplu, putem indica faptul c orice om se cunoate pe sine, astfel:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:CunoastePe a owl:ReflexiveProperty.
:Ana a :Femeie.
se va deduce:
:Ana a owl:NamedIndividual.
iar n baza faptului c Ana este un individ
:Ana :CunoastePe :Ana.
Proprietatea de tranzitivitate a unei relaii (owl:TransitiveProperty)
Aceasta e o alt submulime a lui owl:ObjectProperty, prin care afirmm c o relaie care nlnuie
mai muli indivizi e aplicabil ntre primul i ultimul individ din lan. Din urmtorul exemplu
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:eFrateCu a owl:TransitiveProperty.
:Alin :eFrateCu :Andrei.
:Andrei :eFrateCu :Mihai.
se va deduce:
:Alin :eFrateCu :Mihai.

12. Oferii 5 exemple de vocabulare controlate i explicai pe scurt utilitatea lor.

Ele pot fi i vocabulare controlate, propuse de diverse organizaii pentru a deservi un anumit
domeniu, devenind suficient de populare nct s fie adoptate pe scar larg:
- FOAF16, set de concepte cu care se pot descrie relaiile dintre oameni;
- GoodRelations17, pentru a descrie cataloage de produse;
- Dublin Core18, pentru a descrie resurse informaionale (documente, cri etc.);
- OpenGraph19, cu acelai scop ca FOAF, dar conceput de Facebook pentru a stoca
relaiile sociale;
- voID20, pentru a descrie baze de cunotine (de exemplu cte clase, proprieti,
subiecte, obiecte conine);
- SPARQL Service Description21, pentru a descrie capabilitile oferite de un server de tip SPARQL
endpoint (ce contexte ofer, ce versiune de SPARQL suport etc.);
- OWL-Time22, pentru a indica n mod precis momente i perioade de timp (util n a
ataa contexte temporale afirmaiilor);
- GeoOWL23, pentru a indica n mod precis locaii i concepte spaiale (util n a ataa
contexte spaiale afirmaiilor);
- DBPedia24, setul de concepte oferite de Wikipedia, fr a avea un domeniu de utilizare specific.
Obiectivul su este s devin un dicionar de referin pentru diveri termeni comuni, o limb
comun la care s se alinieze ct mai multe baze de cunotine (un deziderat periculos sub anumite
aspecte, ce risc s ncalce principiile descentralizrii Web).

13. Explicai modul de utilizare a cererilor HTTP n accesarea cunotinelor la distan.

Paradigma Linked Data se bazeaz pe accesarea prin HTTP a identificatorilor de concepte, la care
serverul s rspund fie cu un set de cunotine despre acel concept (identificatori cu foldere
fictive), fie cu toat baza de cunotine din care clientul s-i selecteze informaia relevant
(identificatori cu ancore). Filtrarea informaiei relevante se poate realiza cu SPARQL fie la nivelul
clientului, fie la al serverului. Aadar sunt posibile diferite scenarii de combinare ntre interogri i
accesul la distan, n funcie de ce faciliti ofer serverul.
S-au consacrat dou protocoale bazate pe HTTP prin care are loc accesul la cunotine oferite
de servicii Web:
- Protocolul SPARQL27;
- Protocolul Graph Store28.
Ambele se bazeaz pe metodele cererilor HTTP:
- GET pentru a accesa cunotine, cu posibilitatea de a ataa la adresa accesat variabile care s
indice mai precis ce anume dorim s accesm;
- POST pentru a trimite cunotine;
- PUT pentru a nlocui cunotine existente pe server cu unele noi;
- DELETE pentru a terge cunotine de pe server;
- HEAD pentru a testa dac un server de cunotine rspunde;
- OPTIONS pentru a verifica ce faciliti ofer serverul de cunotine;
- PATCH pentru a trimite o interogare capabil s modifice cunotine.

14. Exemplificai i explicai inferenele permise de restriciile de cardinalitate n OWL.

Deducerea echivalenei indivizilor din cardinalitatea maxim (owl:maxCardinality) aplicat ca


restricie (owl:Restriction) asupra unei proprieti (owl:onProperty):
Prin cardinalitate putem impune de cte ori poate fi implicat un anumit subiect ntr-o anumit
relaie. Dac numrul de relaii depete limita pe care o impunem, obiectele suplimentare trebuie
s fie echivalente cu unele dintre celelalte. Din afirmaiile:
@prefix : <http://expl.ro#>.
@prefix alt: <http://altdomeniu.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:CopilCuUnParinte owl:onProperty :areParintePe; owl:maxCardinality 1 .
:Alin a :CopilCuUnParinte; areParintePe :Ana, alt:Maria.
se va deduce:
:CopilCuUnParinte a owl:Restriction, owl:Class.
:Ana owl:sameAs alt:Maria.
Deoarece n prima faz am afirmat c Alin face parte din clasa celor cu un parinte (mai exact, care au
relaia :areParintePe cu un singur obiect), iar apoi am indicat doi prini, s-a dedus c acetia trebuie
s fie una i aceeai persoan.

Observai modul de creare a clasei CopilCuUnParinte. Aceasta e de un tip particular, owl:Restriction


care e mulimea acelor clase ce sunt create prin astfel de mecanisme de restricionare a relaiilor
(deci orice owl:Restriction e i clas). Dac proprietatea ce sufer restricia are deja un domeniu
declarat, clasa generat prin restricie va fi o submulime a acesteia. Din urmtorul set:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:areParintePe rdfs:domain Copil.
:CopilCuUnParinte owl:onProperty :areParintePe; owl:maxCardinality 1 .
se va deduce, pe lng echivalena amintit, i c:
:CopilCuUnParinte rdfs:subClassOf :Copil.
Cu alte cuvinte, mulimea copiilor cu un singur printe e o submulime a mulimii
copiilor, obinut prin restricionarea numrului de utilizri.

Deducerea echivalenei indivizilor din cardinalitate mbinat cu distincii


cunoscute (owl:cardinality):
Exemplul e similar celui de mai sus, dar cardinalitatea e mai mare dect 1, deci avem nevoie i de o
serie de distincii pentru a putea concluziona echivalena:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:ParinteCuDoiCopii owl:onProperty :AreCopilPe; owl:cardinality 2 .
:Alin a :ParinteCuDoiCopii, :AreCopilPe :Ana, Andreea, Mihai.
:Mihai owl:differentFrom :Ana, :Andreea.
Diferenierea lui Mihai fa de restul copiilor lui Alin ne permite s concluzionm care copii ar putea
fi echivaleni pentru a menine corectitudinea afirmaiei c Alin are 2 copii:
:ParinteCuDoiCopii a owl:Restriction.
:Ana owl:sameAs :Andreea.

Aici nu am mai folosit owl:maxCardinality ci cardinalitatea precis: Alin are exact doi copii distinci.
Atenie ns, aceasta nu nseamn c baza de cunotine trebuie s conin doi copii pentru Alin! n
numele principiului Open World, o baz de cunotine nu e niciodat complet, pot apare n viitor
noi afirmaii, deci se tolereaz absena afirmaiilor despre copii lui Alin. Nu se tolereaz ns
depirea acestui numr (mai exact, se ncearc interpretarea depirii prin astfel de echivalene,
dac nu exist probe contrarii care s afirme distincia).

15. Exemplificai i explicai inferenele permise de restriciile owl:hasValue, owl:someValuesFrom


i owl:allValuesFrom.

Necesitatea i suficiena (owl:Restriction, owl:onProperty, owl:hasValue, owl:allValuesFrom,


owl:someValuesFrom, owl:hasSelf)
Un individ poate fi alocat unei clase n funcie de relaiile la care particip (vezi RDF Schema) dar i n
funcie de indivizii cu care particip la acea relaie, sau clasele crora aceti indivizi aparin.
Demonstrm mai nti deduciile posibile dintr-o relaie cu un anumit individ clar specificat:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:SatelitAlPamantului owl:onProperty :Orbiteaza; owl:hasValue :Pamantul.
Am afirmat c mulimea :SatelitAlPamantului e format din toate acele lucruri X care au relaia
:Orbiteaza cu :Pamantul (care apar n afirmaii de forma X :Orbiteaza :Pamantul). Aceasta
permite dou tipuri de deducii:
- dac se mai tie c
:Luna :Orbiteaza :Pamantul.
se poate deduce:
:Luna a :SatelitAlPamantului.
- n schimb dac se tie c
:Luna a :SatelitAlPamantului.
se deduce:
:Luna :Orbiteaza :Pamantul.
Deci avem o deducie posibil n ambele sensuri apartenena la o clas poate fi produs de
existena unei relaii cu un anumit individ dar i invers, relaia cu un individ dedus din apartenena
la o clas.
n plus, din ambele situaii se mai deduce:
:SatelitAlPamantului a owl:Restriction, owl:Class.
Cu alte cuvinte, avem de a face cu o clas-restricie, noiune explicat deja n exemplele cu
cardinalitatea: o clas restricie este detectat automat din utilizarea lui owl:onProperty, este
format din toi indivizii ce respect restricia i este o submulime a domeniului proprietii ce
sufer restricia. De exemplu, :Orbiteaza ar putea avea ca domeniu clasa :Satelit, ceea ce ar face
s se deduc urmtoarea afirmaie, asigurnd astfel i alipirea restriciei la taxonomia existent de
clase:
:SatelitAlPamantului rdfs:subClassOf :Satelit.

16. Exemplificai i explicai trei moduri de deducere a echivalenei indivizilor.

Deducerea echivalenei indivizilor din proprietatea funcional


(owl:FunctionalProperty).
Proprietatea funcional se comport ca o funcie matematic: oricrui subiect i poate aloca un
singur obiect. Dac i aloc mai multe, se va deduce c acestea sunt identiti multiple ale unui
acelai obiect.
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:Alin :areMamaPe :Ana.
:Alin :areMamaPe :Aneta.
:areMamaPe a owl:FunctionalProperty.
se va deduce:
:Ana owl:sameAs :Aneta.
O persoan nu poate avea dou mame naturale, deci cele dou mame trebuie s fie
una i aceeai.

Dac ajungem pe alte ci i la concluzia c :Ana i :Aneta nu au cum s fie aceeai persoan, ajungem
la contradicie. Acest aspect e valabil pentru toate exemplele ce urmeaz: regulile prezentate vor
detecta echivalene atta timp ct nu exist alte reguli care s detecteze distincia ntre aceiai
indivizi. Altfel se vor produce contradicii. Detectarea automat a echivalenelor poate automatiza
maparea semantic ntre baze de cunotine din surse diferite, genernd automat echivalene.
Deducerea echivalenei indivizilor din proprietatea invers funcional
(owl:inverseFunctionalProperty).
Aceasta se comport invers fa de cea funcional: pe orice obiect l poate pune n
relaie cu un singur subiect. Dac apar mai multe subiecte, se va deduce echivalena lor.
@prefix : <http://expl.ro#>.
@prefix alt: <http://altdomeniu.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:Ana :areEmail <mailto:ana@expl.ro>. alt:Aneta :areEmail <mailto:ana@expl.ro>.
:areEmail a owl:InverseFunctionalProperty.
se va deduce:
:Ana owl:sameAs alt:Aneta.
(ne bazm pe prezumia c dou persoane nu pot avea acelai e-mail, deci dac
apare o astfel de situaie e vorba de aceeai persoan)

Deducerea echivalenei indivizilor din setul de proprieti cheie (owl:hasKey)


Aceasta este o versiune mai precis a proprietii funcionale, sub dou aspecte:
- se aplic la o combinaie de mai multe proprieti, care nu vor putea lua aceeai
combinaie de valori (obiecte) pentru dou subiecte din aceeai clas;
- efectul e limitat doar la membrii unei clase.
Aadar, putem considera c e o transpunere a noiunii de cheie primar mutipl din
bazele de date relaionale! Din afirmaiile:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:Ana :NrMatricol 100; :studentaLa :ASE, a :Student.
:Aneta :NrMatricol 100; studentaLa :ASE; a :Student.
:Student owl:hasKey (:NrMatricol :studentaLa).
se va deduce:
:Ana owl:sameAs :Aneta.

Deducerea echivalenei indivizilor din cardinalitatea maxim (owl:maxCardinality) aplicat ca


restricie (owl:Restriction) asupra unei proprieti (owl:onProperty):
Prin cardinalitate putem impune de cte ori poate fi implicat un anumit subiect ntr-o anumit
relaie. Dac numrul de relaii depete limita pe care o impunem, obiectele suplimentare trebuie
s fie echivalente cu unele dintre celelalte. Din afirmaiile:
@prefix : <http://expl.ro#>.
@prefix alt: <http://altdomeniu.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:CopilCuUnParinte owl:onProperty :areParintePe; owl:maxCardinality 1 .
:Alin a :CopilCuUnParinte; areParintePe :Ana, alt:Maria.
se va deduce:
:CopilCuUnParinte a owl:Restriction, owl:Class.
:Ana owl:sameAs alt:Maria.
Deoarece n prima faz am afirmat c Alin face parte din clasa celor cu un parinte (mai exact, care au
relaia :areParintePe cu un singur obiect), iar apoi am indicat doi prini, s-a dedus c acetia trebuie
s fie una i aceeai persoan.

Observai modul de creare a clasei CopilCuUnParinte. Aceasta e de un tip particular, owl:Restriction


care e mulimea acelor clase ce sunt create prin astfel de mecanisme de restricionare a relaiilor
(deci orice owl:Restriction e i clas). Dac proprietatea ce sufer restricia are deja un domeniu
declarat, clasa generat prin restricie va fi o submulime a acesteia. Din urmtorul set:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:areParintePe rdfs:domain Copil.
:CopilCuUnParinte owl:onProperty :areParintePe; owl:maxCardinality 1 .
se va deduce, pe lng echivalena amintit, i c:
:CopilCuUnParinte rdfs:subClassOf :Copil.
Cu alte cuvinte, mulimea copiilor cu un singur printe e o submulime a mulimii
copiilor, obinut prin restricionarea numrului de utilizri.

Deducerea echivalenei indivizilor din cardinalitate mbinat cu distincii


cunoscute (owl:cardinality):
Exemplul e similar celui de mai sus, dar cardinalitatea e mai mare dect 1, deci avem nevoie i de o
serie de distincii pentru a putea concluziona echivalena:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:ParinteCuDoiCopii owl:onProperty :AreCopilPe; owl:cardinality 2 .
:Alin a :ParinteCuDoiCopii, :AreCopilPe :Ana, Andreea, Mihai.
:Mihai owl:differentFrom :Ana, :Andreea.
Diferenierea lui Mihai fa de restul copiilor lui Alin ne permite s concluzionm care copii ar putea
fi echivaleni pentru a menine corectitudinea afirmaiei c Alin are 2 copii:
:ParinteCuDoiCopii a owl:Restriction.
:Ana owl:sameAs :Andreea.

Aici nu am mai folosit owl:maxCardinality ci cardinalitatea precis: Alin are exact doi copii distinci.
Atenie ns, aceasta nu nseamn c baza de cunotine trebuie s conin doi copii pentru Alin! n
numele principiului Open World, o baz de cunotine nu e niciodat complet, pot apare n viitor
noi afirmaii, deci se tolereaz absena afirmaiilor despre copii lui Alin. Nu se tolereaz ns
depirea acestui numr (mai exact, se ncearc interpretarea depirii prin astfel de echivalene,
dac nu exist probe contrarii care s afirme distincia).

Deducerea echivalenei indivizilor din list de elemente nedistincte (owl:oneOf) mbinat cu distincii
cunoscute:
@prefix : <http://expl.ro#>.
@prefix alt: <http://altdomeniu.ro#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:LunaIarna owl:oneOf (:Decembrie :Ianuarie :Februarie). alt:Gerar a :LunaIarna; owl:differentFrom
:Februarie, :Decembrie.
se va deduce:
alt:Gerar owl:sameAs :Ianuarie.
Deducia e explicabil prin caracterul nchis al listei. Enumerarea indic faptul c pot fi maxim 3
elemente n clasa :LunaIarna, iar dac apare un al patrulea, trebuie s fie echivalent cu unul din
ceilali (altfel ajungem la contradicie).

17. Exemplificai i explicai trei moduri de deducere a distinciei indivizilor.

n continuare vom sugera o serie de ci pe care se poate deduce distincia indivizilor. n practic
distincia trebuie dedus fie pentru a verifica dac exist discrepane logice ntre concepte din baze
de cunotine diferite (cu prefixe diferite), fie pentru a verifica dac o anumit baze de cunotine nu
este cumva contradictorie cu ea nsi.

Deducerea distinciei dintre indivizi din disjuncie (owl:disjointWith). Din afirmaiile:


@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:Ana a :Femeie.
:Marian a :Barbat.
:Femeie owl:disjointWith :Barbat.
se va deduce:
:Ana owl:differentFrom :Marian.

Deducerea disjunciei dintre clase (i a distinciei dintre indivizi) din complement


(owl:complementOf). Din afirmaiile:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:Ana a :Femeie.
_:x owl:complementOf :Femeie.
:Marian a _:x.
se va deduce:
_:x owl:disjointWith :Femeie.
i de aici:
:Ana owl:differentFrom :Marian.

Deducerea distinciei dintre indivizi, din proprieti incompatibile


(owl:propertyDisjointWith). Din afirmaiile:
@prefix : <http://expl.ro#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:Ana :eMamaLui :Alin.
:Maria :eCopilulLui :Alin.
:eMamaLui owl:propertyDisjointWith :eCopilulLui.
se va deduce:
:Ana owl:differentFrom :Maria.
Idem se poate deduce distincia obiectelor, dac subiectul e fix i obiectele variaz.

Deducerea disjunciei claselor sau proprietilor din list de clase disjuncte (owl:AllDisjointClasses),
respectiv list de proprieti incompatibile (owl:AllDisjointProperties). Din afirmaiile:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:StudentGrupa1 owl:members (:Ana :Ann :Andrei).
:StudentGrupa1 a owl:AllDifferent.
:Gen owl:members (:Femeie :Barbat).
:Gen a owl:AllDisjointClasses.
:RelatieRudenie owl:members (:eMamaLui :eCopilulLui).
:RelatieRudenie a owl:AllDisjointProperties.
se vor deduce (pe seturi):
:StudentGrupa1 a owl:Class. (din prima list)
:Ana a :StudentGrupa1, owl:NamedIndividual.
:Ann a :StudentGrupa1, owl:NamedIndividual.
:Andrei a :StudentGrupa1, owl:NamedIndividual.
:Ana owl:differentFrom :Ann, :Andrei.
:Ann owl:differentFrom :Ana, :Andrei.
:Andrei owl:differentFrom :Ann, :Ana.
:Gen a owl:Class. (din a doua list)
:Femeie a :Gen, owl:Class.
:Barbat a :Gen, owl:Class.
:Femeie owl:disjointWith :Barbat.
:RelatieRudenie a owl:Class. (din a treia list)
:eMamaLui a :RelatieRudenie, rdf:Property.
:eCopilulLui a :RelatieRudenie, rdf:Property.
:eMamaLui owl:propertyDisjointWith :eCopilulLui.

Deducerea disjunciei (dar i a unor relaii de incluziune) din reuniune de clase disjuncte. Din
afirmaia:
@prefix : <http://expl.ro#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:Om owl:disjointUnionOf (:Femeie :Barbat).
se va deduce:
:Femeie rdfs:subClassOf :Om.
:Barbat rdfs:subClassOf :Om.
:Femeie owl:disjointWith :Barbat.
Practic e vorba de o nou variant a lui owl:AllDisjointClasses n care avem i posibilitatea de a crea o
supraclas ce sunt nglobeze mulimile disjuncte.

18. Exemplificai i explicai trei moduri de deducere a contradiciilor.

Putem afirma direct o serie de contradicii:


@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:Ana owl:sameAs :Ann.
:Ana owl:differentFrom :Ann.
:Femeie owl:equivalentClass :Barbat.
:Femeie owl:disjointClass :Barbat.
:areCopilPe owl:propertyDisjointWith :esteCopilulLui.
:Maria :areCopilPe :Andrei.
:Maria :esteCopilulLui :Andrei.
i se vor deduce trei contradicii. Contradicia poate s ia diverse forme, variate de la un sistem la
altul i uneori configurabile prin reguli personalizate (care nu folosesc concepte standard, ci doar
structuri IFTHEN). Moduri de semnalare a contradiciilor pot fi: semnalarea unei erori, listarea
conceptelor contradictorii sau pur i simplu clasificarea rezultatelor cu ajutorul clasei sau relaiei
absurde, care apoi pot fi interogate cu SPARQL pentru a obine o list a contradiciilor. Exemple de
astfel de concluzii ar putea fi:
:Ana a owl:Nothing.
:Ann a owl:Nothing.
:Femeie rdfs:subClassOf owl:Nothing.
:Barbat rdfs:subClassOf owl:Nothing.
:areCopilPe rdfs:subPropertyOf owl:bottomObjectProperty.
:esteCopilulLui rdfs:subPropertyOf owl:bottomObjectProperty.
Evident, n general nu are sens s afirmm direct aceste contradicii. De obicei mcar una din
afirmaiile contradictorii e produs dintr-o succesiune de deducii.

19. Exemplificai i explicai trei moduri de extindere a taxonomiei de clase OWL cu ajutorul unor
operaii pe mulimi.

Enumerarea elementelor unei mulimi (owl:oneOf, owl:distinctMembers)


O prim categorie, ce lrgete posibilitile de descriere a taxonomiei de clase, sunt operaiile cu
mulimi. Cea mai simpl este enumerarea direct a indivizilor unei mulimi, ca o list ordonat i
nchis (demonstrat deja i la deducerea echivalenelor). Avem dou moduri de a realiza acest
lucru:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:EchipaFotbal owl:oneOf (:Steaua :Dinamo :Rapid :CainiiRosii).
sau
:EchipaFotbal owl:distinctMembers (:Steaua :Dinamo :Rapid).

Diferena ntre owl:oneOf i owl:distinctMembers este c n al doilea caz se garanteaz distincia


ntre indivizi (se deduc automat distincii ntre fiecare doi membrdup cum s-a artat deja n
seciunea dedicat deducerii distinciilor) n timp ce primul caz las loc posibilitii ca unele
elemente s fie acelai element cu mai muli identificatori. Cele dou afirmaii vor produce:
:Steaua a :EchipaFotbal.
:Dinamo a :EchipaFotbal.
:Rapid a :EchipaFotbal.
:CainiiRosii a :EchipaFotbal. (doar din owl:oneOf)
A doua enumerare produce i distinciile de care aminteam pentru fiecare pereche
de indivizi.

Intersecia i reuniunea (owl:intersectionOf, owl:unionOf)


n capitolul dedicat conceptelor RDF (seciunea privind maparea) am artat cum se pot aduga la
taxonomie mulimi-reuniune i mulimi-intersecie prin folosirea lui rdfs:subClassOf. OWL ofer o
metod mai direct de a preciza acest lucru:
@prefix : <http://expl.ro#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
:ScriitorClujean owl:intersectionOf (:Scriitor :Clujean).
:Om owl:unionOf (:Barbat :Femeie).
:Andrei a :ScriitorClujean, :Barbat.
se vor deduce:
:Scriitor rdfs:subClassOf :ScriitorClujean. (din reuniune)
:Clujean rdfs:subClassOf :ScriitorClujean.

:Barbat rdfs:subClassOf :Om. (din intersecie)


:Femeie rdfs:subClassOf :Om.
iar din acestea deduciile discutate deja produc mai departe:
:Andrei a :Scriitor, :Clujean, :Om
(plus declaraiile de individ, clas etc.)

Complementul i diferena (owl:complementOf)


Complementul unei mulimi se folosete cu precdere pentru a detecta contradicii, ntr-o manier
similar cu disjuncia, dup cum s-a demonstrat deja. Complementul unei clase e format din toate
acele concepte ale lui owl:Thing care nu aparin clasei respective. nceptorii ar putea fi tentai s
considere corect afirmaia de mai jos, considernd c cine nu e femeie trebuie s fie brbat:
:Barbat owl:complementOf :Femeie.
n realitate complementul mulimii :Femeie e format din toate lucrurile din univers care nu sunt
femei, de exemplu o piatr. Pentru a defini corect mulimea Barbat pornind de la Femeie, va trebui
s afirmm:
:Barbat owl:intersectionOf (:Om _:X).
_:X complementOf :Femeie.
OWL nu ofer un concept aparte pentru operaia de diferen, ci se bazeaz tocmai
pe acest ablon ce mbin complementul cu intersecia.

n plus, un motor inferenial complet ar trebui s poat deduce toate legile


matematice legate de operaii cu mulimi, dintre care amintim:
- complementul reuniunii a dou mulimi e intersecia complementelor celor dou
mulimi:
:Om owl:unionOf (:Barbat :Femeie).
_:complOm owl:complementOf :Om
se poate deduce:
_:x owl:complementOf :Barbat.
_:y owl:complementOf :Femeie.
_:complOm owl:intersectionOf (_:x _:y).
- complementul interseciei a dou mulimi e reuniunea complementelor celor dou
mulimi:
:ScriitorClujean owl:intersectionOf (:Scriitor :Clujean).
_:complSC owl:complementOf :ScriitorClujean.
se poate deduce:
_:x owl:complementOf :Scriitor.
_:y owl:complementOf :Clujean.
_:complSC owl:unionOf (_:x _:y).
- complementul submulimii unei mulimi e submulimea complementului acelei
mulimi:
:Barbat rdfs:subClassOf :Om.
_:complBarbat owl:complementOf :Barbat.
se poate deduce:
_:x owl:complementOf :Om.
_:x rdfs:subClassOf _:complBarbat.

20. Exemplificai i explicai trei exemple de utilizare a nodurilor anonime n RDF.

n continuare vom discuta despre utilizarea nodurilor anonime: ca structuri de date, mai exact
concepte ce grupeaz mai multe informaii.
Am sugerat deja c nodul anonim nu va putea apare n interogri, deci nu se va putea pune
ntrebarea Care e orasul din _:adresa? ns se va putea pune ntrebarea Care e oraul n care
locuiete Ana? (profitnd de nlnuirea relaiilor locuiesteIn i Oras, intermediat de nodul
anonim, care devine astfel important doar prin poziia sa, nu i prin identitate).

21. Ce este arborele DOM? Oferii un exemplu, cu codul XML aferent, cu minim 3 nivele n arbore.

Modelul DOM este una din cele dou soluii consacrate (alturi de SAX) pentru extragerea
informaiilor dintr-un document XML, indiferent c acestea sunt stocate n numele sau valorile
elementelor, numele sau valorile atributelor sau n structurile XML auxiliare.
DOM nu este o aplicaie n sine, ci un model abstract implementat la nivelul parserelor, ca o colecie
de interfee de programare (API) ce folosesc paradigma obiectual pentru a transpune coninutul
oricrui document conform cu standardul XML n clase, obiecte i metode. Astfel,
DOM este independent de platform i limbajul de programare, fiind considerat un strat ntre parser
i aplicaiile consumatoare de XML. Practic, parserul citete date din sursa XML i alctuiete
arborele DOM translatnd imbricrile ntre marcatori n relaii tat-fiu i unitile XML n noduri ale
arborelui.
Nucleul DOM, numit DOM Core, este un set de interfee de programare de uz general la care se
adaug module opionale precum cele adaptate pentru manipulare de de stiluri HTML, care nu apar
neaprat n toate implementrile i dintre care indicm:
DOM Views pentru manipularea unei reprezentri particulare a unui document;
DOM Events un sistem de evenimente generice;
DOM HTML pentru manipularea de HTML clasic;
DOM CSS pentru manipulare dinamic a foilor de stil;
DOM Traversal an Range pentru identificarea i parcurgerea unor poriuni de document care nu
reprezint neaprat colecii de noduri (fragmente, coninut textual).
<produse>
<produs cod="p01">Televizor</produs>
</produse>
Un parser DOM va crea din acest exemplu urmtoarea ierarhie de noduri:
Document Node
Documentul complet

NodeList

Element Node
<produse>

NodeList

Element Node
<produs>

NodeList NamedNodeMap

Character Data

Text Node

22. Care sunt efectele fundamentale oferite de Scriptaculous?

Efecte fundamentale:
- Morph tranziie ntre un stil CSS i altul
- Opacity modificarea transparenei
- Highlight evideniere (colorarea/plpirea fundalului pentru atragerea
ateniei)
- Move deplasare pe o direcie;
- Scale dimensionare (mrire/micorare);
Parallel definirea unui set de efecte care s se execute sincron i simultan
Queues definirea unei cozi (succesiuni) de efecte
Efecte combinate: combinaii ale celor fundamentale, cu efecte similare celor oferite de Powerpoint:
Appear, Fade, Shake, BlindUp, BlindDown etc.
Helpere: Transitions, Methods, toggle, multiple
Comportamente: Draggable, Droppable, Sortable, DelayedObserver
Comportamente avansate (controale GUI preprogramate): InPlaceEditor, Autocompleter, Slider

23. Enumerai tipurile de biblioteci AJAX

- Nivel 0: mecanisme de nivel sczut, reutilizabil, de conectare asincron la server: obiectul XHR sau
cadrele interne;
- Nivel 1: instrumente de nivel nalt de comunicare cu serverul (ce mascheaz detaliile nivelului 0)
Dojo, JSON-RPC, Prototype, Direct Web Remoting;
- Nivel 2: instrumente de nivel nalt de construire a interfeei cu utilizatorul (construite peste nivelul
1) Dojo ofer instrumente i la acest nivel, SmartClient, Script.aculo.us (bazat pe Prototype),
JQuery;
- Nivel 3: medii de dezvoltare a aplicaiilor AJAX: Rails, Tapestry, AJAX.NET, SAJ
24. Enumerai 8 beneficii aduse de biblioteca Prototype programrii paginilor AJAX.

- prescurtarea sintaxei JavaScript;


- metode noi de localizare a nodurilor DOM (pe baz de stiluri);
- extinderea claselor JavaScript;
- funcii noi pentru lucrul cu colecii de date (masive, obiecte);
- ascunderea i eliminarea facil de noduri DOM;
- inserare facil de cod HTML n orice poziie a paginii;
- activarea, dezactivarea i focalizarea facil a cmpurilor formularelor;
- determinarea poziiei elementelor n pagin.

25. Realizai o comparaie ntre XML i JSON, incluznd cte un exemplu din fiecare.

In cele ce urmeaza vom realiza o comparatie intre formatele JSON si XML.


XML
<produse>
<produs denumire=Televizor pret=100/>
<produs denumire=Calculator pret=200/>
</produse>
Valoare JSON atribuita unui variabile:
Produse=[{denumire:televizor, pret:100},{denumire:Calculator,pret:200}]
Principiu XML:aplicatiile trebuie sa fie restrictive la receptarea datelor si permisive la generarea lor
Principiul JSON:orice aplicatie trebuie sa fie permisiva la receptarea datelor si restrictiva la generarea
lor,adica sa poata prelucra orice structuri de date primite si sa fixeze niste reguli stricte pentru
strcturile de date generate.

26. Enumerai i explicai 6 metode, funcii sau atribute (JavaScript) prin care poate modifica
formatul sau coninutul paginii HTML.

1. Tag-urile de marcare HTML sunt de obicei numite simplu, tag-uri HTML. Acestea sunt cuvinte
cheie inconjurate de paranteze unghiulare. Tag-urile HTML sunt in mod normal prezente in perechi.
Primul tag dintr-o pereche este tag-ul de inceput, iar al doilea este tag-ul de final. Tag-ul de final este
scris ca si tag-ul de inceput, cu diferenta ca mai contine un slash inainte de numele tag-ului.

<numetag>Continut</numetag>

2. Un element HTML este tot ceea ce este intre tag-ul de start si tag-ul final, inclusiv tag-urile.
Tag-urile HTML si elementele HTML sunt adesea folosite pentru a descrie acelasi lucru. Fiecare
element spune browserului ceva despre informatiile care se afla intre tag-ul de inceput si cel de
sfarsit.

Element HTML:

<p> Acesta este un paragraf </p>

3. Corpul unui document trebuie sa fie cuprins integral intre tag-urile <body> </body>
si este format din informatia nestructurata, textuala, care se scrie ca in orice document ASCII,
dupa care este structurata prin includerea anumitor portiuni in marcatori simetrici si formatata
prin stabilirea de atribute pentru anumiti marcatori. Textul neformatat este considerat de catre
browsere plain text, afisat intr-un singur sir, trecandu-se la o noua linie doar cand se ajunge la
marginea ferestrei, fontul folosit la afisare este fontul implicit setat in browser.
4. Un iframe este folosit pentru a afisa o pagina web in cadrul unei alte pagini web. Mai jos
URL-ul indica locatia paginii care va fi apelata si deschisa in cadrul iframe-ului. Sintaxa pentru a
adauga un iframe este:

<iframe src=URL></iframe>

5. Document Object Model (DOM) este atat un model cat si o interfata, neutra din punct de
vedere al limbajului de programare folosit, care permite programelor si scripturilor sa acceseze si
actualizeze continutul, structura si stilul unui document in mod dinamic.

6. Cu modelul de obiecte, JavaScript poate crea HTML in mod dinamic. Astfel, JavaScript poate:
schimba toate elementele HTML din pagina

schimba toate atributele HTML din pagina

schimba toate stilurile CSS din pagina

elimina elemente si atribute HTML existente

adauga noi elemente si atribute HTML

reactiona la toate evenimentele HTML existente in pagina

crea noi evenimente HTML in pagina

27. Care sunt beneficiile AJAX fa de paginile Web tradiionale?

- Datele pot fi trimise de la client spre server la orice moment, JavaScript putnd declana transferuri
HTTP oricnd, cu sau fr notificarea utilizatorului; rspunsul se returneaz de la server n format
text, fie brut, fie structurat (XML, JSON), pentru a fi prelucrat prin funcii JavaScript;
- Starea iniial a aplicaiei e determinat de transferul dinspre server a unui ntreg modul client, cu
toate strile sale posibile (deci are loc un transfer iniial masiv care e totui suportat de
calculatoarele moderne i nu necesit instalare, toate interpretoarele necesare fiind ncorporate n
browser);
- Fiecare stare a aplicaiei e obinut prin modificarea la nivel de client a structurii interfeei cu
utilizatorul (structura DOM), pe baza unor date primite de la server (trecerea dintr-o stare n alta nu
presupune ncrcare de pagin nou, deci mecanismele Back/Forward i Bookmark nu funcioneaz);
- Nu are loc refresh redundant, deoarece dup ncrcarea strii iniiale serverul livreaz doar datele
necesare aplicaiei, nu toate elementele interfeei;
- Cererile asincrone de date nu blocheaz funcionarea interfeei cu utilizatorul (aa cum face
refreshul de pagin) interfaa continu s funcioneze n acele stri care nu au nevoie de datele
ateptate de la server; aceasta asigur o fluiditate rezonabil a experienei de utilizare, apropiat de
cea a aplicaiilor desktop;
- Experiena de utilizare i utilizabilitatea sunt mult mbuntite, nefiind foarte afectate de schimbul
intermitent de date cu serverul; n plus, gama de evenimente la care reacioneaz suprafaa
interfeei utilizatorului e apropiat de cea a aplicaiilor desktop (ex: se poate declana un transfer de
date la trecerea cursorului peste o anumit zon a paginii care nu trebuie s fie neaprat un buton
sau o imagine, deci schimbul de date cu serverul poate fi parial ascuns fa de utilizator);
Browserul execut o aplicaie JavaScript cu interfa HTML

28. Oferii 6 exemple de interogri XPath pe un exemplu de document XML.

Comanda/produs/@id
Cauta atributul id al elementelor produs din comanda
/comanda/produs
Afiseaza toate elementele produs din comanda
/comanda/*
Afiseaza elementele din comanda
/comanda/text()
Afiseaza nodurile text din comanda
/comanda/produs[1]
Returneaza primul produs din comanda
/comanda/produs[id]
Returneaza acele produse din comanda care contin elemente id

29. Realizai o comparaie ntre DTD i XSDL (diferene i asemnri).

DTD caracteristici:
- Permite crearea vocabularelor interne ce insotesc documentul;
- Are suport general fiind adoptat odata cu staandardul XML original;
- Fixeaza structura instantelor XML(oridine ocurente cardinalitate)
- Ofera tipizare slaba si valori implicite doar pentru atribute
- Permite crearea de notaii pentru diverse formate de date referite in instanta
- DTD nu creeaza documente XML bine formatate folosind o sintaxa de tip sgml.
- Suport pentru spatii de nume este rudimentar
XSDL ofera:
- Tipizare puternica
- Suport pentru spatiile de nume
- Derivarea tipurilor
- O modularitate ce permite convertirea facila a documentelor XML in ierarhii de structura de date
cu trasaturi obiectuale;
- Transfera indicatii de procesare si documentatie complexa spre consumator la nivelul clasei de
docuentatie
- Nu permite definirea unui sablo permis pentru elementul radacina

30. Realizai o comparaie ntre XSLT i XPath (diferene i asemnri).

XSLT foloseste o reperezentare de tip DOM dar are propriul vocabular de manipulare si nu necesita
folosirea interfetelor DOM.XSLT are si avantajul reutilizarii transformarilor.
XSLT este limbajul de transformare a documentelor XML si se bazeaza pe Xpath pentru a extrage
informatii dintr-un document sursa si a le pune intr-un document rezultat .De obicei XSLT e folosit
pentru a genera pagini HTML din date XML,deci poate fi folosit si ca intrument AJAX
XSLT foloseste cai Xpath RELATIVE la nodul pe care sa pozitionat instructiunea-parinte.
Xpath-este un limbaj de interogare pe care se bazeaza numeroase limbaje ce manipuleaza cod
XML.Xpath poate doar citi informatii nu si modifica.insera.sterge.pentru acestea se apleleaza la
functiile standard Dom sau la limbajele de transformare XSLT/Xquery

31. Realizai o comparaie ntre DOM SAX (ce sunt, ce au n comun, prin ce difer).

SAX este util in special la localizarea unor fragmente mici in continut masiv
Sax incarca doar fragmente ale documentului XML intr-o fereastra de memorie limitata,prin care se
deruleaza sirul de caractere ce alcatuieste documentul.
Pentru Citirea si localizarea unor fragmente se recomanda SAX cu exceptia cazului in care trebuie sa
se urmareasca relatii intre componente indepartate .
Pentru modificari masive de date se recomanda DOM;numeroase implementari SAX trateaza codul
sursa ca read-only operatiile de modificare fiind emulate prin recrearea unei alte versiuni a
documentului,
Generare de xml dinamic- se recomanda DOM deoarece mentine arborele in memorie pe parcursul
procesului de agaugare a noii informatii

32. Care e diferena ntre buna formare i validitatea unui document XML (i ce nseamn fiecare)?

Principiul XML este c aplicaiile trebuie s fie restrictive la receptarea datelor (datele fiind validate
sau transformate conform regulilor unui vocabular predefinit de destinatar) i permisive la
generarea lor (fiecare aplicaie poate genera orice structur de date XML);
Principiul JSON este c orice aplicaie trebuie s fie permisiv la receptarea datelor i restrictiv la
generarea lor, adic s poat prelucra orice structuri de date primite i s fixeze nite reguli stricte
pentru structurile de date generate;