Skip to content

My personal project of "Sisteme de Gestiune a Bazelor de Date" class

Notifications You must be signed in to change notification settings

LetMeCode01/Database-Project-using-PL-SQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

🏬Lant de magazine electronice folosind PL/SQL

📘Descrierea utilitatii bazei de date:

Aceasta baza de date serveste gestiunea completa a unui lant de magazine electronice.

  • Putem administra mai multe magazine, cu raioanele lor specifice.
  • Putem gestiona inventarul de produse electronice, procesa comenzi de la clienti si urmari livrarile.
  • Putem gestiona personalul magazinelor si permite rapoarte de vanzari, stoc si performanta.

🧩Diagrama entitate-relatie:

image

🗺️Diagrama conceptuala a modelului propus:

image

🛠️Concepte utilizate:

🧠Exercitiul 6 – Colectii PL/SQL (VARRAY, Nested Table, Associative Array)

In acest exercitiu au fost folosite colectii pentru a procesa date in memorie si a realiza centralizari complexe.

  • VARRAY a fost utilizat pentru a retine lista de raioane ale unui magazin. Este potrivit pentru colectii cu dimensiune maxima fixa si acces prin index numeric.
  • Nested table a fost utilizat pentru a stoca produsele dintr-un raion. Permite stocarea unui numar variabil de elemente si este potrivit pentru preluarea rezultatelor din interogari SQL.
  • Associative array a fost utilizat pentru centralizarea produselor pe furnizor. Permite acces direct prin cheie (numele furnizorului), fiind eficient pentru agregari si calcule rapide.

Utilitate in baza de date: Permite realizarea unor statistici si agregari complexe la nivel procedural, dincolo de un simplu GROUP BY.


🔁Exercitiul 7 – Cursoare

Au fost utilizate cursoare pentru a parcurge rezultate SQL rand cu rand.

  • Cursorul principal selecteaza raioanele.
  • Cursorul dependent selecteaza produsele pentru fiecare raion.

Utilitate in baza de date: Permite procesarea ierarhica a datelor (magazin -> raion -> produs) si control fin asupra modului in care sunt parcurse si afisate informatiile.


🔎Exercitiul 8 – Functie PL/SQL

A fost implementata o functie care returneaza o valoare (email-ul clientului cu ultima comanda).

  • returneaza un rezultat unic
  • poate fi utilizata in interogari SQL
  • separa logica de calcul de restul aplicatiei

Utilitate in baza de date: Permite reutilizarea logicii si incapsularea regulilor de calcul, crescand modularitatea sistemului.


⚙️Exercitiul 9 – Procedura cu exceptii

A fost implementata o procedura care afiseaza informatii despre comenzile unui client si trateaza situatii speciale prin exceptii. Au fost folosite:

  • proceduri pentru executie de actiuni fara return direct
  • exceptii pentru tratarea cazurilor precum lipsa datelor

Utilitate in baza de date: Asigura robustetea sistemului si tratarea controlata a erorilor, evitand comportamente neprevazute.


🚫Exercitiul 10 – Trigger de validare la INSERT

A fost creat un trigger care limiteaza numarul total de produse electronice din tabela.

Utilitate in baza de date: Implementeaza reguli de business direct la nivel de baza de date, prevenind introducerea de date invalide indiferent de aplicatia care face inserarea.


🔄Exercitiul 11 – Trigger BEFORE UPDATE FOR EACH ROW

Triggerul valideaza modificarea stocului pentru fiecare rand in parte.

Utilitate in baza de date: Permite control asupra modificarilor si impune reguli de integritate la nivel de fiecare inregistrare.


🛡️Exercitiul 12 – Trigger DDL

A fost implementat un trigger la nivel de schema care intercepteaza comenzi de tip DROP.

Utilitate in baza de date: Protejeaza structura bazei de date impotriva modificarilor accidentale sau neautorizate.


📌 Concluzie generala

Exercitiile 6-12 demonstreaza utilizarea avansata a PL/SQL pentru:

  • procesarea datelor in memorie
  • parcurgerea controlata a rezultatelor SQL
  • incapsularea logicii prin subprograme
  • impunerea regulilor de business prin triggeri
  • tratare controlata a erorilor

Mai multe detalii si implementari ale exercitiilor abordate se gasesc in fisierele .txt din repo. Dovada rularii exercitiilor se afla in documentatia Word.

About

My personal project of "Sisteme de Gestiune a Bazelor de Date" class

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published