ER Diagram
Assignment #3 (60 Points) – COSC 5360 – Dr. Leonard Brown Due: March 27, 2013 (at the beginning of class)
Problems 1. (49 Points) Construct an E‐R Diagram for the application described on the next page. Include any additional assumptions you made about the application requirements. The assumptions may not directly contradict anything given explicitly in the requirements. Hand‐drawn diagrams will not be accepted (even if they are scanned and stored digitally). 2. (11 Points) Reduce your E‐R Diagram for Problem #1 to tables. Give a data dictionary describing the contents of each table. The data dictionary should contain the list of attributes for each table. For each attribute, the data dictionary should list the following:
Name of Attribute Data Type of Attribute (numeric, 2 character string, date/time, etc.) Description of Attribute (What information does the attribute contain) Integrity Constraints of Attribute (not null, unique, primary key, foreign key, must be
positive, data values it contains, etc.) Submission Submit your assignment through Blackboard. If your assignment contains multiple files, zip them into a single folder before submitting. Notes Points can be deducted from your assignment based on the quality of its presentation. Handwritten assignments will not be accepted.
Application Description A software development company wants to create a social network application where users can post brief audio messages giving their thoughts.
Each user of the application will have a password, a name (consisting of first name and last name), an e‐mail address, a registration date, years registered, and a location (consisting of a city, state or province, and country). The e‐mail address uniquely identifies a user. The years registered should be computed from the registration date.
Each user may fall into one of three categories, normal, moderator, or guest. A user may not fall into more than one of these categories at the same time. In addition to the above user attributes, a normal user will have a membership handle. The membership handle will be unique, but the user will still be identified by his or her e‐ mail address. A moderator will have a membership handle as well as a work schedule.
Users may follow other users. Each time one user follows another, one’s role is as the follower, and the other’s role is as the thinker. A thinker may have many followers, and a follower may follow many thinkers. For each follower/thinker relationship, the system should store a Boolean value indicating whether or not the thinker has blocked the follower.
Normal users may post thoughts. A normal user may post many thoughts, but each thought must belong to a single normal user. Each thought has an audio file name, a number, a title, and a popularity score. In addition, a user may specify one or more topics with each thought. A thought’s popularity score is computed based on the average rating it receives from users (described below). Each thought can only be identified by its number and the ID of the normal user that posted the thought.
Users may rate other users’ thoughts. A user may rate many thoughts, and each thought may be rated by many users. Each time a user rates a thought, the system should track the score given to it by the user. The score will have a range between 1 and 10. A user should not be allowed to rate the same thought twice.
Moderators may censor thoughts if they determine them to be inappropriate. A moderator can censor many thoughts, but each thought can be censored by only one moderator. Each time a moderator censors a thought, the system should store the date the thought was censored.
In certain cases, thoughts may be given special awards. A thought may receive several awards, and each award may be given to several thoughts. Each award has a unique id number, a title, a description, and an amount. Awards are managed by moderators. Each award must be managed by one moderator, and a moderator may manage at most one award.