Sunteți pe pagina 1din 44

I

1. O planificare serializabila:

Alegeti cel putin un raspuns.

a. este echivalenta cu cel putin o planificare seriala

b. pastreaza consistenta bazei de date

c. este acelasi lucru cu o planificare seriala

2. Autentificarea reprezinta:

Alegeti un raspuns.

a. acordarea unui drept sau privilegiu, care permite unui subiect sa aiba

acces legitim la un sistem sau un obiect dintr-un sistem

b. un mecanism care determina daca un utilizator este cine pretinde a fi

c. orice situatie sau eveniment, intentionat sau neintentionat, care va

afecta negativ un sistem, si n ultima instanta, o organizatie

3.Tranzactiile asigura:

Alegeti un raspuns.

a. confidentialitatea bazei de date

b. transparenta bazei de date

c. coerenta si siguranta bazei de date

d. izolarea bazei de date

4.Colectiile sunt:

Alegeti un raspuns.

a. referinte

b. tipuri de date definite de utilizatori

c. seturi de date care pot fi tratate ca parte a unei singure inregistrari intr-un tabel

d. date scalare
5.Indicati care sunt problemele care pot sa apara in cazul executiei tranzactiilor concurente
susceptibile la interferente:

Raspuns:

6.Care este numele departamentului cu cea mai mica medie salariala.

Raspuns: SELECT d.department_name FROM Departments d, Employees e WHERE


e.department_id=d.department_id AND salary=MIN(AVG(e.salary));

7.Pentru a indica faptul ca o data este de tip sir de caractere, in Oracle se foloseste simbolul:

Alegeti un raspuns.

a. ghilimele

b. nici unul dintre simbolurile amintite

c. apostrof

d. ambele simboluri

8.Pentru a acorda privilegii altor utilizatori se utilizeaza instructiunea:

Alegeti un raspuns.

a. CREATE

b. REVOKE

c. GRANT

9.Fie urmatoarea expresie in algebra relationala: echiv1

Ea este adevarata daca:

Alegeti un raspuns.

a. este intotdeauna valabila

b. multimea de atributa A1...An este inclusa in multimea de atribute B1...Bn

c. multimea de atribute B1....Bn este inclusa in multimea de atribute A1...An

10.Modificarea structurii unui tabel in Oracle poate fi realizata prin instructiunea

Alegeti un raspuns.

a. MODIFY STRUCTURE

b. ALTER TABLE

c. nu se poate modifica

d. DROP TABLE
11.Gasiti angajatii care lucreaza in aceeasi locatie cu managerul general.

Raspuns: SELECT e.first_name FROM Employees e, Departments d WHERE


e.department_id=d.department_id AND d.locations_id IN(SELECT d1.location_id FROM
Departments d1, Employees e1 WHERE e1.department_id=d1.department_id AND
e1.manager_id IS NULL);

12.Autorizarea consta n :

Alegeti un raspuns.

a. recunoasterea faptului ca orice pierdere sau lipsa de disponibilitate a datelor s-ar


putea dovedi potential dezastruoasa

b. a determina daca un utilizator este cine pretinde a fi

c. acordarea unui drept sau privilegiu, care permite unui subiect sa aiba acces legitim la
un sistem sau un obiect dintr-un sistem

13.Creati o secventa care sa inceapa cu valoarea 1000, sa aiba valoarea maxima 1200 si
incrementul egal cu 10. Scrieti o interogare prin care sa verificati existenta secventei
create.

Raspuns: CREATE SEQUENCE maca_seq increment by 10 start with 1000 maxvalue 1200;

SELECT sequence_name FROM user_sequences WHERE sequence_name=maca_seq;

14.In cazul optimizarii sistematice, costul unei interogari:

Alegeti un raspuns.

a. se estimeaza

b. nu este important

c. se calculeaza cu precizie

15.Rolurile reprezinta

Alegeti un raspuns.

a. administratori ai bazei de date

b. conturi de utilizator

c. grupuri de privilegii asociate cunoscute sun un nume generic

16.Un server de baze de date trebuie sa se caracterizeze prin:

Alegeti un raspuns.

a. fiabilitate

b. nu exista astfel de cerinte


c. disponibilitate

17.Comanda care anuleaza o tranzactie abandonata in SQL este:

Alegeti un raspuns.

a. Rollback

b. COMMIT

c. Savepoint

d. SET AUTOCOMMIT

18.Diagrama din figura prezinta modul de desfaurare a unei serii de tranzactii ntr-un
sistem.

- t0 semnifica momentul initial

- tc semnifica momentul cresterii unui punct de control

- tp semnifica momentul aparitiei unei pene

d1

Care din urmatoarele seturi de actiuni sunt corecte pentru recuperarea bazei de date, la
reluarea functionarii sistemului:

A. T1 si T4 - REDO; T5 si T2 - UNDO; T6 si T4 - nimic

B. T1 , T2 si T5 - REDO; T3, T4 si T6 - UNDO;

C. T1 si T5 - REDO; T3 si T6 - UNDO; T2 si T4 - nimic

Alegeti un raspuns.

a. A

b. B

c. C

d. toate variantele sunt corecte

19.Actualizarea datelor in tabele se realizeaza cu comanda:

Alegeti un raspuns.

a. MODIFY

b. UPDATE

c. ALTER
20.Actualizati jobul angajatului cu identificatorul 200 si egalati-l cu cel al unuia dintre ceilalti
salariati, al carui identificator il furnizati dinamic de la tastatura.

Raspuns: UPDATE Employees

SET job_id = (SELECT j.job_id FROM Jobs j, Employees e WHERE e.job_id=j.job_id


AND e.employee_id=&id_employee) WHERE employee_id = 200);

21.Este corect ca atunci cand se doreste o comparare a valorilor dintr-un camp ce contine si
valori .null. sa se foloseasca operatorii relationali?

Raspuns: Adevarat

Fals

22.Structura unei vederi poate fi vizualizata.

Raspuns: Adevarat

Fals

II

1.Fie trei tranzactii care se executa concurent, pentru care se deseneaza urmatorul graf:
gr1
In ipoteza ca acesta este un graf de precedenta, aceasta situatie indica:
Alegeti un raspuns.
a. o planificare necascadabila
b. o planificare seriala
c. o planificare neserializabila
d. o planificare serializabila
e. o stare de interblocare

