You are on page 1of 3

1. La un oficiu potal este inut evidena abonamentelor la diverse publicaii (reviste).

La fiecare publicaie pot fi abonate una sau mai multe persoane. Pentru a gestiona mai usor aplicaia, informaticianul a creat si tabela ABONAMENTE cu informaii despre fiecare abonament incheiat. Pentru fiecare revist se cunoate titlul i preul (in baza de date se memoreaza preul fara TVA), dar dat fiind faptul ca uneori, publicatiile pot avea acelai nume, fiecrei publicaii i s-a asociat un numar de identificare unic. Unele dintre revistele la care se pot face abonamente sunt: PC Magazin, Chip, Agora, Bravo. Diagrama ER care descrie scenariul de mai sus este:
PUBLICATIE #id_revista *titlu *pret *domeniu ABONAMENT #cod *data *durata *nume

Este solicitata

corespunde

Cerinte: a) Construiti baza de date cu tabele corespunzatoare si relatiile reprezentate in ERD. Populati tabelele cu inregistrari relevante pentru cerintele urmtoare: b) Afiai lista persoanelor ce au fcut abonamente pentru o perioada mai mare de 6 luni. c) Afisati lista persoanelor abonate la publicaiile din domeniul IT, ordonat alfabetic dupa nume. d) Afiai lista publicaiilor la care se pot face abonamente, intr-un tabel care va avea urmatoarea forma: Codul publicaiei Titlul publicatiei Domeniul tratat Preul Preul cu TVA

Ciornei Ioana-Elena Cl a 12a B

a)
create table publicatii ( id_revista number(2) primary key, titlu varchar2(15) not null, pret number(5) not null, domeniu varchar2(15) not null ) create table abonamente ( cod number(2) primary key, data date not null, durata number(3) not null, nume varchar2(15) not null, id_revista number(2) references publicatii(id_revista) ) insert into publicatii values (1,'Stiinta si teh',15,'IT') insert into publicatii values (2,'casa si gradina',10,'amenajari') insert into abonamente values(1,'1-MAR-2011',7,'vasile',1) insert into abonamente values(2,'18-JAN-2009',14,'marina',1) insert into abonamente values(3,'18-JAN-2007',5,'ioana',1) insert into abonamente values(4,'18-MAR-2007',10,'iulia',2)

b) select nume from abonamente where durata>6 c) select a.nume from publicatii p, abonamente a where lower(p.domeniu) like '%it%' and p.id_revista=a.id_revista order by a.nume d) select id_revista as "Codul publicatiei", titlu as "Titlul publicatiei", domeniu as "Domeniul tratat", pret as "Pretul", pret*1.24 as "Pretul cu TVA" from publicatii
Ciornei Ioana-Elena Cl a 12a B

order by id_revista

Ciornei Ioana-Elena Cl a 12a B

You might also like