Question Bank
Se consideră tabela conţinând înregistrările şi tranzacţiile
(T1) UPDATE R SET A = A*2
(T2) SELECT AVG(A) FROM R; SELECT MAX(A) FROM RDacă tranzacţia T2 se execută folosind nivelul de izolare repeatable read, care dintre următoarele
afirmaţii este adevărată:
Dacă AVG(A) = 1.5 atunci MAX(A) poate să ia valorile 2 sau 4
AVG(A) va fi întodeauna 1.5 iar MAX(A) = 2
AVG(A) poate să ia valorile 1.5 sau 3, iar MAX(A) valorile 2 sau 4
Dacă MAX(A) = 4 atunci AVG(A) este 1.5
Trei dintre expresiile relaţionale de mai jos returnează numele studenţilor care nu au aplicat la specializările CS sau PH. Care returnează altceva? (Observaţie: numele studenţilor pot fi duplicate.)
Tabelul de mai jos conţine un eşantion de date reprezentativ pentru toate dependenţele funcţionale dintr-un set de date real. Care sunt dependenţele funcţionale ce pot fi extrase din aceste date?
Considerând relaţia R(A, B, C, D, E, F) unde A - F sunt coloanele din tabelul de mai sus şi dependenţele funcţionale tot cele de mai sus, care dintre următoarele seturi de atribute este cheie candidată?
Problema de mai sus:
Tabelul de mai jos conţine un eşantion de date reprezentativ pentru toate dependenţele funcţionale dintr-un set de date real. Care sunt dependenţele funcţionale ce pot fi extrase din aceste date?
Relativ la relaţia R de mai sus, care dintre următoarele afirmaţii sunt false?
Problema de mai sus:
Tabelul de mai jos conţine un eşantion de date reprezentativ pentru toate dependenţele funcţionale dintr-un set de date real. Care sunt dependenţele funcţionale ce pot fi extrase din aceste date?
Relaţia se află în prima formă normală
Relaţia se află în a doua formă normală
La o adresă (coloana B) nu pot corespunde valori diferite în coloana A
Nu pot exista două înregistrări în tabela R cu valori diferite în coloana D dacă valorile din coloana A sunt identice
Fie următoarea diagramă E/R. Care dintre următoarele relatii fac parte din reprezentarea acestei diagrame în modelul relaţional?
Courses(CID, title)
Students(SID, name)
Enroll(SID,CID)
Enroll(SID, name, CID, title, grade)
Students(SID, name, CID)
Enroll(SID, CID, grade)
Presupunem că în tabela EMPLOYEES sunt 10 angajati care au salarii de 1000 euro fiecare, cu exceptia unuia care are valoarea NULL si că primii 5 angajati lucrează în departamentul 1 si ceilalti 5 angajati, în departamentul 2. Câte linii va afisa interogarea următoare:
SELECT department_id, SUM(salary)
FROM employees
GROUP BY department_id
HAVING SUM(NVL(salary,1000)) > 4000;Nicio linie
O linie
Două linii
Un alt răspuns
Care dintre interogarile de mai jos selectează identificatorul (ID) si numele departamentelor care nu au angajati? Coloana este comună tabelelor si .
SELECT d.department_id, d.department_name
FROM departments d
WHERE NOT EXISTS (SELECT 1
FROM employees e
WHERE e.department_id=d.department_id);SELECT d.department_id, d.department_name
FROM employees e LEFT OUTER JOIN departments d
ON (d.department_id=e.department_id) WHERE e.department_id IS NULL;SELECT d.department_id, d.department_name
FROM employees e RIGHT OUTER JOIN departments d
ON (d.department_id=e.department_id) WHERE e.department_id IS NULL;SELECT department_id, department_name
FROM departments
MINUS SELECT d.department_id, d.department_name
FROM employees e JOIN departments d ON e.department_id=d.department_id;Dacă se doreste afisarea tuturor locatiilor care nu au niciun departament, precum si a departamentelor care nu au fost asignate niciunei locatii, ce tip de JOIN între tabelele DEPARTMENTS si LOCATIONS va afisa aceste informatii ca parte din liniile returnate?
NATURAL JOIN
FULL OUTER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
Care dintre afirmatiile referitoare la indecsi sunt corecte?
Când un tabel este sters, indecsii corespunzători acestuia sunt stersi automat.
Pentru fiecare operatie DML realizată, indecsii corespunzători sunt actualizati automat.
Indecsii se recomandă a fi creati pentru coloane care sunt în mod frecvent referite ca parte a unei expresii.
Pentru fiecare constrângere de cheie primară sau cheie unică (PRIMARY KEY sau UNIQUE) dintr-un tabel se creează automat un index unic.
Prin următoarea instructiune SQL se doreste a regăsi liniile din tabelul ORDER_ITEMS aferente produselor identificate prin PRODUCT_ID care au un UNIT_PRICE mai mare decât 1000 si care au fost comandate de mai mult de 5 ori.
SELECT product_id, COUNT(order_id) total, unit_price
FROM order_items
WHERE unit_price>1000 AND COUNT(order_id)>5
GROUP BY product_id, unit_price; Care afirmatii sunt adevărate cu privire la instructiunea SQL de mai sus:
Instructiunea se execută si furnizează rezultatul asteptat.
Instructiunea nu se execută întrucât functia de agregare este utilizată în clauza WHERE.
Instructiunea ar trebui să utilizeze operatorul logic OR în loc de AND.
Instructiunea nu se execută deoarece în clauza SELECT coloana UNIT_PRICE este adăugată după coloana pentru care este utilizată functia de agregare.
Se dores,te afis,area coloanelor si aferente angajatilor din tabelul care au acelasi sef cu al angajatului identificat prin si care au un salariu mai mare sau egal cu al aceluiasi angajat identificat prin . Care dintre interogările următoare vor afisa rezultatul dorit?
SELECT first_name, salary
FROM employees
WHERE (manager_id, salary) >= ALL (SELECT manager_id, salary
FROM employees WHERE employee_id = 101)
AND employee_id <> 101;SELECT first_name, salary
FROM employees
WHERE (manager_id, salary) >= ( SELECT manager_id, salary
FROM employees
WHERE employee_id = 101)
AND employee_id <> 101;SELECT first_name, salary
FROM employees
WHERE (manager_id, salary) >= ANY (SELECT manager_id, salary
FROM employees
WHERE employee_id = 101 AND employee_id <> 101);SELECT first_name, salary
FROM employees
WHERE manager_id = (SELECT manager_id
FROM employees
WHERE employee_id = 101)
AND salary >= (SELECT salary
FROM employees
WHERE employee_id = 101)
AND employee_id <> 101;SELECT e.first_name, e.salary
FROM employees e, employees m
WHERE m.employee_id = 101 AND e.manager_id = m.manager_id
AND e.salary >= m.salary AND e.employee_id <> m.employee_id;Evaluati următoarea instructiune
CREATE TABLE: CREATE TABLE products
(product_id NUMBER(6) CONSTRAINT prod_id_pk PRIMARY KEY,
product_name VARCHAR2(15)); Care afirmatii sunt adevărate cu privire la constrângerea ?
Ar fi creată numai dacă în prealabil este creat manual un index unic.
Ar fi creată si ar folosi un index unic creat automat.
Ar fi creată si ar folosi un index non-unic creat automat.
Ar fi creată si ar rămâne în stare dezactivată deoarece nu e specificat explicit niciun index în comandă.
Fiind dată vederea de mai jos, în ce conditii comanda de mai jos va genera o except,ie cauzată de constrângerea ?
UPDATE V SET Curs = ’Baze de date II’ WHERE ID=101;
CREATE VIEW V(ID, Curs, EDate) AS
SELECT StudID, CourseTitle, EnrollmentDate
FROM Enrollments WHERE CourseTitle=’Algebra’ AND Accepted=1
WITH CHECK OPTION;Întotdeauna datorită
Dacă studentul cu ID-ul 101 a fost acceptat la cursul de Algebra
Dacă studentul cu ID-ul 101 a fost acceptat la cursul de Baze de date II
Dacă studentul cu ID-ul 101 a aplicat la cursul de Algebră (indiferent de starea câmpului Accepted)
Fie următoarea secventă de cod:
#define swap(a,b) {int aux; aux=a; a=b; b=aux;}
float x=10.5, y=3.75; în urma apelului ; valorile variabilelor x, respectiv y vor fi:
x=3.75, y=10.5
x=3.0, y=10.5
x=3.75, y=10.0
x=3.0, y=10.0
Ce reprezintă domeniul de vizibilitate a unei variabile?
plaja de valori pe care le poate lua
locul unde se creează
locul din textul sursă unde poate fi folosită
dacă are semn sau nu
La execuţia programului următor se tastează 20. Ce se va afişa după execuţie?
#include <stdio.h>
void main() {
char a;
scanf("%c",&a);
printf("%c",a);
}20
2
0
Care este rezultatul numeric al evaluării expresiei: dacă a=-2, b=-1 si c=0?
1
TRUE
0
FALSE
Ce se va afişa în urma execuţiei secvenţei următoare:
#include <stdio.h>
void main() {
unsigned char x=25;
x=x<<2;
printf("%d",(int)x);
}27
100
23
Ce afişează programul?
#include <stdio.h>
void main() {
int x,y,z;
x=y=z=4;
printf("%d",(x<<z)-(x|y)+(z&y));
}64
4
0
5
33
32
Care din următoarele variante reprezintă modalităţi de comunicare între funcţii?
apel
prin variabile locale
prin argumentele actuale
prin valoarea returnată
prin variabile globale
prin includere
Ce este contextul de apel al unei funcţii?
lista argumentelor formale
o zona de memorie (de pe stivă)
locul din textul sursă în care se apelează
instrucţiunile (definiţia funcţiei)
Care este valoarea variabilei n după execuţia secvenţei:
char t[ ]="timisoara", *p,*q,n;
p=q=t;
while(*(q++));
n=q-p;n=0
n=9
n=10
n=’\0’-’t’
Ce reprezintă declaraţia:
int *(*f)(int *) ?
(i) funcţie ce primeşte argument pointer la întreg şi întoarce pointer la întreg
(ii) o declaraţie greşită
(iii) pointer către o funcţie care aşteaptă ca argument un pointer la int şi întoarce un pointer la int
(iv) pointer către o funcţie care întoarce un int
i
ii
iii
iv
nici una
toate
i şi iv
Ce se afişează în urma executiei următoarei secvente de cod?
#include <stdio.h>
void main() {
char *u[2]={"abc","def"}, **v; v=&u[0];
printf("%c",(*v)[1]);
}a
b
c
d
e
f
abc