2.Ce tip de anomalie se manifesta in cazul planificarii de mai jos:pl1


Alegeti un raspuns.
a. actualizare pierduta
b. citire improprie
c. citire nereproductibila

3.Functie de modul de blocare al unitatilor de acces, in SGBD-uri tranzactiile se executa cu


diferite grade de izolare. Care este legatura dintre acestea si performantele interogarilor?
Alegeti un raspuns.
a. un grad de izolare al tranzactiilor scazut, creste performantele interogarilor
b. un grad de izolare al tranzactiilor mare, creste performantele interogarilor
c. nu exista nici o relatie intre cele doua

4.Indicati enunturile corecte:


Alegeti cel putin un raspuns.
a. Numai administratorul bazei de date poate avea privilegii complete pentru un tabel
b. Cnd un utilizator creaza un tabel, el primeste privilegii complete pentru acest tabel.
c. Proprietarul unui tabel este utilizatorul care l-a creat

5.Securitatea bazei de date se refera la:


Alegeti cel putin un raspuns.
a. aelemente de hardware
b. elemente de software
c. persoane si date

6.La Secretariatul facultatii este necesara o lista a studentilor FIESC. In acest scop se pot
formula urmatoarele interogari, asupra tabelului Student:

A. SELECT * FROM student order by nume;


B. SELECT * FROM student;
C. SELECT nume from student order by nume;
D. SELECT nume from student;

Priviti aceste interogari EXCLUSIV prin prisma performantelor. Care ar fi ordinea in care
sugerati executia lor de la cea mai performanta catre cea mai putin performanta.
Alegeti un raspuns.
a. D-B-C-A
b. A-C-B-D
c. A-B-C-D
d. C-B-D-A

7.Diagrama din figura prezinta modul de desfaurare a unei serii de tranzacţii ntr-un
sistem.
- t0 semnifica momentul initial
- tc semnifica momentul cresterii unui punct de control
- tp semnifica momentul aparitiei unei pene

d1

Care din urmatoarele seturi de actiuni sunt corecte pentru recuperarea bazei de date, la
reluarea functionarii sistemului:

A. T1 si T4 - REDO; T5 si T2 - UNDO; T6 si T4 - nimic


B. T1 , T2 si T5 - REDO; T3, T4 si T6 - UNDO;
C. T1 si T5 - REDO; T3 si T6 - UNDO; T2 si T4 - nimic

Alegeti un raspuns.
a. C
b. B
c. A
d. toate variantele sunt corecte

8.O planificare serializabila:


Alegeti cel putin un raspuns.
a. este echivalenta cu cel putin o planificare seriala
b. este acelasi lucru cu o planificare seriala
c. pastreaza consistenta bazei de date

9.Care din urmatoarele elemente NU pot exista in clauza WHERE a unei interogari SQL?
Alegeti un raspuns.
a. operatori relationali
b. conditii de comparare
c. nume de coloane
d. nume de tabele

10.Fie urmatorul tabel:


ANGAJATI (idang, nume, prenume, salariu, data_ang, functie, departament).
Se doreste o lista a angajatilor al caror salariu este mai mare decat salariul a cel putin un
angajat din departamentul Resurse umane.
Care din urmatoarele variante de interogare sunt corecte?

A. SELECT nume, prenume, salariu


FROM angajati
WHERE salariu IN
(SELECT max(salariu)
FROM angajati
WHERE departament='Resurse umane');

B. SELECT nume, prenume, salariu


