Class Project - Design a Database

Group name: audiophiles.wav

This assignment was to design and create an SQL database. My group chose to work in the music domain.
In this domain, we will be modeling the following entities:

We will be looking closely at well established music databases such as Spotify and Apple Music and take note
of how they store and retrieve files. The goal is to create a database that stores pointers to files on my computer,
without actually holding the audio files themselves.

The database will support the following functionalitites:

Additionally, we would like to try to include some form of creating a playlist if possible. This may not be possible
because we are storing the indexes of the files in the database instead of the actual files, but it would be a nice feature to add.

ER Diagram


ER Diagram

Assumptions:



SQL Data Definitions:


Schema:

Schema

Normalization of Schema:

The database as we designed it is already in first and second normal form.
We could put the database into third normal form by breaking up the tables like so:

But, I think this would only complicate things when forming queries on the songs.
Third normal form may still be considered in the final version of the database,
but for now we will stick with second normal form.


Click here to download a copy of the database
(the buttons in the form won't work because they open files on my computer)