Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1. Consider a table T which stores information about a dog competition using the

ID: 3670318 • Letter: 1

Question

1. Consider a table T which stores information about a dog competition using the following attributes: dog_number, dog_name, kennel_code, kennel_name, kennel_location, trick_id, trick_name, trick_where_learned, skill_level, costume. (Assume that the attribute trick_where_learned refers to some kennel_code). For example, typical data might be (52, Beau, 16, DaisyPuppyFarm, Hamden, 2343, rollover, 18, 2, none) (89, Missy, 9, DansDogHouse, Hartford, 2345, shake-hands, 16, 4, red-coat).

a) Find “natural” functional dependencies in T. Based on this, determine all candidate keys of T. b) Transform the table T into two or more tables in BCNF. For every new (or transformed) table, state the candidate keys and foreign keys.

Explanation / Answer

TABLE - T

attributes
DOG_NUMBER {PK}
DOG_NAME
SKILL_LEVEL
COSTUME


TABLE - TRICKS

attributes
DOG_NUMBER {fK}
TRICK_ID {PK}
TRICK_NAME
TRICK_WHERE_LEARNED


TABLE - KENNEL_INFO

attributes
DOG_NUMBER {fK}
KENNEL_CODE {PK}
KENNEL_NAME
KENNEL_LOCATION