FROM angajati
WHERE salariu > ANY (SELECT salariu
FROM angajati
WHERE
departament='Resurse
umane');

C. SELECT nume, prenume, salariu


FROM angajati
WHERE salariu <ANY (SELECT salariu
FROM angajati
WHERE
departament='Resurse
umane');

D. SELECT nume, prenume, salariu


FROM angajati
WHERE salariu = ALL (SELECT salariu
FROM angajati
WHERE
departament='Resurse
umane');

Alegeti un raspuns.
a. toate variantele sunt echivalente
b. C
c. B
d. A
e. D

11.ACID inseamna:
Alegeti un raspuns.
a. accesibilitate, izolare si dedublare
b. accesibilitate, identificare
c. atomicitate, credibilitate interes si durabilitate
d. atomicitate, consistenta, izolare si durabilitate

12.Afisati numele angajatului, salariul si numele managerului pentru toti angajatii care au
acelasi salariu si comision precum 'Kochhar'.
Raspuns:

13.Scrieti o interogare care sa intoarca numele si prenumele angajatilor, numele


departamentelor in care lucreaza si numele jobului pe care il ocupa
ocupa.
Raspuns:

14.Fie urmatoarea expresie in algebra relationala:


echiv2
Ea este adevarata:
Alegeti un raspuns.
a. niciodata
b. daca "p" contine exclusiv atribute din lista A1...An
c. intotdeauna
d. daca "p" contine, printre altele, si atribute din lista A1...An

15.Autorizarea consta n :
Alegeti un raspuns.
a. a. acordarea unui drept sau privilegiu, care permite unui subiect sa
aiba acces legitim la un sistem sau un obiect dintr-un sistem
b. recunoasterea faptului ca orice pierdere sau lipsa de disponibilitate
a datelor s-ar putea dovedi potential dezastruoasa
c. a determina daca un utilizator este cine pretinde a fi

16.proprietatea de ...................... asigura ca odata ce o tranzactie a fost validata,


modificarile produse de aceasta nu vor fi pierdute nici in cazul unui defect.
Raspuns:

17.Care dintre urmatoarele conditii din clauza WHERE sunt corecte:

Alegeti cel putin un raspuns.


a. WHERE comm IN (NULL)
b. WHERE comm=NULL
c. WHERE comm is NULL
d. WHERE NVL(comm,0)=0

18.Scrieti o interogare care intoarce numele, prenumele si salariul acelor angajati care au
acelasi manager ca si Popp .
Raspuns:

SELECT first_name, last_name, salary FROM employees WHERE manager_id


IN(SELECT manager_id FROM employees WHERE last_name='Popp')

19.In Oracle fisierele REDO LOG sunt componente ale schemei .............
Raspuns:

20.Indicati 4 ststistici ce se pot pastra in catalogul bazei de date si care sunt folosite in
optimizarea sistematica.
Raspuns:
21.In cazul mecanismului de control al concurentei prin marci de timp, o tranzactie poate
accesa o unitate de acces:
Alegeti un raspuns.
a. relatia intre marcile de timp nu afecteaza procesul de acces la date
b. daca marca sa de timp este mai mica decat marca de timp a unitatii de acces
c. daca si numai daca marca sa de timp este mai mare sau egala cu marca de timp a
unitatii de acces a

III

1. Scrieti o interogare care intoarce numele, prenumele si salariul acelor


angajati care lucreaza in acelasi departament ca Popp

select fs,ls,sal from emp where dep_id IN (select dep_id from emp
where fs='pop')

2. 2.Scrieti o interogare care sa intoarca numele si prenumele angajatilor,


numele departamentelor in care lucreaza si numele jobului pe care il ocupa.
select e.fs, e.ln, d.dep_name, j.job_title from emp e, dep d, jobs j where
e.dep_id=d.dep_id and e.job_id=j.job_id

3. Afisati numele, identificatorul departamentului si salariul pentru angajatii al


caror identificator de departament si salariu, corespund celor ale angajatilor
care primesc comision
select e.fs, e.dep_id, e.salary from emp e, emp d where e.dep_id =
d.dep_id and e.sal=d.sal and comission_pct is not null
4. folosind macrosubstitutia, sa se afiseze lista angajatilor care lucreaza in
departament,id-ul departamentului se da la tastatura
select fs, dep_id from emp where dep_id=&id_departament;

5. sa se afiseze numele angajatilor,numele departamentului in care lucreaza si


orasul.
select e.fs, d.dep_name, l.city from emp e, dep d, loc l where
e.dep_id=d.dep_id and d.loc_id=l.loc_id

6. create sequence maca_seq


increment 10
start with 200
maxvalue 1000;
select sequence_name from user_sequences where
sequence_name='maca_seq';
7. sa se afiseze o lista cu joburile angajatilor care au id-ul locatiei 1700
select j.job_title from jobs j, emp e, dep d, loc l where e.job_id=j.job_id and
e.dep_id=d.dep_id and d.loc_id = 1700

8. Care dintre urmatoarele conditii din clauza WHERE sunt corecte:


Alegei cel puin un rspuns.
a. WHERE comm=NULL
b. WHERE NVL(comm,0)=0
c. WHERE comm IN (NULL)
d. WHERE comm is NULL

9. Urmatoarea interogare intoarce eroare:


UPDATE employees
SET salary = (SELECT salary
FROM employees
WHERE employee_id IN (100.101,102))
WHERE employee_id = 110;

Rspuns: Adevrat Fals

IV

Question 1
Puncte: 1
Este corect ca atunci cand se doreste o comparare a valorilor dintr-un camp ce contine
si valori .null. sa se foloseasca operatorii relationali?
Rspuns:
Adevrat Fals
Question 2
Puncte: 1

Fie dou relaii cu scheme identice: R(A,B) i S(A,B). Care din egalitile urmtoare sunt
echivalente n algebra relaional:

Alegei un rspuns.
a. egalitatile 1 si 2
b. egalitatile 1 si 3

c. toate cele trei egalitati


Question 3
Puncte: 1
O interogare scalara intoarce:
Alegei un rspuns.
a. exact valoarea unei coloane dintr-o inregistrare (A scalar query is a query that returns one
row consisting of one column.)
b. exact o inregstrare

c. un mesaj de eroare
Question 4
Puncte: 3
Fie urmatoarele tabele:
CONTRACTE (codcli, tip_prestatie, cant, pr_unitar)
FACTURI (numar, data, codcli, tip_prest, cant, valoare)

si urmatoarea interogare SQL:


SELECT c.codcli, f.numar, f.data, f.cant, f.tip_prest
FROM contracte c, facturi f
WHERE c.codcli=f.codcli and c.tip_prest=f.tip_prest and c.cant>f.cant

Analizati interogarea si specificati, in limbaj natural, care este problema pe care o


rezolva. Verificati daca interogarea este corect formulata si motivati raspunsul.
Rspuns:

Question 5
Puncte: 1
Fie doua tranzactii T1 si T2 pentru care se propune urmatoarea planificare:

In cazul utilizarii mecanismului de control al concurentei prin marci de timp, ce puteti


spune despre aceasta planificare:
Alegei un rspuns.
a. conduce catre o anomalie de actualizare pierduta

b. este serializabila

c. este legala
d. produce suspendarea lui T2
Question 6
Puncte: 1
Pentru campurile declarate NOT NULL este oportuna declararea de valori DEFAULT.
Rspuns:
Adevrat Fals

Question 7
Puncte: 1
Operatorul UNION ALL face implicit ordonarea rezultatelor dupa valorile din prima
coloana.
Rspuns:
Adevrat Fals
Question 8
Puncte: 1
Fie urmatorul tabel:
ANGAJATI (idang, nume, prenume, salariu, data_ang, functie, departament).
Se doreste o lista a angajatilor al caror salariu este mai mic decat salariul tuturor
angajatilor din departamentul Resurse umane.
Care din urmatoarele variante de interogare sunt corecte?

A. SELECT nume, prenume, salariu


FROM angajati
WHERE salariu >ALL (SELECT max(salariu)
FROM angajati
WHERE departament='Resurse umane');

B. SELECT nume, prenume, salariu


FROM angajati
WHERE salariu =ALL (SELECT salariu
FROM angajati
WHERE departament='Resurse umane');

C. SELECT nume, prenume, salariu


FROM angajati
WHERE salariu <ALL (SELECT salariu
FROM angajati
WHERE departament='Resurse umane');

D. SELECT nume, prenume, salariu


FROM angajati
WHERE salariu < ANY (SELECT salariu
FROM angajati
WHERE departament='Resurse umane');

Alegei un rspuns.
a. C

b. B

c. D

d. toate variantele sunt echivalente

e. A
Question 9
Puncte: 1
Autorizarea consta n :
Alegei un rspuns.
a. recunoasterea faptului ca orice pierdere sau lipsa de disponibilitate a datelor s-ar putea
dovedi potential dezastruoasa
b. a. acordarea unui drept sau privilegiu, care permite unui subiect sa aiba acces legitim la un
sistem sau un obiect dintr-un sistem
c. a determina daca un utilizator este cine pretinde a fi
Question 10
Puncte: 1
proprietatea de ...................... asigura ca odata ce o tranzactie a fost validata,
modificarile produse de aceasta nu vor fi pierdute nici in cazul unui defect.
Rspuns:

durabilitate
Question 11
Puncte: 1
Oracle permite utilizarea unei subinterogari in clauza FROM.
Rspuns:
Adevrat Fals
Question 12
Puncte: 1
Diagrama din figur prezint modul de desfurare a unei serii de tranzacii ntr-un sistem.
- t0 semnific momentul iniial
- tc semnific momentul crerii unui punct de control
- tp semnific momentul apariiei unei pene
Care din urmatoarele seturi de actiuni sunt corecte pentru recuperarea bazei de date, la reluarea functionarii
sistemului:

A. T1 , T2 si T5 - REDO; T3, T4 si T6 - UNDO;

B. T1 si T4 - REDO; T5 si T2 - UNDO; T6 si T4 - nimic

C. T1 si T5 - REDO; T3 si T6 - UNDO; T2 si T4 - nimic

Alegei un rspuns.
a. C

b. toate variantele sunt corecte

c. B

d. A
Question 13
Puncte: 1
Ce tip de anomalie se manifesta in cazul planificarii de mai jos:
Alegei un rspuns.
a. actualizare pierduta

b. citire improprie

c. citire nereproductibila
Question 14
Puncte: 1
Pentru a acorda privilegii altor utilizatori se utilizeaza instructiunea:
Alegei un rspuns.
a. GRANT

b. CREATE

c. REVOKE
Question 15
Puncte: 1
Colectiile sunt:
Alegei un rspuns.
a. seturi de date care pot fi tratate ca parte a unei singure inregistrari intr-un tabel
b. tipuri de date definite de utilizatori

c. referinte

d. date scalare
A collection is an ordered group of elements having the same data type. Each
element is identified by a unique subscript that represents its position in the
collection.
Question 16
Puncte: 1
Care din urmatoarele elemente NU pot exista in clauza WHERE a unei interogari
SQL?
Alegei un rspuns.
a. nume de coloane

b. nume de tabele

c. operatori relationali

d. conditii de comparare
Question 17
Puncte: 1
Utilizarea unui ceas de garda este o metoda de prevenire a interblocarilor.
Rspuns:
Adevrat Fals
Question 18
Puncte: 1
Modificarea structurii unui tabel in Oracle poate fi realizata prin instructiunea
Alegei un rspuns.
a. MODIFY STRUCTURE

b. ALTER TABLE

c. nu se poate modifica

d. DROP TABLE
Question 19
Puncte: 1
La Secretariatul facultatii este necesara o lista a studentilor FIESC. In acest scop se
pot formula urmatoarele interogari, asupra tabelului Student:

A. SELECT * FROM student order by nume;


B. SELECT * FROM student;
C. SELECT nume from student order by nume;
D. SELECT nume from student;
Priviti aceste interogari EXCLUSIV prin prisma performantelor.

1. Intr-o interogare SQL, clauza care ne permite sa specificam acele campuri care vor fi afisate in
rezultat este...SELECT

2. O serie de interoari SQL in Oracle folosesc in clauza FROM cuvantul DUAL. Ce reprezinta acesta?
Dati un exemplu...
Dual e un tabel care se creaza by default intr-o baza de date de ex: select sysdate from Dual

3.Care sunt operatiile de modificare a structurii unui tabel? Care este instructiunea SQL care va
permite sa realizati aceste operatii?

poti modifica numele coloanelor, sterge coloane, adaugare etc

instructiunea sql : Alter table

4.

Puncte: 1

In care din urmatoarele instructiuni SQL se foloseste o vedere in-line?

A. SELECT a.last_name, a.salary, a.department_id, b.salavg

FROM employees a, ( SELECT department_id, AVG(salary) salavg

FROM employees

GROUP BY department_id) b

WHERE a.deparment_id = b. department_id AND a.salary >b.salavg;

B. SELECT employee_id, last_name,

(CASE

WHEN department_id = (SELECT department_id

FROM departments
WHERE location_id =1800) THEN 'Canada'

ELSE 'USA'

END) location

FROM employees;

C. CREATE VIEW ang_80 AS

SELECT * FROM employees

WHERE department_id=80;

Alegei un rspuns.

a. A

b. C

c. B

5.Completati urmatoarea interogare SQL:

SELECT last_name, NVL(commission_pct,0)

FROM employees;

astfel incat sa afiseze comisionul

primit de fiecare angajat, iar daca acesta nu primeste comision sa afiseze valoarea 0.

6.Care dintre urmatoarele conditii din clauza WHERE sunt corecte:

Alegei cel puin un rspuns.

a. WHERE comm=NULL

b. WHERE NVL(comm,0)=0

c. WHERE comm IN (NULL)

d. WHERE comm is NULL

7.Urmatoarea interogare intoarce eroare:

UPDATE employees

SET salary = (SELECT salary


FROM employees

WHERE employee_id IN (100.101,102))

WHERE employee_id = 110;

Rspuns: Adevrat

Fals

1.Scrieti o interogare care intoarce numele, prenumele si salariul acelor angajati care lucreaza in
acelasi departament ca Popp

SELECT first_name, last_name, salary FROM employees WHERE department_id IN(SELECT


department_id FROM employees WHERE last_ame = 'Popp')

2.Scrieti o interogare care sa intoarca numele si prenumele angajatilor, numele departamentelor in


care lucreaza si numele jobului pe care il ocupa.

SELECT e.first_name, e.last_name, d.department_name, j.job_title FROM Employees e, Departments d,


Jobs j Where e.job_id = j.job_id AND e.department_id= d.department_id

3.Afisati numele, identificatorul departamentului si salariul pentru angajatii al caror identificator de


departament si salariu, corespund celor ale angajatilor care primesc comision

SELECT e.first_name, e.last_name, e.department_id, e.salary FROM Employees e, Employees d WHERE


e.department_id = d.department_id AND d.salary = e.salary AND d.commission_pct IS NOT NULL

1. O interogare care avea ceva de genul e corecta

......IN(178.174,171)

Adevarat

Fals

2.Care sunt expresiile conditionale care se pot folosi in select?

case, decode

3.Afisarea tabelelor pt schema user

SELECT table_name FROM user_tables

4.Ce obiecte nu se folosesc in clauza where?

a)numele tabelelelor

b)numele coloanelor

c)op. relationale

