(🇮🇹 version below)
Report in both 🇬🇧 and 🇮🇹 in "Database project.pdf"
The project involves the design and implementation of a database concerning an organization chosen by the student.
The student is required to produce the following documents/files:
- Report: PDF file containing all the details of the modeling and implementation, as described in the presentation available on the course Moodle page.
- SQL File: created using PostgreSQL software, containing the SQL code necessary for creating tables, populating tables, and also containing the various queries presented within the report.
- CPP File: file containing C/C++ code to execute, accessing the PostgreSQL DB, and display the queries presented within the report.
The submission should be made through the appropriate section available on the course Moodle page. Each exam will have a dedicated section. Up to a maximum of 8 files (one .pdf, one SQL, and additional CPP files) can be uploaded. If you need to submit more than 8 files, they should be submitted as a single zip file.
The following elements will be considered for the final evaluation:
- Accuracy of the results;
- Complexity of the problem addressed;
- Appropriateness of the methodology followed;
- Clarity of presentation.
For a project to be acceptable, it must meet the following minimum requirements:
- The E-R diagram of the project must contain an adequate number of entities (≥ 5) excluding those involved in a hierarchy (only the parent entity counts);
- At least one significant hierarchy;
- An example of relationship for each type of cardinality (1:N, 1:1, N:M).
The project must also include:
- From 5 to 10 significant queries covering (together) the entire database and addressing interesting questions about the database;
- 3 of the above queries must use "group by" and/or aggregate operators;
- At least 1 query from the above queries must use "group by" and "having";
- Introduce at least one significant secondary index: hypothesize a large-scale use case and justify the choice of index/indices.
Il progetto consiste nella progettazione e nell’implementazione di una base di dati riguardante un'organizzazione a scelta dello studente.
Lo studente dovrà produrre i seguenti documenti/file:
- Relazione: file PDF contenente tutti i dettagli della modellazione e dell’implementazione, come descritto nella presentazione disponibile nella pagina Moodle del corso.
- File SQL: creato utilizzando il software PostgreSQL, contenente il codice SQL necessario alla creazione delle tabelle, popolamento delle tabelle e contenente anche le diverse query presentate all’interno della relazione.
- File CPP: file contenente il codice C/C++ per eseguire, accedendo al DB PostgreSQL, e visualizzare le query presentate all’interno della relazione.
La consegna va effettuata tramite l’apposita sezione disponibile nella pagina Moodle del corso. Ogni appello avrà una sezione diversa dedicata. È possibile caricare fino ad un massimo di 8 file (un .pdf, un SQL e file CPP aggiuntivi). Nel caso si debba consegnare più di 8 file, questi andranno consegnati come singolo file zip.
Gli elementi che verranno presi in considerazione ai fini della valutazione finale saranno:
- Correttezza dei risultati;
- Complessità del problema affrontato;
- Appropriatezza della metodologia seguita;
- Chiarezza espositiva.
Per essere accettabile, un progetto deve possedere i seguenti requisiti minimi:
- Il diagramma E-R del progetto deve contenere un numero adeguato di entità (≥ 5) escluse quelle coinvolte da una gerarchia (conta solo l’entità padre);
- Almeno una gerarchia significativa;
- Un esempio di relazione per ogni tipo di cardinalità (1:N, 1:1, N:M).
Il Progetto deve inoltre includere:
- Dalle 5 alle 10 queries significative che coprano (nel loro insieme) tutta la base di dati e rispondere a domande interessanti sulla base di dati;
- 3 delle queries di cui sopra devono utilizzare il “group by” e/o gli operatori aggregati;
- Almeno 1 query delle queries di cui sopra deve utilizzare il “group by” e “having”;
- Introdurre almeno un indice secondario significativo: ipotizzare un caso d’uso su larga scala e motivare la scelta dell’indice/degli indici.