Systems Analysis and Design in a Changing World, seventh edition 9-9
5. Figure 9-26 illustrates a partial class diagram for a property management company. Using the
data in the class diagram, create a database schema.
Note: Generalization and Specialization hierarchy has many attributes in each class, thus separate
tables will be defined for each class.
Table Attributes
Owner OwnerID, Name, StrAddress, City, State, Zip, Email, Telephone
Property PropertyID, Name, StrAddress, City, State, Zip, Description
Ownership OwnerID, PropertyID, PercentOwn
ResidentialProp PropertyID, NumbUnits, NumbStorage, BuildingType, Floors, NumbParkSpace
CommercialProp PropertyID, SquareFeet, NumbRetUnits, SqFtParking
Apartment AptNo, PropertyID, Status, NumbBedrooms, NumbBaths, RentAmt,
UnitAddress, TenantName, TenantPhone, TenantEmail, ContractDate
RetailSpace SpaceID, PropertyID, Status, SquareFt, TypeUnit, LeaseAmt, TenantName,
TenantPhone, TenantEmail, ContractDate, LeaseType
6. Given the database table in Figure 9-27 of university course and sections offered, normalize the
table so that it is in third normal form. Hint: Look for functional dependencies.
Note: The data in the table is not sufficient to analyze for all the functional dependencies that exist.
However, using our experience with university courses (we are domain experts), we can assume the
following.
• The key to the rows must be Course and Section together as a composite key.
• Course name is not functionally dependent on the entire key, only the Course. Violates 2NF.
• #Room is functionally dependent on entire key.
• #Chairs is also not FD on the key (Course, Section), but is FD on #Room. Violates 3NF.
• #Enrolled is FD on entire key.
• Time is FD on entire key.
• Teacher is probably FD on entire key. (Assuming only one teacher per Course Section.)
• Students is multiply occurring, and thus violates 1NF.
There are three violations of Normalization. Assuming a new table for each violation, there will be four
tables for normalization, and one more table for a many-to-many association.
Table Attributes Comments
Course CourseID, CourseName Added a key field
Student StudentID, StudentName Added a key field
Room Room#, #Chairs Room# includes a building id, so we
did not add a building field
CourseSection CourseID, Section#, Room#, #Enrolled,
Time, Teacher
Removing the students, forces a
many-to-many association with
CourseSection
EnrolledStudent CourseID, Section#, StudentID Association table