d)

5.Care este tabelul din care se afiseaza data curenta?DUAL


6.Diferenta dintre salariul maxim si cel minim din employees

SELECT MAX(salary)-MIN(salary) FROM employees

1.Afisati numele, data angajarii (hire_date) si salariul pentru toti angajatii care au acelasi salariu si
comision precum 'Kochhar'.

SELECT last_name,hire_date,salary from Employees WHERE (salary,nvl(commission_pct,0)) IN (select


salary,nvl(commission_pct,0) FROM employees WHERE last_name='Kochhar')

2.Folosind macrosubstitutia, sa se afiseze lista angajatilor care lucreaza in departament,id-ul


departamentului se da la tastatura

SELECT first_name,department_id FROM employees WHERE department_id=&department_id;

3.Sa se afiseze numele angajatilor,numele departamentului in care lucreaza si orasul.

SELECT e.first_name||e.last_name,d.department_name,l.city FROM employees e,departments


d,locations l

WHERE e.department_id=d.department_id AND d.location_id=l.location_id;

1. Interogare care intoarce numele, prenumele si salariul acelor angajati care au salarii cel mult egale
cu cel al lui Popp.

SELECT first_name, last_name,salary FROM Employees WHERE salary <=(SELECT salary FROM
Employees WHERE last_name=Popp);

