Sunteți pe pagina 1din 5

1) Ce semnifica legatura m:m intre entitati?

Unui element din clasa A ii corespunde unul sau mai multe elemente din clasa B si unui element din clasa B ii corespunde unul sau mai multe elemente din clasa A. Examen - Student 2) Ce este redundanta? Redundanta este un fenomen negativ care se obtine din faptul ca in baza de date se gasesc informatii duplicat. Totu i, exist numeroase cazuri cnd redundan a este acceptat din motivul c ea permite un acces mai rapid ( i poate chiar mai sigur) la date. De exemplu, stocarea unor date replicate pe mai multe servere, permite accesul la serverul cel mai pu in nc rcat. 3) Ce este baza de date? Baz de date ansamblu structurat de date nregistrate pe suporturi accesibile calculatorului, n scopul satisfacerii simultan, a mai multor cereri din partea utilizatorilor, n mod selectiv, si n timp optim. 4) La ce se refera functia de descriere a Sistemului de Gestiune a Bazelor de Date? Functia de descriere a SGBD se refeara la faptul ca SGBD pune la dispozitia utilizatorului un dispozitiv pentru descrierea ansamblului de date care vor fi inmagazinate in baza de date. Putem vorbi astfel de un limbaj de definitie (LDD), care este propriu fiecarui SGBD. 5) Ce este Sistemul de Gestiune a Bazelor de Date? Un SGBD reprezinta un ansamblu coordonat de programe care permit descrierea, memorarea, manipularea, tratarea ansamblurilor de date ce constituie baza de date. 6) Ce este cheia primara? Una sau mai multe coloane ale caror valori identifica in mod unic toate liniile unui tabel. 7) Prin ce se caracterizeaza modelul relational? Modelul relational se bazeaza pe teoria matematica a relatiilor. Ceea ce il caracterizeaza este o implementare mai simpla, fara a utiliza pointerii; structurile de date sunt mai uniforme; expresiile sunt mai naturale, apropiate de semnificatia lor reala. 8) Ce este cheia straina? Se numeste cheie straina o coloana sau o multime de coloane a unei relatii R1 ale carei valori, daca nu sunt nule, coincid cu valori ale unei chei primare dintr-o relatie R, nu neaparat distincta de R1. 9) Ce semnifica legatura 1:m intre entitati? Unui element din clasa A ii sunt asociate mai multe elemente, sau unul sau nici un element din clasa B. 10) In ce consta schema unui utilizator? Schema unui utilizator cuprinde descrierea datelor, a obiectelor si accesul la ele. 11) Ce este tranzactia? Cand incepe si cand se poate incheia o tranzactie in SQL? tranzac ie = succesiune finit de ac iuni asupra obiectelor bazei de date pentru executarea unei prelucr ri 12) Ce este jurnalul de tranzactii si care este utilitatea lui? Jurnalul tranzaciilor este un fiier special ntreinut de SGBD, n care sunt memorate informaiile despre tranzaciile efectuate asupra bazei de date cum sunt: -identificatorul sau codul tranzaciei; -momentul nceperii execuiei tranzaciei; -numrul terminalului sau identificatorul utilizatorului care a iniiat tranzacia; -datele introduse; nregistrrile modificate i tipul modificrii. Jurnalul de tranzactii e util pentru ca in momentul in care apare o anomalie care ar putea distruge baza de date, pe baza jurnalului de tranzactii (si nu numai) se poate reface baza de date in forma initiala. 13) In ce situatii se creeaza automat un index? Un index unic (unique) se creeaza automat cand se defineste o restrictie de integritate de tip PRIMARY KEY sau UNIQUE. 14) Specificati tipuri de JOIN: Equijoin, Non-equijoin, Outer join, Self join 15) Ce este schema conceptuala ? Nivelul conceptual contine o sinteza a subschemelor din nivelul extern

