Documente Academic
Documente Profesional
Documente Cultură
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
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.
Orice propoziie poate fi T sau F, dar nu amndou deodat (legea terului exclus) - logic bivalent.
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.
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.
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
Formulele corecte, corect formulate sau bine formulate, notate n literatur cu wff well formatted
formulas
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.
13. Care este semnificaia disjunciei a dou propoziii i prin ce se deosebete disjuncia de sau
exclusiv?
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
logica bivalent
logica trivalenta
logicile neclasice
logicile fuzzy
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.
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
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.
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.
n logica bivalent propoziiile au dou feluri de valori: adevrat sau fals. Propoziii bivalente =>
dou valori.
23. Cum se definesc implicaia i echivalena?
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
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 .
Logicile fuzzy n care pot exista o infinitate de valori de adevr, logici bazate pe teoria introdus de
Lotfi Zadeh
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.
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
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
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.
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)
Predicatele - simboluri prin care se noteaz relaii sau funcii definite pe elementele domeniului
discursului i care iau valorile adevrat (T) sau fals (F).
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.
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.
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?
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!
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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
In cazul prblemelor contigente, mediul este unul nedeterminist, parial observabil, iar perceptorii
ofer agentului informaii noi despre starea curent.
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.
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).
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.
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".
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
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):
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.
Vom construi heapul de jos n sus (de la frunze) (care sunt heap-uri de heapsize=1) (figura 2).
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.
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:
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)
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.
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).
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}.
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.
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.
|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).
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.
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 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:
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.
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.
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.
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 :
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:
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?
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.
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.
- 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.
- 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.
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.
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.
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.
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
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.
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.
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.
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
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.
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.
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,
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
Zi Ora
...
marketing
... .. ...
Sala1 Sala 2
Sala Capaci
... .. ...
Zi Ora
...
...
022 150 Luni 8 CIG III Contabilitate Georgescu
... .. ...
... .. ...
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.
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
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.
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?
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.
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.
O relaie este n prima form normal (1NF) dac fiecare atribut (cmp) este atomic i nu conine
grupuri repetitive.
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
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).
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
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.
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.
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.
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.
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.
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.
Predicatele minterm sunt predicatele pe baza carora se abordeaza fragmentarea orizontala. Sunt
conjunctii de predicate simple sau negatii ale acestora.
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.
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.
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.
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.
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).
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.
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.
Pieele de date sunt submulimi ale depozitelor de date, particularizate n vederea ndeplinirii
nevoilor unui departament sau care acoper un subiect.
Prin intermediul inmagazinarii datelor volume imense de date sunt extrase, n general prin
intermediul unui proces batch.
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.
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.
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.
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>
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.
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.
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
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.
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.
Exista trei metode prin intermediul carora se poate reactiona la evenimentele din JavaScript:
- Ca un atribut HTML
- Ca metoda atasata la element
- Utilizarea addEventListener
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.
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.
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.).
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.
Client 1 Browser
raspuns
cerere
raspuns
Retea
Client 2 Browser
cerere Server BD
raspuns
cerere
Client 3 Browser
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.
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.
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?
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.
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.
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);
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.
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
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.
26. Enumerai operaiile care se pot realiza asupra unei tabele dintr-o baz de date i
exemplificai.
27. Care sunt activittiile necesare pentru creare a unui tabel n MySql.
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.
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.
-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)
Afisarea parametrilor.
echo(A,b); va returna A b
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)
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.
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
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.
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
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 ;
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.
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.
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.
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.
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
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.
= 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.
17. Dai exemple de ntrebri care ajut la identificarea riscurilor pentru un proiect informatic.
18. Alegei o categorie de riscuri pentru proiectul informatic i explicai impactul acestora asupra
proiectului.
19. Prezentai o categorie de riscuri i dai exemple aciuni care ajut la evitarea lor.
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.
Standardul Ethernet curent, este utilizat pe peste 40% din LAN-urile din lume. Aceste reele
opereaz n mod curent la viteza de 10Mbps.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Este memoria n care se in minte" instruciunile & datele necesare rezolvrii problemei (intern
sau memorie operativ).
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).
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.
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.
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.
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).
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 .
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).
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.
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).
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)
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).
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 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.
19. Exemplificai i explicai trei moduri de extindere a taxonomiei de clase OWL cu ajutorul unor
operaii pe mulimi.
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
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
- 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.
25. Realizai o comparaie ntre XML i JSON, incluznd cte un exemplu din fiecare.
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:
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
- 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
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
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
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;