1. DE AFISAT DEPARTAMENTELE FARA ANGAJATI

select department_name,department_id
from departments d
where NOT EXISTS( select * from employees e where d.department_id =
e.department_id)

2. DE AFISAT ANGAJATII DIN ACEEASI LOCATIE CU MANAGERUL


PRINCIPAL

select e.first_name,e.last_name,d.location_id
from employees e,departments d
where d.location_id = (select location_id from employees e,departments d
where e.manager_id is null and e.department_id = d.department_id ) AND
e.department_id = d.department_id
3. DE AFISAT ANGAJATII CU SALARIU SI DEPARTMENT_ID
CORESPUNZATOARE CU CELE ALE ANGAJATILOR CARE PRIMESC
COMISION

select first_name,last_name,department_id,commission_pct
from employees
where (department_id,salary) IN (Select department_id,salary from
employees where commission_pct is not null)

L1

1. Gasiti structura completa a tabelelor employees, departments si


locations.
describe employees;
describe departments;

2. Afisati continutul tabelelor departments, employees, locations, jobs si


job_history.

select * FROM employees, departments, locations, jobs, job_history

3. Se doreste o lista cu numele, identificatorul jobului, data angajarii si


identificatorul
angajatului pentru fiecare persoana angajata. Numele campurilor afisate vor
fi exact cele
mentionate mai sus.

select first_name as "Numele", job_id as "Indetificatorul jobului", hire_date


as "Data angajarii",
employee_id as "Identificatorul angajatului"
FROM employees

4. Se cere o lista in care numele angajatilor sa fie concatenate cu


identificatorii joburilor
acestora. Elementele vor fi separate intre ele printr-o virgula si un spatiu, iar
coloana se
va numi Angajat_functie.

select (first_name|| ',' ||employee_id) as Angajat_functie


FROM employees
5. Creati o lista cu numele si salariile angajatilor care castiga mai mult de
5000 pe luna.

select first_name, salary


FROM employees
WHERE salary>5000

6. Creati o lista care sa afiseze numele, prenumele, job-ul si data angajarii


pentru persoanele
alcaror prenume este Matos si Taylor. Ordonati inregistrarile ascendent dupa
vechimea
angajatilor.

select first_name, last_name, job_id, hire_date


FROM employees
WHERE last_name LIKE 'Matos' OR last_name LIKE 'Taylor'
ORDER BY hire_date ASC

7. Afisati angajatii care au in prenume, pe pozitia a treia litera a.

select first_name
FROM employees
WHERE substr(first_name,3,1)='a'

8. Afisati data sistem. Etichetati coloana cu Data_curenta.

SELECT sysdate
FROM dual

9. Se doreste o lista cu perioadele in care au lucrat angajatii in companie.


Pentru aceasta se
va afisa numele fiecarui angajat si se va calcula numarul de luni de la
angajare. Se va
eticheta aceasta coloana cu Luni_lucrate.

select first_name, hire_date, months_between(sysdate,hire_date)as


"Luni_Lucrate"
from employees
ORDER BY hire_date

10. Scrieti o interogare care sa afiseze numele angajatilor si


comisionul incasat. Daca
angajatul nu primeste comision, se va scrie fara comision.

select first_name, NVL(TO_CHAR(commission_pct), 'Fara Comision')


FROM employees
11. Realizati o lista care sa contina numarul de angajati pe fiecare
job.

SELECT job_id, count(job_id)


FROM Employees
GROUP BY job_id

12. Gasiti numarul managerilor din companie (fara a afisa detalii


despre acestia).

SELECT count(distinct manager_id)


FROM Employees

13. Afisati diferenta dintre salariulmaxim si cel minim incasat si


etichetati coloana cu
Diferente_salariale.

select MAX(salary)-MIN(salary)
FROM Employees

L2
1. Gasiti numele angajatului si numele functiei pe care o ocupa, pentru
acei angajati care nu au manageri.

SELECT first_name, j.job_title


FROM employees e,jobs j
WHERE manager_id IS NULL and j.job_id=e.job_id

2. Gasiti numele si salariul lunar al angajatilor care primesc intre 5000 si


12000 si care
lucreaza in departamentul 20 sau 50. Etichetati coloanele astfel: Angajat si
Salariu
lunar.
SELECT (first_name|| ' ' ||last_name) as Angajat_functie ,salary AS salariu,
j.job_title
FROM employees e,jobs j
WHERE SALARY BETWEEN 5000 and 12000 AND e.job_id=j.job_id AND
DEPARTMENT_ID BETWEEN 20 AND 50

3. Afisati numele, salariul si comisionul acelor angajati care primesc un


