ER Diagram

profilesrihar
5360_assignment_3.pdf

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.