Documente Academic
Documente Profesional
Documente Cultură
Cluj-Napoca
2018
1
Table of Contents
1. Scenariu, crearea și popularea tabelelor ........................................................................................................ 3
1.1 Scenariul bazei de date realizate ............................................................................................................... 3
1.2 Crearea tabelelor ....................................................................................................................................... 4
1.3 Popularea tabelelor cu date ....................................................................................................................... 7
2. Secvențe ........................................................................................................................................................13
3. Declanșări ......................................................................................................................................................16
4. Packagei.........................................................................................................................................................19
5. Concluzii .......................................................................................................................................................21
2
1. Scenariu, crearea și popularea tabelelor
Acest proiect prezintă realizarea unei baza de date a cursurilor si a participantiilor la cursuri
unei sala de sport.
In aceasta sala de sport se tin mai multe feluri de cursuri (fitness, aerobic, pilates, step, kangoo
jumps, cycling). In sala de sport lucreaza mai multi antrenori. Un antrenor poate sa tina mai multe
feluri de cursuri, dar un curs poate sa fie tinut, doar de un singur antrenor. La cursuri se participa
mai multi cursanti, in functie de capacitatea salii.
Sala de sport are la dispozitie 4 sali, in care se pot tine paralel cursuri in acelas interval de timp.
Fiecare curs este tinut de un singur antrenor. Intr-o sala se pot tine mai multe cursuri, in functie de
utilaje sau aparate care sunt in sala si de capacitatea salii. Un tip de curs tot timpul este tinut in
acelas sala.
O baza de date este un set de date centralizate structurate care sunt stocate pe un sistem de
calculatoare.
Crearea bazei de date începe cu cercetarea informațiilor cerute și culegerea datelor de care avem
nevoie.
Sala de sport, are nevoie de o baza de date, in care sa centralizeze datele cursantiilor,
abonamentele, la ce cursuri participa cursantii, tipul cursurilor si antrenoarele care tin cursul
respective salile si dotariile salilor in care se tin cursurile, durata si intensitatea cursurilor.
Sunt patru funcții de bază pe care permite o bază de date sunt: creare, revizualizare,
actualizare și ștergere, ne ajuta să fim la zi cu aplicația, în cazul nostru: sa adaugam cursuri noi,
participanti, antrenori, sa vizualizam numarul participantiilor, sa vizualizam dotarile si capacitatiile
salilor, sa actualizam datele antrenorilor si a cursantiilor, respective sa stergem anumite clase sau
cursanti.
Cu ajutorul acestei baze de date, vom avea posibilitatea sa efectuam urmatoarele operatiuni:
Adaugarea sau stergerea unui curs
Vizualizarea numarul participantiilor
Adaugarea si ştergerea participantiilor
Mentinerea datelor de contact ale clientilor
Mentinerea listelor cu abonati
Vizualizarea cursurilor in functia salilor
Vizualizarea datelor antrenorilor
Vizualizarea cursurilor in functia antrenorilor
3
1.2 Crearea tabelelor
4
CREATE TABLE "ANTRENORI"
("marca" number(3),
"nume" varchar2(20),
"prenume" varchar2(20),
"experienta" number(2),
"data_nastere" date,
"poza" BLOB NOT NULL ENABLE,
CONSTRAINT "ANTRENORI_PK" PRIMARY KEY ("marca") USING INDEX ENABLE);
5
CREATE TABLE "ABONAMENTE"
("cod" number(3),
"data_inceput" date,
"perioada" number(2),
"pret" number(4),
CONSTRAINT "ABONAMENTE_PK" PRIMARY KEY("cod") USING INDEX ENABLE);
Tabelul SALI
7
INSERT INTO "SALI" ("numar", "capacitate")
VALUES (5, 15);
Tabelul UTILAJE
8
Tabelul ANTRENORI
9
Tabelul CURSURI
10
INSERT INTO CURSURI ("cod", "denumire", "durata", "dificultate", "marca_atr",
"DESCRIERE_EXERCITII")
VALUES (6, 'Zumba', 50, 'medie', 1, '100000006');
Tabelul ABONAMENTE
Tabelul CURSANTI
12
INSERT INTO CURSANTI ("id_client", "nume", "prenume", "numar_telefon", "adresa_mail",
"cod_abt", "cod_cu")
VALUES (5, 'Puscas', 'Mihaela' ,0745458125,'puscasmiha@gmail.com', 2, 3);
2. Secvențe
Secvența cursuri_seq are rolul de a incrementa automat codul cursurilor, în momentul în care
aceștia sunt introduse în baza de date. Numerotarea începe de la 0001.
13
Creare secventa folosita pentru generare de id-uri in tabela `Utilaje`
14
Creare secventa folosita pentru generare de id-uri in tabela `Antrenori`
15
3. Declanșări
Triggerul cursuri_trig, în momentul în care un curs nou este introdus în baza de date, codul
cursului este adăugat automat, valoarea fiind numărul la care a ajuns prin secvența cursuri_seq.
16
Creare declansator inserare id pentru tabela `Utilaje`
Triggerul utilaje_trig, în momentul în care un utilaj nou este introdus în baza de date, codul
utilajului este adăugat automat, valoarea fiind numărul la care a ajuns prin secvența utilaje_seq.
Triggerul antrenori_trig, în momentul în care un antrenori nou este introdus în baza de date,
marca antrenorului este adăugat automat, valoarea fiind numărul la care a ajuns prin secvența
antrenor_seq.
17
CREATE OR REPLACE TRIGGER "antrenori_inc"
BEFORE INSERT ON ANTRENORI
FOR EACH ROW
BEGIN
SELECT antrenori_seq.NEXTVAL
INTO :new."marca_antrenori"
FROM dual;
END;
Triggerul cursanti_trig, în momentul în care un cursant nou este introdus în baza de date, id-
ul cursantului este adăugat automat, valoarea fiind numărul la care a ajuns prin secvența
cursanti_seq.
4. Package
Specificațiile package-ului:
Sunt declarate procedurile și funcțiile care sunt publice, în timp ce procedurile și funcțiile private
sunt declarate doar în body-ul package-ului. Astfel, structura specificațiilor este:
PROCEDURE sterge_din_CURSURI(
v_cod CURSURI."cod"%TYPE);
19
FUNCTION cursanulat return number;
END CURSURI_PACK;
END adaugare_in_cursuri;
PROCEDURE sterge_din_CURSURI(
v_cod CURSURI."cod"%TYPE)
IS
BEGIN
DELETE FROM CURSURI WHERE "cod"=v_cod;
END sterge_din_CURSURI;
PROCEDURE list_cursuri IS
CURSOR c_cursuri is SELECT "cod" FROM CURSURI;
TYPE c_list is TABLE OF CURSURI."cod"%TYPE;
cursuri_list c_list:=c_list();
counter integer:=0;
BEGIN
FOR n IN c_cursuri LOOP
counter:=counter+1;
cursuri_list.extend;
20
cursuri_list(counter):=n."cod";
dbms_output.put_line('CURSURI('||counter|| ')'||cursuri_list(counter));
END LOOP;
END list_cursuri;
END CURSURI_PACK;
5. Concluzii
Proiectul bazei de date pentru o sala de sport a fost realizată cu condițiile presupuse în capitolul 1.
Implementarea bazei de date a fost implementată pe platforma Oracle prin comenzilor SQL, au fost
populate datele, au fost realizate modificări de structură actualizări de conținut, vedere și interogări
21