comision de 20%.
Etichetati corespunzator coloanele in lista generata.

select (first_name|| ' ' ||last_name) as Nume, salary as Salariu,


COMMISSION_PCT as Comision
FROM Employees
WHERE COMMISSION_PCT=0.20

4. Scrieti o interogare care afiseaza numele si salarile angajatilor care


castiga mai mult decat
salariul mediu din companie.

select first_name, avg(salary)


from employees
WHERE salary > (select avg(salary) from employees)
group by first_name

5. Scrieti o interogare care afiseaza numele si salariul angajatilor


subordonati lui King.

select e.first_name, e.salary, e.last_name


from employees e, employees m
WHERE e.employee_id=m.manager_id AND m.last_name LIKE 'King'

6. Scrieti o interogare care afiseaza toti angajatii care castiga mai mult
decat oricare din
angajatii departamentului cu identificatorul 60.

SELECT first_name, department_id, salary


FROM employees e
WHERE salary > (select min(salary) from employees e2 where
e2.department_id = 60);

7. Scrieti o interogare care afiseaza toti angajatii care castiga mai mult
decat toti angajatii
departamentului cu identificatorul 60.
SELECT first_name, department_id, salary
FROM employees e
WHERE salary > (select max(salary) from employees e2 where
e2.department_id = 60);

8. Creati o lista cu angajatii care ocupa, cel putin pentru a doua oara,
aceeasi functie.
(utilizati operatorul intersectie)

SELECT job_id, employee_id FROM job_history


INTERSECT
SELECT job_id, employee_id FROM job_history;

L3
9. Utilizand operatorii pe multimi , scrieti o interogare care sa afiseze
identificatorii acelor
departamente care nu contin job-ul cu identificatorul "ST_CLERK".

select department_id
from departments
minus
select department_id
from employees
where job_id != 'ST_CLERK'

10.Scrieti o interogare care sa afiseze identificatorii departamentelor care au cel


putin un angajat.

select department_id
from departments
intersect
select department_id
from employees

11.Scrieti o lista a job-urilor pentru departamentele 10, 50, 20 in aceasta


ordine. Afisati
identificatorii job-urilor si identificatorii departamentelor folosindu-va de operatorii
pe multimi.
select job_id,department_id
from employees
union
select job_id,department_id
from employees
where department_id = 10 or department_id = 50

L4
1. Executati interogarea din exemplul referitor la compararea
imperecheata a coloanelor,in
cazul subinterogarilor ce folosesc coloane multiple.

SELECT employee_id, manager_id, department_id


FROM employees
WHERE (manager_id, department_id) IN
(SELECT manager_id, department_id
FROM employees
WHERE employee_id IN (178,174))
AND employee_id NOT IN (178,174);

2. Transformati interogarea de mai sus astfel incat sa realizeze


compararea neimperecheata
a coloanelor. Comparati rezultatele cu cele obtinute la punctul anterior.

SELECT employee_id, manager_id, department_id


FROM employees
WHERE manager_id IN
(SELECT manager_id
FROM employees
WHERE employee_id IN (174,141))
AND department_id IN
(SELECT department_id
FROM employees
WHERE employee_id IN (174,141))
AND employee_id NOT IN (174,141);

3. Afisati numele, identificatorul departamentului si salariul pentru angajatii al


caror identificator
de departament si salariu, corespund celor ale angajatilor care primesc comision.
SELECT employee_id, first_name, salary
FROM employees
WHERE (department_id, salary) IN
(SELECT department_id, salary
FROM employees
where commission_pct is not null )

4. Afisati numele, numele departamentului si salariul angajatilor al caror salariu


si comision
corespund salariului si comisionului oricarui salariat care lucreaza in locatia cu
identificatorul
1700.

SELECT e.first_name, e.salary


FROM employees e
WHERE (e.salary, e.commission_pct) IN
(SELECT salary, commission_pct
FROM employees ,departments d
where d.location_id = 1700 )

5. Afisati numele, data angajarii (hire_date) si salariul pentru toti angajatii care
au acelasi salariu
si comision precum 'Kochhar'.

SELECT e.first_name, e.hire_date, e.salary


FROM employees e
WHERE (e.salary, NVL(e.commission_pct,0)) IN
(SELECT salary, NVL(commission_pct,0)
FROM employees
where (last_name) IN
('Kochhar' ) )

6. Scrieti o interogare care sa afiseze numele angajatilor care castiga mai putin
decat media
salariilor din departamentul in care lucreaza.

SELECT e.first_name, e.salary


FROM employees e
WHERE e.salary <
(SELECT avg(salary)
FROM employees
where e.department_id = department_id )

L7
1. Creati o secventa care sa poata fi utilizata pentru coloana cheie primara din tabelul
departments. Secventa trebuie sa inceapa de la valoarea 200 si va avea valoarea
maxima 1000. Incrementul va fi egal cu 10.

create sequence dep_id_seq


INCREMENT BY 10
START WITH 200
MAXVALUE 1000
NOCYCLE
NOCACHE

2. Folositi secventa creata anterior si scrieti un script prin care introduceti doua
departamente: Administratie si Educatie. Rulati scriptul si verificati datele
introduse.

begin
insert into cd_departments values(NEWSEQ.NEXTVAL,'BLA BLA BLA',1,2);
commit;
end;

3. Vizualizati valoarea curenta din secventa creata.

SELECT NEWSEQ.CURRVAL
FROM DUAL;

4. Modificati secventa creata astfel incat incrementul sa devina 5.

ALTER SEQUENCE NEWSEQ


INCREMENT BY 5;

5. Creati un index nonunic pe campul salary din tabelul employees. Denumiti-l


sal_ix_nn.(nn inseamna initialele voastre)

CREATE INDEX sal_ix_nn2


ON cd_employees(salary);

6. Verificati faptul ca acest index a fost creat. Ce trebuie sa consultati pentru a face
aceasta verificare?
select * FROM user_indexes

Stergeti indexul creat.

7. Creati un sinonim pentru tabelul departments. Denumiti-l dep_nn.

CREATE PUBLIC SYNONYM dep_nn2


FOR cd_departments

8. Stergeti sinonimul creat.


drop public synonym dep_nn2
1.care dintre extensiile clauzei group by realizeaza 2^n combinatii?

CUBE

2.sa se calculeze:

