Download - Gestiune Biblioteca

Transcript
Page 1: Gestiune Biblioteca

Colegiul Tehnic ,,IULIU MANIU”, BucurESTI

GESTIUNEA CARTILOR UNEI BIBLIOTECI

Proiect realizat de : IONESCU V. STEFANPETRESCU P.S. MIHNEA-GABRIEL-SORIN

Profesor coordinator: prof.Brebenel Gheorghe

2013

Page 2: Gestiune Biblioteca

Ce este Oracle? Oracle consta dintr-un set complet de constructori de aplicatii si

produse pentru utilizatori,cautand sa asigure solutii complete in tehnologia informatiei.

Aplicatiile Oracle sunt portabile peste un numar mare de statii de lucru si sisteme de operare, de la calculatoare personale la procesoare paralele.

Oracle este inzestrat cu un flexibil Sistem de Management al Bazelor de Date(DBMS) - Serverul Oracle - pentru stocarea si managementul informatiei utilizate de aplicatii.

Printre multele dezvoltari de aplicatii si produse pentru utilizatori accesibile in familia Oracle,exista o posibilitate comuna pentru a accesa baza de date.

Daca direct sau indirect,aceasta este realizata prin Limbajul cu Structura de Interogare(SQL),va fi un subiect pe care noi il vom trata in acest curs.

Produsele Oracle contin:

Oracle Text Retrieval O tehnologie care adauga capabilitati de refacere completa a textului intr-o baza de date Oracle.

Pro*Oracle O serie de precomilatoare care permit accesul bazelor de date Oracle la limbajele de programare C, Cobol,Fortran,PL/1,Pascal si Ada.

Oracle Card O interfata utilizator pentru producerea aplicatiilor cu baze de date usor de folosit ce incorporeaza grafice si facilitati multimedia.

Oracle CASE O familie de instrumente care ajuta la analiza , designul si generarea aplicatiilor Oracle.

SQL*Plus

Un instrument care permite o utilizare directa si interactiva a limbajului SQL pentru a accesa serverul Oracle,utilizand comenzi ad-hoc sau prin rularea fisierelor de comanda.

2

Page 3: Gestiune Biblioteca

SQL,SQL*PLUS si PL/SQL

*SQL

este limbajul utilizat pentru a accesa o baza de date relationala, inclusiv Oracle.

poate fi utilizat de fiecare instrument Oracle,cand accesul la baza de date este necesar.

*PL/SQL

este limbajul Procedural al lui Oracle pentru scrierea aplicatiilor si pentru manipularea datelor in afara bazei de date.

poate include un subset al comenzilor SQL,cand accesul la baza de date este cerut

este accesibil in fiecare din produsele CDE.De asemenea in insusi serverul Oracle(daca optiunea procedurala este instalata).

*SQL*Plus este un produs Oracle in care limbajele SQL si PL/SQL pot fi utilizate. de asemenea are propriul limbaj de comanda pentru controlul comportarii

produsului si pentru formatarea rezultatelor interogarilor SQL.

In concluzie,SQL si PL/SQL sunt limbaje care sunt utilizate intr-un numar de produse Oracle.

3

Page 4: Gestiune Biblioteca

Descrierea aplicatiei

Aceasta aplicatie realizeaza gestiunea unei biblioteci si este realizata cu ajutorul Oracle Application Expres.

Din punct de vedere compozitional, aplicatia este organizata in cinci sectiuni care pot fi vizitate prin accesarea meniurilor corespunzatoare. Aceste sectiuni sunt: Carti, Cititori, Situatii, Imprumut/Restituire si Home.

Atunci cand este accesat unul dintre meniuri, intram in sectiunea asociata acestuia.

La accesarea meniului Home, intram in prima pagina a aplicatie, pagina de start. Aceasta contine numele, autorul proiectului, cat si profesorul coordonator.

La accesarea meniului Carti se face intrarea in pagina ce contine lista operatiilor ce pot fi efectuate asupra tabelei Carti.

Operatiile care se pot efectua asupra tabelei Carti sunt:- adaugare informatii carti

- modificare informatii carti

4

Page 5: Gestiune Biblioteca

- stergere informatii carti

Prin apasarea butonului Adaugare informatii carti ajungem in pagina prin care se poate realiza adaugarea de informatii in tabela Carti.

In cazul in care optiunea aleasa este Salvare, dupa adaugarea in baza de date, se realizeaza redirectionarea catre pagina anterioara pentru a putea vizualiza rezultatul adaugarii.

In cazul in care utilizatorul se hotaraste sa renunte la adaugarea de informatii,acesta poate prin simpla apasare a butonului Renuntare sa se intoarca in pagina principala a meniului Carti.

Prin apasarea butonului Modificare informatii carti ajungem in pagina cu toate cartile unde putem face modificari.

