Documente Academic
Documente Profesional
Documente Cultură
Specializarea: .....................................
Grupa: ............................
Student: ...................................
Coordonator,
Craiova, 2023
Facultatea de Automatica, Calculatoare si Electronica
Specializarea:
Grupa:
Student: .....................................
Coordonator,
Craiova, 2023
CUPRINS
CAPITOLUL I. INTRODUCERE
CAPITOLUL II. TEMA DE PROIECT
CAPITOLUL III. SHEMA CONCEPTUALA
3.1. Notiuni teoretice
3.2. Schema conceptuala
CAPITOLUL IV. SCHEMA LOGICA
4.1. Notiuni teoretice
4.2. Schema logica
CAPITOLUL V. NORMALIZAREA BD
5.1. Notiuni teoretice
5.2. Normalizarea tabelelor bazei de date
CAPITOLUL VI. DENORMALIZAREA BD
6.1. Notiuni teoretice
6.2. Denormalizarea bazei de date
CAPITOLUL VII. SGBD utilizat
7.1. Notiuni teoretice
7.2. Exemple de interogari SQL pe baza de date creata
CAPITOLUL VIII. CONCLUZII
BIBLIOGRAFIE
CAPITOLUL I. INTRODUCERE
Recent, managerul unei organizatii a angajat firma ta pentru a proiecta aplicatia de care are
nevoie, cu titlul: Magazin de inchirieri video
"Sunt detinatorul unui mic magazin video inchiriat. Avem peste 3000 de filme de care
trebuie sa tinem cont. Fiecare dintre filmele noastre are un DVD sau un VHS pentru fiecare
film. Pentru fiecare film noi trebuie sa ii stim titlul si categoria (ex
comedie,suspans,drama,actiune,razboi sau stintifico-fantastic). Da,avem multiple copii de la
multe dintr filmele noastre. Dam fiecarui film un ID specific si apoi verificam ce dvd sau vhs
contine filmul. Un film poate fi ori un DVD ori in format VHS
Mereu avem macar un DVD sau VHS pentru fiecare film pe care il urmarim,si fiecare DVD
sau VHS este mereu o copie a unui singur,film specific.
DVD-urile si VHS-urile noastre sunt foarte lungi. Nu avem filme ce necestita multiple DVD-
uri si VHS-uri
Suntem intrebati frecvent de filme in care specifici actori joaca. John Wayne si Julia
Roberts sunt mereu populari. Deci ne ar placea sa tinem cont de actorii star ce apar in fiecare
film. Nu toate filmele noastre au actori stea. Clientilor le plac sa stie "realul" nume de nastere
si data de nastere fiecarui actor stea. Noi tinem cont doar de actorii ce apar in filmele din
inventarul nostru.
Avem multi clienti . Noi inchiriem videoclipuri ddoar pentru persoanele ce au intrat in
"video clubul" nostru. Pentru a apartine grupului nostru, trebuie sa ai credit bun. Pentru
fiecare membru al clubului,ne-ar placea sa isi pastreze primul si ultimul nume,numarul de
telefon curent, si adresa curenta. Si,desigur,fiecare membru la clubului are un numar de
participare.
Apoi, trebuie să urmărim ce casete video a verificat în prezent fiecare client.
Un client poate verifica mai multe casete video în orice moment. Urmărim doar curentul
închirierii. Nu ținem evidența niciunui istoric de închiriere.”
„Știi, chiar trebuie să păstrăm un istoric al tuturor închiriilor noastre. De fiecare dată un client
închiriază o casetă, am dori să păstrăm data/ora închirierii și data/ora returului. Toate noastre
casetele sunt returnate a doua zi, așa că nu trebuie să păstrăm o dată limită.
Păstrarea acestui istoric de închiriere ne va permite să analizăm tiparul chiriilor noastre.
Noi vom fi capabili să determinam câte casete închiriază fiecare client și de câte ori un client
a returnat o casetă cu întârziere. Vom ști, de asemenea, de câte ori a fost o anumită bandă
folosita și apoi va ști când să retragă fiecare bandă. De asemenea, vom putea să ne analizăm
preferințele clienților pentru filme.”.
CAPITOLUL III. SHEMA CONCEPTUALA
Chei primare, naturale, artificiale. Cheia unei entităţi este un atribut sau set de atribute
care identifică în mod unic o instanţă a acelei entităţi (face distincţie între oricare 2 rânduri
diferite ale tabelului asociat entităţii). Cheile sunt de 2 feluri: naturale (au semnificaţie reală
pentru entitate) si artificiale (nu au semnificaţie reală pentru entitate)
Avantajele cheilor artificiale primare:
- stabilitatea – Cheile primare artificiale se schimbă rar. Schimbarea unei chei primare
presupune schimbarea cheilor străine care fac referire la ea.
- simplitatea – Au un număr de atribute şi de caractere mai mic.
- Nu prezintă ambiguităţi în reprezentare
- Elimină apariţia valorilor Null.[2]
lucreaza_in
MAGAZIN ANGAJARI
INCHIRIERE VIDEO
inchiriaza_din furnizeaza
FURNIZORI
preia
inchiriaza
MEMBRI FILME
ACTORI
FURNIZORI
-id_actor ANGAJATI
-nume -id_furnizor
-id_angajat
-prenume -nume
-nume
-data_nastere -produse
-prenume
FILME -data_nastere
-telefon
-id_film -email
-nume -adresa
-an_aparitie -data_angajarii
-regizor
-id_actor
-durata
-categorie
PERSONAJE
-id_personaj
-nume
-tip_personaj TIP CASETA
-id_actor
-id_film -id_caseta
-denumire
EVIDENTA APROVIZIONARII
EVIDENTA IMPRUMUT
-id_ev
-id_evidenta_imprumut Membrii -data_aprovizionare
-id_film -id_membru -cantitate
-id_membru -nume -id_film
-tip_caseta -prenume -_caseta
-pret -data_nastere -id_furnizor
-data_imprumut -telefon -id_angajat
-data_retur -email
-intarzieri -adresa -tip_caseta
CAPITOLUL IV. SCHEMA LOGICA
ACTORI FURNIZORI
ANGAJATI
-id_actor -id_furnizor
-nume -nume -id_angajat
-prenume -produse -nume
-data_nastere -prenume
1 -data_nastere
FILME -telefon
1 -email
-id_film -adresa
-nume -data_angajarii
-an_aparitie
1 -regizor
-id_actor
M -durata 1 1
-categorie
PERSONAJE M
-id_personaj 1 M
-nume
-tip_personaj 1 TIP CASETA
-id_actor
-id_film -id_caseta
-denumire
1
M M M M
M
EVIDENTA IMPRUMUT EVIDENTA APROVIZIONARII
Membrii
-id_evidenta_imprumut -id_ev
M 1 -id_membru -data_aprovizionare
-id_film
-nume -cantitate
-id_membru
-prenume -id_film
-tip_caseta
-data_nastere -id_caseta
-pret
-telefon -id_furnizor
-data_imprumut
-email -id_angajat
-data_retur
-adresa
-intarzieri
-tip_caseta
ANGAJATI:(id_angajat, nume, prenume, nr_telefon, email, adresa, data_nastere, sex,
stare_civila, data_angajare)
FURNIZORI:(id_furnizor, nume, produse)
MEMBRII:(id_membru, nume, prenume, data_nastere, telefon, email, adresa)
MEMBRII clubului video sunt clientii.
TIP CASETA:(id_caseta, denumire)
EVIDENTA APROVIZIONARII:(id_ev_ap, data_aprovizionare, cantitate, id_furnizori,
id_angajat, id_film, id_caseta)
ACTORI:(id_actor, nume, prenume, data_nastere)
FILME:(id_film, nume, an_aparitie, categorie, regizor, durata)
Este in tabel de legatura intre ACTORI si FILME care determina legatura M:M dintre aceste
tabele, astfel am creeat un tabel suplimentar numit PERSONAJE.
PERSONAJE:(id_personaj, nume, tip_personaj, id_actor, id_film)
EVIDENTA IMPRUMUT:(id_evid_imprumut, pret, data_imprumut, data_retur, intarzieri,
id_membru, id_caseta, id_film)
CAPITOLUL V. NORMALIZAREA BD
Tabelul FURNIZORI
3 Movies Filme
Tabelul MEMBRII
Tabelul TIP_CASETA
ID_CASETA DENUMIRE
1 VHS
2 DVD
Tabel ACTORI
Tabel PERSONAJE
1 Decebal principal 1 1
2 Mihai principal 1 2
4 Bastus negativ 4 3
1 24.09.2022 3 1 1 NULL 2
2 25.09.2022 4 2 4 NULL 1
3 01.10.2022 2 1 2 NULL 1
4 15.10.2022 5 3 3 4 NULL
5 20.10.2022 2 3 4 5 NULL
6 20.10.2022 2 2 2 NULL 2
7 21.10.2022 5 3 4 2 NULL
Tabelul FURNIZORI
CREATE TABLE furnizori(
id_furnizor number(3) primary key,
Nume varchar2(30),
Produse varchar2(30));
create sequence PK_furnizori start with 1 increment by 1;
insert into furnizori values(PK_furnizori.nextval, 'Movies', 'Filme');
Tabelul MEMBRII
Tabelul TIP_CASETA
Tabelul ACTORI
Tabelul FILME
Tabelul PERSONAJE
3. Afisati toti actori care au litera C in nume si numele personajului pe care il interpreteaza
si filmul;
select f.nume as filme, nume
from actori a, personaje p, filme f
where a.nume like '%c'
and a.id_actor = p.id_actor
and f.id_film = p.id_film;
6.In tabelul EVIDENTA_IMPRUMUT modificati pretul astfel incat sa apara o coloana Marire
pret, care sa contina majorarile cu 20% la filmele care au id_film = 2;
select data_imp, data_retur, pret as "Pret mediu", 0.2*pret as "Marire pret" from
evidenta_imprumut where id_film = '2 '
7.Afişaţi pretul minim, maxim şi mediu pentru filmele din tabela EVIDENTA_IMPRUMUT;
Baza de date creata corespunde criteriilor impuse de catre beneficiar, asigurand un mod optim
de stocare si regasire a datelor aferente inchirierii de filme in cadrul magazinului de inchirieri
video.
In urma analizelor si discutiilor am reusit sa cream o baza de data care sa gestioneze inchirierea
de filme. Baza de date a fost normalizata si denormalizata pentru a optimiza timpul de executie al
interogarilor, dimensiunea bazei de date si implicit consumul de resurse sistem.
Sistemul de gestiune a bazelor de date propus a fi folosit, sql, asigura o exploatare optima a
bazelor de date, facand posibila consultarea datelor introduse, chiar si in cazul util unei rate mici
de transfer (conexiune internet).
BIBLIOGRAFIE