Modulul 2
Modulul 2
FACULTATEA DE INFORMATICĂ
MODULUL 2
Baze de date
UNIVERSITATEA TITU MAIORESCU
FACULTATEA DE INFORMATICĂ
&
11 Se dă tabelul:
ANGAJATI (CodAngaj, Nume, DataAngajare, Compartiment, Profesia, Salariu)
Care dintre următoarele instrucţiuni (Transact) SQL permite majorarea salariului cu 3%
pentru salariaţii angajaţi în anul 2010?
A. UPDATE Angajati SET Salariu = Salariu + 3% WHERE DataAngajare IN 2010
B. UPDATE Salariu FROM Angajati SET Salariu=Salariu + 3%* Salariu
WHERE DataAngajare IN ('1/1/2010' , '31/12/2010')
C. UPDATE Angajati SET Salariu = Salariu*1.03 WHERE YEAR(DataAngajare)= 2010
D. UPDATE Salariu FROM Angajati SET Salariu = Salariu * 1.03
WHERE DataAngajare BETWEEN '1/1/2010' AND '31/12/2010'
E. Niciuna
15. Când creaţi o bază de date, care sunt fişierele care trebuie create obligatoriu?
A. Un fişier de date primar
B. Un fişier de date primar şi un fişier de log
C. Un fişier de date primar, un fişier de date secundar şi un fişier de log
D. Un fişier de log primar
16. Folosind tabela cadru_did(cod, nume, graddid, data_ang, sal_neg, sal_merit), creată şi
populată cu date, se consideră următoarele exemple:
1. SELECT graddid, max(sal_neg)
FROM cadru_did
WHERE max(sal_neg) > 1600
GROUP BY graddid
2. SELECT graddid, max(sal_neg)
FROM cadru_did
GROUP BY graddid
HAVING max(sal_neg) > 1600
Să se aleagă răspunsul corect:
A. Exemplul (1) este corect
B. Exemplul (2) este corect
C. Exemplul (2) nu este corect
D. Exemplele (1) şi (2) sunt corecte
E. Exemplul (1) nu este corect
F. Nici un exemplu nu este corect
17. Cu ajutorul comenzii SELECT :
A. Se poate realiza joncţiunea externă(outer-join) între tabele
B. Se poate realiza joncţiunea de egalitate(equi-join) între tabele
C. Nu se pot realiza joncţiuni între tabele
D. Se poate realiza joncţiunea de neegalitate(non-equi-join) între tabele
E. Se poate modifica structura unei tabele
F. Se poate lega o tabelă cu ea însăşi
18. Dându-se tabelele Produse(codp, denp, pret ) şi Comenzi(nr_cda, codp, cant, data),
următoarele interogări:
1. SELECT c.nr_cda, c.codp, c.cant FROM comenzi c
WHERE 'penar'=(SELECT den_prod FROM produse p WHERE p.codp=c.codp)
2. SELECT c.nr_cda, c.codp, c.cant
FROM comenzi c JOIN produse p
ON p.codp=c.codp WHERE p.den_prod='penar'
A. Sunt identice ca efect
B. Sunt diferite ca efect
C. Ar fi identice ca efect dacă în cererea 2 s-ar folosi produsul cartezian
D. Ar fi identice ca efect dacă în cererea 1 s-ar folosi o subinterogare necorelata
20. Interogarea:
SELECT min(nume), sum(nume), count(*)
FROM tabela
WHERE salariu = max(salariu)
A. Este greşită deoarece funcţia min() nu se foloseşte cu şiruri de caractere
B. Este greşită deoarece funcţia sum() nu se foloseşte cu şiruri de caractere
C. Este corectă
D. Este greşită deoarece funcţia max() nu se foloseşte în clauza WHERE
E. Este greşită deoarece nu se foloseşte * în funcţia count()
21. Se poate folosi acelaşi nume pentru mai multe tabele dintr-o bază de date Microsoft
SQL Server?
A. Da, dar să nu aparţină aceleeaşi baze de date
B. Da, dacă nu fac parte din aceeaşi schemă
C. Nu
D. Da, dacă aparţin aceleeaşi scheme
E. Da, dar să nu aparţină aceleeaşi instanţe
22. Interogările din SQL sunt la fel de expresive cu:
A. Algebra relationala
B. Calculul relational al domeniilor
C. Calculul procedural
D. Calculul relational al tuplurilor
E. Calculul bazat pe tablouri
31. Baza de date curentă include o tabelă numită Employees cu următoarele coloane:
- firstName, care păstrează prenumele unui angajat;
- lastName, care păstrează numele unui angajat;
- depID, care păsrează ID –ul departamentului în care lucrează angajaţii.
Aţi cerut să se afişeze o listă cu angajaţii sortată descrescător după ID departament, apoi
după numele angajaţilor (prenume urmat de nume) în ordinea alfabetică.
Ce instrucţiune SELECT trebuie să folosiţi?
A. SELECT depID, (firstName + ' ' + lastName) AS 'Full Name'
FROM Employees
ORDER BY depID, lastName ASC
B. SELECT (firstName + ' ' + lastName) AS 'Full Name'
FROM Employees
ORDER BY depID DESC, 'Full Name'
C. SELECT lastName, (firstName + ' ' + lastName) AS 'Full Name'
FROM Employees
ORDER BY lastName, depID
D. SELECT (firstName + ' ' + lastName) AS 'Full Name'
FROM Employees
ORDER BY depID DESC, lastName
32. Datorită mutării activităţii comerciale din Germania în SUA, trebuie să schimbăm
collation data pentru baza de date Adventure Works. După modificarea collation pentru
această bază de date, ce ar mai trebui să faceţi?
A. Nimic.
B. Ştergeţi indecşii şi constrângerile tabelelor existente pentru care collation cere să fie
modificat. Modificaţi collation pentru coloanele acelor tabele.Recreaţi indecşii şi
constrângerile.
C. Ştergeţi indecşii şi constrângerile pentru toate tabele existente din baza de date.
Modificaţi collation pentru coloanele acelor tabele.Recreaţi indecşii şi constrângerile.
D. Modificaţi database collation şi selectaţi opţiunea auto-indexing.
E. Recreaţi toţi indecşii în această bază de date.
33. Firma la care lucraţi foloseşte o tabelă numită Products pentru a stoca informaţii
despre produsele pe care le vinde. Tabela include coloanele:
- price, care conţine preţul produsului vândut;
- volume, care păstrează volumul vânzărilor lunare medii pentru produsul respectiv;
- stock, care stochează numărul de bucăţi aflate în stoc pentru un produs.
La începutul fiecărei luni, firma dvs. reface stocul unui produs dacă una dintre condiţiile
următoare este adevărată:
- Produsul costă 100$ sau mai mult şi numărul de bucăţi din stoc este mai mic
decât volumul lunar mediu sau mai mic de 500.
- Produsul costă mai puţin de 100 $ şi sunt mai puţin de 1500 de bucăţi în stoc.
Dvs. trebuie să obţineţi informaţii despre toate produsele care trebuie să fie realimentate.
Ce instrucţiune ar trebui folosită?
A. SELECT * FROM Products
WHERE
price >= 100.00
AND stock < 500
OR stock < volume
OR (price < 100.00
AND stock < 1500)
B. SELECT * FROM Products
WHERE
price >= 100.00
AND (stock < 500
OR stock < volume)
OR price < 100
AND stock < 1500
C. SELECT * FROM Products
WHERE
(price >= 100.00
AND stock < 500
OR stock < volume)
OR (price < 100.00
AND stock < 1500)
D. SELECT * FROM Products
WHERE
price >= 100.00
AND stock < 500
OR stock < volume
OR price < 100.00
AND stock < 1500
E. SELECT * FROM Products
WHERE
price >= 100.00
AND stock < 500
OR stock < volume
AND price < 100.00
34. Pentru a afişa numele angajaţilor care au un salariu mai mare decât al cel puţin unui
manager existent, ar trebui să folosiţi instrucţiunea:
SELECT name FROM Employees
WHERE salary > ANY (SELECT salary FROM Management).
Trebuie să creaţi o instrucţiune alternativă care să dea acelaşi rezultat şi care să se
execute cel puţin la fel de rapid.
Ce instrucţiune ar trebui să folosiţi ?
A. SELECT name FROM Employees
WHERE NOT salary < ALL (SELECT salary FROM Management)
B. SELECT name FROM Employees
WHERE NOT EXISTS
(SELECT * FROM Management WHERE salary >= Employees.salary)
C. SELECT name FROM Employees
WHERE EXISTS
(SELECT * FROM Management WHERE salary < Employees.salary)
D. SELECT name FROM Employees
JOIN Management ON Employees.salary > Management.salary
E. Nici una.
37. Firma la care lucraţi vinde echipamente de la fabricanţi multipli care folosesc ID-
uri de produse similare şi este nevoie să se urmărească ID produs, ID fabricant, nume
produs, preţ produs pentru fiecare piesă de echipament din tabela Products. Trebuie să vă
asiguraţi că nu sunt permise intrări multiple pentru acelaţi produs. Ce instrucţiune ar
trebui folosită ?
A. CREATE TABLE Products (
productID int PRIMARY KEY,
manufacturerID int,
productName varchar(50),
price decimal(7,2))
B. CREATE TABLE Products (
productID int UNIQUE,
manufacturerID int PRIMARY KEY,
productName varchar(50),
price decimal(7,2))
C. CREATE TABLE Products (
productID int,
manufacturerID int,
productName varchar(50) PRIMARY KEY,
price decimal(7,2))
D. CREATE TABLE Products (
productID int,
manufacturerID int,
productName varchar(50),
price decimal(7,2),
CONSTRAINT product_key PRIMARY KEY (productID, manufacturerID))
E. Nu este posibil de realizat această cerinţă.
38. Comanda:
SELECT DISTINCT codp, denp FROM Produse
WHERE codp > 200
ORDER BY cantp
simulează implementarea operatorilor relaţionali de:
A. Proiecţie şi joncţiune
B. Selecţie şi intersecţie
C. Selecţie şi reuniune
D. Proiecţie şi selecţie
E. Reuniune şi joncţiune
40. Dându-se tabelele Produse(codp, denp, pret ) şi Comenzi(nr_cda, codp, cant, data),
instrucţiunile SELECT:
SELECT c.*
FROM comenzi c JOIN produse p
ON p.codp=c.codp WHERE p.denp='penar'
şi
SELECT c.nr_cda, c.codp, c.cant, c.data
FROM comenzi c, produse p
WHERE p.codp=c.codp
AND p.denp = 'penar'
A. Sunt diferite ca efect
B. Sunt identice ca efect
C. Ar fi identice ca efect dacă în al doilea SELECT s-ar folosi operatorul OR şi nu AND
D. Ar fi identice ca efect dacă în primul SELECT nu s-ar folosi operatorul WHERE
43. Un utilizator a șters accidental o linie din tabela Produse, care conține o coloană
IDENTITY numită id. Când încercați să reinserați aceleași date care au fost în linia
ștearsă, primiți un mesaj de eroare. Ce ar trebui să faceți?
A. Puneți pe on proprietatea IDENTITY_INSERT folosind SQL Server Management
Studio (SSMS) și apoi inserați linia.
B. Executați instrucțiunea SET IDENTITY_INSERT Produse ON și apoi inserați linia.
C. Ștergeți proprietatea IDENTITY pentru coloana id folosind SQL Server Management
Studio (SSMS) și apoi inserați linia.
D. Reinițializați valoarea id cu cea a liniei șterse și apoi inserați linia.
44. Scrieți o instrucțiune SELECT care extrage date din două tabele. Trebuie să returnați
toate liniile din prima tabelă și numai liniile care îndeplinesc condiția din JOIN din a
doua tabelă. Ce tip de JOIN ar trebui să folosiți?
A. LEFT
B. RIGHT
C. INNER
D. FULL
45. Compania dumneavoastră are un număr de mașini care sunt folosite de angajați
pentru o perioadă scurtă de timp. În acest scop aveți o tabelă numită Cars, care
păstrează informații despre mașini și o tabelă numită CarAssignments, care stochează
mașinile asignate fiecărui angajat. Trebuie să creați o constrângere care să vă asigure
că toate valorile atribuite coloanei car_id din tabela CarAssignments corespund unei
valori a coloanei id din tabela Cars. De asemenea, trebuie să vă asigurați că, dacă se
șterge o linie din tabela Cars, se vor șterge și liniile din tabela CarAssignments care o
referențiază. Ce instrucțiune ar trebui folosită?
A. ALTER TABLE CarAssignments
ADD CONSTRAINT FK_car_id FOREIGN KEY (car_id)
REFERENCES Cars (id) ON DELETE CASCADE;
B. ALTER TABLE CarAssignments
ADD CONSTRAINT FK_car_id FOREIGN KEY (car_id)
REFERENCES Cars (id) ON DELETE SET NULL;
C. ALTER TABLE CarAssignments
ADD CONSTRAINT FK_car_id FOREIGN KEY (car_id)
REFERENCES Cars (id);
D. ALTER TABLE CarAssignments
ADD CONSTRAINT FK_car_id FOREIGN KEY (car_id)
REFERENCES Cars (id) ON DELETE NO ACTION;
46. Compania dumneavoastră folosește tabela WebSites pentru a urmări informația despre
traficul zilnic al mai multor Web sites. Tabela include și următoarele coloane:
- id, care stochează ID Web site;
- hits, care păstrează numărul de accesări ale site-ului din acea zi.
Trebuie să afișați numărul mediu de accesări zilnice pentru fiecare Web site.
Ce instrucțiune ar trebui să folosiți?
A. SELECT SUM(hits)/COUNT(id)
FROM WebStats
GROUP BY id;
B. SELECT COUNT(*), AVG(hits)
FROM WebStats
GROUP BY hits;
C. SELECT id, AVG(hits)
FROM WebStats
GROUP BY id;
D. SELECT AVG(hits)
FROM WebStats;
48. Aveți o tabelă Employees, cu angajații unei firme, care include o coloană de tip
nchar(30) numită NumeAng. Coloana NumeAng conține prenumele și numele unui
angajat, separate de caracterul underscore (_). Trebuie să căutați în tabelă toți
angajații al căror nume de familie este Popa. Ce expresie ar trebui să folosiți în clauza
WHERE a instrucțiunii SELECT?
A. RTRIM(NumeAng) LIKE '%_Popa'
B. NumeAng LIKE '%!_Popa' ESCAPE '!'
C. RTRIM(NumeAng) LIKE '%!_Popa' ESCAPE '!'
D. NumeAng LIKE '%Popa%'
49. Ați creat tabela Angajati, în care păstrați informațiile despre angajații firmei unde
lucrați, cu instrucțiunea:
CREATE TABLE Angajati ( nume varchar(50), telefon char(10), email varchar(20)).
Trebuie să vă asigurați că angajații vor putea fi introduși în tabelă cu valoarea NULL în
coloana nume, dar fără valori de tip NULL în coloanele telefon și email(simultan). Cum
ar trebui să modificați coloanele tabelei?
A. Adăugați o constrângere CHECK (telefon IS NOT NULL OR email IS NOT NULL)
pe coloana telefon.
B. Adăugați NOT NULL la coloanele telefon și email.
C. Adăugați NULL la coloana nume.
D. Add constrângerea CHECK(telefon IS NOT NULL OR email IS NOT NULL) pe
tabelă.
50. Ați creat următoarea tabelă cu instrucțiunea:
CREATE TABLE dbo.Products (ID bigint IDENTITY(1,1) NOT NULL,
Name nvarchar(100) NOT NULL, FirstProduction timestamp NOT NULL,
Cost decimal(12, 4) NOT NULL, SalePrice decimal(12,4) NOT NULL,
Volume bigint NOT NULL, Margin AS (SalePrice - Cost) / Cost);
Trebuie să modificați structura tabelei pentru a utiliza cel mai mic spațiu de stocare.
Ce instrucțiuni ar trebui să folosiți?
A. ALTER TABLE dbo.Products ALTER COLUMN Margin AS (SalePrice - Cost);
B. ALTER TABLE dbo.Products REBUILD WITH
(DATA_COMPRESSION = ROW);
C. ALTER TABLE dbo.Products ALTER COLUMN Name ADD SPARSE;
D. ALTER TABLE dbo.Products ALTER COLUMN Volume int;
E. ALTER TABLE dbo.Products ALTER COLUMN Cost decimal(10,2);
Subiecte SGBD
2. O tranzacţie este:
A. O unitate de program ce realizează citiri şi scrieri
B. O mulţime finită şi ordonată de operaţii de citire, scriere şi terminare
C. O mulţime finită de operaţii coerente, executate de un SGBD, care manipulează datele
unei baze de date
D. O mulţime de instrucţiuni executabile dintr-un limbaj gazdă
E. O serie finită de operaţii de modificare a datelor dintr-o bază de date ORACLE
7. Când creaţi o bază de date Microsoft Sql Server, care sunt fişierele care trebuie create
obligatoriu?
A. Un fişier de date primar
B. Un fişier de date primar şi un fişier de log
C. Un fişier de date primar, un fişier de date secundar şi un fişier de log
D. Un fişier de log primar
8. Când se determină accesul utilizator la obiecte particulare ale unei baze de date, cum
se aplică permisiunile?
A. User, fixed role, group role, fixed server
B. User, group role, fixed role, fixed server
C. Permisiunile sunt cumulative exceptând DENY
D. Permisiunile se scad exceptând permisiunile user specificate
9. Care dintre următoarele afirmaţii nu este adevărată despre bazele de date Microsoft
SQL Server?
A. Bazele de date sunt grupate în “filegroups”
B. Bazele de date trebuie să fie în acelaşi “filegroup”
C. Bazele de date pot creşte automat cu un procent
D. Bazele de date pot avea dimensiuni restricţionate
10. Care grup de instrucţiuni se poate utiliza prin acordarea permisiunilor obiect?
A. SELECT, UPDATE, INSERT, CREATE
B. SELECT, EXECUTE, DELETE, INDEX
C. SELECT, UPDATE, INSERT, DELETE
D. SELECT, EXECUTE, DELETE,CREATE
11. Aţi planificat ca Microsoft SQL Server 2000 să facă backups ale unei baze de date
astfel:
full backup la ora 2:00 a.m.; differential backups din 4 în 4 ore; transaction log backups
la fiecare 30’. Sistemul cade la 11:24 a.m. După ce se face un full backup restore, câte
backups transaction logs şi diferenţiale (numărul minim) trebuie restaurate pentru a avea
pierderi minime în baza de date?
A. 1 differential, 2 log
B. 1 differetial, 10 log
C. 2 differential, 2 log
D. 2 differential, 1 log
12. Pentru a preveni problemele ţinând de proprietarul obiectelor unei baze de date
Microsoft SQL Server, ce rol ar trebui să fie asignat unui developer?
A. Db-owner
B. Db-creator
C. DBA
D. Db-manager
13. Rolul Public este un rol special fixat la nivelul unei baze de date Sql Server. Care
dintre următoarele afirmaţii sunt adevărate despre el ?
A. Nu poate fi şters
B. Poate fi şters
C. E conţinut în orice bază de date utilizator, inclusiv master, msdb, tempdb, model
D. E conţinut numai în bazele de date utilizator
E. Nu poate avea utilizatori, grupuri sau roluri asignate
F. Păstrează toate permisiunile implicite pentru utilizatorii unei baze de date
15. Trebuie să modificaţi un tabel din baza de date pe care aţi creat-o; mai mulţi
utilizatori au primit permisiunile obiect SELECT, INSERT pentru acel tabel. Ce variantă
ar trebui să executaţi pentru a modifica tabelul, fără a afecta permisiunile acordate?
A. DROP TABLE urmat de CREATE TABLE
B. CREATE TABLE, cu noua configuraţie
C. ALTER TABLE
D. MOD TABLE
E. EXEC sp_help nume_tabela
16. Când ştergeţi un tabel, ce obiecte din baza de date se şterg de asemenea?
A. Vederile care-l au ca tabel de bază
B. Procedurile stocate care-l utilizează
C. Declanşatorii creaţi pentru el
D. Funcţiile care-l utilizează
19. Puteţi folosi o procedură stocată pentru a extrage informaţii din tabele de bază la care
nu aveţi permisiuni de acces?
A. Nu, pentru că nu aveţi permisiunile cerute pe tabele
B. Nu, dacă nu sunteţi membri sysadmin sau db-owner
C. Da, dacă aveţi permisiunea EXECUTE pentru procedura stocată
D. Da, dacă aţi creat declanşatori pentru fiecare tabel
20. Dacă utilizatorul student crează o tabelă, cine poate interoga tabela?
A. Numai utilizatorul student
B. Numai administratorul bazei de date
C. Utilizatorii care au drept de SELECT pe tabelă
D. Toţi utilizatorii
E. Utilizatorul student
26. Care dintre următoarele instrucţiuni sunt necesare pentru a defini începutul şi sfârşitul
unei tranzacţii explicite în Microsoft Transact-SQL ?
A. OPEN TRANSACTION
B. BEGIN TRANSACTION
C. INSERT TRANSACTION
D. END TRANSACTION
E. ROLLOVER TRANSACTION
F. COMMIT TRANSACTION
27. Ce problemă de concurenţă apare când o tranzacţie citeşte datele necomise de o altă
tranzacţie aflată în derulare?
A. Lost update
B. Dirty Read
C. Nonrepeatable Read
D. Phantom Read
31. Ce caracteristică este utilizată pentru a preveni conflictele de actualizare, astfel incât
utilizatorii să nu poată citi sau modifica datele când alţi utilizatori le modifică?
A. Tranzacţiile
B. Blocările
C. Interogările de tip SQL
D. Permisiunile de tip UPDATE
E. Permisiunile de tip SELECT
33. Aţi executat trei proceduri stocate folosind următoarele instrucţiuni SQL:
BEGIN TRANSACTION
EXEC employeeStats
SAVE TRANSACTION SV_employee
EXEC productStats
SAVE TRANSACTION SV_product
EXEC webStats
A apărut o eroare în procedura stocată productStats şi este nevoie să se anuleze
modificările făcute de acea procedură.
Ce instrucţiune ar trebui să executaţi?
A. ROLLBACK TRANSACTION
B. ROLLBACK TRANSACTION SV_employee
C. ROLLBACK WORK
D. ROLLBACK
ROLLBACK
E. ROLLBACK TRANSACTION SV_product
34. Folosiţi tabela Products pentru a stoca informaţii despre produse. Printre alte
informaţii, tabela conţine numele şi preţul produselor. Creşteţi preţul produselor astfel:
- preţul produselor mai mic de 100$ va fi crescut cu 10% ;.
- preţul produselor cuprins în intervalul 100$ şi 1000$ va fi crescut cu 5%;
- preţul produselor mai mare de 1000$ va fi crescut cu 1%.
Trebuie să faceţi aceste modificări pentru toate produsele din tabela Products şi să afişaţi
lista cu numele produselor, preţul original şi preţul crescut. Ce instrucţiune ar trebui
folosită ?
A. DECLARE @t1 table
(name varchar(30),
oldprice decimal(7,2),
newprice decimal(7,2));
UPDATE Products
SET price =
CASE
WHEN price < 100.00 THEN price*1.10
WHEN price BETWEEN 100.00 AND 1000.00 THEN price*1.05
ELSE price*1.01
END
OUTPUT DELETED.name, DELETED.price, INSERTED.price INTO @t1
B. UPDATE Products
SET price =
CASE
WHEN price < 100.00 THEN price*1.10
WHEN price BETWEEN 100.00 AND 1000.00 THEN price*1.05
ELSE price*1.01
END
OUTPUT DELETED.name, DELETED.price
C. UPDATE Products
SET price =
CASE
WHEN price < 100.00 THEN price*1.10
WHEN price BETWEEN 100.00 AND 1000.00 THEN price*1.05
ELSE price*1.01
END
OUTPUT DELETED.name, DELETED.price, INSERTED.price
D. UPDATE Products
SET price =
CASE
WHEN price < 100.00 THEN price*1.10
WHEN price BETWEEN 100.00 AND 1000.00 THEN price*1.05
ELSE price*1.01
END
OUTPUT DELETED.*, INSERTED.*
E. UPDATE Products
SET price =
CASE
WHEN price < 100.00 THEN price*1.10
WHEN price BETWEEN 100.00 AND 1000.00 THEN price*1.05
ELSE price*1.01
END
OUTPUT DELETED.name, DELETED.price, INSERTED.*
38. Se poate folosi acelaşi nume pentru mai multe tabele stocate pe un server de baze de
date Microsoft SQL Server ?
A. Nu
B. Da, dacă nu aparţin aceleeaşi baze de date
C. Da, dacă aparţin aceleeaşi scheme
D. Da, dacă nu aparţin aceleeaşi scheme
E. Da, dacă nu aparţin aceleeaşi instanţe
39. Dacă utilizatorul “stud” crează o vedere, cine poate face interogări pe acea vedere?
A. Administratorul bazei de date
B. Utilizatorii care au permisiunea SELECT pe tabela din care extrage vederea datele
C. Utilizatorul “stud”
D. Numai utilizatorul “stud”
E. Toţi utilizatorii care au permisiunea SELECT pe vedere
48. In baza de date folosită de dumneavoastră aveți o tabelă numită Personal, al cărei
proprietar este student. S-a creat o vedere numită Angajati, pentru a limita accesul la
tabela Personal, care are ca proprietar pe Ana. Unuia dintre utilizatorii bazei de date i-a
fost acordată permisiunea INSERT pe vederea Angajati și i-a fost interzisă permisiunea
INSERT pe tabela Personal; când încearcă să insereze o linie în vederea Angajati,
instrucțiunea INSERT eșuează. Trebuie să rezolvați această problemă. Ce ar trebui să
faceți?
A. Acordați proprietarului tabelei Personal permisiunea SELECT pe vederea Angajati.
B. Acordați proprietarului vederii Angajati permisiunea INSERT pe tabela Personal.
C. Schimbați proprietarul vederii Angajati în student.
D. Acordați permisiunea INSERT pe tabela Personal utilizatorului.
49. Ați creat o vedere folosind comanda:
CREATE VIEW dbo.AngajatiNoi
AS SELECT
Nume,
SalariuLunar,
(SalariuLunar * 12) AS SalariuAnual,
Data_Ang
FROM dbo.ResurseUmane
WHERE Nume IS NOT NULL
AND Data_Ang > '1/1/2014'
WITH CHECK OPTION;
Trebuie să inserați o linie folosind această vedere. Ce instrucțiune ar trebui să folosiți?
A. INSERT INTO dbo. AngajatiNoi (Nume, SalariuAnual, Data_Ang) VALUES ('Popa
Ion', 50000, '3/12/2014');
B. INSERT INTO dbo. AngajatiNoi (Nume, SalariuLunar, Data_Ang) VALUES
('Mihnea George', 4000, '5/13/2014');
C. INSERT INTO dbo. AngajatiNoi (Nume, SalariuLunar, Data_Ang) VALUES ('Stan
Remus’, 2500, '11/5/2010');
D. INSERT INTO dbo. AngajatiNoi (Nume) VALUES ('Tonoiu Petre');