Utilizatorul poate aranja datele in ordine crescatoare sau descrescatoare dupa: Cota,Titlu,Autor,Editura,Colectia,Pret,An intrare si An iesire ,le poate filtra dupa Cota,denumirea sau autorul cartii si poate alege cate randuri sa apara pe pagina iar in coltul din dreapta, butonul Resetare filtru reseteaza filtrele la forma initiala.

5

Page 6: Gestiune Biblioteca

Dupa alegerea cartii dorite pentru modificare ajungem in pagina unde putem modifica campurile cartii: Cota, Titlu, Autor, Editura, Colectia, Pret, An intrare gestiune si An iesire gestiune

6

Page 7: Gestiune Biblioteca

Butonul Salvare va memora modificarile facute iar cel de Renuntare ne intoarce la pagina anterioara.

Pagina Stergere informatii carti ne ajuta sa stergem cartile din tabela.

Avem si aici de asemenea optiunile de a aranja sau filtra datele.

Dupa ce am ales o carte pe care dorim sa o stergem,ne sunt afisate detaliile acesteia si trebuie sa confirmam prin apasarea butonului Stergere sau Renuntare in cazul in care dorim sa renuntam la proces intorcandu-ne la pagina anterioara.

7

Page 8: Gestiune Biblioteca

La accesarea meniului Cititori se face intrarea in pagina ce contine lista operatiilor ce pot fi efectuate asupra tabelei Cititori.

Operatiile care se pot efectua asupra tabelei Cititori sunt:- adaugare informatii cititori

- modificare informatii cititori

- stergere informatii cititori

Scripturile din sectiunea Cititori sunt asemanatoare cu cele din sectiunea Carti.

La accesarea meniului Situatii se face intrarea in pagina ce contine lista operatiilor ce pot fi efectuate asupra tabelei Situatii.

Operatiile care se pot efectua asupra tabelei Situatii sunt:- lista cartilor impurumutate de un anumit cititor

- lista cartilor nerestituite

8

Page 9: Gestiune Biblioteca

- lista cititorilor care au imprumutat o carte

- lista carti imprumutate intr-o zi

- lista restantierilor

Prin apasarea butonului Lista cartilor impurumutate de un anumit cititor ajungem la pagina cu toate situatiile cartilor imprumutate,restituite si nerestituite. Utilizatorul poate filtra cautarile dupa CNP sau Numele cititorului.

Prin apasarea butonului Lista cartilor nerestituite ajungem la pagina care ne arata cartile nerestituite astfel: cota, titlul si autorul cartii dar si CNP-ul,numele cititorului si data imprumutului. Utilizatorul poate filtra datele dupa Cota,Titlul sau Autorul cartii si poate alege cate randuri sa ii afiseze.

9

Page 10: Gestiune Biblioteca

Prin apasarea butonului Lista cititorilor care au imprumutat o carte ajungem la pagina cu toate situatiile cartilor imprumutate,restituite si nerestituite. Aici utilizatorul poate filtra cautarile dupa Cota, Titlul sau Autorul cartii.

10

Page 11: Gestiune Biblioteca

Prin apasarea butonului Lista cartilor imprumutate intr-o anumita zi ajungem la pagina unde putem cauta daca la o anumita data s-a efectuat vreun imprumut. Aici utilizatorul poate folosi calendarul pus la indemana.

Prin apasarea butonului Lista restantierilor ajungem la pagina cu imprumuturile unde cititorul nu a restituit cartea intr-un termen de 14 zile. Utilizatorul poate filtra datele dupa Cota,Titlul sau Autorul cartii, si poate alege cate randuri sa i se afiseze.

11

Page 12: Gestiune Biblioteca

La accesarea meniului Imprumut/Restituire se face intrarea in pagina ce contine lista operatiilor ce pot fi efectuate asupra tabelei Operatii.

Operatiile care se pot efectua asupra tabelei Operati sunt:- adaugare informatii imprumut

- adaugare informatii restituire

Prin apasarea butonului Adaugare informatii imprumut ajungem in pagina care face legatura intre tabela Carti si tabela Cititori.

Utilizatorul trebuie sa aleaga cartea existenta in bibloteca ce urmeaza sa fie imprumutata.

12

Page 13: Gestiune Biblioteca

Daca utilizatorul se hotaraste sa renunte la adaugarea de informatii,acesta poate prin simpla apasare a butonului Renuntare sa se intoarca in pagina principala a meniului Imprumut/Restituire.In cazul in care optiunea aleasa este Selectare cititor, utilizatorul va trebui sa aleaga un cititor carui urmeaza sa imprumute cartea.

13

Page 14: Gestiune Biblioteca

Aici utilizatorul poate sa renunte prin apasarea butonului Renuntare, poate sa apese pe Selectare carte pentru a-l trimite pe pagina anterioara sau sa mearga mai departe apasand butonul Selectare data imprumut. In cazul in care alege ultima optiune, el va

putea scrie data manual sau cu ajutorul calendarului.

