ER Diagram Homework Help
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 email
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.