Sunteți pe pagina 1din 13

PROIECT BAZE DE DATE

- GESTIONAREA UNEI BIBLIOTECI-

TUDURACHI ANDRA-NICOLETA
DESCRIEREA TEMEI

Proiectul prezinta circuitul cartilor intr-o biblioteca, iar pentru a simplifica


gestionarea lor, am creat o baza de date care stocheaza informatii reprezentative
pentru acestea.

Tabele create sunt urmatoarele:

1. Tabela Biblioteca ce contine:


-id_locatie
-denumire
-numar_carti

2.Tabela Carte ce contine:


-id_carte
-titlu
-id_editura
-id_autor
-id_locatie

3. Tabela Editura ce contine:


-id_editura
-nume
-adresa
4. Tabela Autor ce contine:
-id_autor
-nume
-prenume

5. Tabela Imprumuturi ce contine:


-id_imprumut
-id_carte
-nume_persoana
-data_imprumut
-termen_returnare
Biblioteca
Editura
Id_locatie
Id_editura
Denumire ∞
∞ ∞ Nume
Numar_carti
Adresa
1

∞ ∞
Carte 1 Autor
1
Id_carte Id_autor

Titlu Nume

Id_editura Prenume

1Id_autor

Id_locatie
Imprumuturi
Id_imprumut

Id_carte

Nume_persoana
1

Data_imprumut

Termen_returnare

Biblioteca contine carti care sunt sunt scrise de autori, astfel am marcat cate
o legatura intre tabela biblioteca si tabela carti, apoi intre table carti si tabela autori.
De asemenea, am realizat o legatura si intre carti si edituri. Toate cartile pot fi
imprumutate, deci am realizat tabela numita Imprumuturi
1. CREAREA TABELELOR

CREATE TABLE BIBLIOTECA( ID_LOCATIE NUMBER PRIMARY


KEY,DENUMIRE
VARCHAR2(50)NOT NULL, NUMAR_CARTI NUMBER);

CREATE TABLE CARTE(ID_CARTE NUMBER PRIMARY KEY, TITLU


VARCHAR2(1000), ID_EDITURA NUMBER REFERENCES
EDITURA(ID_EDITURA),ID_AUTOR NUMBER REFERENCES
AUTORI(ID_AUTOR), ID_LOCATIE NUMBER REFERENCES
BIBLIOTECA(ID_LOCATIE));

CREATE TABLE EDITURA (ID_EDITURA NUMBER PRIMARY KEY, NUME


VARCHAR2(100),ADRESA VARCHAR2(100));

CREATE TABLE AUTOR(ID_AUTOR NUMBER PRIMARY KEY, NUME


VARCHAR2(100), PRENUME VARCHAR2(100));

CREATE TABLE IMPRUMUTURI( ID_IMPRUMUT NUMBER PRIMARY KEY,


ID_CARTE REFERENCES CARTE(ID_CARTE), NUME_PERSOANA
VARCHAR2(100), DATA_IMPRUMUT TIMESTAMP, TERMEN_RETURNARE
NUMBER);
2.POPULARE TABELE
a)Tabela Biblioteca:
INSERT INTO BIBLIOTECA VALUES ('1', 'BIBLIOTECA CENTRALA CLUJ', '300');
INSERT INTO BIBLIOTECA VALUES('2','BIBLIOTECA NATIONALA','400');
INSERT INTO BIBLIOTECA VALUES ('3','BIBLIOTECA SORIN TITEI','120');
INSERT INTO BIBLIOTECA VALUES('4','BIBLIOTECA NICOLAE IORGA,'190');
INSERT INTO BIBLIOTECA VALUES('5', 'BIBLIOTECA MIHAI EMINESCU','200');
INSERT INTO BIBLIOTECA VALUES('6','BIBLIOTECA PETRE DULUFU', '125');
INSERT INTO BIBLIOTECA VALUES ('7','BIBLIOTECA OCTAVIAN GOGA', '85');
INSERT INTO BIBLIOTECA VALUES('8','BIBLIOTECA C.STURDZA ','100');
INSERT INTO BIBLIOTECA VALUES ('9','BIBLIOTECA EUGEN
TODORAN','210');
INSERT INTO BIBLIOTECA VALUES('10', BIBLIOTECA JUDETEANA
TIMIS','225');

b) Tabela Carte:
INSERT INTO CARTE VALUES('1','TEATRU','9','8','3');
INSERT INTO CARTE VALUES('2','POEZII','9','1'3,'2');
INSERT INTO CARTE VALUES('3','TEATRU','8','6','3');
INSERT INTO CARTE VALUES('4','NUVELE','6','7','4');
INSERT INTO CARTE VALUES('5','DE CE IUBIM FEMEILE','4','3','1');
INSERT INTO CARTE VALUES('6','JOCUL IELELELOR','3','5','2');
INSERT INTO CARTE VALUES('7','DOMNISOASA CHRISTINA','2','1','5');
INSERT INTO CARTE VALUES('8','TEATRU','3','1','5');
INSERT INTO CARTE VALUES('9','SCHITE','2','3','9');
INSERT INTO CARTE VALUES('10','OMUL DE PIATRA','7','4','5');
INSERT INTO CARTE VALUES('11','POEZII','6','5','4');
INSERT INTO CARTE VALUES('12','CEL MAI IUBIT DINTRE
PAMANTENI','7','5','3');
INSERT INTO CARTE VALUES('13','CEL MAI IUBIT DINTRE
PAMANTENI','4','3','2');
INSERT INTO CARTE VALUES('14','ION','9','4','3');
INSERT INTO CARTE VALUES('15','ION','2','4','1');

c)Tabela Editura:
INSERT INTO EDITURA(ID_EDITURA, NUME, ADRESA) VALUES ('1',
'ACCENT', 'BUCURESTI');
INSERT INTO EDITURA(ID_EDITURA, NUME, ADRESA) VALUES ('2',
'ALBATROS', 'BACAU');
INSERT INTO EDITURA(ID_EDITURA, NUME, ADRESA) VALUES ('3', 'ALDINE',
'IASI');
INSERT INTO EDITURA(ID_EDITURA, NUME, ADRESA) VALUES ('4', 'CORINT',
'TIMISOARA');
INSERT INTO EDITURA(ID_EDITURA, NUME, ADRESA) VALUES ('5', 'CURTEA
VECHE', 'CLUJ');
INSERT INTO EDITURA(ID_EDITURA, NUME, ADRESA) VALUES ('6',
'HUMANITAS', ' ARAD');
INSERT INTO EDITURA(ID_EDITURA, NUME, ADRESA) VALUES ('7', 'LITERA',
'PLOIESTI');
INSERT INTO EDITURA(ID_EDITURA, NUME, ADRESA) VALUES ('8',
'MINERVA', 'PITESTI');
INSERT INTO EDITURA(ID_EDITURA, NUME, ADRESA) VALUES ('9',
'BIBLIOTECA HASDEU', 'IASI');
INSERT INTO EDITURA(ID_EDITURA, NUME, ADRESA) VALUES ('10',
'BIBLIOTECA I.MINCU', 'ORADEA');

d)Tabela Autor:
INSERT INTO AUTOR VALUES('1','GOGA','OCTAVIAN');
INSERT INTO AUTOR VALUES ('2','ALECSANDRI','VASILE');
INSERT INTO AUTOR VALUES ('3','EMINESCU','MIHAI');
INSERT INTO AUTOR VALUES('4', 'CARTARESCU','MIRCEA');
INSERT INTO AUTOR VALUES('5', 'ELIADE' ,'MIRCEA');
INSERT INTO AUTOR VALUES ('6', 'FILIMON', 'NICOLAE');
INSERT INTO AUTOR VALUES('7', 'PETRESCU','CAMIL');
INSERT INTO AUTOR VALUES('8','SADOVEANU','MIHAIL');
INSERT INTO AUTOR VALUES ('9','PREDA','MARIN');
INSERT INTO AUTOR VALUES('10', 'REBREANU','LIVIU');
INSERT INTO AUTOR VALUES('11','TUDURACHI','ANDRA');
e) Tabela Imprumuturi:
INSERT INTO IMPRUMUTURI VALUES ('1', '3','MARIUS',TO_DATE( '20181111',
'YYYY/MM/DD'),'15');
INSERT INTO IMPRUMUTURI VALUES ('2', '5','IOANA',TO_DATE( '20180303',
'YYYY/MM/DD'),'25');
INSERT INTO IMPRUMUTURI VALUES ('3', '6','IONUT',TO_DATE( '20180108',
'YYYY/MM/DD'),'30');
INSERT INTO IMPRUMUTURI VALUES ('4', '3','ANDREI',TO_DATE( '20180702',
'YYYY/MM/DD'),'20');
INSERT INTO IMPRUMUTURI VALUES ('5', '25','ANA',TO_DATE( '20180908',
'YYYY/MM/DD'),'20');
INSERT INTO IMPRUMUTURI VALUES ('6', '12','MIHAI',TO_DATE( '20181212',
'YYYY/MM/DD'),'20');
INSERT INTO IMPRUMUTURI VALUES ('7', '30','GEORGE',TO_DATE( '20180812',
'YYYY/MM/DD'),'30');
INSERT INTO IMPRUMUTURI VALUES ('8', '30','ION',TO_DATE( '20180822',
'YYYY/MM/DD'),'30');
INSERT INTO IMPRUMUTURI VALUES ('9', '30','DIANA',TO_DATE( '20180412',
'YYYY/MM/DD'),'30');
INSERT INTO IMPRUMUTURI VALUES ('10',
'30','ANDREEA',TO_DATE( '20180506', 'YYYY/MM/DD'),'30');
3.PRELUCRAREA DATELOR

1.Se adauga coloana Rezumat in tabela Carte:

ALTER TABLE CARTE


ADD (REZUMAT VARCHAR2(100));

2. Stergerea coloanei Rezumat din tabela CARTE:


ALTER TABLE CARTE
DROP COLUMN REZUMAT;

3. Redenumirea tabelei Imprumuturi in Carti_imprumutate:


ALTER TABLE IMPRUMUTURI
RENAME TO CARTI_IMPRUMUTATE;

4. Adaugarea unei restrictii UNIQUE Denumirii din tabela Biblioteca:


ALTER TABLE BIBLIOTECA
ADD CONSTRAINT UQ_DENUMIRE UNIQUE(DENUMIRE);

5. Modificarea numelui celui care a facut imprumutul de carte cu id-ul 6:


UPDATE CARTI_IMPRUMUTATE
SET NUME_PERSOANA='ANDRA TUDURACHI'
WHERE ID_IMPRUMUT=6;

6. Stergerea restrictiei UNIQUE .


ALTER TABLE BIBLIOTECA
DROP UNIQUE(DENUMIRE);

7. Stergerea randului din Carte unde id-ul este 6


DELETE FROM CARTE
WHERE ID_CARTE IN( SELECT ID_CARTE FROM CARTE
WHERE ID_CARTE=6);

9. Selectarea datelor comune din tabela Carte si tabela Carti_imprumutate:


SELECT* FROM CARTE C
LEFT OUTER JOIN CARTI_IMPRUMUTATE CI ON C.ID_CARTE=CI.ID_CARTE;

10. Selectarea termenului maxim de imprumut din tabela carti_imprumutate:


SELECT MAX(TERMEN_RETURNARE)
FROM CARTI_IMPRUMUTATE;

11. Crearea unei tabele de back-up pt tabela Carte:


CREATE TABLE CARTE_BKP AS SELECT*FROM CARTE;
12. Stergere tabela back-up
DROP TABLE CARTE_BKP;

13. Selectarea datelor despre cartea cu titlul Poezii si Schite


SELECT ID_CARTE, ID_EDITURA, ID_AUTOR, ID_LOCATIE FROM CARTE
WHERE TITLU='POEZII'
UNION
SELECT ID_CARTE, ID_EDITURA, ID_AUTOR, ID_LOCATIE FROM CARTE
WHERE TITLU='SCHITE';

14. Selectarea bibliotecilor care nu au numarul de carti egal cu 120:

SELECT*FROM BIBLIOTECA
MINUS
SELECT*FROM BIBLIOTECA WHERE NUMAR_CARTI='120';

15. Selectarea id-ului autorilor care au numele Liviu Rebreanu:

SELECT*FROM AUTOR
INTERSECT
SELECT*FROM AUTOR
WHERE NUME='Rebreanu';
16. Verificarea cartilor existente in primele 3 biblioteci:
SELECT*FROM CARTE WHERE ID_LOCATIE='1'
UNION
SELECT*FROM CARTE WHERE ID_LOCATIE='2'
UNION
SELECT*FROM CARTE WHERE ID_LOCATIE='3'

17. Eliminarea tuplurilor de titlu din tabela CARTE:


SELECT DISTINCT TITLU
FROM CARTE;

18. Se selecteaza toate datele comune din tabela carte si tabela autor:

SELECT* FROM CARTE C


LEFT OUTER JOIN AUTOR A
ON C.ID_AUTOR=A.ID_AUTOR;

19. Crearea unui view in care sa se afiseze toate cartile:

CREATE VIEW OPERE


AS SELECT C.TITLU,
A.NUME, A.PRENUME
FROM AUTOR A, CARTE C
WHERE A.ID_AUTOR=C.ID_AUTOR;
20. Crearea unui index pentru coloana Titlu din tabela Carte:

CREATE INDEX TITLU_IDX ON CARTE(TITLU);

21. Stergere index.


DROP INDEX TITLU_IDX;

22. Sinonim pentru Biblioteca si se afiseaza:

CREATE SYNONYM LIBRARY FOR BIBLIOTECA;

23. Crearea unei secvente pentru tabela biblioteca:

CREATE SEQUENCE SEQ_ID_LOCATIE


START WITH 25
INCREMENT BY 15
MAXVALUE 400
NOCYCLE;

INSERT INTO BIBLIOTECA


VALUES(SEQ_ID_LOCATIE.NEXTVAL, 'GEORGE', 130);

24. Creare si stergere tabela Permis_biblioteca:

CREATE TABLE PERMIS_BIBLIOTECA(ID_PERMIS NUMBER PRIMARY KEY,


NUME VARCHAR2(100),EMAIL VARCHAR2(20));

DROP TABLE PERMIS_BIBLIOTECA;

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