The Soundgood Music School project aims to develop a comprehensive database system to manage various aspects of the music school's operations. This includes creating conceptual, logical, and physical models of the database, implementing SQL queries for data analysis, also create a historical database to facilitate OLAP queries and developing pragmatic access for database interaction using JDBC.
- Objective: Create a conceptual model of the Soundgood music school database, that models a mini world of its business via principles of relational databases.
- Learning Outcome: Based on provided data from an organization, be able to convert it into a functioning Conceptual Model that correctly encapsulates its business goals and needs.
- Objective: Translate the conceptual model into a logical and physical model suitable for creating a database, integrate the database and fill it with data.
- Learning Outcome: Create a sound database via the principles of relational databases, create a Logical/Physical model that can be imported and filled with data. Using the principles of normalisation to streamline the database to reduce redundancy and increase scalability.
- Objective: Develop OLAP queries and views for data analysis. Create a historical database used for analysing OLAP queries. Such queries may be used to create business reports for the company. Analyze the efficiency of a query using EXPLAIN ANALYZE in PostgreSQL.
- Learning Outcome: Describe and explain basic concepts, principles, and theories in the area of data/databases/data storage and in information administration and database design. Write effective OLAP queries using views and to perform query analysis.
-
Objective: Develop pragmatic access to the database via JDBC, i.e., connecting the database to a backend environment to implement instrument rental functionalities for Soundgood's website. Implement ACID transaction handling, ensure proper database operations, and create a well-designed, properly layered architecture. Apply MVC and Layer patterns correctly to enhance readability, maintainability, and scalability of the application.
-
Learning Outcome: Understand and implement database interactions in a Java environment, handle ACID transactions, maintain proper data integrity, and design a robust architecture for database interactions. Ensure separation of concerns and avoid duplicated code by applying MVC and Layer patterns effectively.
For Task 4, specific functionalities include:
-
Listing available instruments.
-
Renting instruments with proper validation.
-
Terminating ongoing rentals with proper database management and status update.
-
Collaborations for Task 1-3 were with students Julius Larsson and Victor Naumburg.
-
Collaborations for Task 4 were with students Seema Bashir and Razan Yakoub.