Prin apasarea butonului Adaugare informatii restituire ajungem la pagina cu imprumuturile in care cititorul nu a restituit cartea.Utilizatorul poate sorta datele dupa Numele cititorului sau Titlul cartii.

14

Page 15: Gestiune Biblioteca

Dupa alegerea imprumutului pe care utilizatorul doreste sa-l modifice,el va fi trimis in pagina unde va putea adauga data returnarii cartii.

15

Page 16: Gestiune Biblioteca

Tabele

Carti:

16

Page 17: Gestiune Biblioteca

Cititori:

17

Page 18: Gestiune Biblioteca

Operatii:

18

Page 19: Gestiune Biblioteca

////////////CARTI///////////

create table carti (

idcarte NUMBER(3) PRIMARY KEY,

stoc VARCHAR2(10) NOT NULL ,titlu VARCHAR(30) NOT NULL,

autor VARCHAR(30) NOT NULL,

editura VARCHAR(30) NOT NULL,

colectia VARCHAR(30) NOT NULL,

pret NUMBER(5,2),

anaparitie NUMBER(4) DEFAULT TO_NUMBER(TO_CHAR(current_date,'yyyy')));

insert into carti (idcarte,stoc, titlu, autor, editura, colectia, pret, anaparitie) values (1,'II123','MOROMETII','MARIN PREDA','CORINT','BELETRISTICA',15.50,2007)

//DROP SEQUENCE carti_seq;

CREATE SEQUENCE carti_seq start with 2 increment by 1;

CREATE OR REPLACE TRIGGER bi_cartiBEFORE INSERT ON carti FOR EACH ROWBEGIN SELECT carti_seq.nextval INTO :new.idcarte FROM DUALEND;

create or replace view v_carti_gest as(

19

Page 20: Gestiune Biblioteca

select titlu, idcarte from carti crt where crt.idcarte not in (select op.idcarte from operatii op where op.dataret IS NULL));

create or replace trigger updatestocafter insert on operatiifor each rowbeginupdate carti set stoc=stoc-1 where idcarte=carti.idcarte;end;

//////////////CITITORI/////////////create table cititori (idcititor NUMBER(3) PRIMARY KEY,cnp VARCHAR2(13) NOT NULL UNIQUE,nume VARCHAR(30) NOT NULL,data_inscr DATE NOT NULL,adr VARCHAR(40) NOT NULL,tel VARCHAR(13),ocupatie VARCHAR2(30),locmunca VARCHAR2(30))

insert into cititori (idcititor,cnp, nume, data_inscr, adr, tel, ocupatie, locmunca) values (1,'1710428163217','POPESCU DANIEL','01-MAR-2008','B-DUL DACIA, NR.10','021466887','ELEV','C.T.DIMITRIE LEONIDA')

//DROP SEQUENCE cititori_seqCREATE SEQUENCE cititori_seq start with 2 increment by 1

CREATE OR REPLACE TRIGGER bi_cititori BEFORE INSERT ON cititoriFOR EACH ROWBEGIN SELECT cititori_seq.nextval INTO :new.idcititor FROM DUAL;END;

20

Page 21: Gestiune Biblioteca

create or replace view v_cititori_gest as( select NUME||' - '||CNP as CNP, idcititor from cititori cit )

//////////////OPERATII//////////////

create table operatii (idoperatie NUMBER(6) PRIMARY KEY,idcarte NUMBER(3) NOT NULL REFERENCES carti(idcarte),idcititor NUMBER(3) NOT NULL REFERENCES cititori(idcititor),dataimp DATE NOT NULL,dataret DATE)insert into operatii (idoperatie,idcarte,idcititor,dataimp,dataret) values (1,1,1,'01-FEB-2009','01-MAR-2009')

//DROP SEQUENCE operatii_seq

CREATE SEQUENCE operatii_seq start with 2 increment by 1

CREATE OR REPLACE TRIGGER bi_operatii BEFORE INSERT ON operatii FOR EACH ROWBEGIN SELECT operatii_seq.nextval INTO :new.idoperatie FROM DUAL;END;

CREATE OR REPLACE VIEW V_AD_IMPR AS( SELECT cit.cnp, cit.nume, crt.cota, crt.titlu, crt.autor, crt.editura, crt.colectia, op.idoperatie, cit.idcititor, crt.idcarte, op.dataimp, op.dataretFROM OPERATII OP, CITITORI CIT, CARTI CRTWHERE op.idcarte=crt.idcarte and op.idcititor=cit.idcititor)

=========================================================================cARTI IN GESTIUNEselect crt.idcarte,cota, titlu, autor,editura, colectia,pret, anin,anoutfrom carti crtwhere crt.idcarte not in (select op.idcarte from operatii op where op.dataret IS NULL)order by titlu

21

Page 22: Gestiune Biblioteca

pag12select TITLU display_value, IDCARTE return_value from V_CARTI_GESTorder by 1

22


Top Related