Documente Academic
Documente Profesional
Documente Cultură
ALGORITMI
1. Ce este un algoritm?
Un algoritm este un instrument de rezolvare a unei probleme, fiind o succesiune bine precizata de
prelucrari care aplicate asupra datelor de intrare permit obtinerea in timp finit a solutiei acesteia. Un
algoritm este compus dintr-o multime finita de pasi, fiecare necesitand una sau mai multe operatii.
2. Ce este un program?
Un program este o descriere precisa si concisa a unui algoritm intr-un limbaj de programare. Un
program nu trebuie sa satisfaca conditia de finitudine precum un algoritm.
34. Asemanari si deosebiri intre medota backtracking si metoda Brach and Bound:
Metoda Branch and Bound este asemanatoare cu metoda backtracking insa difera in primul rand prin
ordinea de parcurgere a spatiului solutiilor posibile (spatiul de stari). Daca in cazul metodei backtracking
arborele solutiilor se parcurge in adancime (depth first), in cazul metodei Branch and Bound traversarea
se face in latime (breadht first).
54. In ce conditii un graf este conex si ce este o componenta conexa a unui graf.
Un graf este conex daca admite o singura componenta conexa.
O componenta conexa a unui graf este un subgraf al grafului de referinta, maximal in raport cu
proprietatea de conexitate (intre oricare 2 varfuri exista lant si nu exista un alt subgraf al grafului de
referinta care sa indeplineasca prop de mai sus si sa contina acest subgraf).
8.Definiti RAID1.
8.Este oglindirea dispozitivelor(mirroring). Daca se folosesc doua discuri in Raid1
informatia va fi stocata pe ambele, in oglinda.
9.Definiti RAID5.
9.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?
10.Atacuri DOS (Denial of Service), atacuri prin inundare (flooding) si atacuri prin
pachete modificate
30.Cum se realizeaza legatura intre elementele unei entitati si ale unei tabele?
30. 1.In timp ce relatia este o multime teoretica, tabela este un obiect concret cu o anumita
reprezentare(tablou bidimensional)
2.In timp ce intr-o relatie ordinea atributelor sau tuplelor nu este semnificativa, intr-o
tabelaexista o ordonare atat a coloanelor, data de ordinea acestora la creare, cat si a
inregistrarilor, data de ordinea in care au fost introduse in tabela sau ca urmare a indexarii
tabelei.
3.In timp ce o relatie teoretica este formata intotdeauna din tuple distincte, in practica o
tabela poate contine si linii duplicat.
In acest context, notiunea de relatie se identifica cu cea de tabela sau fisier, atributele, cu
denumirea coloanelor unei tabele sau cu campurile unui fisier, iar tuplele, cu liniile tabelei sau cu
articolele unui fisier.
Din tranzitivitate:
- din A->B
- si B->C
rezulta A->C
DF: A->C se mai numeste inchiderea tranzitivaa primelor doua dependente, respectiv se spune ca
C depinde tranzitiv de A.
22. Dati definitiile dependentelor multivoce intre doua grupuri de atribute ale unei relatii:
Se spune ca intre A si B exista o dependenta multivoca (DM) A=>B, daca si numai daca:
- orice valoare a lui A determina o multime de valori din B
- daca A,B,C reprezinta o partitionare a multimii atributelor lui R, imaginile lui A in
raport cu B si a lui (A,C) in raport cu B sunt identice.
Fie ai,bi,ci subtuple din R facand parte din A,B,C. Se spune ca intre A si B exista o dependenta
multivoca, daca din faptul ca n-tuplele (a1,b1,c1) si (a2,b2,c2) apartin lui R, rezulta ca si n-tuplele
(a1,b1,c1) si (a2,b2,c2) apartin de asemenea lui R>
26. Definiti 4NF si enuntati teorema lui Cassey si modul de trecere de la BCNF la 4NF:
Utilizand dependentele multivoce, teorema lui Delobel se poate scrie si sub forma teoremei lui
Cassey: Fie R o relatie definita pe multimea atributelor Ω, R(Ω) si fie A,B,C o partitionare a lui
Ω, astfel ca sa existe DM:A=>B. Atunci R(Ω) poate fi descompus fara pierderi, in doua relatii
R(Ω1) si R(Ω2), unde:
Ω1=A U B – este reuniunea atributelor lui DM
Ω2=A U B – este reuniunea lui A cu atributele care nu fac parte din DM
O relatie R este in 4NF daca este in BCNF si daca exista o dependenta multivoca netriviala
A=>B in R, atunci exista si o dependenta univoca A->B in R; cu alte cuvinte, orice determinant
al unei Dm trebuie sa fie determinant pentru o DF.
27. Definiti descompunerea fara pierderi a relatiilor si enuntati teorema lui Ullman.
O relatie R care are o descompunere in relatiile R1,R2.........Rn este fara pierdere, daca este
reversibila. Aceasta este o conditie necesara de descompunere si se refera la extensia bazei de
date (datele ei) nu si la intensia (structura) ei.
Teorema lui Ullman: Fie o descompunere al lui R in doua relatii R1 si R2. Daca se noteaza cu D
multimea tuturor dependentelor DM si DF din R, descompunerea este fara pierderi, deci
reversibila, daca si numai daca dependentele DM si DF de la R1 intersectat cu R2 la R1-R2,
respectiv R2-R1, fac parte din inchiderea lui D.
28. Definiti descompunerea care conserva dependentele si enuntati teorema lui Rissanen:
Teorema lui Rissanen: Fie R1 si R2 o descompunere a lui R si F multimea dependentelor din R.
Descompunerea este reversibila si conserva dependentele din F daca si numai daca:
(i) F poate fi dedus din F(R1) si F(R2) (conserva dependentele)
(ii) Atributele comune ale lui R1 si R2 formeaza o cheie cel putin in una din relatiile R1 si R2,
adica exista o dependenta de la R1 intersectat cu R2 la R1-R2, respectiv R2-R1,
Descompunerea care conserva dependentele (ex. pag 158)
29. Ce este dependenta fata de asociere si care este relatia ei cu dependenta mutuala si cu cea
multivoca?
Fie R o relatie si A1,A2 ....An un ansamblu de submultimi ale domeniului lui R, nu neaparat
disjuncte, astfel ca reuniunea lor sa coincida cu domeniul lui R. Spunem ca R satisface
dependenta fata de asociere pe A1,A2 ....An daca si numai daca:
R=R1(A1)∆ R2(A2)∆..... ∆ Rn(An) unde Ri(Ai) este proiectia lui R pe Ai, iar prin
∆ s-a notat operatia de asociere (join).
Dependenta fata de asociere este o generalizare a celorlalte depedente de pana acum. Astfel, in
cazul n=2 avem de a face cu dependenta multivoca.
In cazul n=3 avem de a face cu dependenta mutuala.
30. Ce este a 5-a forma normala si de ce este ea ultima forma normala posibila?
O relatie R este in a 5-a forma normala (5NF), denumita forma normala de proiectie/asociere
(PJ/NF), daca si numai daca dependenta fata de asociere a lui R este indusa de chei candidat.
2. Care sunt elementele care caracterizeaza sistemele distribuite si la care fac referire
in general definitiile?
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?
Reprezinta sistemul software care permite gestiunea bazelor de date distribuite facand
distribuirea fizica transparenta pentru utilizatori.
21. Ce este un sistem de baze de date federative? Dati exemple de situatii la care acestea
se preteaza.
Este o colectie de sistene de baze de date colaborative care sunt autonome si posibil
heterogene.Reprezinta unificarea logica a unor baze de date distincte ce ruleaza pe
servere independente, conectate prin intermediul unei retele. Internetul cel mai mare
sistem federativ.Exista trei calitati ce caracterizeaza sistemele federative: Autonomia,
Heterogenitatea, Distribuirea.
5. INTELIGENȚĂ ARTIFICIALĂ
1. Cum se defineste logica?
LOGICA este ştiinţa demonstraţiei al cărui obiect este stabilirea condiţiilor
corectitudinii gândirii, a formelor şi legilor generale ale raţionării corecte, conforme
prin ordinea ideilor cu organizarea legică a realităţii obiective".
2. Dati exemple de utilizare a logicii in informatica economica si de afaceri.
principalele aplicaţii ale logicii din domeniul IE baze de date şi de cunoştinţe, a căror
interogare se bazează pe logică. SE, SSD, SSE, dar şi deciziile de zi cu zi ale
managerului sau omului de afaceri se bazează pe raţionamente logice. Practic nu există
domeniu de afaceri în care logica să nu joace un rol major.
P ~P
F T
T F
Exemplu: P = “Bugetul trebuie aprobat anual”, care are valoarea T, negaţia ~P, “Bugetul nu
trebuie aprobat anual”, are valoarea F.
Cuantificatorul existenţial 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 si cum pot fi traduse formulele din aceste logici in FOPL?
În FOPL se foloseşte între predicate pentru a evita trecerea la logici de ordin superior.
Exemplu:
(x) Student_economice(Căminist (Învaţă C++ (x)))
Este din teoria predicatelor de ordin superior deoarece avem 3 nivele de predicate
încuibărite. Se transcrie în:
(x) Student_economice (x) Căminist (x) Învaţă (x, c++)
Client 1 Browser
raspuns
cerere
raspuns
Retea
Client 2 Browser
cerere Server BD
raspuns
cerere
6. Definiti notiunea de server web si exemplificati
Serverul ruleaza, in general, pe un calculator, in cazul in care se utilizeaza mecanisme de
comunicatie locala, sau pe calculatoare diferite, atunci cand se folosesc mecanisme de comunicatie in
retea.
Un server web este unde program care ruleaza pe un calculator, asteapta pe un port o conexiune
TCP venita de la un client si serveste acestuia pagini web folosind protocolul HTTP.
Serverul web este un software, un program de sine statator, un executabil cu o functie bine
stabilita; aceea de a servi la cerere pagini de internet intr-un mod bine determinat. Acest software poate fi:
Apache HTTP Server, Microsoft Internet Information Services (IIS), iPlanet Web Server, Roxen
WebServer, Zeus WebServer etc. serverul web ruleaza pe un calculator.
7. Definiti notiunea de browser si exemplificati
Browserul este un program folosit la afisarea de continut web. Acesta se impune sa poata sa
interpreteze pagini HTML, sa afiseze imagini si alte forma de continut multimedia, sa foloseasca referinte
(link-uri) etc. cea mai importanta caracteristica a sa este capacitatea lui de a se conecta prin protocolul
TCP la un server web. Metoda de conectare s-a prezentat anterior.
Browserele cele mai cunoscute si deci cele mai folosite sunt: Microsoft Internet Explorer,
Mozilla, Netscape, Opera, Lynx etc,
8. Enumerate limbajele de scripting invatate
C, C#, Java, JavaScript, PHP, Prolog, XHTML, SQL etc.
9. Ce se petrece pe server atunci cand se introduce in bara de adrese a browserului urmatoarea adresa
http://www.localhost/proiectphp/index.php?
Browser-ul determina protocolul pe care il va folosi in dialogul cu serverul web
Browser-ul determina adresa web a serverului
Browser-ul determina ce anume trebuie sa ceara de la serverul web, adica pagina html numita
exemplu.html
Brwserul determina adresa IP a masinii pe care ruleaza serverul web prin interogari DNS pe baza
adresei web introdusa in address bar
Pe baza adresei IP determinate anterior, brwserul va crea o conexiune TCP pe portul specificat in
URL sau implicit pe portul 80
Browser-ul lanseaza cerere GET sau POST catre server specificand fisierul dorit: GET
/exemplu.html
Serverul web raspunde trimitand fisierul dorit sau o eroare corespunzatoare in cazul in care
trimiterea nu este posibila (lipsa fisierului, drepturi de acces insuficiente etc.). aici conexiunea
dintre client si server se incheie
Browser-ul analizeaza fisierul primit si il afiseaza corespunzator.
14. Care este protocolul folosit de serverul web in furnizarea paginilor web? Descrieti caracteristicile
acestuia
Protocolul este http:// = HTTP – HyperText Transfer Protocol.
Este cel mai importantşi cel mai des folosit protocol al Reţelei Mondiale (Web). Este un
protocol rapid, special proiectat pentru mediul interactiv, hipermedia din Web. Este un protocol
de nivel aplicaţie, ce oferă uşurinţaşi viteza necesare dezvoltării aplicaţiilor hipermedia. Este
un protocol generic, orientat obiect, care poate fi folosit cu uşurinţă de multe task-uri, cum ar fi
servere de numeşi sisteme de management distribuit, cu extensiile cerute de metodele sale.
Permite tipărireaşi negocierea reprezentării datelor, construirea de sisteme independente de
date care vor fi transferate. Este orientat pe conexiuneşi asigură recepţionarea sigură a
pachetelor de date, oferindşi o metodă de control al fluxului între hosturile sursăşi destinaţie.
Este construit peste serviciile protocolului TCP/IP, care garantează că datele au fost
recepţionate corect, nu au fost pierdute, duplicate sau recepţionate în altă ordine faţă de cea în
care au fost transmise. Procesul de recepţie are controlul asupra vitezei la care se recepţioneazăşi
se transmit datele, prin mecanismul de fereastră glisantă. Când se startează o aplicaţie, modulul
HTTP al calculatorului- clientşi modulul HTTP al calculatorului-server încep să comunice unul
cu altul. Aceste două module (clientşi server) conţin informaţii de stare care definesc un circuit
virtual. Acest circuit virtual consumă resursele atât ale serverului, câtşi ale clientului. Circuitul
virtual este full-duplex, datele pot circula în ambele direcţii simultan.
15. Ce este MySQL? Definiti acest concept.
MySQL este cel mai popular sistem de management pentru baze de date relationale deoarece este
open-source. MySQL Server a fost creat pentru a lucre cu baze de date mai rapid decat solutiile deja
existente la ora actual ape piata.
MySQL este un sistem de gestiune a bazelor de date. Pentru a adauga, insera si procesa datele
memorate pe un calculator este nevoie de astfel de sistem de gestiune a datelor. Avand in vedere ca toate
calculatoarele sunt destinate pentru memorarea informatiilor, managementul bazelor de date joaca un rol
decisive, atat in gestiunea datelor ca activitate de sine statatoare , cat si in cadrul aplicatiilor ample.
MySQL este un sistem multiuser (permite sa fie folosit concomitant de mai multi utilizatori) si
multithread (prezinta mai multe fire de executie). Utilizeaza SQL, limbajul standard de interogare a
bazelor de date.
MySQL este un sistem de gestiune a bazelor de date relationale. Tabelele sunt conectate prin
relatii predefinite, fapt ce face posibila combinarea datelor din mai multe tabele, la crere,. MySQL este un
produs open-source.
MySQL este un sistem client-server care este alcatuit dintr-un server SQL multithread care are
facilitate pentru mai multi utilizatori, mai multe programe si biblioteci client, instrumente de administrare
si un numar mare de interfete de programare. Avand in vedere ca MySQL suporta o gama variata de
produse software, exista posibilitatea ca multe din limbajele de programare deja folosite de anumiti
utilizatori sa suporte deja interfata cu acest produs.
16. Care este modul de functionare a unui server de baze de date pentru Web?
Functionarea unui server de baze de date pentru web, in cazul nostru MySQL, implica existenta a
doua elemente: un browser web si un server. Intre aceste doua elemente se impune sa existe un canal de
comunicare. Serverul de web functioneaza in moduri diferite in urmatoarele situatii:
In cazul in care server-ul lucreaza cu pagini web statice, un browser web (clientul)
formuleaza cererea catre server, iar serverul trimite inapoi un raspuns
In cazul in care server-ul lucreaza cu pagini web dinamice care preiau datele dintr-o baza
de date si le afiseaza se realizeaza urmatorii pasi:
Browser-ul web al unui utilizator emite o cerere HTTP pentru o anumita pagina web
Serverul web receptioneaza cererea si transfera fisierul catre motorul PHP, in cazul
nostrum pentru prelucrare
Motorul PHP incepe analiza paginii. In interiorul unei pagini web dinamice exista o
comanda care realizeaza legatura la baza de date si executa interogarile pe care le trimite
serverului MySQL
Serverul MySQL receptioneaza interogarea bazei de date si o prelucreaza, iar apoi trimite
rezultatele motorului PHP
Motorul PHP afiseaza rezultatele furnizate de serverul MySQL, formatate intr-un cod
HTML pe care il returneaza serverului web, in cazul nostru Apache
Serverul web transmite codul HTML browserului unde utilizatorului I se afiseaza rezultatul dorit
de acesta.
17. Enumerati si descrieti facilitatile oferite de MySQL
Posibilitatea accesului concurrent la date de catre un numar nelimitat de utilizatori
Capacitatea de a gestiona pana la 50 milioane de inregistrari si chiar mai multe
Executia foarte rapida a comenzilor, poate chiar cea mai rapida din cele existente pe piata
Sistem usor si efficient de gestiune a drepturilor utilizatorilor
Este gratuity, fapt ce a atras extinderea fara precedent a folosirii acestui server de baze de
date
18. Enumerati principalele motive pentru folosirea pe scara larga a MySQL
Posibilitatea accesului concurrent la date de catre un numar nelimitat de utilizatori
Capacitatea de a gestiona pana la 50 milioane de inregistrari si chiar mai multe
Executia foarte rapida a comenzilor, poate chiar cea mai rapida din cele existente pe piata
Sistem usor si efficient de gestiune a drepturilor utilizatorilor
Este gratuity, fapt ce a atras extinderea fara precedent a folosirii acestui server de baze de
date
19. Explicate mecanismul de functionare a unui server web
Functionarea unui server de baze de date pentru web, in cazul nostru MySQL, implica existenta a
doua elemente: un browser web si un server. Intre aceste doua elemente se impune sa existe un canal de
comunicare. Serverul de web functioneaza in moduri diferite in urmatoarele situatii:
In cazul in care server-ul lucreaza cu pagini web statice, un browser web (clientul)
formuleaza cererea catre server, iar serverul trimite inapoi un raspuns
In cazul in care server-ul lucreaza cu pagini web dinamice care preiau datele dintr-o baza
de date si le afiseaza se realizeaza urmatorii pasi:
Browser-ul web al unui utilizator emite o cerere HTTP pentru o anumita pagina web
Serverul web receptioneaza cererea si transfera fisierul catre motorul PHP, in cazul
nostrum pentru prelucrare
Motorul PHP incepe analiza paginii. In interiorul unei pagini web dinamice exista o
comanda care realizeaza legatura la baza de date si executa interogarile pe care le trimite
serverului MySQL
Serverul MySQL receptioneaza interogarea bazei de date si o prelucreaza, iar apoi trimite
rezultatele motorului PHP
Motorul PHP afiseaza rezultatele furnizate de serverul MySQL, formatate intr-un cod
HTML pe care il returneaza serverului web, in cazul nostru Apache
Serverul web transmite codul HTML browserului unde utilizatorului I se afiseaza rezultatul dorit
de acesta.
20. Enumerate tipul de date numerice cunoscute. Dati un exemplu de asociere a unui tip de date pentru
un camp al unui table
Tipuri de date numerice: TINYINT, SMALLINT, MEDIUMINT, INT sau INTEGER, BIGINT,
FLOAT, REAL sau DOUBLE, NUMERIC.
Exemplul: CREATE TABLE nume_tabela (nume_camp1 tip_camp1, nume_camp2 tip_camp2);
21. Enumerati tipurile de date calendaristice cunoscute
Tipuri de date calendaristice: DATETIME, DATE, TIMESTAMP, TIME, YEAR
22. Enumerati grupurile in care se impart de sirurile de caractere
Sirurile de caractere se impart in 3 grupuri si anume: siruri normale definite prin tipul CHAR
(fixed length character), respective VARCHAR (variable length character), siruri text definite prin tipul
TEXT respective BLOB (pentru siruri lungi sau date binare) si sirurile care folosesc SET respectiv
ENUM pentru valori predefinite.
23. Definiti conceptul de baza de date.
MySQL este cel mai popular sistem de management pentru baze de date relationale deoarece este
open-source. MySQL Server a fost creat pentru a lucre cu baze de date mai rapid decat solutiile deja
existente la ora actual ape piata.
MySQL este un sistem de gestiune a bazelor de date. Pentru a adauga, insera si procesa datele
memorate pe un calculator este nevoie de astfel de sistem de gestiune a datelor. Avand in vedere ca toate
calculatoarele sunt destinate pentru memorarea informatiilor, managementul bazelor de date joaca un rol
decisive, atat in gestiunea datelor ca activitate de sine statatoare , cat si in cadrul aplicatiilor ample.
MySQL este un sistem multiuser (permite sa fie folosit concomitant de mai multi utilizatori) si
multithread (prezinta mai multe fire de executie). Utilizeaza SQL, limbajul standard de interogare a
bazelor de date.
MySQL este un sistem de gestiune a bazelor de date relationale. Tabelele sunt conectate prin
relatii predefinite, fapt ce face posibila combinarea datelor din mai multe tabele, la crere,. MySQL este un
produs open-source.
MySQL este un sistem client-server care este alcatuit dintr-un server SQL multithread care are
facilitate pentru mai multi utilizatori, mai multe programe si biblioteci client, instrumente de administrare
si un numar mare de interfete de programare. Avand in vedere ca MySQL suporta o gama variata de
produse software, exista posibilitatea ca multe din limbajele de programare deja folosite de anumiti
utilizatori sa suporte deja interfata cu acest produs
24. Definiti conceputl de relatie intre tabele.
Crearea unnei baze de date relationale presupune crearea unuia sau mai multor tabele legate intre
ele. In procesul de creare a unui table are loc stabilirea numelor campurilor acestuia cat si a tipurilor de
date prin care unui utilizator I se indica ce date are voie sa introduca in acestea. In functie de tipurile de
date alese pentru fiecare coloana a tabelei se aloca pe disc un spatiu de memorie. In aceasta situatie este
indicate o cunoastere aprofundata a acestora, deoarece acest fapt va permite creatorului tabelei sa aleaga
tipul de date potrivit pentru fiecare coloana a tabelei astfel incat aceasta sa ocupe un spatiu de memorie
optim pe disc si in acelasi timp sa raspunda nevoilor utilizatorilor acesteia.
25. Enumerati si explicate tipurile de relatii ce se pot stabili intre doua sau mai multe tabele a unei
baze de date
Relatii
Exista 3 tipuri de relatii intr-o BD relationala:
Relatie una-la-una - Exista cate una/unul din fiecare in relatie (dcaca am fi pus adresele intr-o
tabela separata intre CLIENTI si ADRESE ar fi existat un corespondent pentru fiecare
inregistrare).
Relatie una-la-mai-multe - O linie dintr-o tabela e legata la mai multe linii din alta tabela (un client
ar putea face mai multe comenzi).
Relatie mai-multe-la-mai-multe - Mai multe linii din tabela 1 sunt legate la mai multe din tabela 2
(de exemplu, in cazul a doua tabele, CARTI si AUTORI, o carte ar putea fi scrisa de doi coautori,
fiecare dintre ei mai avand si alte carit scrise).
26. Enumerati operatile care se pot realiza asupra unei tabele dintr-o baza de date si exemplificati
CREATE TABLE nume_tabela(nume_camp tip_camp)
In procesul de creare a unui table activitatile sunt:
Denumirea campurilor
Alegerea unui tip de date potrivit pentru fiecare camp
Definirea atributelor pentru fiecare camp in parte
Stabilirea coloanei care va juca rolul de cheie primara sau secundara cu ajutorul careia se
va stabili legatura catre alte tabele ale bazei de date
Indexii pentru o tabela se pot crea astfel:
Fie adaugand la sfarsitul instructiunii CREATE TABLE… comanda
INDEX(nume_coloana_index);
Fie folosind comanda CREATE [UNIQUE\FULLTEXT] INDEX nume_index ON nume_tabela
(nume_coloana_index[(lungime)[ASC\DESC]],…)
Stergerea unui table, index, baza de date sau o coloana dintr-un table se face folosind comanda DROP
astfel:
DROP TABLE nume_tabel
DROP DATABASE nume_baza_de_date
Popularea tabelelor cu inregistrati se face prin comanda INSERT care are urmatoarea sintaxa
INSERT INTO nume_table (camp1, camp2, camp3) values (valoare1, valoare2, valoare3);
Comanda SELECT se foloseste pentru a afisa toate intregistrarile dintr-o tabela:
Mysql>SELECT*FROM nume_tabela
Modificarea continutului unei inregistrari se face utilizand comanda UPDATE care are sintaxa
UPDATE nume_table SET numa_coloana1=`noua valoarea a coloanei 1` WHERE conditii
Stergerea inregistrarilor dintr-o tabela se face prin DELETE
DELETE FROM nume_tabel WHERE conditii
27. Care sunt activitatile necesare pentru cearea unui table in MySQL
1 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.
2 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. Enumerati si descrieti pasi de inserare a datelor in cadrul unei tabele a unei baze de date.
Exemplificati.
1Inserarea datelor intr-o tabela a unei baze de date baze de date presupune conectarea la baza de date
3 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. Descrieti metodele de baza pentru colectarea informatiei in formulare HTML folosind PHP.
Trimiterea informatiei din formele HTML in PHP se face cu ajutorul metodelor GET si POST.
14. Enumerati aspectele pentru care un proiectant cauta in general solutii in cadrul
unui proiect informatic
17. Dati exemple de intrebari care ajuta la identificarea riscurilor pentur un proiect
informatic
18. Alegeti o categorie de riscuri pentru proiectul informatic si explicati impactul acestora
asupra proiectului
Frici, retineri, dorinte
-identificarea ideilor de care partile afectate se tem in general in legatura cu proiectul
informatic
-identificarea posibilelor grupari de persoane afectate de sistem in functie de temerile pe
care le au
-identificarea dorintelor partilor implicate in legatura cu proiectul
Produs informatic si cerinte de sistem
-scop, motivatie- clare
- identificarea partilor din proiect care nu pot fi schimbate pe parcursul excutiei
Procesul de business
-identificarea limitarilor legate de resurse: timp, bani, personal disponibil
-estimarea masurii in care aceste limitari pot fi influentate
Mecanisme de reactie si analiza
-asigurarea de mecanisme de reactie si analiza; lipsa acestora- disfunctionalitati
19. Prezentati o categorie de riscuri si dati exemple de actiuni care ajuta la evitarea lor
Frici, retineri, dorinte
-identificarea ideilor de care partile afectate se tem in general in legatura cu proiectul
informatic
-identificarea posibilelor grupari de persoane afectate de sistem in functie de temerile pe
care le au
-identificarea dorintelor partilor implicate in legatura cu proiectul
Produs informatic si cerinte de sistem
-scop, motivatie- clare
- identificarea partilor din proiect care nu pot fi schimbate pe parcursul excutiei
Procesul de business
-identificarea limitarilor legate de resurse: timp, bani, personal disponibil
-estimarea masurii in care aceste limitari pot fi influentate
Mecanisme de reactie si analiza
-asigurarea de mecanisme de reactie si analiza; lipsa acestora- disfunctionalitati
8. REȚELE
1. Descrieti tehnica CSMA/CD.
Aceasta tehnica rezulta din utilizarea tehnicii CSMA impreuna cu tehnica “asculta ce transmiti”.
Principiul de baza este ca dupa ce sursa transmite pachetul, asteapta un interval foarte scurt de timp, iar
mai apoi isi asculta propria transmisie. Avantajul essential al acestei tehnici consta in faptul ca ea permite
detectarea prompta a unei coliziuni, adica imediat ce ea apare si nu dupa un interval de timp, evitandu-se
transmiterea complete a pachetelor colizionate si se reduc nu numai intarzierile din retea datorate
coliziunilor, dar si canalul de difuzare devine disponibil mai repede.
Hubul este cunoscut sub numele de repetor sau concentrator. Prima lui functiune este sa primeasca sis a
regenereze semnalele de la dispozitivele conectate, pe cand switchul face posibil ca fiecare statie sa obtina
in intregime banda alocata, fara a mai fi nevoie sa o imparta cu alte statii. Acest lucru este realizat prin
utilizarea unei magistrale de semnale extreme de rapide aflata in comutatorul Ethernet si poate avea viteze
de peste 2GB/s.
4. Enumerati si descrieti functiile nivelului retea.
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.
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.
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 stability o conexiune.
12. Descrieti si desenati antetul protocolului UDP.
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.
Gestinea configuratiei – implica legarea prin punti si reconfigurarea sistemelor utilizator precum si a
subretelelor, incluzand punti si rutere, gestiunea folosirii numelor si asocierea acestora cu adresele de
retea. Acest bloc este fundamental pt buna functionare a sistemului si include urmatoarele functiuni:
- Gestionarea de attribute ale dispozitivelor, setarea si modificarea valorilor individuale, collective
sau predefinite ale acestora
- Gestionarea initializarii si a opririi in totalitate sau a anumitor parti din retea
- Actualizarea topologiei de gestionare prin identificarea tuturor relatiilor de interconectare
Functionarea gestiunii unei retele trebuie combinata cu organizarea la nivel informational privind situatia
actual si de perspectiva. Gestiunea retelei contine aplicatii care sunt distribuite in ambele sisteme si
anume: in sistemul de gestiune sunt urmarite procesele, iar in sistemul gestionat procesele agent si
obiectele. Activitatile de gestionare sunt realizate printr-un manager de procese care comunica cu
procesele din sistemul gestionat, astfel incat sa se controleze obiectele gestionate. Pt fiecare obiect
gestionat sunt definite atributele, operatiile valide asupra lor si notificarea obiectelor de iesire.
16. Enumerati provocarile principale si principalele standarde ale retelelor de calculatoare fara
fir(radio).
Unele dintre principalele provocari carora trebuie sa le faca fata retelele fara fir privitor la transmisie sunt:
deficitul latimii de banda, acces multiplu, pierderea de cale, directii multiple, diminuarea semnalului,
mobilitatea, securitatea si calitatea serviciului.
Principalele standard sunt: HiperLan II, HomeRF, IEEE802.16.
17. Desenati si explicati principalele topologii ale retelelor de calculatoare fara fir.
O retea fara fir poate fi formata dintr-o singura celula cu unul sau nici un punct de acces. Cele mai multe
topologii au mai multe celule unde toate punctele de acces sunt conectare printr-o magistrala denumita
DS(Distribution System) formata dintr-o retea cablata sau una fara fir ( wireless). Avem topologie
structurata atunci cand o retea wireless are cel putin un punct de acces conectat la o retea cablata si mai
multe statii conectate wireless. Modalitatea ad-hoc ( fig 11..16 ) apare cand un grup de statii de tip 802.11
wireless comunica direct unul cu altul fara sa foloseasca un punct de access sau conexiunea printr-o retea
cablata.
18. Desenati si explicati rolul nivelului fizic in cadrul retelelor de calc fara 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. Desenati si explicati rolul subnivelului MAC in cazul retelelor de calc fara fir.
La subnivelul MAC are loc incapsularea datelor ce vin de la nivelul retea in cadre. Subnivelul MAC
foloseste protocolul CSMA/CA si deasemenea este responsabil de fragmentare si de criptare. In
standardul 802.11 subnivelul MAC, pe langa functiile obisnuite, trebuie sa se ocupe de fragmentarea
pachetelor, retransmiterea lor si confirmarea primirii lor.
20. Desenati si explicati metoda CSMA/CA in cazul retelelor de calc fara fir. (fig. 11.18)
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. Desenati si explicati rolul nivelului fizic in cadrul retelelor de calc fara 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. desenati si explicate problema nodurilor ascunse in cazul retelelor de calc fara fir. (fig 11.20)
Cele 2 statii nu se aud, dar fiecare aude punctual de acces. (fig 11.20)
Cand o statie doreste sa transmita un pachet, ea trimite un pachet de control denumit RTS(Request To
Send) care include sursa, destinatia si durata urmatoarei tranzactii. Daca mediul este liber statia
receptoare raspunde cu un pachet de control denumit CTS(Clear To Send) care include acceasi durata a
informatiei.
23. Desenati si explicati modul cum se realieaza securitatea IEEE 802.11 in cazul retelelor de calc
fara fir.
IEEE 802.11 are doua subtipuri de autentificari: system deschis si cheie partajata. Autentificarea este
facuta intre doua statii. De aici rezulta ca se poate face numai in cazul cadrelor unicast dar nu si la cele
muticast. Pentru statiile care folosesc autentificarea cheilor partajate trebuie sa se implementeze WEP.
WEP este protocolul de incapsulare pentru 802.11 al cadrelor de date. Scopul este sa furnizeze securitate
datelor la nivelul unei retele cablate. WEP este un algoritm simetric in care acceasi cheie este folosita atat
pentru criptare cat si pentru decriptare.
24. Descrieti modul de lucru al protocolului de autentificare 802.1x in retelele fara fir.
Standardul de autentificare 802.1x este relativ simplu si initial nu a fost destinat comunicatiilor fara fir.
Pentru 802.1x autentificarea clientilor se face printr-un server de autentificare extern.
Autentificarea 802.1x este un dialog intre un system care doreste sa se conecteze la serviciile retelei si
retea. Acest dialog foloseste protocolul extensibil de autentificare EAP. 802.1x consta dintr-un PAE in
toate statiile(STA) si punctele de acces(AP), incapsularea EAP a retelei (EAPOL) si un server de
autentificare RADIUS (AS).
25. Descrieti sistemul de autentificare WPA ce foloseste TKIP, utilizat in retelele fara 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.
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.
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 scenario 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.
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.
...vom putea defini un prefix locțiitor pentru partea de URI care se repetă (de
asemenea nu mai sunt necesare parantezele ascuțite):
@prefix : <http://expl.ro#>.
:Alin :FrateCu :Andrei .
:Alin :areVarsta 20 .
Aici nu am mai folosit owl:maxCardinality ci cardinalitatea precisă: Alin are exact doi copii
distincți. Atenție însă, aceasta nu înseamnă că baza de cunoștințe trebuie să conțină doi copii
pentru Alin! În numele principiului Open World, o bază de cunoștințe nu e niciodată
completă, pot apare în viitor noi afirmații, deci se tolerează absența afirmațiilor despre copii lui
Alin. Nu se tolerează însă depășirea acestui număr (mai exact, se încearcă interpretarea
depășirii prin astfel de echivalențe, dacă nu există probe contrarii care să afirme distincția).
Dacă ajungem pe alte căi și la concluzia că :Ana și :Aneta nu au cum să fie aceeași
persoană, ajungem la contradicție. Acest aspect e valabil pentru toate exemplele ce urmează:
regulile prezentate vor detecta echivalențe atâta timp cât nu există alte reguli care să detecteze
distincția între aceiași indivizi. Altfel se vor produce contradicții. Detectarea automată a
echivalențelor poate automatiza maparea semantică între baze de cunoștințe din surse diferite,
generând automat echivalențe.
Aici nu am mai folosit owl:maxCardinality ci cardinalitatea precisă: Alin are exact doi
copii distincți. Atenție însă, aceasta nu înseamnă că baza de cunoștințe trebuie să conțină doi
copii pentru Alin! În numele principiului Open World, o bază de cunoștințe nu e niciodată
completă, pot apare în viitor noi afirmații, deci se tolerează absența afirmațiilor despre copii
lui Alin. Nu se tolerează însă depășirea acestui număr (mai exact, se încearcă interpretarea
depășirii prin astfel de echivalențe, dacă nu există probe contrarii care să afirme distincția).
Deducerea disjuncției claselor sau proprietăților din listă de clase disjuncte (owl:AllDisjointClasses),
respectiv listă de proprietăți incompatibile (owl:AllDisjointProperties). Din afirmațiile:
@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.
_:adre
sa
2
0
200
19. Ce este arborele DOM? Oferiți un exemplu, cu codul XML aferent, cu minim
3 nivele în arbore.
Modelul DOM este una din cele două soluţii consacrate (alături de SAX) pentru
extragerea informaţiilor 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 aplicaţie în sine, ci un model abstract implementat la nivelul
parserelor, ca o colecţie de interfeţe de programare (API) ce folosesc paradigma obiectuală
pentru a transpune conţinutul oricărui 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 aplicaţiile consumatoare de XML. Practic, parserul citeşte date din sursa
XML şi alcătuieşte arborele DOM translatând imbricările între marcatori în relaţii tată-fiu şi
unităţile XML în noduri ale arborelui.
Nucleul DOM, numit DOM Core, este un set de interfeţe de programare de uz general la
care se adaugă module opționale precum cele adaptate pentru manipulare de de stiluri HTML,
care nu apar neapărat în toate implementările şi dintre care indicăm:
DOM Views – pentru manipularea unei reprezentări 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 porţiuni de document care nu
reprezintă neapărat colecţii de noduri (fragmente, conţinut textual).
<produse>
<produs cod="p01">Televizor</produs>
</produse>
Un parser DOM va crea din acest exemplu următoarea ierarhie de noduri:
Document Node
Documentul
complet
NodeList
Element Node
<produse>
NodeList
Element Node
<produs>
NodeList NamedNodeMap
CharacterData
Text Node
„Televizor”
23. Realizați o comparație între XML și JSON, incluzând câte un exemplu din
fiecare.
24. Enumerați și explicați 6 metode, funcții sau atribute (JavaScript) prin care se
poate modifica formatul sau conținutul paginii 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
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
29. Realizați o comparație î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
30. Care e diferența între buna formare și validitatea unui document XML (și
ce înseamnă fiecare)
• Principiul XML este că aplicaţiile 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 aplicaţie poate
genera orice structură de date XML);
• Principiul JSON este că orice aplicaţie trebuie să fie permisivă la receptarea
datelor şi restrictivă la generarea lor, adică să poată prelucra orice structuri de
date primite şi să fixeze nişte reguli stricte pentru structurile de date generate;
10. GRAFICĂ
Turtle11 este o versiune optimizată sintactic pentru N-triples, creată cu scopul de a face
cunoștințele mai ușor de tastat și de citit. Scopul acestei sintaxe a fost să ofere o serie de
abrevieri, iar fișierele se salvează cu extensiile .ttl sau .n3.
Cea mai importantă facilitate sintactică e posibilitatea de a evita repetarea porțiunilor
comune din identificatorii URI, cu ajutorul unui prefix (spațiu de nume). De exemplu, în
loc de:
...vom putea defini un prefix locțiitor pentru partea de URI care se repetă (de
asemenea nu mai sunt necesare parantezele ascuțite):
@prefix : <http://expl.ro#>.
:Alin :FrateCu :Andrei .
:Alin :areVarsta 20 .
Listele sunt mai apropiate claselor decât containerele, prin aceea că de obicei elementele
enumerate într-o listă au o semnificație comună, ar putea deveni elementele unei clase. De aceea,
vom vedea mai târziu, OWL se bazează pe liste la definirea claselor: permite ca o clasă să fie
creată prin enumerarea listei elementelor sale (și prin aceasta aplică și o închidere clasei); în
plus mai permite ca o clasă să fie definită prin intersecție sau reuniune aplicate asupra unei
liste de alte clase.
Aici nu am mai folosit owl:maxCardinality ci cardinalitatea precisă: Alin are exact doi copii
distincți. Atenție însă, aceasta nu înseamnă că baza de cunoștințe trebuie să conțină doi copii
pentru Alin! În numele principiului Open World, o bază de cunoștințe nu e niciodată
completă, pot apare în viitor noi afirmații, deci se tolerează absența afirmațiilor despre copii lui
Alin. Nu se tolerează însă depășirea acestui număr (mai exact, se încearcă interpretarea
depășirii prin astfel de echivalențe, dacă nu există probe contrarii care să afirme distincția).
…se va deduce:
:Ana owl:sameAs :Aneta.
O persoană nu poate avea două mame naturale, deci cele două mame trebuie să fie
una și aceeași.
Dacă ajungem pe alte căi și la concluzia că :Ana și :Aneta nu au cum să fie aceeași
persoană, ajungem la contradicție. Acest aspect e valabil pentru toate exemplele ce urmează:
regulile prezentate vor detecta echivalențe atâta timp cât nu există alte reguli care să detecteze
distincția între aceiași indivizi. Altfel se vor produce contradicții. Detectarea automată a
echivalențelor poate automatiza maparea semantică între baze de cunoștințe din surse diferite,
generând automat echivalențe.
Aceasta se comportă invers față de cea funcțională: pe orice obiect îl poate pune în
relație cu un singur subiect. Dacă apar mai multe subiecte, se va deduce echivalența lor.
@prefix : <http://expl.ro#>.
:areEmail a owl:InverseFunctionalProperty.
…se va deduce:
:Ana owl:sameAs alt:Aneta.
(ne bazăm pe prezumția că două persoane nu pot avea același e-mail, deci dacă
apare o astfel de situație e vorba de aceeași persoană)
…se va deduce:
:Ana owl:sameAs :Aneta.
…se va deduce:
:CopilCuUnParinte a owl:Restriction, owl:Class.
Deoarece în prima fază am afirmat că Alin face parte din clasa celor cu un parinte (mai
exact, care au relația :areParintePe cu un singur obiect), iar apoi am indicat doi părinți, s-a
dedus că aceștia trebuie să fie una și aceeași persoană.
Exemplul e similar celui de mai sus, dar cardinalitatea e mai mare decât 1, deci avem
nevoie și de o serie de distincții pentru a putea concluziona echivalența:
@prefix : <http://expl.ro#>.
Diferențierea lui Mihai față de restul copiilor lui Alin ne permite să concluzionăm care
copii ar putea fi echivalenți pentru a menține corectitudinea afirmației că Alin are 2 copii:
:ParinteCuDoiCopii a owl:Restriction.
Aici nu am mai folosit owl:maxCardinality ci cardinalitatea precisă: Alin are exact doi
copii distincți. Atenție însă, aceasta nu înseamnă că baza de cunoștințe trebuie să conțină doi
copii pentru Alin! În numele principiului Open World, o bază de cunoștințe nu e niciodată
completă, pot apare în viitor noi afirmații, deci se tolerează absența afirmațiilor despre copii
lui Alin. Nu se tolerează însă depășirea acestui număr (mai exact, se încearcă interpretarea
depășirii prin astfel de echivalențe, dacă nu există probe contrarii care să afirme distincția).
…se va deduce:
alt:Gerar owl:sameAs :Ianuarie.
Deducția 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 ceilalți (altfel ajungem la contradicție).
45. Exemplificați și explicați trei moduri de deducere a distincției indivizilor.
În continuare vom sugera o serie de căi pe care se poate deduce distincția indivizilor.
În practică distincția trebuie dedusă fie pentru a verifica dacă există discrepanțe
logice între concepte din baze de cunoștințe diferite (cu prefixe diferite), fie
pentru a verifica dacă o anumită baze de cunoștințe nu este cumva contradictorie cu
ea însăși.
:Ana a :Femeie.
:Marian a :Barbat.
…se va deduce:
:Ana owl:differentFrom :Marian.
@prefix : <http://expl.ro#>.
:Ana a :Femeie.
:Marian a _:x.
…se va deduce:
_:x owl:disjointWith :Femeie.
…și de aici:
:Ana owl:differentFrom :Marian.
@prefix : <http://expl.ro#>.
…se va deduce:
:Ana owl:differentFrom :Maria.
Idem se poate deduce distincția obiectelor, dacă subiectul e fix și obiectele variază.
Deducerea disjuncției claselor sau proprietă ților din listă de clase disjuncte
(owl:AllDisjointClasses), respectiv listă de proprietă ți incompatibile (owl:AllDisjointProperties).
Din afirmațiile:
@prefix : <http://expl.ro#>.
:StudentGrupa1 a owl:AllDifferent.
:Gen a owl:AllDisjointClasses.
:RelatieRudenie a owl:AllDisjointProperties.
@prefix : <http://expl.ro#>.
…se va deduce:
:Femeie rdfs:subClassOf :Om.
sau
:EchipaFotbal owl:distinctMembers (:Steaua :Dinamo :Rapid).
:Rapid a :EchipaFotbal.
În realitate complementul mulțimii :Femeie e format din toate lucrurile din univers care
nu sunt femei, de exemplu o piatră. Pentru a defini corect mulțimea Barbat pornind de la
Femeie, va trebui să afirmăm:
:Barbat owl:intersectionOf (:Om _:X).
2
0
200
49. Ce este arborele DOM? Oferiți un exemplu, cu codul XML aferent, cu minim
3 nivele în arbore.
Modelul DOM este una din cele două soluţii consacrate (alături de SAX) pentru
extragerea informaţiilor 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 aplicaţie în sine, ci un model abstract implementat la nivelul
parserelor, ca o colecţie de interfeţe de programare (API) ce folosesc paradigma obiectuală
pentru a transpune conţinutul oricărui 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 aplicaţiile consumatoare de XML. Practic, parserul citeşte date din sursa
XML şi alcătuieşte arborele DOM translatând imbricările între marcatori în relaţii tată-fiu şi
unităţile XML în noduri ale arborelui.
Nucleul DOM, numit DOM Core, este un set de interfeţe de programare de uz general la
care se adaugă module opționale precum cele adaptate pentru manipulare de de stiluri HTML,
care nu apar neapărat în toate implementările şi dintre care indicăm:
DOM Views – pentru manipularea unei reprezentări 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 porţiuni de document care nu
reprezintă neapărat colecţii de noduri (fragmente, conţinut textual).
<produse>
<produs cod="p01">Televizor</produs>
</produse>
Document Node
Documentul
complet
NodeList
Element Node
<produse>
NodeList
Element Node
<produs>
NodeList NamedNodeMap
CharacterData
Text Node
„Televizor”
53. Realizați o comparație între XML și JSON, incluzând câte un exemplu din
fiecare.
XML
<produse>
</produse>
Produse=[{denumire:televizor, pret:100},{denumire:Calculator,pret:200}]
54. Enumerați și explicați 6 metode, funcții sau atribute (JavaScript) prin care se
poate modifica formatul sau conținutul paginii 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:
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
58. Realizați o comparație între XSLT și XPath (diferențe și asemănări).
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
59. Realizați o comparație î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 .
60. Care e diferența între buna formare și validitatea unui document XML (și
ce înseamnă fiecare)