Sunteți pe pagina 1din 1

Se dă următoarea schemă:

CITITOR (#id_cititor, nume, data_nasterii)


IMPRUMUTA (#cod_cititor, #cod_carte, #dataim, dataef, datares)
dataim = data la care cititorul a împrumutat cartea
dataef = data la care cititorul a restituit cartea
datares = data până la care cititorul trebuie să restituie cartea
CARTE (#id_carte, titlu, autor, pret, nrex, cod_domeniu)
nrex = numărul de exemplare
DOMENIU (#id_domeniu, denumire)

Creaţi copii pentru aceste tabele.

CREATE TABLE cititor_*** AS SELECT * FROM cititor;


CREATE TABLE domeniu_*** AS SELECT * FROM domeniu;
CREATE TABLE carte_*** AS SELECT * FROM carte;

1. Adăugaţi tabelului cititor_*** următoarele constrângeri:


 cheie primară;
 numele nu poate accepta valori NULL.

2. Adăugaţi tabelului carte_*** următoarele constrângeri:


 cheie primară;
 denumirea domeniului este unică.

3. Creați tabelul imprumuta_*** specificând coloanele și tipul de date al acestora, respectiv


următoarele constrângeri sau caracteristici:
 data împrumutului are valoarea implicită data sistemului;
 data la care cititorul a restituit cartea >= data împrumutului;
 cheie primară;
 chei externe.

4. Creați o funcție care determină numărul de cărți nerestituite, dintr-un domeniu dat ca
parametru, care au fost împrumutate în ultimele 2 luni de cititori mai mari de 35 de ani.
Tratați excepțiile.

5. Creați o procedură care afișează pentru fiecare cititor următoarele informații: numele
acestuia, lista cărților împrumutate anul acesta, respectiv numărul și valoarea totală a
acestora. Tratați cazul în care un cititor nu a împrumutat cărți anul acesta.

6. Implementați în 3 variante diferite constrângerea conform căreia numărul de exemplare


al unei cărți nu poate fi negativ.

7. Adăugați coloana nr_carti în tabelul domeniu. Actualizați coloana. Definiți un trigger


care să asigure actualizarea automată a acestei coloane.

8. Creați o vizualizare care conţine pentru fiecare domeniu valoarea totală a cărților care le
conține. Folosind această vizualizare ștergeți/inserați/actualizați o linie la alegere.
Comentaţi şi rezolvaţi această problemă.

În fișierul cu rezolvări apar probleme în plus!

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