Chapter 3 – The Relational Model and Normalization
Page 3-30
However, these are based on a very limited dataset and cannot be trusted. For example, name is
not a good determinant in a retail application; there may be many customers with the same name.
It’s also possible that some customers could have the same phone, even though they do not in this
example. The one trustable functional dependency here is:
Price → (Tax, Total)
From the sample purchase data it would appear:
(PurchaseItem, PurchasePrice) → (PurchaseDate, Vendor, Phone)
However, these are based on a very limited dataset and cannot be trusted. For example,
PurchaseItem is not a good determinant in a retail application; there may be many PurchaseItems
with the same designator. It’s also possible that multiple purchases on the same purchase date
will be for the same purchase price and not necessarily for the same purchase item. The most
trustworthy functional dependencies here are:
B. Given your assumptions in part A, comment on the appropriateness of the following
designs:
1. CUSTOMER (LastName, FirstName, Phone, EmailAddress, InvoiceDate,
InvoiceItem, Price, Tax, Total)
2. CUSTOMER (LastName, FirstName, Phone, EmailAddress, InvoiceDate,
InvoiceItem, Price, Tax, Total)
3. CUSTOMER (LastName, FirstName, Phone, EmailAddress, InvoiceDate,
InvoiceItem, Price, Tax, Total)