Skip to content

Instantly share code, notes, and snippets.

@daverave1212
Last active June 2, 2020 14:27
Show Gist options
  • Save daverave1212/735c77b96bb04127b325c448464e1faa to your computer and use it in GitHub Desktop.
Save daverave1212/735c77b96bb04127b325c448464e1faa to your computer and use it in GitHub Desktop.
SGBD Proiect
<title>SGBD Proiect</title>

Proiect SGBD

TO DO:

  • Adauga creation_date la diagrame

Proiectați și implementați o bază de date relațională

1. Prezentarea bazei de date

Aceasta este baza de date pentru o aplicație fictivă de gestionare a cărților și sponsorilor pentru autori, integrată pe mai multe platforme. Fiecare autor poate crea mai multe cărți (fiecare carte conține mai multe pagini) si poate fi sponsorizat de mai mulți sponsori. Fiecare autor provine de pe o singura platforma.
Un cititor poate seta un autor favorit (optional) iar un moderator poate modera o platforma specifica (optional pentru platform_id) sau sa fie un moderator general.

2. Diagrama entitate-relație

enter image description here

Linkul catre imagine: https://i.imgur.com/JAtRmUF.png

3. Diagrama conceptuală

enter image description here

Linkul către imagine: https://i.imgur.com/WW4woHg.png

4. Implementarea în Oracle a bazei de date: toate tabelele sunt definite conform schemei

Dovada cod rulat fara erori:

enter image description here

Dovada că tabelele au fost create:

enter image description here

5. Adăugarea informațiilor coerente în baza de date (minim 5 înregistrari per tabel și 10 înregistrari pe tabela asociativă)

Dovada cod rulat corect:

enter image description here

Dovada că tabelele au fost populate:

enter image description here

6. Un subprogram stocat care sa utilizeze un tip de colectie studiat

enter image description here

7. Un subprogram stocat care sa utilizeze un tip de cursor studiat

enter image description here

8. O functie care sa utilizeze 3 tabele

Nota: A trebuit sa returnez NULL la exceptii; altfel interpretorul online de SQL de la Oracle nu imi accepta functia. Am preferat sa nu folosesc RAISE_APPLICATION_ERROR deoarece RAISE_APPLICATION_ERROR nu pare sa afiseze pe ecran si mesajul inclus.

Am tratat exceptiile NO_DATA_FOUND si o exceptie cusotm NO_SPONSORED_AUTHORS.

Dovada cod acceptat:

enter image description here

Evidențierea cazurilor tratate:

enter image description here

9. Procedura care foloseste 5 tabele

Dovada cod acceptat:

enter image description here

Evidențierea cazurilor tratate:

enter image description here

10. Trigger LMD la nivel de comanda

Dovada cod acceptat:

enter image description here

Evidențierea triggerului:

enter image description here

11. Trigger LMD la nivel de linie

Dovada cod acceptat:

enter image description here

Evidențierea triggerului:

enter image description here

12. LDD trigger

Nota: Nu am reușit să îl fac să și afișeze mesajul de eroare. Triggerul funcționeaza corect în afară de mesajele de eroare.

Dovada cod acceptat:

enter image description here

Evidențierea triggerului:

  • Întâi am încercat sa dau drop la tabelul de legătură sponsored_by (ceea ce a dat eroare datorită triggerului). Acest tabel nu are alte dependințe.
  • Am șters toate datele din sponsored_by și Sponsors și am încercat din nou sa șterg tabelul (și merge).

enter image description here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment