Sunteți pe pagina 1din 36

Intrebri i probleme la cursul de Baze de date, anul III, toate formele de nvmnt

PARTEA I. Concepte despre Bazele de date relaionale. Normalizare

Probleme
1. S se normalizeze tabelul CURS_SUDENT Presupunem c tabela Curs_Student conine urmtoarele date: CURS_SUDENT NrMatricol NumeSt PrenumeSt Grupa Cursuri-Nota 458 Predescu Alexandru 114 engleza-7,germana-8 521 Radu George 122 desen-tehnic-10,franceza-7 627 Cristescu Lucian 243 programare-8,engleza-10 746 Irimia Diana 361 analiza numerica-9 782 Tanase Daciela 341 gernana-6,programare-10 982 Bunea Mihaela 114 rezistenta materialelor-8 1204 Dragnea Liviu 412 educatie fizica-10 S1520 Popa Marius 452 analiza numerica-7,engleza-9 Coloana Cursuri conine mult prea multa informaie. S presupunem c am nlocui coloana Cursuri cu dou noi coloane: CURS_SUDENT
NrMatricol 458 521 627 746 782 982 1204 1520 NumeSt Predescu Radu Cristescu Irimia Tanase Bunea Dragnea Popa PrenumeSt Alexandru George Lucian Diana Daciela Mihaela Liviu Marius Grupa 114 122 243 361 341 114 412 452 Curs1 engleza desen tehnic programare analiza numerica germana rezistenta materialelor educatie fizica analiza numerica Nota1 7 10 8 9 6 8 10 7 Curs2 germana franceza engleza programare Nota2 8 7 10 10

engleza

1.1 S se aduc tabela CURS_SUDENT la FN1. Pentru aceasta s se creeeze tabelul CURS_SUDENT modificat corespunztor FN1. Amintim c o tabel este n prima form normal(FN1) dac valorile tuturor atributelor care o compun sunt atomice (indivizibile). n plus, nu trebuie s existe atribute sau grupuri de atribute repetitive. 1.2 S se aduc tabela CURS_SUDENT la FN2. Pentru aceasta s se creeeze tabelele CURS_SUDENT modificat corespunztor FN2 i tabelele SUDENT i CURS, rezultate n urma normalizrii la FN1.

Amintim c o tabel este n FN2, dac este n FN1 i fiecare atribut care nu face parte din cheia primar este dependent de ntreaga cheie primar. Pentru a obine o relaie FN2 se poate aplica regula Casey-Delobel. mulimea atributelor care intervin n dependenele funcionale; reprezint reuniunea determinantului cu restul atributelor lui A. . 1.3 Este tabela CURS_SUDENT realizat la 1.2 n FN3? (Justificai rspunsul) 2. S se aduc tabelul Profesor la FN3 i s se creeze tabela Titlu, rezultat n urma normalizrii PROFESOR IdProf 1 2 3 4 5 6 7 Nume Popescu Marin Dragnea Ion Iosif Irina Ilie Daniel Savu Cristina Cristea George Ene Horia Catedra Matematici Limbi straine Educatie fizica Informatica Limbi straine Fizica Informatica IdTitlu 1 4 3 2 5 6 1 Titlu lector dr. asistent lector conferentiar dr. prepartor profesor dr. lector dr. Salariu 1300 950 1100 1700 680 2150 1300

Amintim c o tabel este n FN3 dac este n FN2 i toate coloanele care nu fac parte din cheia primar sunt mutual independente (depind direct de cheia primar i numai de ea) 3. Tabelele Profesor i Titlu sunt n relaia 1:m (un Titlu corespunde la mai multe cadre didactice). Tabele de mai sus pstreaz regulile de integritate?

Amintim ca regulile de integritate sunt; - unicitatea cheii primare - integritatea entitii valorile cheii primare sa fie diferite de valoarea null(o valoare necunoscuta sau lipsete) - integritatea referenial ) o cheie secundar trebuie s fie null n ntregime sau s corespund unei valori a cheii primare asociate.(in tabela asociat nu trebuie s existe valori fr corespondent).

4. S se determine anomaliile pentru tabelul Avion (Redundan logic, Anomalie la inserie, Anomalie la tergere i Anomalie la modificare). Avion A# 1 2 3 4 5 6 nume AIRBUS AIRBUS AIRBUS CAR B707 B707 capacitate 250 250 250 100 150 150 localitate PARIS PARIS LONDRA PARIS LONDRA LONDRA

Constrngere: toate avioanele cu acelai nume au aceeai capacitate. 5. S se implementeze FN1 pentru tabelul MASINA:

Persoana Eu Tu El noi

Vehicul R25 - W14 - R21 205 R5 - 305 BX - 305 - R12 - R25

6. S se aduc la FN2 tabelul ATASAT_LA, prin spargerea lui n 2 tabele ATASAT_LA _2A i ATASAT_LA_ 2B ATASAT_LA
COD_SALARIAT# S1 S1 S1 S3 S5 JOB_COD PROGRAMATOR PROGRAMATOR PROGRAMATOR VANZATOR INGINER NR_PROIECT# P1 P2 P3 P3 P3 FUNCTIA SUPERVIZOR CERCETATOR AUXILIAR SUPERVIZOR SUPERVIZOR SUM A 60 25 10 60 60

7. Tabelul ATASAT_LA _2A rezultat de la 6. s se aduc la FN3, realiznd tabelele ATASAT_LA _3A i ATASAT_LA _3B