(schema conceptuala); Analizand schemele externe si eliminand redundantele rezulta, la nivelul organizatiei, o schema conceptuala 16) Ce indicatori d comparatie noi ati remarcat in bd? (<,>,>=,=,<=,<>) 17) ('Sol'<'Soare')OR('aur'Like'%A%') A+A->A, A+F->A, F+A->A ,F+F->F 18) a IN a,aa,aaa AND aer<aeroport A+A->A, A+F->F, F+A->F, F+F->F CREATE TABLE <nume_tabela> (<col1> <tip1> , <col2> <tip2> , ); CREATE TABLE DEPT ( DEPTNO NUMBER(2) NOT NULL, DNAME VARCHAR2(14), LOC VARCHAR2(13), CONSTRAINT DEPT_PRIMARY_KEY PRIMARY KEY (DEPT'O)); INSERT INTO <nume_tabela> [(<col1>, <col2>, )] <subinterogare> ; INSERT INTO managers (id, name, salary, hiredate) SELECT empno, ename, sal, hiredate FROM emp WHERE job=manager; INSERT INTO dept (deptno, dname, dloc) values (100, "Resurse","Galati");

UPDATE <nume_tabela> UPDATE emp SET <col1> = <val1> , <col2>=<val2> . . . SET deptno=20 [WHERE <conditie>]; WHERE empno=7782; COMMIT; update produsev set cantv=cantv*2 where den='panza'; update produsev set pret=pret-(1/10*pret) where datav='10-JUN-03'; update produsev set cantv=cantv*2 where pret in (select pret from produsev where den='panza'); DELETE FROM <nume_tabela> DELETE FROM test [WHERE <conditie>]; WHERE id=100 delete produsev where pret*cantv>1000000; delete produsev where pret=(select min(pret) from produsev); DROP TABLE <nume_tabela>; drop table produsev; IV. Se da urmatoarea baza de date relationala: CLIENT[Codcl, Nume, Pren, Datan, Adresa] CONT[Nrcont, Tipcont, Datacre, Sold_la_zi, Codcl] OPERATIUNE[Nrcont, Tipop, Data, Suma, Operator] Care sunt conturile pentru care nu s-a facut operatiune de tip "extragere"? SELECT cl.Nume, cl.Pren, c.Tipcont, c.Sold_la_zi, o.Nrcont FROM client cl, cont c, operatiune o WHERE cl.Codcl=c.Codcl and c.Nrcont=o.Nrcont and cl.Codcl NOT IN (SELECT cl.Codcl FROM client cl, cont c WHERE cl.Codcl=c.Codcl and Tipop="extragere");

2. (1p) Creati o tabela virtuala care sa contina toate operatiunile efectuate pe conturi de tip "la vedere": numele clientului, numarul contului, data operatiei si numele operatorului: CARD[Numele, Prenumele, Nrcont, Data_op, Operator] CREATE OR REPLACE VIEW card (Numele, Prenumele, Nrcont, Data_op, Operator) AS SELECT cl.Nume, cl.Pren, c.Nrcont, o.Data, o.Operator FROM client cl, cont c, operatiune o WHERE cl.Codcl=c.Codcl and c.Nrcont=o.Nrcont and c.Tipcont="la vedere";

3. (1.5p) Formulati urmatoarea prelucrare in SQL sau SQLPlus: Sa se stearga toate conturile cu sold 0 ale unui client,ale carui nume si prenume sunt introduse prin dialog. DELETE FROM cont c, operatiune o WHERE c.Nrcont=o.Nrcont and c.Sold_la_zi=0 and c.Codcl = (SELECT Codcl FROM client WHERE nume=Nume and prenume=Pren); Se creeaza tabelele CLIENT, CONT si OPERATIUNE impreuna cu restrictiile de integritate: CREATE TABLE CLIENT (Codcl Number(5), Nume VARCHAR2(15), Pren VARCHAR2(15), Datan Date, Adresa VARCHAR2(25), CONSTRAINT Codcl_PK PRIMARY KEY(Codcl)); CREATE TABLE CONT (Nrcont NUMBER(5), Tipcont VARCHAR2(15), Datacre Date, Sold_la_zi NUMBER(10), Codcl NUMBER(5), CONSTRAINT Nrcont_PK PRIMARY KEY(Nrcont), CREATE TABLE OPERATIUNE (Nrcont NUMBER(5), Tipop VARCHAR(15), Data Date, Suma NUMBER(10), Operator VARCHAR2(25), CONSTRAINT Nrcont_op_PK PRIMARY KEY(Nrcont), CONSTRAINT Nrcont_op_FK FOREIGN KEY(Nrcont) REFERENCES CONT(Nrcont)); Biletul 1 a) SELECT lucru.op FROM lucru, contract, angajat WHERE angajat.coda=lucru.coda And contract.codc=lucru.codc And angajat.nume='ionescu' And contract.titlu='sidex'; b) SELECT angajat.sectie FROM lucru, angajat WHERE (((angajat.coda)=lucru.coda)) GROUP BY angajat.sectie HAVING (((Sum(lucru.ore))>1100));

Biletul 2 a) SELECT angajat.nume, lucru.ore

FROM angajat, contract, lucru WHERE angajat.coda=lucru.coda and contract.codc=lucru.codc and contract.titlu='sidex'; b) SELECT contract.benef FROM contract, lucru WHERE contract.codc=lucru.codc GROUP BY contract.benef HAVING (((Sum(lucru.ore))>1800)); Biletul 3 a) SELECT contract.titlu, lucru.ore FROM contract, lucru, angajat WHERE angajat.coda=lucru.coda and contract.codc=lucru.codc and contract.benef='sidex' and angajat.functie='inginer' and angajat.sectie='sudura'; b) SELECT angajat.nume FROM angajat, lucru WHERE angajat.coda=lucru.coda GROUP BY angajat.nume HAVING sum(lucru.ore)>1000; I Proiectati o baz de date relational pentru o companie de transport aerian, tinnd cont de urm toarele informatii: Orarul avioanelor este stabilit, pentru fiecare zi acelasi, si contine pentru fiecare curs : ora plec rii, aeroportul de plecare si destinatia. De la o zi la alta ns , durata zborului poate fi diferit , deasemenea personalul de zbor. Salariul personalului navigant este calculat pentru fiecare dup timpul petrecut n zbor si prima orar cuvenit pentru functia pe care o detine. Pentru evidenta personalului se mai retin datele personale: marca, nume, prenume, data nasterii. Solutia 1 CURSA [ codc, oraplec, aeroplec, dest ] ZBOR [ codz, codc, data, durata ] SALARIAT [ marca, nume, pren, datan, fctie ] FUNCTIE [ fctie, prima ] PARTICIPARE [ marca, codz ]

Solutia 2 CURSA [ codc, oraplec, aeroplec, dest ] TRAFIC [codc, data, durata ] SALARIAT [ marca, nume, pren, datan, fctie ] FUNCTIE [ fctie, prima ] PARTICIPARE [ marca, codc, data ] II. Proiectati o baz de date relational pentru evidenta facturilor emise de o societate comercial , cuprinznd informatiile: cod beneficiar, adresa beneficiar, nr. factur , valoare total factur , cod produs, denumire produs, num r de produse pe factur , cantitate produs pe factur , pre unitar produs, denumire beneficiar, descriere produs, unitate de m sur produs, cod fiscal benficiar, data emiterii facturii. Obs: O factur poate contine mai multe produse, livrate la acea data unui beneficiar. PROD [ codp, den, pretu, descr, um ]

BENEF [codb, denb, adrb, codfisc ] FACTURA [ nrfact, codb, valtot, nrprod, data ] PRODF [ nrfact, codp, cantit ] III. Baza de date cu situatia elevilor de la o scoala. ELEV [CNP, nr_scoala, nr_catalog, etnie, nume, prenume] CATALOG [NR_CATALOG, cnp, nr_scoala, disciplina, note] SCOALA [NR_SCOALA, denumire, adresa] Se da baza de date: STUDENT [Cods,Nume,Fac,An,Adresa] DISCIPLINA [Codd,Den,Prof] CATALOG [Codd, Cods, Nota, Data] a) Cand s-a dat examen la Baze de date la facultatea de Mecanica ? SELECT c.data FROM CATALOG c, DISCIPLINA d, STUDENT s WHERE d.den=Baze de date and s.fac=Mecanica and d.codd=c.codd and c.cods=s.cods; b) La ce examen (codul) s-au prezentat mai putin de 10 student? SELECT d.codd from disciplina d, student s, catalog c where c.codd=d.codd and c.cods=s.cods group by d.codd having count(c.cods)<10;