Documente Academic
Documente Profesional
Documente Cultură
Proiectul descrie un sistem de evidenta al unei biblioteci. Pentru acestea sunt necesare
informatii despre persoanele care imprumuta carti din biblioteca, dar si despre cartile aflat in
biblioteca,cat si editurile lor.
Baza de date contine urmatoarele tabelele: CARTE, CITITOR, FISA LECTURA, EDITURA.
O carte poate fi imprumutata mai multor cititori si acestia la randul lor pot impumuta mai multe
carti, de aceea se necesita crearea unei noi tabele, fisa lectura, care stabileste o legatura de
mai multi la unu si cu tabela cititor, si cu tabela carte.
De asemenea unei edituri ii corespund una sau mai multe carti, iar o carte poate fi publicata
la o singura editura, ceea ce dovedeste relatia de unu la multi dintre aceste doua tabele.
Tabela CARTE contine datele despre cartile existente in stocul bibliotecii si anume codul
fiecarei carti ,un cod unic (cod_carte caracter 20,cheia primara a tabelei), denumirea cartii
(denumire caracter 50), autorul cartii (autor caracater 30), numarul de exemplare din biblioteca
( numar 5), pretul cu care o carte a fost cumparata(pret number 5), codul editurii care este
campul prin care se face legatura cu tabela Editura (cod_editura), anul aparitiei publicatiei la
respective editura (an_aparitie numar 4), anul apartitiei trebuie sa fie intre 1700 si 2010.
Tabela CITITOR care contine cnp-ul cititorilor (cnp numar 13) cheia primara , numele
cititorilor (nume character 50), prenumele cititorilor (prenume character 50), orasul din care
provine fiecare cititor ( oras caracter 35), email-ul cititorului (email caracter 25),emailul are
restrictie trebuie sa se scrie simbolul ‘@’, adresa cititorului (adresa caracter 50), si numarul de
telefon (telefon character 10).
Tabela FISA_LECTURA contine datele despre codul fisei de lectura (cod_fisa caracter 25)
cheia primara, codul cartii imprumutate care face legatura cu tabela carte ( cod_carte caracter
20), cnp-ul persoanei care a imprumutat carti, camp care face legatura cu tabela cititori (numar
13), data imprumutarii cartilor (data_imprumut data ).
Tabela EDITURA contine date despre codul editurii care este unic (cheia primara
:cod_editura caracter 20), numele editurii (nume_edit caracter 15), adresa editurii (adresa
character 40) si un numar de telefon (tel caracater 10).
Schema conceptuala
CARTE
Cod_carte
Denumire
Autor
Nr_exemplare
Pret
Cod_editura
An_aparitie
EDITURA
Cod_editura
Nume_editura
Adresa
Tel
CITITOR
Cnp
Nume
Prenume
FISA_LECTURA Oras
Cod_fisa Email
Cod_carte Adresa
Cnp Telefon
Data_imprumut
Crearea tabelelor
Instructiunea „ALTER”
from cititor;
3) Sa se afiseze toate cartile imprumutate la momentul actual, precum
si cititorii care le-au imprumutat.
select denumire,autor,nume,prenume
from carte , cititor , fisa_lectura
where carte.cod_carte=fisa_lectura.cod_carte and
fisa_lectura.cnp=cititor.cnp;
4) Sa se afiseze toti cititorii din Bucuresti care au e-mailul pe domeniu
romanesc.
select nume,prenume
from cititor
where upper(oras)='BUCURESTI'and email like '%.ro';
5) Sa se determine cartile care au pretul mai mare decat 50 dar anul
aparitiei lor nu este intre 1800 si 1980.
minus
select denumire, autor from carte where an_aparitie between 1800 and
1980;
6) Sa se afiseze cititorii care au imprumutat mai mult de 2 carti.
intersect
select concat(nume_editura,'.editura@yahoo.com')
from editura;
10) Sa se realizeze o diferentiere intre autorii cartilor, astfel incat la
Mihai Eminescu sa se specifice ca este cel mai mare poet roman, la
Ion Luca Caragiale ca este cel mai mare dramaturg roman, la Mihail
Sadoveanu ca este Ceahlaul literaturii romane, iar in rest sa ramana
cu titulatura de personalitati importante.
when 'ion luca caragiale' then 'Cel mai mare dramaturg roman'
from carte;
select data_imprumut,round(sysdate-data_imprumut)
from fisa_lectura;
12) Sa se afiseze valoare medie a pretlui tuturor cartilor care au
aparut dupa 1950
from carte
where an_aparitie>1950;
13) Sa se afiseze editurile care au publicat carti pentru biblioteca,
precum si numele si autorii cartilor respective. De asemenea anul
aparitiei trebuie sa fie mai mic de 1950.
select denumire,autor,nume_editura
from carte,editura
select count(a.cod_carte)
select *
from carte
as select *
from cititor
where cnp like '2%' and email like '%.ro' and oras='Bucuresti';
Indecsi
on cititor(nume);
Secvente
increment by 5
maxvalue 100
nocycle;
start with 20
increment by 3
maxvalue 69
nocycle;
Sinonime
Schema conceptuala:
1) Sa se realizeze un formular pentru a actualiza datele din tabela
carte:
2) Sa se realizere un formular pentru actualizarea datelor din tabela
cititor:
3) Sa se realizare un raport care permite vizualizarea inregistrarilor din
tabela cititor:
4) Sa se realizeze un raport care permite vizualizarea datelor din tabela
fisa_lectura: