Assignment title: Information


Part A: Relational Database Design (30 marks) Consider the following relational schema and answer questions below. Person (Id, TFN, Name, Phone) PolicyOwner (PersonId, PolicyNumber, TFN, Start­Date) InsurancePolicy (PolicyNumber, AgentNumber, PremiumAmount, CoverageAmount) Agent (AgentNumber, Name, Phone, OfficeNumber) Id is the primary key for the Person relation and TFN (Tax File Number) is another candidate key for the Person relation. This relation has two candidate keys. is the primary key for the PolicyOwner relation and is another candidate key for the PolicyOwner relation. This relation also has two candidate keys. StartDate is the date when this policy was first created. PersonID is a foreign key referencing Person.Id. TFN is a foreign key referencing Person.TFN. PolicyNumber is a foreign key referencing InsurancePolicy.PolicyNumber. PolicyNumber is the primary key for the InsurancePolicy relation. AgentNumber is a foreign key referencing Agent.AgentNumber. AgentNumber is the primary key for the Agent relation. 1. List all of the non­trivial FDs in the InsurancePolicy relation, including those implied by a key. Do not include redundant FDs. Is the InsurancePolicy relation in BCNF? Explain briefly your answer. Note that it is possible for several, different insurance policies to have the same agent assigned (that is, to have the same agent number listed in the AgentNumber attribute). Does this kind of redundancy cause any update anomalies? Can we normalise this relation in order to remove this redundancy? 2. List all of the non­trivial FDs in the Person relation, including those implied by a key. Is the Person relation in BCNF? Explain your answer. If the Person relation is not in BCNF, decompose the Person relation into relations that are in BCNF. 3. List all of the non­trivial FDs in the PolicyOwner relation, including those implied by a key. Which normal form is this relation (PolicyOwner) in? If it's not in BCNF, decompose the PolicyOwner relation into BCNF.