CSE 594, Spring 2002

Assignment #1: due Thursday, Apr 18

 

  1. [50 points] Notown Records has decided to store information about musicians who perform on its albums  (as well as other company data) in a database.  The company has wisely chosen to hire you as a database designer.

 

The following information describes the situation that the Notown database must model:

 

§         Each musician that records at Notown has an SSN, a name, an address, and a phone number.  Poorly paid musicians often share the same address, and no address has more than one phone. 

§         Each instrument that is used in songs recorded at Notown has a name (e.g., guitar, synthesizer, flute) and a musical key  (e.g., C, B-flat, E-flat).

§         Each album that is recorded on the Notown label has a title, a copyright date, a format (e.g., CD or MC), and an album identifier.

§         Each song recorded at Notown has a title and an author.

§         Each musician may play several instruments, and a given instrument may be played by several musicians.

§         Each album has a number of songs on it, but no song may appear on more than one album.

§         Each song is performed by one or more musicians, and a musician may perform a number of songs.

§         Each album has exactly one musician who acts as its producer.  A musician may produce several albums, of course.

 

    1. Draw an ER diagram.  Indicate all key and cardinality constraints and any other assumptions that you make. 
    2. Identify any constraints that you are unable to capture in the ER diagram.

 

 

 

  1. [50 points]

    a.  Create a relational schema that captures the diagram below.

b.  Which relation in your relational schema represents the relationship  “insures” in the ER diagram, and why is that your representation?

c.  Compare the representation of the relationships “drives” and “operates” in your schema, and explain why they are different.

d.  What are the keys for each relation in your relational schema?  You have to underline the attributes that form a key in each relation.  Hint: R(A, B, C) and R(A, B, C) mean two different things.