-salariul minim pe companie

-salariul minim pt tipul jobului

-salariul minim pt fiecare tip de job si id-ul departamentului

select job_id,department_id,min(salary)

from employees

group by rollup(job_id,department_id)

3.Creati o secventa care sa inceapa de la valoarea 200 si va avea valoarea

maxima 1000. Incrementul va fi egal cu 10.

verificati daca s-a creat secventa

create sequence BG_seq

increment by 10

start with 200

maxvalue 1000;

select sequence_name from user_sequences

where sequence_name='BG_SEQ';
4.sa se afiseze o lista cu joburile angajatilor care au id-ul locatiei 1700

-faci jonctiune intre tabelel employees si departments

5.sa se afiseze numele jobului pt care plata(cumulata) este cea mai mica pt salarii

-nu mai stiu cum era cerinta exact

Partea Teoretica

1. o interogare care avea ceva de genul

......IN(178.174,171)

si trebuia sa alegi daca e adevarata sau falsa

si e falsa ca are punctul in lista aia

2.care sunt expresiile conditionale care se pot folosi in select?

case, decode

3.afisarea tabelelor pt schema user

select table_name from user_tables


4.ce obiecte nu se folosesc in clauza where?

a)numele tabelelelor

b)numele coloanelor

c)op. relationale

d)

5.care este tabelul din care se afiseaza data curenta?

dual

6.diferenta dintre salariul maxim si cel minim din employees

select max(salary)-min(salary) from employees

7.erau vreo 4 inserturi intr-un tabel si trebuia sa le alegi pe cele gresite

Partea Practica

1.Afisati numele, data angajarii (hire_date) si salariul pentru toti angajatii care au
acelasi salariu

si comision precum 'Kochhar'.


select last_name,hire_date,salary from Employees where
(salary,nvl(commission_pct,0)) in (select salary,nvl(commission_pct,0) from
employees where last_name='Kochhar')

2.folosind macrosubstitutia, sa se afiseze lista angajatilor care lucreaza in


departament,id-ul departamentului se da la tastatura

select first_name,department_id

from employees

where department_id=&department_id;

3.sa se afiseze numele angajatilor,numele departamentului in care lucreaza si


orasul.

select e.first_name||e.last_name,d.department_name,l.city

from employees e,departments d,locations l

where e.department_id=d.department_id and d.location_id=l.location_id;

1. Intr-o ierarhie a tipurilor, subtipurile sunt legate de tipurile corespondente prin:

a.legaturi 1:N

b.legaturi 'isa'

c.Mostenire

2. Fie urmatoarea diagrama E/R.

a.un tabel separat legat de tabelul angajati prin legaturi de tip 1:N
b.un tabel incapsulat in tabelul 'angajati'

c.un camp continand tip de date predefinit in tabelul 'angajati'

d.un vector de domensiune variabila folosit ca tip de data pentru un camp al unui table

3. Fie urmatorul tabel:

ANGAJATI (idang, nume, prenume, salariu, data_ang, functie, departament)

si interogarea:

SELECT nume, prenume

FROM angajati

WHERE salariu = (SELECT min(salariu)

FROM angajati

GROUP BY departament)

Executia interogarii intoarce o eroare. Carui fapt se datoreaza acest lucru?

a.Nu este permisa folosirea functiilor de agregare in subinterogare

b.subinterogarea intoarce valori multiple desi ar trebui sa fie o subinterogare scalar

c.Nu este corecta utilizarea opeeratorului "=", ar trebui folosit operatorul IN

d.clauza GROUP BY este interzisa in subinterogare

4. Fie urmatoarea secventa de cod:

set serveroutput on

DECLARE

nume_p VARCHAR2(15):='Mihai';

ddn date := '20-mar-1970';

BEGIN
DECLARE

nume_c VARCHAR2(15):='Irina';

ddn date :='01-mai-1994';

BEGIN

DBMS_output.put_line('numele tatalui este: '|| nume_p);

DBMS_output.put_line('data nasterii: '|| ddn);

DBMS_output.put_line('numele copilului este: '|| nume_c);

END;

DBMS_output.put_line('data nasterii:'|| ddn);

END;

Care este rezultatul executiei sale?

A. numele tatalui este: Mihai

data nasterii: 01-05-1994

numele copilului este: Irina

data nasterii: 20-03-1970

B. numele tatalui este: Mihai

data nasterii: 20-03-1970

numele copilului este: Irina

data nasterii: 01-05-1994

C. numele tatalui este: Mihai

numele copilului este: Irina


data nasterii: 20-03-1970

data nasterii: 01-05-1994

a. A
b. B
c. C

5. Fie urmatoarea diagrama E/R.

Ce se poate spune despre elementul indicat prin litera A?

a.este atribut cu valori multiple

b.este atribut compus

c.este un atribut normal

d.este atribut derivate

6. In care dintre urmatoarele elemente ale dictionarului de date puteti consulta codul
corespunzator procedurilor sau functiilor stocate?

a. User_objects

b. user_procedures

c. user_subprograms

d. user_source

7. Care din urmatoarele declaratii in PL/SQL sunt incorecte:

A. DECLARE

nume, prenume VARCHAR2(20);

B. DECLARE

nota NUMBER(3,2);

C. DECLARE

data_angajarii BOOLEAN := SYSDATE;


a. toate variantele sunt corecte

b. toate variantele sunt incorecte

c. A

d. B

e. C

8. Care din urmatoarele elemente trebuie sa fie declarate atat in specificatia pachetului cat si in
corpul acestuia?

a. procedurile, functiile si variabilele publice

b. variabilele booleene

c. procedurile si functiile private

d. toate variabilele folosite in pachet

9. Fie urmatorul script:

CREATE pers_t AS OBJECT (

cnp char(13),

nume varchar2(20),

localitate varchar2(20));

COMMIT;

CREATE TABLE persoana of pers_t;

Executia acestui script conduce la:

a.scriptul este incorect deoarece instructiunea COMMIT nu este permisa in SQL


b.crearea unui tip obiect care este apoi folosit pentru crearea tabelului 'persoana'

c.eroare Oracle

10. Fie urmatorul tabel:

ANGAJATI (idang, nume, prenume, salariu, data_ang, functie, departament)

si interogarea:

