Part B – Conceptual Data Modelling
B.1 Overview of Case Study
Steam is a video game business developed by Valve’s online platform for the purchase and distribution of games and other products. To identify users and assign the games and software they purchase/download to their unique account profile/steam library, the Steam DBMS should employ an account-based approach. The Steam system also allows a community of users to exchange in-game goods saved on their user accounts for other items, in-game cash, or real-world currency with one another.
B.2 Revised Business Rules
1. An email address can only create one steam account; therefore, accounts can be uniquely identified by their email address (or Steam id).
2. An account can only have one steam library, wish list and cart.
3. Applications must have at least one content tag and must have an age rating.
4. A developer can push an application to the store without a publisher, but if a publisher pushes an application to the store, they must include the developer.
5. When a user downloads or purchases an application, said application must be added to the user’s steam library, no matter if the application is paid or free.
6. A user can manage their wish list and cart freely, adding or removing applications from them. However, they cannot manage their steam library.
7. While 2 factor authentication is recommended, it is by no means necessary, meaning the phone number attribute is only optional.
8. Users can have multiple items stored inside their steam library, and duplicate items are also allowed.
9. A user’s steam library, wish list and cart can contain multiple or no applications
10. A developer can have multiple published applications within the store
11. A publisher can have multiple games released under their name
12. A publisher may have multiple works of different developers
13. When launching an application, the steam library of the user should be referenced to ensure they own the application.
14. An application can be owned by multiple different accounts, meaning an application can be a part of many different steam libraries, wish lists and carts.
15. Publishers are uniquely identified by a Publisher ID, and publisher accounts cannot be created through a form, but should rather directly contact steam to set up a publisher account.
16. Developers can be identified by a Steam ID or Developer ID.
B.3 ERD Diagram
B.4 Justifications of ERD
Business Rules Related to Entity User:
● BR1: For the user, the email address provided is unique during account creation, which will also supply a distinctive ID from steam, so it can identify and distinguish other users.
● BR7: The user can have the option to either input their phone number for 2 factor authentications or not. Value of the phone number can be NULL or NOT NULL, depending on the user
NOTE: This entity acts as a Supertype of the subtype entity for Developer.
Business Rules Related to Entity Cart:
● BR2: Cart must only be assigned to ONLY one user(cardinality 1 to 1)
● BR5: When a purchase is complete, application will be removed from cart towards the steam library of the user.
● BR6: The user must be able to freely manage the cart, adding and removing applications, as well as purchasing them
Note: This acts as an associative entity between the user and the application.
Business Rules Related to Entity Wish List:
● BR2: Wish list must only be assigned to ONLY one user (cardinality 1 to 1)
● BR6: The user must be able to freely manage the wishlist, adding and removing applications as they want
Note: This acts as an associative entity between the user and the application.
Business Rules Related to Entity Steam Library:
● BR2: Steam library must only be assigned to ONLY one user (cardinality 1 to 1)
● BR5: A user’s purchased/downloaded programme is automatically added to the user’s steam library and is identifiable by its application ID within the system.
● BR6: Users cannot manage their Steam library.
● BR8: A steam library can contain many items, which are identified by the application they are related to. (cardinality 0 to many)
● BR9: The steam library can contain many applications or no applications (cardinality 0 to many)
NOTE: This acts as an associative entity between the user and the application.
Business Rules Related to Entity Application:
● BR3: At least one content tag and an age rating are required in an application. (cardinality 1 to many)
● BR4: The application can have no publisher or a publisher who is also the developer, but it cannot have a publisher who is also the developer. (i.e. developer cannot be NULL, but publisher can be NULL)
● BR14: An application can be owned by many different users (steam libraries). (cardinality 0 to many)
Business Rules Related to Entity Developer:
● BR12: A developer can push multiple applications to the store. (cardinality 1 to many)
● BR16: A developer can be identified by a developer ID, but is primarily identified by their user ID internally.
NOTE: This entity acts as a subtype for the user entity supertype
Business Rules Related to Entity Publisher:
● BR11: Under their name, a publisher can have zero or more applications published. (cardinality 0 to many)
● BR12: A publisher is not tied to a particular developer, which means that he or she can publish many apps from various developers.–
● BR15: You must contact Steam directly to create a publisher account, as there should be no need for the general public to require one.