Your first assignment for this semester is to design a database for you and your friends in the E-Sports Gamer's Club (ESGC - the only club you should ever join!). To complete this assignment, you will need to bring a PC with a high- end graphics card, lightning-fast CPU, your favourite games and a good supply of energy drinks. It's like a therapy session with you and your class mates (just to prove databases can really be fun!).
Jokes aside, this stuff is really serious. If you don't believe me, look up any of the big international events such as Blizzcon or better still check out some of the action shots here. Our fight club is way more elite than the others so we need a system in place to help track all the awesome fun.
eSport events come in two categories; local game meets and eSport events held at public venues (for example, see Blizzcon 2019). Local game meets are the most common and only involve other club members. Public gaming events are loads of fun and involve awesome team-based games. The database needs to help us keep track of members so that we can quickly distribute event dates for gaming conventions and more commonly, game nights involving a sleep over (although usually players don't really sleep!). We would need to record contact information to spread the word as quickly as possible.
The planned gaming events are a little different from public events and often involve a sleepover at either a member's home address or some other location. Due to several complaints about member freeloading, we also want to keep a record of who brought food (and what they brought - yoyos and other cheap-as biscuits are frowned upon in this club!). It may be handy to have some basic food rating system perhaps a food field and a simple 1-5 food rating. If a member brings something ordinary to one of these events too often, then they may as well have brought nothing and their record gets marked as a freeloader.
For game meets we record multiple game rounds and which teams participated. This also involves recording the winning team for each round. Because these rounds are so important to a team's status (and we want to be fair and everything), we also need to record info about the types of computers brought along by each member to the event (desktop, laptop, cpu, memory, gpu, etc). On completion of a members only team play, we need to record the 1st prize (team) winner and runner up for that sleep over/gaming weekend.
To achieve the desired level of flexibility in data collection, the design will be expected to accommodate the following features:
To complete the assignment, you must submit each of the following:
1. A Conceptual UML design of the database showing the attributes of each class and highlighting ALL associations between classes including their multiplicities.
2. An Executable UML design of the database showing the attributes of each class and highlighting ALL associations between classes including their multiplicities.
3. Written Relational/Logical Schemas for your design showing:
4. At least three table Creation statements for your design which together must cover:
5. Justification for some of your decisions (those that may be debatable). For example, why you may have chosen a particular class and/or relationship over another (e.g. a 1:many relationship instead of inheritance, or vertical vs horizontal inheritance in the logical design etc). There is a maximum of 2500 words so dot point justifications are acceptable. If it rambles you will lose marks as the reader will fall asleep.
Your designs should be combined into a final word document that includes a Title page (with your name, ID and Title of the assignment), the above numbered points in their own section with suitable section labels.