Gamer's Club Database

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.

The Detail

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.

Restrictions on the Design

To achieve the desired level of flexibility in data collection, the design will be expected to accommodate the following features:

  • The design should consist of around 7-10 classes (information about public gaming events does not need to be recorded)
  • It is up to you as the designer if you want to use inheritance in the proposed design.
  • Your design should include at least 5 foreign keys and 2 composite primary keys.
  • Your design will be optimised to reduce the storage of redundant information.

Submission Requirements

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.

  • The UML diagram must be drawn up in UMLet.
  • Multiplicities must be included.
  • Save the UML as an image to be included in your final word document (make sure it is still readable!). You may need to rotate the page layout to landscape.

2. An Executable UML design of the database showing the attributes of each class and highlighting ALL associations between classes including their multiplicities.

  • The UML diagram must be drawn up in DBDesignerFork.
  • Multiplicities must be included and can be represented using number or crow's feet notation.
  • Save the UML as an image to be included in your final word document (make sure it is still readable!). You may need to rotate the page layout to landscape.

3. Written Relational/Logical Schemas for your design showing:

  • Each of the required Table Schemas
  • Any Primary and Candidate Keys using notation PK(xx) and CK(yy)
  • Any Foreign Keys using notation FK(attr1) -> Table2(attr1)

4. At least three table Creation statements for your design which together must cover:

  • An example of a named Primary Key
  • An example of a named Foreign Key
  • An example of a named Composite Primary Key OR Composite Foreign Key

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.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.