Proiect Baze de Date 2

Proiect 2021-2022 Link-ul pentru alegerea proiectului se găsește pe Microsoft Sharepoint sau pe Teams > General > Files. (pentru a păstra modificările vă rugăm să editați direct și nu să descărcați o copie)

Cerințe proiect

  • Tema aplicației va fi aleasă de către student (până în săptămâna a 3-a)
  • Limbajul de programare pentru dezvoltarea aplicației este la alegere (ex. Python, Java, .Net, C/C++, etc.)
  • Proiectul este individual
  • NU se acceptă 2 proiect la fel. De exemplu, nu se vor accepta 2 proiecte pentru magazin virtual cu piese auto, dar se acceptă ca fiind proiecte diferite un magazin virtual de piese auto și un magazin virtual de automobile.
  • Îndrumătorul de laborator va fi înștiințat de titlul proiectului pentru a-și da acordul
  • După acordul îndrumătorului, înscrierea titlului proiectului se va face de în spreadsheet

Proiectarea bazei de date

  • Sistemul de Gestiune a Bazei de Date (SGBD) va fi relațional sau NoSQL, la alegere.
    • Dacă SGBD-ul este relațional, atunci trebuie să suporte un limbaj de programare procedurală. Ex.: Oracle (PL/SQL), MySQL, PostgreSQL, Microsoft SQL Server
    • Dacă este NoSQL orientat document, atunci trebuie să suporte funcții definite de utilizator și să folosească MapReduce. Ex: MongoDB, CouchDB, Couchbase
    • Dacă este NoSQL orientat coloană, atunci trebuie să suporte tipuri colecții și funcții definite de utilizator. Ex. Cassandra
  • Baza de date trebuie să conțină minim 5 tabele (sistem relațional) sau 5 colecții (Sistem NoSQL).
  • Baza de date trebuie să fie proiectată astfel încât să respecte modelul tipului de baza de date ales.
  • Se vor defini constrângeri de integritate pe structurile tabelare/colecții.

Proiectarea aplicației

  • Pentru a putea fi acceptată prezentarea proiectului, aplicația trebuie să conțină minim: 2 interfețe grafice, 2 rapoarte
  • Dacă se utilizează o bază de date relațională, aceasta trebuie să conțină minim: 1 procedură, 1 funcție, 1 trigger
  • Dacă se utilizează o bază de date NoSQL, aceasta trebuie să conțină minim: 3 funcții definite de utilizator dintre care minim una care folosește MapReduce
  • Se acceptă proiecte care folosesc ORM-uri (ORM – object-relationship mapping, ex. JPA, Hibernate, Entity Framework, SQLAlchemy, etc) dacă complexitatea tuturor liniilor de cod care se folosesc de entități din baza de date este O(1). Mai exact se permite maparea entităților și utilizarea conexiunii în mod facil dar logica trebuie să fie în baza de date.
  • NU se acceptă proiecte care folosesc comenzi SQL scrise direct în codul apelant

Documentație

Documentația:

  • Se va scrie în MS WORD/LibreOffice
  • Va avea 8 pagini (inclusive screenshots aplicație și diagrama bazei de date)
  • Font ARIAL de 10p
  • Textul va fi Justify
  • Nu se va folosi spațiere între linii
  • Identarea paragrafelor se va face cu un tab (4 spații)

Documentația va fi structurată astfel:

  • Descrierea temei
    • Descrierea bazei de date:
      • Diagrama bazei de date
      • Structura tabelelor
      • Descrierea constrângerilor de integritate
      • Descrierea procedurilor și funcțiilor
    • Descrierea aplicației:
      • Diagrama de clase
      • Structura claselor
      • Diagrama de stări și fluxul de lucru (workflow) pentru aplicație
      • Prezentarea modului în care se face conexiunea cu baza de date
    • Capturi de ecran pentru interfețe și rapoarte
    • Concluzii;
    • Bibliografie

Prezentarea Proiectului

  • Proiectul va fi prezentat îndrumătorului de laborator unde este înscris studentul
  • Trebuie încărcată pe moodle o arhivă care să conțină:
    • Documentația
    • Codul sursă aplicație
    • Scripturile necesare creării bazei de date și populării acesteia
    • Scripturile pentru funcții/proiceduri
    • README.txt pentru a face deploy local
    • Un video comentat cu un usecase al aplicatiei.
  • Arhiva va avea numele GrupaSeria_Nume_Prenume, ex. 341C3_Popescu_IonAndrei
  • DEADLINE: Arhiva se va încărca în duminica din penultima săptămână.
  • În ultima săptămână - Se va prezenta proiecul îndrumătorului de laborator unde sunteți repartizați.

Punctarea Proiectului (maxim 10p si are o pondere de 20% din nota finală)

  • [4p] Minim 6 interfațe grafice din care
    • Minim 2 raport
      • Un raport este o interfață grafică care utilizează funții de agregare pentru a sumariza informația
      • Exemplu: dacă am un magazin virtual, un raport este coșul de cumpărături.
    • Interfețele grafice trebuie legate între ele programatic (nu se acceptă interfețe grafice individuale care nu au legături între ele)
  • [2p] Proiectarea corecta a bazei de date
  • [1p] Documentația scrisă conform specificațiilor
  • [3p] Subprograme
    • Pentru Oracle, MS SQL, MySQL:
      • Minim 2 funcții
      • Minim 2 proceduri
      • Minim 2 trigger
      • Cel puțin 2 subprograme să conțină un cursur
      • Subprogramele trebuie să trateze excepții
    • Pentru PostgreSQL
      • Minim 4 funcții
      • Minim 2 trigger
      • Cel puțin 2 subprograme să conțină un cursur
      • Subprogramele trebuie să trateze excepții
    • Pentru MongoDB/CouchDB/Couchbase:
      • Minim 6 funcții stocate din care cel puțin 2 care folosește MapReduce;
    • Pentru Cassandra
      • Minim 6 funcții stocate
      • Cel puțin 2 colecții vor fi utilizare
      • Cel puțin 2 tipuri definite de utilizator for fi utilizare

Alte Observații

  • Nu vor fi punctate interfețele, procedurile, funcțiile, triggerele sau rapoartele simple (de ex. o procedura care afișează userul și data pe ecran)
  • Se depunctează nefuncționarea corecta a aplicației
bd2/proiect/cerinta_proiect.txt · Last modified: 2022/01/19 17:56 by ciprian.truica
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0