8. Presupunem c un antier poate executa mai multe lucrri de baz i c o lucrare poate fi executat de mai multe antiere. Pentru relaia EXECUTA s se specifice dependenele, realiznd relaia EXECUTA_1! Avem relaiile urmtoare LUCRARE(cod_obiectiv#, cod_lucrare#, nume); SANTIER(nr_santier#, specialitate, sef); EXECUTA(cod_obiectiv#, cod_lucrare#, nr_santier#, conducator, data_inceput, data_sfarsit).

descriere,

functie,

9.S se aduc relaia EXECUTA_1 rezultat de la 8, n FN3 cu regula CaseyDelobel! 10. S se aduc la forma BCNF (Forma normal Boyce-Codd ) INVESTESTE_IN(cod_contractant#, cod_obiectiv#, nr_contract, cota_parte), realizand INVESTESTE_IN _1 i INVESTESTE_IN_2. (Formal, o relaie R este n forma normal Boyce-Codd dac i numai dac pentru orice dependen funcional total X A, X este o cheie (candidat) a lui R.)

Intrebri
Alegei rspunsurile corecte pentru fiecare din urmtoarele ntrebri cu rspunsuri multiple. ntrebrile pot avea mai multe rspunsuri corecte. 1. SQL este a. Un limbaj realizat de Dr. E. F. Codd b. Un limbaj folosit pentru comunicarea cu bazele de date relaionale c. Un limbaj folosit pentru definirea diagramelor ERD d. Folosit pentru definirea i modificarea obiectelor unei baze de date e. Folosit pentru definirea paginilor web

2. O baz de date este a. O structur denumit de date, cum ar fi un tabel, o vizualizare sau un index b. Un produs software furnizat de un productor de baze de date c. O colecie de date interrelaionate gestionate ca o singur unitate d. Definit n acelai mod de toi productorii de software e. Implementat diferit de diferii productori 3. Un sistem de gestionare a bazelor de date este a. O structur, cum ar fi un tabel, o vizualizare sau un index b. O colecie de date interrelaionate gestionate ca o singur unitate c. Un produs software furnizat de un productor de baze de date d. Deseori abreviat sub forma DBMS e. O structur denumit de date, cum ar fi un tabel, o vizualizare sau un index 4. Exemple de sisteme RDBMS sunt a. EXCEL b. MySQL c. PostgreSQL d. Oracle Database e. Microsoft SQL Server 5. Componentele unei baze de date relaionale includ a. Relaii b. Tabele c. Vizualizri de utilizator d. Diagrame ERD e. Restricii

6. Printre tipurile de restricii care pot fi folosite n bazele de date se numr a. NOTNULL b. Relaie c. Cheie primar d. CHECK e. Unicitate 7. Scopul normalizrii este de a rezolva urmtoarele probleme a. Anomalia de inserare b. Performante reduse c. Anomalia de creare d. Anomalia de tergere e. Anomalia de actualizare 8. Procesul de normalizare a. ncepe de la tabele, pentru a ajuta proiectanii s descopere vizualizrile de utilizator b. A fost dezvoltat de Dr. E. F. Codd c. A fost dezvoltat de Oracle d. Este aplicat sistematic fiecrei vizualizri de utilizator 9. Un identificator unic(cheie) a. Trebuie determinat naitea procesului de normalizare b. Poate fi compus dintr-un singur atribut c. Poate fi compus din zero sau mai multe atribute d. Poate fi compus din mai multe atribute concatenate 10. Prima form normal rezolv anomaliile cauzate de a. Dependenele pariale de cheia primar

b. Grupurile repetitive c. Dependenele tranzitive d. Atributele multivaloare e. Relaiile de tip unu-la-mai-muli 11. A doua form normal rezolv anomaliile cauzate de a. Dependenele pariale de cheia primar b. Grupurile repetitive c. Dependenele tranzitive d. Atributele muli valoare e. Relaiile de tip unu-la-mai-muli 12. A treia form normal rezolv anomaliile cauzate de a. Dependenele pariale de cheia primar b. Grupurile repetitive c. Dependenele tranzitive d. Atributele multivaloare e. Relaiile de tip unu-la-mai-muli 13. Pentru aducerea n prima form normal a unei relaii ne-normalizate a. Atributele care depind doar de o parte a cheii sunt eliminate b. Atributele multivaloare sunt mutate ntr-o nou relaie c. Atributele care sunt dependente tranzitiv sunt eliminate d. Grupurile repetitive sunt mutate ntr-o nou relaie e. Identificatorul unic al relaiei originale este copiat n noua relaie 14. Problemele de dependen parial a. Sunt rezolvate de FN2 b. Sunt rezolvate de FN3

c. Pot aprea n relaiile cu chei primare concatenate d. Apar cand un atribut non-cheie depinde doar de o parte a cheii primare e. Apar cand un atribut non-cheie depinde de un alt atribut non-cheie

Partea a_II_a Access 1. 1.Deschideti o aplicatie de baze de date. 2.Creati o baza de date noua in diirectorul My Documents. 3.Creati o tabela cu urmatoarele campuri: Cod_valuta Valuta Curs Number Currency Number

4.In tabela create, stabiliti Cod_valuta ca fiind cheie primara. 5.Creati un formulat nou. 6.Cu ajutorul formularului introduceti urmatoarele 5 inregistrari in tabela: 2 3 1 5 4 euro dolar franc lira
35.000 33.000

7.Creati un filtru de tipul Filter By Selection pentru tabela create. 8.Deschideti tabela create. 9.Mutati atributul 3 inaintea atributului 1 10.Salvati datele si deschideti aplicatia de baze de date.

2.
1.Deschideti baza de date 1.mdb. 2.Utilizati instrumentul de cautare, pentru a gasi in tabela Profesor inregistrarea cu numele Maria. 3.In aceasta inregisrare modificati numele in Alina. 4.Creati o interogare asupra tabelei Profesor, in care afisati toate atributele pentru profesorii cu o vechime mai mare de 15 ani. 5.Rulati interogarea creata. 6.Creati o interogare asupra tabelei Universitate in care afisati doar campurile 1 si 3. 7.Stabiliti atributul Nr_profesori din tabela Catedra ca fiind indexat fara duplicate. 8.Creati un raport asupra tabelei Profesori.

9.Grupati datele din raport dupa atributul Vechime. 10. Salvati modificarile facute si inchideti aplicatia de baze de date . 3. 1.Deschideti o aplicatie de baze de date. 2.Creati o baza de date noua in directorul My Documents. 3.Creati o tabela cu urmatoarele campuri: A B Number (cheie primara) Text

4.Creati o tabela cu urmatoarele campuri: A E Number Date

5.Craeti o legatura intre tabele prin intermediul campului A . 6.Stabiliti atributul E ca fiind indexat fara duplicate. 7.Ctreati un filtr de tipul Filter By Selection pentru prima tabela. 8.Creati o interogare asupra tabelei 2 in care afisati doar canpul 2. 9.Modificati orientarea paginii. 10. Salvati toate datele si inchideti aplicatia de baze de date. 1.Deschideti baza de date 3.mdb. 2.Stergeti tabela Informatii, din baza de date. 3.Deschideti tabela Casete si modificati dimensiunea atributului Nume_film la 100. 4.Deschideti un formular existent. 5.Cu ajutorul formei selectati inregisrarea 3 si modificati Nr_casete la 10. 6.Utilizati comanda Undo pentru a reface operatia anterioara. 7.Modificati lungimea unei coloane in tabela Casete. 8.Utilizati instrumentul de cautare, pentru a gasi intregistrarea cu valoarea Richard Gere pentru atributul Actor. 9.Stergeti aceasta inregistrare. 10. Inchideti aplicatia de baze de date.

4.
1.Deschideti aplicatia de baze de date. 2.Creati o baza de date noua in direcctorul My Documents. Salvati-o cu numele dumneavoastra. 3.Creati o tabela cu urmatoarele campuri: Inregistrare 1 Number-Long Integer

Inregistrare 2 Inregistrare 3

Text- dimensiune 50 Currency

4.Salvati tabela cu numele Numere. 5.Creati un formular nou asupra tabelei Numere. 6.Salvati formularul cu denumirea Formular Numere. 7.Introduceti 2 inregistrari in tabela Numere. cu ajutorul formei create.
Inregistrare 1 100 300

Inregistrare 2 Prima valoare A doua valoare

Inregistrare 3 31 32

8.Utilizati instrum,entul de cautare, pentrua gasi inregistrarea in care campul Inregisrare 3 ia valoare 31. 9.Modificati Prima valoare cu Prima_Valoare. 10.Salvati modificarile facute si inchideti aplicatia de baze de date.

1.Deschideti baza de date cu 4.mdb. 2.Adaugati atributul Adresa_firma tabelei Comenzi. 3.Stergeti tabela Informatii din baza de date. 4.Modificati tipul coloanei Nume_produs in tabela Produs. 5.Creati o interogare asupra tabelei Produs, in caer afisati doar campurile ce au unitatea de masura litrii 6.Creati un raport asupra tabelei Produs. 7.Introduceti in antetul raportului o imagine. 8.Mutati imaginea in partea stanga a antetului. 9.Salvati raportul cu denumirea Raport_Produs. 10.Salvati modificarile facute si inchideti aplicatia de baze de date.

5.
1.Deschideti aplicatia de baze de date. 2.Craeti o baza de date noua cu nmele baza de date pe C:/ 3.In baza de date nou create , construiti o tabela cu urmatorele atribute : Tara Data_curenta Nume_firma Cheie_primara Text-dimensiune 20 Date/Time- Short Date Texe-dimensiune 30 Autonumber

4.Stabiliti atributul Data_curenta ca find indexat cu dupliacte. 5.Mutati atributul Cheie_primara astfel incat sa devina primul atribut din tabela.

6.Creati o regula de validare pentru atributul Cheie_primara, astfel incat sa nu primesca valori mai mari de 256. 7.Introduceti in tabela creata 5 inregistrari. 8.Imprimati toate inregistrarile din tabela. 10.Inchideti aplicatia de baze de date. 1.Deschideti baze de date 5.mdb. 2.Creati un filtru de tipul Filter By Selection pentru tabela Carte. 3.Sortarti datele din tabela Autor in ordine alfabetica dupa numele autorului. 4.Aplicati filtrul creat asupra tabelei Carte. 5.Creati un formular pentru tabela Autor. 6.Cu ajutorul formularului selectati inregistrarea 2 si modificati numele autorului. 7.Stergeti inregisrarea cu nr 1 din tabela. 8.Creati un raport asupra tabelei Carte. 9.Modificati dimensiunea paginii din A4 in Letter. 10.Salvati modificarile facute si inchideti aplicatia de baze de date.

6.
1.Deschideti aplicatia de baze de date. 2.Creati o baza de date noua si salvati-o in directorul My Documents. 3.Utilizati functia Help pentru a cauta informatii despre tabele. 4.Creati o tabela noua si denumiti-o Informatii. 5.Introduce-ti in tabela 3 atribute. 6.In tabela creata stabiliti primul camp ca fiind cheie primara. 7.Creati un raport asupra acestei tabele. 8.Grupati datele din raport in functie de al doilea atribut. 9.Salvati raportul cu numele Raport. 10.Inchideti baza de date creata. 1.Deschideti aplicatia de baze de date. 2.Deschideti baza de date 6.mdb. 3.Stergeti tabela Campuri din baza de date. 4.Modificati lungimea unei coloane in tabela Autor. 5.Creati un formular pentru tabela Autor. 6.Adaugati numele dumneavoastra in antetul formularului creat. 7.Creati o interogare cu date din tabelele Autor si Carte. 8.Salvati interogarea cu numele Query. 9.Rulati interogarea creata. 10.Salvati modificarile facute si inchideti aplicatia de baze de date.

7.
1.Deschideti aplicatia de baze de date. 2.Creati o baza de date noua datele dumneavoastra pe directorul C :

3.Afisati pe ecran bara de instrumente WEB. 4.Creati o tabela cu urmatoarele atribute : COD NUME SUMA Numeric Byte Text dimensiune 15 caractere Currency Euro

5.Creati o noua tabela cu urmatoarele atribute : Nr_Crt Cod Firma Adresa Autonumber Numeric Byte Text dimensiune 20 Text dimensiune 25

6.Stabiliti in prima tabela ca cheie primara COD. 7.Creati o legatura intre cele doua tabele dupa campul COD 8.Salvati modificarile facute 9.Mutati in tabela 2 campul Firma dupa campul Adresa 10.Inchideti aplicatia de baze de date 1.Deschideti o aplicatie de baze de date 2.Deschideti baza de date 7.mdb 3.Modificati lungimea unei coloane in tabela Catedra 4.Cautati inregistrarea cu nr 3 si modificati cod profesor ca fiind egal cu 10 5.Creati o interogare cu date din tabelele Catedra si Profesor. 6.Sortati datele din tabela Profesor in ordine alfabetica dupa Nume_profesor 7.Creati un raport asupra tabelei Universitate. 8.Modificati orientarea paginii. 9.Imprimati toate datele obtinute in raportul anterior creat 10.Salvati toate modificarile facute si inchideti baza de date.

8.
1.Deschideti o aplicatie de baze de date 2.Creati o baza de date noua in directorul C : 3.Creati o tabela in care introduceti 5 campuri.Dintre acestea 2 vor fi de tip Text,2 vor fi numerice si 1 de tip data calendaristica 4.Creati un formular nou asupra tabelei create anterior. 5.Cu ajutorul noului formular introduceti in tabela 5 inregistrari 6.Adaugati numele dumneavoastra in antetul formei. 7.Creati o interogare care sa contina numai campurile 1 si 2 8.Rulati interogarea creata. 9.Imprimati doar inregistrarile selectate din tabela creata 10.Salvati toate datele si inchideti aplicatia de baze de date 1.Deschideti baza de date 8.mdb

2.Deschideti tabela Masini si introduceti urmatorul atribut Nume. 3.Stergeti legatura dintre tabelele Masini si Masini Disponibile 4.Sortati datele din tabela Masini, in ordine crescatoare dupa atributul Masini_disponibile 5.Creati un raport asupra tabelei Masini 6.Introduceti in subsolul raportului numele dvs. 7.Grupati datele din raport dupa atributul Masini_disponibile 8.Modificati dimensiunea paginii din A4 in Letter 9.Imprimati raportul la o imprimanta disponibila 10.Salvati modificarile facute si inchideti apllicatia de baze de date.

9.
1. Deschideti o aplicatie de baze de date. 2. Creati o baza de date noua in directorul My Documents. 3. Creati o tabela cu urmatoarele campuri: Numar_intrare Data_intrare Cantitate_intrata Denumire_produs Number Date Number Text

4. In tabela create stabiliti atributul Numar_Intrare ca fiind cheie primara. 5. Creati un formular nou. 6. Cu ajutorul formularului introduceti 5 inregistrari in tabela. 7. Creati un filtru de tipul Filter Exculding Selection. 8. Deschideti tabela creata in Desing View. 9. Mutati atributul 3 inaintea atributului 1. 10. Salvati datele si inchideti aplicatia de baze de date. 1. Deschideti baza de date 9.mdb. 2. Utilizati instrumentul de cautare, pentru a gasi inregistrarea cu valoarea 2 pentru atributul Cod_caseta din tabela Casete. 3. In aceasta inregistrare modificati numele filmului ca fiind Film5. 4. Creati o interogare asupra tabelei Casete in care afisati doar campurile 1,3,5. 5. Rulati interogarea creata. 6. Creati o interogare asupra tabelei Casete, in care afisati doar campurile pentru care atributul Tip_film are valoarea Actiune. 7. Stabiliti atributul Nume_film ca fiind indexat cu duplicate. 8. Creati un raport asupra tabelei Casete. 9. Grupati datele din raport dupa atributul Cod_imprumut. 10. Salvati modificarile facute si inchideti aplicatiile de baze de date.

10.
1. Deschideti o aplicatie de baze de date. 2. Creati o baza de date noua in directorul My Documents.

3. Creati o tabela denumita Elevi ce va contine urmatoarele campuri: Nume_elevi Data_nasterii Varsta Nr_scoala Text Date Number - Integer Number - Integer

4. Creati o tabela denumita Clasa ce va contine urmatoarele campuri : Nume Clasa Medie Nr_scoala 5. 6. 7. 8. Text Number Number Number - Integer

Creati o legatura intre tabela Elevi si tabela Clasa. stabiliti atributul Nr_scoala ca fiind indexat fara duplicate. Creati un filtru de tipul Filter By Form pentru tabela Elevi. Creati o interogare asupra ambelor tabele in care afisati campurile Nume_elevi, Varsta, Clasa, Media. 9. modificati orientarea paginii. 10. Salvati toate datele si inchideti aplicatia de baze de date.

Deschideti baza de date 10.mdb. Adaugati urmatorul atribut Numar_telefon tabelei Autor. Stergeti tabela Campuri din baza de date. Modificati lungimea coloanei Nume in tabela Autor la 100 de caractere. Creati o interogare asupra tabelei Carte, in care afisati doar cartile ce au codul mai mare de 100. 6. Creati un raport asupra tabelei Autor. 7. Introduceti in antetul raportului o imagine. 8. Mutati imaginea in partea stanga a antetului. 9. Salvati raportul cu denumirea Raport autor. 10. Salvati modificarile facute si inchideti aplicatia de baze de date.

1. 2. 3. 4. 5.

11.
1. Deschideti aplicatia de baze de date. 2. creati o baza de date noua si salvati-o in directorul My Documents. 3. Utilizati functia Help pentru a cauta informatii despre tabele. 4. Creati o tabela noua si denumiti-o Informatii. 5. Introduceti in tabela 3 atribute. 6. in tabela creata, stabiliti primul camp ca fiind cheie primara. 7. Creati un raport asupra acestei tabele. 8. Grupati datele din raport in functie de al doilea atribut. 9. Salvati raportul cu numele de Raport. 10. Inchideti baza de date creata.

1. Deschideti baza de date 11.mdb. 2. Stergeti tabela Informatii din baza da date. 3. Deschideti tabela Produs si modificati dimensiunea atributului Cantitate. 4. Deschideti formularul Produs. 5. Cu ajutorul formularului selectati inregistrarea 3 si modificati Cantitatea la 250. 6. Utilizati comanda Undo pentru a reface operatia anterioara. 7. Modificati lungimea unei coloane in tabela Comenzi. 8. Utilizati instrumental de cautare, pentru a gasi inregistrarea cu Cod_produs 4. 9. Stergeti aceasta inregistrare. 10. Inchideti aplicatia de baze de date.

12.
1. Deschideti aplicatia de baze de date. 2. Creati o baza de date noua in directorul My Documents. Salvati-o cu numele dumneavoastra. 3. Creati o tabela cu urmatoarele campuri: CNP Nume Data Number Double Text dimensiune 50 Date/Time Medium Date

4. Salvati tabela cu numele Persoana. 5. Creati un formular nou asupra tabelei Persoana. 6. Salvati formularul cu denumirea Formular Persoana. 7. Introduceti doua inregistrari in tabela Persoana, cu ajutorul formei create. CNP 102 98 Alina Maria Nume Data 19-Jun-94 18-Feb-2002

8.Utilizati instrumental de cautare, pentru a gasi inregistrarea cu CNP-ul 102. 9. Modificati numele persoanei in Andrei. 10. Salvati modificarile facute si inchideti aplicatia de baze de date. 1. 2. 3. 4. 5. 6. 7. 8. 9. Deschideti baza de date 12.mdb. Adaugati urmatorul atribut Adresa_mail tabelei Profesor. Stergeti tabela De sters din baza de date. Modificati lungimea unei coloane in tabela Profesor. Creati o interogare asupra tabelei Universitate, in care afisati doar campurile care au valoarea atributului Cod_Catedra mai mare decat 100. Creati un raport asupra tabelei Universitate. Introduceti in antetul raportului o imagine. Mutati imaginea in partea stanga a antetului. Salvati raportul cu denumirea Universitate.

10. Salvati modificarile facute si inchideti aplicatia de baze de date.

13.
1. Deschideti aplicatia de baze de date. 2. Creati o baza de date noua cu numele baza de date pe C:\ 3. In baza de date noua creata, construiti o tabela cu urmatoarele atribute : Oras Text dimensiune 20 Data examinarii Date/Time Short Date Text dimensiune 30 Nume Centru Numar curent Autonumber 4. Stabiliti atributul Nume Centru ca fiind indexat cu duplicate. 5. Mutati atributul Numar Curent, astfel incat sa devina primul atribut din tabela. 6. Creati o regula de validare pentru atributul Numar Curent, astfel incat sa nu primeasca valori mai mari de 256. 7. Introduceti in tabela creata 5 inregistrari. 8. Imprimati toate inregistrarile din tabela. 9. Salvati toate datele. 10. Inchideti aplicatia de baze de date. 1. 2. 3. 4. 5. 6. 7. Deschideti aplicatia de baze de date. Deschideti baza de date 13.mdb. Stergeti tabela Informatii din baza de date. Modificati tipul atributului Cantitate, din tabela Produs, din Text in Number. Deschideti formularul Produs. Adaugati numele dumneavoastra in antetul formulaului Produs. Creati o interogare cu date in tabelele Produs si Comenzi in care sa afisati din tabela Produs campurile Nume_produs si Unitate_de_masura, iar din tabela Comenzi campurile Nume_firma si Cantitate_ceruta, pentru acele inregistrari pentru care cod_produs din tabela Produs este egal cu cod_produs din tabela Comenzi.

14.
1. Deschideti aplicatia de baza de date. 2. Creati o baza de date noua si salvati-o in directorul My Documents. 3. Utilizati functia Help pentru a cauta informatii despre tabele. 4. Creati o tabela noua si denumiti-o Informatii. 5. Introduceti in tabele 3 atribute . 6. In tabela creata stabiliti primul camp ca fiind cheie primara . 7. Creati un raport asupra acestei tabele . 8. Grupati datele din raport in functie de al 2-lea atribut . 9. Salvati raportul cu numele Raport. 10. Inchideti baza de date creata . 1. Deschideti baza de date 14.mdb. 2. Deschideti tabela Casete Data_imprumut de tip Date .

imprumutate

si

introduceti

atributul

3. Stergeti legatura dintre tabelele Casete si Casete imprumutate. 4. Sortati datele din tabela Casete in ordine descrescatoare dupa atributul Actor. 5. Creati un raport asupra tabelei Casete . 6. Introduceti in antetul raportului , numele dumneavoastra si data curenta . 7. Grupati datele din raport dupa atributul Tip_film . 8. Modificati dimensiunea paginii din Letter in A4 . 9. Imprimati raportul la o imprimanta disponibila . 10. Salvati modificarile facute si inchideti aplicatia de baza de date .

15.
1. 2. 3. 4. Deschideti aplicatia de baza de date . Creati o baza de date noua cu numele dumneavoastra pe directorul C: Afisati pe ecran bara de instrumente Database . Creati o tabela cu urmatoarele atribute : Numeric Byte Text dimensiune 15 caractere Currency tip Euro

Atribut 1 Atribut 2 Atribut 3

5. Creati o noua tabela cu urmatoarele atribute : Atribut 1 Atribut 4 Atribut 5 Numeric Byte Text dimensiune 20 caractere Text dimensiune 25 caractere

6. Stabiliti in prima tabela ca cheie primara Atribut 1 . 7. Creati o legatura intre cele doua tabele dupa campul Atribut 1. 8. Salvati modificarile facute . 9. Mutati in tabela 2 campul Atribut 5 inaintea campului Atribut 4 . 10.Inchidetai aplicatia de baza de date . 1. Deschideti baza de date 15.mdb. 2. Utilizati instrumentul de cautare , pentru a gasi in tabela Profesor inregistrarea cu numele Maria . 3. In aceasta inregistrare modificati numele in Andreea . 4. Creati o interogare asupra tabelei Profesor , in care afisati toate atributele pentru profesorii cu o vechime mai mare de 15 ani . 5. Rulati interogarea creata . 6. Creati o interogare aspura tabelei Universitatea in care afisati doar campurile 1 si 3 . 7. Stabiliti atributul Nr_profesori din tabela Catedra ca fiind indexat fara duplicitate . 8. Creati un raport asupra tabelei Profesori . 9. Grupati datele din raport dupa atributul Vechime . 10.Salvati modificarile facute si inchideti aplicatia de baza de date .

16.
1. Deschideti o aplicatie de baze de date . 2. Creati o baza de date noua in directorul My Documents . 3. Creati o tabela cu urmatoarele campuri : A B Number (Cheie primara) Text

4. Creati o tabela cu urmatoarele campuri : A E Number Date

5. Creati o legatura intre tabelele prin intermediul campului A . 6. Stabiliti atributul E ca fiind indexat fara duplicitate . 7. Creati un filtru de tipul Filter By Selection pentru prima tabela . 8. Creati o interogare asupra tabelei 2 in care afisati doar campul 2. 9. Modificati orientarea paginii . 10.Salvati toate datele si inchideti aplicatia de baze de date . 1. 2. 3. 4. 5. Deschideti baza de date 16.mdb . Adaugati atributul Adresa_firma tabelei Comenzi . Stergeti tabela Informatii din baza de date . Modificati tipul coloanei Nume_produs din tabela Produs . Creati o interogare asupra tabelei Produs , in care afisati doar campurile ce au unitatea de masura "litri" . 6. Creati un rapot asupra tabelei Produs . 7. Introduceti in antetul raportului o imagine . 8. Mutati imaginea in partea stanga a antetului . 9. Salvati raportul cu denumirea Raport_produs . 10.Salvati modificarile facute si inchideti baza de date .

17.
1. Deschideti o aplicatie de baza de date . 2. Creati o baza de date noua in directorul C : 3. Creati o tabela in care introduceti 5 campuri . Dintre acestea doua vor fi de tip Text ,doua vor fi numerice si unul de tip data calendaristica . 4. Creati un formular nou asupra tabelei create anterior . 5. Cu ajutorul noului formular introduceti in tabela 5 inregistrari . 6. Adaugati numele dumneavoastra in antetul formei . 7. Creati o interogare care sa contina numai campurile 1 si 2 . 8. Rulati interogarea creata . 9. Imprimati doar inregistrarile selectate din tabela creata . 10.Salvati toate datele si inchideti aplicatia de baza de date .

1. Deschideti baza de date 17.mdb 2. Stergeti tabela Date din baza de date . 3. Deschideti tabela Casete imprumutate si modificati tipul atributului Nr_casete_imprumutate ca fiind Integer . 4. Deschideti un formular existent . 5. Cu ajutorul formei selectati intregistrarea 4 si modificati Nr_casete la 15 . 6. Utilizati comanda Undo pentru a reface operatia anterioara . 7. Modificati lungimea unei colane din tabela Produs . 8. Utilizati instrumentul de cautare , pentru a gasi inregistrarea cu valoare Desene animate pentru atributul Tip_film . 9. Stergeti aceasta inregistrare . 10.Inchideti aplicatia de baza de date .

18.
1. Deschideti aplicatia de baze de date . 2. Creati o baza de date noua in directorul My Documents . Salvati-o cu numele dumneavoastra . 3. Creati o tabela cu urmatoarele campuri : CNP Nume Data 4. 5. 6. 7. Number Double Text dimensiune 50 Date/Time Medium Date

Salvati tabela cu numele Persoana . Creati un formular nou asupra tabelei Persoana . Salvati formularul cu denumirea Formular Persoana . Introduceti doua inregistrari in tabela Persoana cu ajutorul formei create . CNP 102 98 Nume Alina Maria Data 19-Jun-94 18-Feb-2002

8. Utilizati instrumentul de cautare pentru a gasi inregistrarea cu CNP-ul 102 . 9. Modificati numele persoanei in Mihai . 10.Salvati modificarile facute si inchideti baza de date . 1. Deschideti aplicatia de baze de date . 2. Deschideti baza de date 22.mdb . 3. Stergeti tabela Campuri din baza de date 4. Modificati lungimea unei coloane in tabela Autor . 5. Creati un formular pentru tabela Autor . 6. Adaugati numele dumneavoastra in antetul formularului creat . 7. Creati o interogare cu date din tabelele Autor si Carte . 8. Salvati interogarea cu numele Query . 9. Rulati interogarea creata . 10.Salvati modificarile facute si inchideti aplicatie de baze de date .

19.
1. Deschideti aplicatia de baze de date . 2. Creati o baza de date noua cu numele baza de date pe C:\ 3. In baza de date nou creata construiti o tabela cu urmatoarele atributre : Oras Data examinarii Nume centru Numar curent Text dimensiune 20 Date/Time Short Date Text dimensiune 30 Autonumber

4. Mutati atributul Numar Curent astfel incat sa devina primul atribut din tabela . 5. Atasati atributului Oras optiunea Indexed with Duplicates . 6. Creati o regula de validare pentru atributul Numar Curent , astfel incat sa nu primeasca valori mai mari de 256 . 7. Introduceti in tabela creata 5 inregistrari . 8. Imprimati toate inregistrarile din tabela . 9. Salvati toate datele . 10.Inchideti aplicatia de baze de date . 1. Deschideti o aplicatie de baze de date . 2. Deschideti baza de date 19.mdb . 3. Modificati lungimea unei coloane in tabela Catedra . 4. Cautati inregistrarea cu nr. 3 si modificati cod profesor ca fiind egal cu 10. 5. Creati o interogare cu date din tabelele Catedra si Profesor 6. Sortati datele din tabela Profesor in ordine alfabetica dupa Nume_profesor 7. Creati un raport asupra tabelei Universitate 8. Modificati orientarea paginii 9. Imprimati toate datele obtinute in raporturi ulterior creat 10. Salvati toate modificarile facute si inchideti baza de date

20.
1. Deschideti aplicatia de baze de date 2. Creati o baza de date noua cu numele dumneavoastra pe C:/ 3. In baza de date nou creata construiti o tabela cu urmatoarele atribute Nume_depozit Data_curenta Nume_material Cod_curent Text-dimensiune 20 Date/Time- Short Date Text- dimensiune 30 Autonumber

4. Stabiliti atributul Data_curenta ca fiind indexat dublicate 5. Mutati atributul Cod_curent astfel incat sa devina primul atribut din tabela 6. Creati o regula de validare pentru atributul Cod_curent, astfel incat sa nu primeasca valori mai mari de 256 7. Introduceti in tabela creata 5 inregistrari

8. Imprimati toate inregistrarile din tabela 9. Salvati toate datele 10. Inchideti aplicatia de baze de date 1. Deschideti baza de date 20.mdb. 2. Utilizati instrumentul de cautare pentru a gasi inregistrarea cu valoarea 2 pentru atributul Cod_caseta din tabela Casetei 3. In aceasta inregistrare modificati numele filmului ca fiind Film interesant 4. Creati o interogare asupra tabelei Casete in care afisati doar campurile 2 si 4 5. Rulati interogarea creata 6. Creati o interogare asupra tabelei Casete, in care afisati doar campurile pentru care atributul Tip_film are valoarea Actiune 7. Stabiliti atributul Nume_film ca fiind indexat cu duplicate 8. Creati un raport asupra tabelei Casete 9. Grupati datele din raport dupa atributul Cod_imprumut 10. Salvati modificarile facute si inchideti aplicatia de baze de date

Partea a_III_a SQL


ntrebri i Probleme
Alegei rspunsurile corecte pentru fiecare din urmtoarele ntrebri cu rspunsuri multiple. ntrebrile pot avea mai multe rspunsuri corecte. 1. SQL este a. Un limbaj orientat spre obiecte b. Un limbaj procedural c. Un limbaj nonprocedural d. Un limbaj declarativ e. Un limbaj standard 2. ntr-un aranjament client/server a. Componentele software DBMS ruleaza pe server b. Componentele software DBMS ruleaza pe client c. Componentele software ale clientului SQL ruleaza pe client d. Componentele software ale clientului SQL ruleaza pe server 3. Un client SQL in linia de comanda a. Necesita un sistem bazat pe ferestre b. Ruleaza pe o mare varietate de platforme client. c. Necesita un browser web pe client. d. Afieaz datele i opiunile de comand folosind caracteristici grafice e. Afieaz rspunsurile la comenzi sub form de mesaje de tip text

4. Un client SQL cu interfata grafica (GUI) a. Necesita un sistem bazat pe ferestre b. Ruleaza pe o mare varietate de platforme client. c. Necesita un browser web pe client. d. Afieaz datele i opiunile de comand folosind caracteristici grafice e. Afieaz rspunsurile la comenzi sub form de mesaje de tip text 5. Un client SQL bazat pe web a. Necesita un sistem bazat pe ferestre b. Ruleaza pe o mare varietate de platforme client. c. Necesita un browser web pe client. d. Afieaz datele i opiunile de comand folosind caracteristici grafice e. Afieaz rspunsurile la comenzi sub form de mesaje de tip text 6. Clienii SQL oferii de Oracle sunt a. iSQL b. Query Analyzer c. iSQL*Plus d. SQL*Plus e. SQLWorksheet 7. Clienii SQL oferii de Microsoft sunt a. iSQL b. Query Analyzer c. iSQL*Plus d. SQL*Plus e. SQLWorksheet 8. Extensiile SQL create de furnizori a. Cresc portabilitatea codului SQL b. Scad portabilitatea codului SQL c. Contribuie la diferenierea produselor oferire de diferii productori d. Au fost bazate pe cererile pieei e. Sunt compatibile ntre implementrile diferiilor productori 9. Instruciunile SQL a. ncep cu un cuvnt cheie reprezentnd o comand b. Se termin cu un cuvnt cheie reprezentnd o comand c. ncep cu un delimitator, cum ar fi caracterul punct i virgul d. Se termin un delimitator, cum ar fi caracterul punct i virgul e. ncep cu o parantez deschis 10. Elementele limbajului SQL includ a. Cuvinte cheie b. Nume ale obiectelor din baza de date c. Operatori

d. Restricii e. Constante 11. Elementele limbajului SQL sunt separate prin a. Virgule b. Exact un spaiu c. Unul sau mai multe spaii d. Linie nou e. Liniue de subliniere 12. Numele obiectelor bazei de date pot include a. Paranteze b. Liniue de subliniere c. Numere d. Litere e. Virgule 13. Instruciunile SQL pot li mprite n urmtoarele categorii a. Limbajul dc definire a datelor (DDI, - Data Definition Language) b. Limbajul dc selectare a datelor (DSL - Dala Selection Language) c. Limbajul dc replicare a datelor (DRL - Dala Replication Language) d. Limbajul pentru controlul datelor (DCL - Data Control Language) e. Limbajul dc manipulare a datelor (DML - Data Manipulation Language) Limbajul de definire a datelor (DDL - Data Definition Language) include urmtoarele instruciuni: a. SELECT b. INSERT c. CREATE d. ALTER e. DELETE Limbajul de interogare a datelor (DQL - Data Query Language) include urmtoarele instruciuni: a. SELECT b. INSERT c. CREATE d. ALTER e. DELETE 16. Limbajul de manipulare a datelor (DML - Data Manipulation Language) include urmtoarele instruciuni: a. SELECT b. INSERT c. CREATE d. UPDATE e. DELETE 15. 14.

Limbajul de definire a datelor - DDL


Alegei rspunsurile corecte pentru fiecare din urmtoarele ntrebri cu rspunsuri multiple. Reinei c ntrebrile pot avea mai multe rspunsuri corecte. 1. Tipurile de date ofer urmtoarele avantaje a. Respect standardele publicate b. Ofer un set de comportamente utile pentru utilizatorii bazei c. Asigur independena fa de date d. Restricioneaz datele din coloane la caractere care au sens n context e. Ajut sistemul DBMS s stocheze mai eficient datele din coloane 2. Tipurile de date pentru caractere a. Sunt mai flexibile dect tipurile de date numerice b. Accept att date cu lungime fix, ct i date cu lungime variabil. c. Necesit ntotdeauna specificarea preciziei i a scalei d. Determin completarea coloanelor pn la lungimea maxim maxim e. Pot stoca iruri de caractere n format specific unei limbi naionale 3. Tipurile de date numerice a. Sunt mai flexibile dect tipurile de date pentru caractere b. Restricioneaz valorile din coloane la numere i simboluri nrudite, cum ar fi virgulele i simbolul dolar c. Necesit ntotdeauna specificarea preciziei i a scalei d. Stocheaz valori exacte sau aproximative e. Sunt potrivite pentru a fi folosite n calcule 4. Tipurile numerice standard includ a. INTEGER b. NUMBER c. FLOAT d. BOOLEAN e. INTERVAL 5. Tipurile de date temporale standard includ a. DATETIME b. DATE c. TIMESTAMP d. TIMEZONE e. TIME 6. Valorile NULL a. Pot fi folosite pentru reprezentarea datelor care lipsesc sau nu sunt cunoscute b. nseam acelai lucru ca i spaiile libere c. Sunt egale cu alte valori NULL d. Nu sunt egale cu alte valori NULL e. Sunt ntotdeauna permise n mod prestabilit 7. Instruciunile DDL includ a. CREATE

b. ALTER c. DELETE d. INSERT e. UPDATE 8. Instruciunea CREATE DATABASE a. Funcioneaz exact la fel n toate sistemele DBMS relaionale b. Specifie ntotdeauna numele bazei de date c. Specifie ntotdeauna numele proprietarului bazei de date d. Poate include parametri specifici productorului e. Funcioneaz la fel cu instruciunea CREATE SCHEMA 9. Definiia unei coloane din instruciunea CREATE TABLE poate include a. Numele tabelului b. Numele coloanei c. restricie la nivel de tabel d. clauz DEFAULT e. O clauz NULL sau NOT NULL 10. Numele unei coloane dintr-un tabel a. Trebuie s fie specificat n instruciunea CREATE TABLE b. Trebuie s fie unic n cadrul bazei de date c. Trebuie s fie unic n cadrul tabelului d. Poate fi folosit ntr-un singur index e. Trebuie s fie specificat n instruciunea ALTER TABLE 11. O restricie la nivel de coloan a. Poate referi una sau mai multe coloane b. Poate fi inclus ntr-o instruciune CREATE TABLE sau ALTER TABLE c. Folosete o sintax identic sau aproape identic cu cea a unei restricii de acelai tip la nivel de tabel d. Poate fi folosit oriunde ar putea fi folosit o restricie la nivel de tabel e. Are o sintax care difer de la un tip de restricie la altul 12. Sintaxa corect pentru clauza DEFAULT este a. DEFAULT (precizie, scal) b. DEFAULT [NULL | NOT NULL] c. DEFAULT (expresie) d. DEFAULT (numecoloan) REFERENCES nametabel (nume_coloan.) e. DEFAULT [UNIQUE | PRIMARY KEY] 13. Sintaxa corect pentru o restricie NOT NULL este a. nume_coloan tip--dedate IS NOT NULL b. nume_coloan tipdedate NOT NULL c. DEFAULT [NULL | NOT NULL] d. CREATE NOT NULL INDEX ON nume_coloan e. numecoloan REFERENCES NOT NULL 14. Sintaxa corect pentru o restricie UNIQUE este a. [CONSTRAINT numerestricie] UNIQUE (nume_coloan) b. [CONSTRAINT numerestricie] UNIQUE (nume_tabel) c. DEFAULT UNIQUE (nume_coloan) d. nume_coloan REFERENCES UNIQUE nume_tabel

e. DEFAULT [UNIQUE | PRIMARY KEY] 15. Sintaxa corect pentru o restricie referenial este a. [CONSTRAINT numerestricie] REFERENCES nume_index b. [CONSTRAINT numerestricie] REFERENCES nume_tabel c. FOREIGN KEY nume_coloan REFERENCES nume_tabel (nume_coloan) d. REFERENCES numetabel (nume_coloan) e. nume_coloan REFERENCES UNIQUE nume_tabel 16. Instruciunea CREATE INDEX a. Poate fi folosit pentru crearea restriciilor de unicitate i cheie primar b. Poate include cuvntul cheie UNIQUE c. Trebuie s refere dou sau mai multe nume de coloane d. Poate include cuvintele cheie ASC sau DESC pentru orice coloan e. Poate specifica ordinea ascendent sau descendent pentru una sau mai multe coloane 17. Instructiunea CREATE VIEW a. Stocheaz o interogare n baza de date b. Poate include cuvntul cheie opional CASCADE c. Poate include cuvntul cheie opional OR REPLACE d. Trebuie s conin o comand DMI, valid e. Trebuie s conin o instruciune SELECT valid 18. Utilizrile valide ale instruciunii ALTER TABLE includ a. Adugarea coloanelor b. Modificarea lungimii sau a preciziei coloanelor c. Redenumirea unui tabel d. Eliminarea unei chei primare e. Adugarea unei chei primare 19. O instruciune ALTER TABLE nu poate fi folosit pentru a. Schimbarea tipului de date al unei coloane la un tip numeric dac n coloana respectiv exist date de alt tip b. Redenumirea unei coloane c. Schimbarea unei restricii din NULL n NOT NULL pentru o coloan care conine valori nule d. Eliminarea unei chei exteme care refer o cheie primar e. Eliminarea unei chei primare dac exist chei exteme care refer cheia primar 20. Instruciunea DROP poate fi folosit pentru a terge a. restricie referenial b. Un index c. Un tabel d. O coloan dintr-un tabel e. O vizualizare

Limbajul de interogare a datelor(DQL)


ntrebri i probleme
1. O instruciune SELECT fr o clauz WHERE a. Selecteaz toate coloanele din tabel sau vizualizare b. Returneaz un mesaj de eroare c. Selecteaz toate rndurile din tabel sau vizualizare d. Afieaz numai definiia tabelului sau a vizualizrii e. Scrie ntotdeauna rezultatele ntr-un fiier jurnal 2. n SQL, ordinea rndurilor din rezultatele interogrii a. Este specificat de clauza SORTED BY b. Poate fi ascendent sau descendent pentru orice coloan c. n mod prestabilit este descendent, dac nu se specific o alt ordine d. Este imprevizibil dac nu este specificat in interogare e. Poate fi specificat numai pentru coloanele din setul de rezultate al interogrii 3. Operatorul BETWEEN a. Specific un domeniu de valori care include i capetele b. Poate fi rescris folosind operatorii <= i NOT <= c. Poate fi rescris folosind operatorii <= i >= d. Selecteaz rndurile adugate n tabel ntr-un anumit interval de timp e. Nu este inclus n standardul ISO/ANSI 4. Operatorul LIKE standard a. Folosete semne de ntrebare drept caractere de nlocuire poziionale b. Folosete liniue de subliniere drept caractere de nlocuire poziionale c. Folosete liniue de subliniere drept caractere de nlocuire nepoziionale d. Folosete simboluri procent drept caractere de nlocuire poziionale e. Folosete simboluri procent drept caractere de nlocuire nepoziionale 5. O instruciune SQL care confine o funcie de agregare a. Poate conine i coloane calculate b. Poate conine i coloane obisnuite c. Trebuie s includ o clauz ORDER BY d. Trebuie s includ o clauz GROUP BY e. Nu poate include, n acelai timp, o clauz GROUP BY i o clauz ORDERBY 6. Cnd operatorii AND i OR sunt combinai n aceeai clauz WHERE a. Sistemul SGBD returneaz un mesaj de eroare b. Operatorul AND are prioritate mai mare dect operatorul OR c. Operatorul AND are prioritate mai mic dect operatorul OR d. Parantezele, sunt obligatorii e. Parantezele sunt opionale

7. Sintaxa corect pentru eliminarea valorilor nule din rezultatele interogrii este a. = NULL b. NOT = NULL c. <>NULL d. IS NULL e. IS NOT NULL 8. Funciile SQL standard pentru iruri de caractere includ a. UPPER b. MIDDLE c. LOWER d. SUBSTR e. EXISTS 9. Funciile, SQL matematice standard includ a. LENGTH b. ROUND c. CAST d. MIN e. ABS 10. Operatorul UNION a. Elimin rndurile duplicate din setul de rezultate b. Include rndurile duplicate n setul de rezultate c. Combin dou interogri ntr-o singur interogare de tip join d. Combin seturile de rezultate a dou interogri ntr-un singur set de rezultate e. Este numit JOIN n unele implementri SQL Scriei instruciunile SQL pentru urmtoarele probleme 1. Gsii toate filmele din tabelul FILM pentru care MPAA_COD_INCHIRIERE are alt valoare dect R". 2. Afiai titlurile i preurile tuturor filmelor pentru care PRET_VANZARE_DVD este cel puin 19.99, dar nu mai mare de 29.99, ordonate cresctor dup pre. 3. Afiai toate filmele pentru care genul (COD_GEN_FILM) este Comdy i categoria MPAA (MPAA _COD_INCHIRIERE) este PG-13, mpreun cu filmele pentru care genul este Drama i categoria este R. 4. 14. Cte nchirieri (tabelul FILM_INCHIRIAT) nu au nici o valoare n coloana LATE_OR_LOSS_FEE? 5. Cte persoane au un nume de familie (NUME_FAMILIE_PERSOANA) care conine litera a", majuscul sau minuscul? 6. Afiai toate titlurile de filme care conin cuvntul the", cu sau fr liter mare.

7. Folosii funcia SUM pentru a afla totalul valorilor din coloana PLATA_INCHIRIAT din tabelul FILM_INCHIRIAT. 8. Afiai primele cinci caractere din numele de familie (NUME_FAMILIE_PERSOANA) din tabelul PERSOANA, dar eliminai toate valorile duplicate din setul de rezultate? 9. Din tabelul FILM, afiai toate genurile (COD_GEN_FILM), mpreun cu media preurilor pentru DVD (PRET_VANZARE_DVD) pentru fiecare gen, rotunjit la dou poziii zecimale. 10. Afiai toate filmele (ID_FILM) care au fost nchiriate (tabelul FILM_INCHIRIAT), cu suma total strns din taxele de nchiriere (PLATA_INCHIRIAT) sau taxele de ntrziere sau pierdere (PLATA_PENALIZARE) pentru filmul respectiv. Sugestie: adunai valorile PLATA_INCHIRIAT i PLATA_PENALIZARE, apoi nsumai (SUM) rezultatul respectiv pentru fiecare valoare ID_FILM. Unele valori din coloana PLATA_PENALIZARE sunt nule, aa c, dac nu avei o funcie care s nlocuiasc valorile nule cu o alt valoare (zero, n acest caz), vei obine valori nule n rezultate. n Oracle, funcia se numete NVL, n Microsoft SQL Server se numete ISNULL, iar n MySQL se numete IFNULL. (Se pare c nu exist o funcie echivalent n D132).

Combinarea datelor din mai multe tabele ntrebri i probleme


l. O subinterogare a. Poate fi folosit pentru a selecta valorile care vor fi aplicate condiiilor din clauza WHERE b. Poate fi corelat sau necorelat c. Reprezint o cale puternic de calculare a coloanelor d. Trebuie s nu fie ncadrate n paranteze e. Permite selectarea flexibil a rndurilor 2. O uniune (join) fr o clauz WHERE sau o clauz JOIN Are ca rezultat un mesaj de eroare Nu returneaz nici un rnd din setul de rezultate Reprezint o uniune extern (outer join) Reprezint o uniune intern (inner join) Are ca rezultat un produs cartezian

a. b. c. d. e.

3. O uniune extern (outer join) a. Poate fi scris n Oracle SQL folosind un simbol (+) n clauza FROM b. Poate fi scris n Microsoft SQL Server folosind operatorul = sau =* n clauza WHERE c. Returneaz toate rndurile doar din unul dintre tabele d. Returneaz toate rndurile din unul sau din ambele tabele

e. Poate fi catre stnga, ctre dreapta sau complet 4. O auto-uniune (self join) a. Nu poate avea niciodat ca rezultat un produs cartezian b. Poate fi o uniune intern sau o uniune extern c. Rezolv relaiile recursive d. Poate folosi o subinterogare pentru a limita i mai mult rndurile selectate e. Implic dou tabele diferite 5. O uniune (Join) a. Combin coloanele din dou sau mai multe tabele n rezultatele unei singure interogri b. Combin rnduri din interogari multiple ntr-un singur set de rezultate c. Este realizat ori de cte ori n clauza FROM sunt specificate mai multe tabele d. Necesit folosirea unei clauze JOIN e. Necesit o list de tabele separate prin virgule n clauza FROM 6. a. b. c. d. e. O uniune de egalitate (equijoin) Este cunoscut i sub numele de uniune extern (outerjoin) Este cunoscut i sub numele de uniune intern (innerjoiti) Este cunoscut i sub numele de auto-uniune (selfjoin) Realizeaz ntotdeauna legarea rndurilor folosind o condiie de egalitate (=) Realizeaz ntotdeauna legarea rndurilor folosind o condiie de inegalitate (<>)

7. Calificatorii numelor de coloane: a. Pot fi nume de tabele b. Pot fi numere care indic poziia relativ a tabelelor dn lista FORM c. Pot fi pseudonime pentru numele de coloane , definite n clauza FORM d. Pot fi pseudonime pentru numele de tabele, definite n clauza FORM 8, O uniune ncruiat este: a. O uniune Natural b. N produs cartezian c. O uniune extern d. O uniune Intern 9. O clauz JOIN folosind cuvntul cheie USING a. Nu poate fi folosit atunci cnd coloanele prin care se face legarea tabelelor au nume diferite b. Nu poate fi folosit atunci cnd coloanele prin care se face legarea tabelelor au aceleai nume c. Definete o uniune intern d. Definete o uniune extern e. Definete o auto-uniune

10. a. b. c. d. e.

O subinterogare corelat Ruleaz mai eficient dect o subinterogare necorelat Ruleaz mai puin eficient dect o subinterogare necorelat Are o interogare intern care refera coloane din interogarea extern Are o interogare extern care refera coloane din interogarea intern Are o interogare intern care nu face nici o referire la coloanele din interogarea extern

Scriei instruciunile SQL pentru urmtoarele probleme:


Afiai numele i identificatorul de client ale tuturor persoanelor decedate (valoarea DATA_MORTII nu este nul) care nc au conturi de client. 2. Afiai numele angajatilor care au conturi de clieni. Folosii uniuni pentru a stabili ce clieni sunt angajai i ce angajai au conturi de clieni. 3. Rescriei interogarea anterioar pentru a folosi subinterogri n loc de uniuni. 4. Afiai numele de familie al fiecarui angajat, mpreun cu numele de familie al efu1ui lor. 5. Afiai numrul de nchirieri pentru fiecare format (DVD i VHS). 6. Afiai numrul de identificare (FILM_ID) i data la care trebuie returnate (DATA_RETURNARII) pentru toate filmele nchiriate i nc nereturnate (coloan RETURNAT_DATA din tabelul FILM_INCH conine valori nule), dar care nu au fost cumprate (coloan DATA_VANZARII din tabelul FILM_COPY conine valori nule). 7. Afiai numarul de identificare i titlul filmelor care nu au fost nchiriate niciodat. 8. Folosind subinterogri pentru a filtra rndurile. Afiai titlul filmelor pentru care n inventar exist o copie VHS (MEDIA_FORMAT = V, iar DATA_VANZARII are valoarea NULL) dar pentru care nu exist copii DVD (MEDIA_FORMAT = D ). 9. Rescriei interogarea anterioar folosind o uniune n local unei subinterogri pentru a gsi filmele n format VHS. 10. Afiai toate filmele pentru care n inventar exist mai multe copii n acelai format. 1.

interogrilor avansate
ntrebri i Probleme
1. Funciile SQL a. Returneaz un set de valori b. Returneaz o singur valoare c. Pot fi folosite n clauza WHERE a unei instruciuni SQL d. Pot fi folosite ca pseudonime pentru numele tabelelor intr-o instr. SQL e. Pot fi folosite n lista de coloane a unei instruciuni SQL 2. Funcia REPLACE a. nlocuiete un nume de tabel cu un nume de vizualizare b. nlocuiete numele unei coloane cu pseudonimul coloanei

3.

4.

5.

6.

7.

nlocuiete un ir de caractere dintr-o coloan cu un alt ir de caractere nlocuiete toate valorile dintr-o coloan cu un alt set de valori nlocuiete toate rndurile dintr-o vizualizare cu rnduri coninnd date dintrun alt tabel Funcia LTRIM a. Elimin spaiile de la sfritul irurilor de caractere b. Elimin spaiile de la nceputul irurilor de caractere c. Poate fi imbricat cu alte funcii d. nlocuiete valorile nule cu alte valori n irurile de caractere e. Elimin spaiile de la nceputul i de la sfritul irurilor de caractere Funcia CHAR a. Este numit CHR n unele implementri SQL b. Este identic cu funcia ASCII n unele implementri SQL c. Returneaz valoarea corespunztoare unui caracter din setul de caractere ASCII d. Returneaz caracterul corespunztor unei valori e. Transform o valoare numeric ntr-un ir de caractere Funcia SIGN a. Returneaz -l daca parametrul furnizat are valoare negativa b. Returneaz 0 dac parametrul furnizat are valoarea zero c. Returneaz +1 dac parametrul furnizat are o valoare pozitiv d. Returneaz 0 dac parametrul furnizat are valoarea NULL e. Returneaz o valoare nul dac parametrul furnizat nu este un numr Funcia CEILING a. Rotunjete un numr prin adugire pn la primul numr ntreg b. Rotunjete un numr prin scdere pn la primul numr ntreg c. Returneaz ntotdeauna un numr ntreg d. Returneaz un numr ntreg sau o valoare nul e. Este numit CEIL n unele implementri SQL Funcia FLOOR a. Rotunjete un numr prin adugire pn la primul numr ntreg b. Rotunjete un numr prin scdere pn la primul numr ntreg c. Returneaz ntotdeauna un numr ntreg d. Returneaz un numr ntreg sau o valoare nul e. Este numit FLR n unele implementri SQL

c. d. e.

8. Expresiile CASE a. Permit executarea condiional a clauzelor dintr-o instruciune SQL b. Exist sub dou forme, respectiv statice i dinamice c. Exista sub dou forme, respectiv cu cutare i fara cautare d. Exist sub dou forme, respectiv simple i cu cautare e. Exist sub dou forme, respectiv standard i cu cautare Scriei instruciunile SQL pentru urmtoarele probleme: 1. Afiai valorile MPAA_RATING_COD din tabelul MPAA_RATING, cu liniuele de desprire nlocuite cu spaii.

2. Folosind funcia CHAR (numit CHR n Oracle), afiai valorile FILM_ID i FILM_TITLU pentru toate filmele care conin apostrofuri (caracterul ASCII 39) n titlu. 3. Aflai valoarea ASCII a semnului de exclamare (!). 4. Aflai preul mediu al filmelor n format DVD (coloana RETAIL_PRET _DVD din tabelul FILM), cu media calculat rotunjit prin adugire la cea mai apropiat sum fr zecimale. 5. Aflai preul mediu al filmelor n format VHS (coloana RETAIL_PRET_VHS din tabelul FILM), cu media calculat rotunjit prin scdere la cea mai apropiat sum fr zecimale. 6. Pentru o baz de date Oracle, generai comenzile SQL pentru eliminarea tuturor restriciilor refereniale aflate n proprietatea utilizatorului curent. Vizualizarea Oracle de tip catalog se numete USER_CONSTRAINTS, iar restriciile refereniale au valoarea 'R' n coloana CONSTRAINT_TYPE. Numele tabelului pe care se bazeaz restricia se afl n coloana TABLE_NAME a vizualizrii. Nu uitai c trebuie s folosii comanda ALTER TABLE pentru eliminarea unei restricii. 7. Pentru o baz de date Microsoft SQL Server, afiai toate restriciile de tip cheie extern. Folosii tabelul de sistem SYSOBJECTS, n care NAME este numele restriciei, iar coloana XTYPE are valoarea 'F' pentru restriciile de tip cheie extern. 8. Scriei o instruciune SQL care afieaz fiecare cont de client (CLIENT_CONT_ID) cu un ir de caractere bazat pe valoarea coloanei COPIL_INCH_ALLOWED_INDIC, care s conin textul Poate fi inchiriat de copii" dac valoarea coloanei este 'Y' i textul Nu poate fi inchiriat de copii" dac valoarea este 'N'. Sugestie: Cel mai bine funcioneaz n acest caz o expresie CASE simpl. 9. Scriei o instruciune SQL care afieaz fiecare film (FILM_ID) i o valoare pentru deceniu, n funcie de valoarea coloanei ANUL_PRODUCERII sau necunoscut), n acest caz v-ar fi de folos o expresie CASE cu cautare. 10. Scriei o instruciune SQL care afieaz fiecare inchiriere a unui film (tabelul FILM_INCH) cu valoarea TAXA_PENALIZAREclasificaa astfel: None (valoare nul sau zero), Minor (valoare < 10) sau Major (valoare > 10) .

Limbajul de manipulare a datelor DML


ntrebri i probleme
1. Limbajul DML include urmtoarele comenzi SQL: a. INSERT b. REMOVE c. UPDATE d. SELECT e. DROP

2. O instruciune DML poate referi a. Coloane din mai multe tabele b. Coloane dintr-un singur tabel c. O vizualizare care conine coloane dintr-un singur tabel d. Coloane ale unei vizualizri bazate pe un singur tabel e. Coloane ale unei vizualizri bazate pe mai multe tabele 3. La formarea unei instruciuni DML, trebuie s tineti seama de urmtoarele restricii a. Restricii refereniale b. Restricii de securitate c. Restricii NOT NULL d. Restricii de unicitate e. Restricii cheie primar 4. O instruciune INSERT cu o clauz VALUES a. Trebuie s aib o list de coloane b. Trebuie s aib o list de valori c. Poate insera rnduri multiple la o singur rulare d. Poate folosi cuvntul cheie NULL pentru a atribui valori nule coloanelor e. Poate include o clauz WHERE 5. O instruciune INSERT cu o comand SELECT imbricat este util pentru a. Gsirea urmtoarei valori pentru o cheie primar atribuit secvenial b. Mutarea rndurilor dintr-un tabel n altul c. Popularea unui tabel de test cu date dintr-un alt tabel d. Eliminarea rndurilor duplicate dintr-un tabel e. Inserarea mai multor rnduri ntr-un tabel cu o singur instruciune 6. O instruciune INSERT cu o comand SELECT imbricat a. Trebuie s aib dou liste de coloane, una n clauza INSERT i una n b. Trebuie s aib o instruciune SELECT intern care retumeaz un singur rnd de date c. Poate folosi cuvntul cheie NULL pentru a atribui valori nule coloanelor d. Poate include o clauz WHERE e. Trebuie s aib n instruciunea SELECT intern o list de coloane care corespunde cu lista de coloane din clauza INSERT sau cu coloanele din tabelul n care sunt inserate datele 7. O instruciune UPDATE fr o clauz WHERE a. Actualizeaz toate rndurile din tabel cu valori nule b. ncearc s actualizeze toate rndurile din tabel c. Eueaz i returneaz o eroare d. terge toate rndurile din tabel e. Are ca rezultat un produs cartezian

8. O instruciune DELETE fr o clauz WHERE a. Actualizeaz toate rndurile din tabel cu valori nule b. Eueaz si returneaz o eroare c. ncearc s tearg toate rndurile din tabel d. Are ca rezultat un produs cartezian e. Trebuie s includ o list de coloane 9. O instruciune UPDATE a. Trebuie s includ o clauz SET b. Trebuie s furnizeze o nou valoare pentru cel puin o coloan c. Trebuie s includ o clauz WHERE d. Poate atribui unei coloane valoarea unei alte coloane e. Poate atribui unei coloane o list de valori derivate dintr-o expresie 10. O instruciune DELETE a. Poate include o list opional de coloane b. Poate include o clauz WHERE opional c. Poate folosi cuvntul cheie FORCE pentru a fora tergerea rndurilor d. Nu poate nclca restriciile refereniale ale tabelului e. Poate avea o instruciune SELECT intern, ca parte a clauzei WHERE 11. Clauza SET dintr-o instruciune UPDATE poate atribui unei coloane o valoare care este a. O constant b. Numele unei alte coloane c. O list de valori d. Orice expresie din care rezult o singur valoare e. Cuvntul cheie NULL 12. Instruciunea SELECT intern a unei instruciuni INSERT poate include a. O clauz WHERE b. O clauz GROUP BY c. Una sau mai multe funcii de agregare d. O uniune a mai multor tabele e. O clauz UNION Scriei instruciuni SQL pentru urmtoarele probleme 13. Folosind o instruciune INSERT cu o clauz VALUES, dar fr list de coloane, inserai n tabelul FILM_GENRE un nou rnd, cu valorile FILM_COD_GEN = TRAIN' i FILM_DESCRIERE_GEN = Training'. 14. Folosind o instruciune INSERT cu o clauz VALUES si o list de coloane, inserai n tabelul FILM un nou rnd, cu urmtoarele valori pentru date:

FILM_ID: FILM_COD_GEN: MPAA_COD_RATING: FILM_NUME:

99 'TRAIN' NR ANGAJAT Training Video

15. Folosind o instruciune INSERT cu o instruciune SELECT intern, inserai n tabelul FILM_LIMBA un rnd pentru limba japonez (COD_LIMBA = 'ja'), asociat cu toate filmele din tabelul FILM. (n prezent, tabelul FILM_LIMBA nu conine nici un rnd pentru limba japonez.) 16. Creai un tabel, numit TOTAL_INCHIRIERE, folosind instruciunea CREATE de mai jos. Folosind o instruciune INSERT cu o instruciune SELECT intern, inserai n tabelul TOTAL_INCHIRIEREun rnd pentru fiecare film din tabelul FILM INCHIRIERE, coninnd numrul total de nchirieri i suma total obinut din nchirierea filmului respectiv. CREATE TABLE TOTAL_INCHIRIERE (FILM_ID INTEGER NOT NULL, NUMBER_OF_INCHIRIERES INTEGER NOT NULL, TOTAL_COST_INCHIRIERES NUMERIC (7, 2) NOT NULL); 17. tergei toate rndurile din tabelul INCHIRIERE TOTAL. 18.tergei rndurile pentru limba japonez, create la ntrebarea 15. 19. Copia 1 a filmului 1 (FILM_ID = 1, NUMAR_COPIE = 1) a fost vndut pe data de 15 ianuarie 2005. actualizai rndul respectiv din tabelul FILM_COPII. 20. Actualizai tabelul FILM astfel nct s cretei cu 10 procente toate preurile pentru formatul VHS (RETAIL_PRET_VHS) care nu conin valori nule.

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