SELECT nume, prenume

FROM angajati

WHERE salariu = (SELECT salariu

FROM angajati

WHERE functie ='XX')

In ipoteza ca functia "XX" nu exista, cate inregistrari vor fi intoarse ca rezultat al executiei
interogarii?

a.NULL

b.1

c.Executia intoarce un mesaj de eroare

d.0

--------------------------------------- A DOUA PARTE -------------------------------------------------

1.Este corect ca atunci cand se doreste o comparare a valorilor dintr-un camp ce contine si
valori .null. sa se foloseasca operatorii relationali?

Rspuns:

a.Adevrat

b.Fals
2.Fie dou relaii cu scheme identice: R(A,B) i S(A,B). Care din egalitile urmtoare sunt
echivalente n algebra relaional:

imagine

a. egalitatile 1 si 2

b. egalitatile 1 si 3

c. toate cele trei egalitati

3.O interogare scalara intoarce:

a. exact valoarea unei coloane dintr-o inregistrare

b. exact o inregstrare

c. un mesaj de eroare

4.Fie urmatoarele tabele:

CONTRACTE (codcli, tip_prestatie, cant, pr_unitar)

FACTURI (numar, data, codcli, tip_prest, cant, valoare)

si urmatoarea interogare SQL:

SELECT c.codcli, f.numar, f.data, f.cant, f.tip_prest

FROM contracte c, facturi f

WHERE c.codcli=f.codcli and c.tip_prest=f.tip_prest and c.cant>f.cant

Analizati interogarea si specificati, in limbaj natural, care este problema pe care o rezolva.
Verificati daca interogarea este corect formulata si motivati raspunsul.

Rspuns:
Intrebare de 3 puncte, restul sunt de 1 punct.

5. Fie doua tranzactii T1 si T2 pentru care se propune urmatoarea planificare:

imagine

In cazul utilizarii mecanismului de control al concurentei prin marci de timp, ce puteti spune
despre aceasta planificare:

a. conduce catre o anomalie de actualizare pierduta

b. este serializabila

c. este legala

d. produce suspendarea lui T2

6.Pentru campurile declarate NOT NULL este oportuna declararea de valori DEFAULT.

a.Adevrat

b.Fals

7.Operatorul UNION ALL face implicit ordonarea rezultatelor dupa valorile din prima coloana.

Rspuns:

a.Adevrat

b.Fals

8.Fie urmatorul tabel:

ANGAJATI (idang, nume, prenume, salariu, data_ang, functie, departament).

Se doreste o lista a angajatilor al caror salariu este mai mic decat salariul tuturor angajatilor din
departamentul Resurse umane.

Care din urmatoarele variante de interogare sunt corecte?


A. SELECT nume, prenume, salariu

FROM angajati

WHERE salariu >ALL (SELECT max(salariu)

FROM angajati

WHERE departament='Resurse umane');

B. SELECT nume, prenume, salariu

FROM angajati

WHERE salariu =ALL (SELECT salariu

FROM angajati

WHERE departament='Resurse umane');

C. SELECT nume, prenume, salariu

FROM angajati

WHERE salariu <ALL (SELECT salariu

FROM angajati

WHERE departament='Resurse umane');

D. SELECT nume, prenume, salariu

FROM angajati

WHERE salariu < ANY (SELECT salariu

FROM angajati

WHERE departament='Resurse umane');


a. C

b. B

c. D

d. toate variantele sunt echivalente

e. A

9.Autorizarea consta n :

a. recunoasterea faptului ca orice pierdere sau lipsa de disponibilitate a datelor s-ar putea
dovedi potential dezastruoasa

b. a. acordarea unui drept sau privilegiu, care permite unui subiect sa aiba acces
legitim la un sistem sau un obiect dintr-un sistem

c. a determina daca un utilizator este cine pretinde a fi

10.Proprietatea de ...................... asigura ca odata ce o tranzactie a fost validata, modificarile


produse de aceasta nu vor fi pierdute nici in cazul unui defect.

Rspuns:

11.Oracle permite utilizarea unei subinterogari in clauza FROM.

a.Adevrat

b.Fals

12.Diagrama din figur prezint modul de desfurare a unei serii de tranzacii ntr-un sistem.

- t0 semnific momentul iniial

- tc semnific momentul crerii unui punct de control

- tp semnific momentul apariiei unei pene

imagine

Care din urmatoarele seturi de actiuni sunt corecte pentru recuperarea bazei de date, la reluarea
functionarii sistemului:
A. T1 , T2 si T5 - REDO; T3, T4 si T6 - UNDO;

B. T1 si T4 - REDO; T5 si T2 - UNDO; T6 si T4 - nimic

C. T1 si T5 - REDO; T3 si T6 - UNDO; T2 si T4 - nimic

a. C

b. toate variantele sunt corecte

c. B

d. A

13.Ce tip de anomalie se manifesta in cazul planificarii de mai jos:

imagine

a. actualizare pierduta

b. citire improprie

c. citire nereproductibila

14. Pentru a acorda privilegii altor utilizatori se utilizeaza instructiunea:

a. GRANT

b. CREATE

c. REVOKE

15.Colectiile sunt:

Alegei un rspuns.
a. seturi de date care pot fi tratate ca parte a unei singure inregistrari intr-un tabel

b. tipuri de date definite de utilizatori

c. referinte

d. date scalare

16.Care din urmatoarele elemente NU pot exista in clauza WHERE a unei interogari SQL?

Alegei un rspuns.

a. nume de coloane

b. nume de tabele

c. operatori relationali

d. conditii de comparare

17.Utilizarea unui ceas de garda este o metoda de prevenire a interblocarilor.

a.Adevrat

b.Fals

18.Puncte: 1

Modificarea structurii unui tabel in Oracle poate fi realizata prin instructiunea

a. MODIFY STRUCTURE

b. ALTER TABLE

c. nu se poate modifica

d. DROP TABLE

19.La Secretariatul facultatii este necesara o lista a studentilor FIESC. In acest scop se pot
formula urmatoarele interogari, asupra tabelului Student:

A. SELECT * FROM student order by nume;

B. SELECT * FROM student;

C. SELECT nume from student order by nume;

D. SELECT nume from student;


Priviti aceste interogari EXCLUSIV prin prisma performantelor.

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