Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum,...

49
Part ( PartNum , Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered, QuotedPrice ) )

Transcript of Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum,...

Page 1: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

Page 2: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

This table is quite meaningful from the user point of view.

It describes the actual operation---as reflected by the database.

Page 3: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

This table is quite meaningful from the user point of view.

It describes the actual operation---as reflected by the database.

But what if we have a part that has not been ordered yet?

Page 4: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

In that case we need to work on the table and change it.

The structure should be such that update anomalies are not present.

But what if we have a part that has not been ordered yet?

Page 5: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

Let’s determine functional dependencies.

But what if we have a part that has not been ordered yet?

Page 6: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

PartNum determines: Description

OnHand

Class

WareHouse

Price

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

Page 7: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

PartNum determines: Description

OnHand

Class

WareHouse

Price

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

Page 8: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

OrderNum determines: OrderDate

CustomerNum

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

Page 9: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

OrderNum determines: OrderDate

CustomerNum

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

Page 10: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

CustomerNum determines:

CustomerName

RepNum

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

Page 11: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

CustomerNum determines:

CustomerName

RepNum

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

Page 12: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

CustomerNum determines:

CustomerName

RepNum which determines

LastName

FirstName

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

Page 13: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

)

Page 14: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

)

Page 15: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

)

There’s also (PartNum, OrderNum)

Page 16: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

)

There’s also (PartNum, OrderNum) which determines

NumOrdered

Page 17: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

)

There’s also (PartNum, OrderNum) which determines

NumOrdered and

QuotedPrice

Page 18: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

)

So now what do we do?

Page 19: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

)

1. Normalize the table (it has repeating groups).

Page 20: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

)

1. Normalize the table (it has repeating groups).

2. Eliminate partial dependencies.

Page 21: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

)

1. Normalize the table (it has repeating groups).

2. Eliminate partial dependencies.

3. Make sure the only determinants are candidate keys.

Page 22: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum, Description, OnHand, Class, Warehouse, Price,

OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

1. Normalize the table (it has repeating groups).

2. Eliminate partial dependencies.

3. Make sure the only determinants are candidate keys.

Page 23: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

1. Normalize the table (it has repeating groups).

2. Eliminate partial dependencies.

3. Make sure the only determinants are candidate keys.

Parts (PartNum, Description, OnHand, Class, Wartehouse, Price)

Page 24: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

)

OrderLine (PartNum, OrderNum, NumOrdered, QuotedPrice)

1. Normalize the table (it has repeating groups).

2. Eliminate partial dependencies.

3. Make sure the only determinants are candidate keys.

Parts (PartNum, Description, OnHand, Class, Wartehouse, Price)

Page 25: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

)

Rep (RepNum, LastName, FirstName)

OrderLine (PartNum, OrderNum, NumOrdered, QuotedPrice)

1. Normalize the table (it has repeating groups).

2. Eliminate partial dependencies.

3. Make sure the only determinants are candidate keys.

Parts (PartNum, Description, OnHand, Class, Wartehouse, Price)

Page 26: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

OrderNum, OrderDate, CustomerNum,

)

Customer (CustomerNum, CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

OrderLine (PartNum, OrderNum, NumOrdered, QuotedPrice)

1. Normalize the table (it has repeating groups).

2. Eliminate partial dependencies.

3. Make sure the only determinants are candidate keys.

Parts (PartNum, Description, OnHand, Class, Wartehouse, Price)

Page 27: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

OrderNum, OrderDate, CustomerNum,

)

Customer (CustomerNum, CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

OrderLine (PartNum, OrderNum, NumOrdered, QuotedPrice)

Parts (PartNum, Description, OnHand, Class, Wartehouse, Price)

1. Normalize the table (it has repeating groups).

2. Eliminate partial dependencies.

3. Make sure the only determinants are candidate keys.

Page 28: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Orders (

OrderNum, OrderDate, CustomerNum,

)

Customer (CustomerNum, CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

OrderLine (PartNum, OrderNum, NumOrdered, QuotedPrice)

Parts (PartNum, Description, OnHand, Class, Wartehouse, Price)

1. Normalize the table (it has repeating groups).

2. Eliminate partial dependencies.

3. Make sure the only determinants are candidate keys.

Page 29: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Orders (OrderNum, OrderDate, CustomerNum )

Customer (CustomerNum, CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

OrderLine (PartNum, OrderNum, NumOrdered, QuotedPrice)

Parts (PartNum, Description, OnHand, Class, Wartehouse, Price)

Page 30: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Orders (OrderNum, OrderDate, CustomerNum )

Customer (CustomerNum, CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

OrderLine (PartNum, OrderNum, NumOrdered, QuotedPrice)

Parts (PartNum, Description, OnHand, Class, Wartehouse, Price)

Page 31: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Orders (OrderNum, OrderDate, CustomerNum )

End of story…

Customer (CustomerNum, CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

OrderLine (PartNum, OrderNum, NumOrdered, QuotedPrice)

Parts (PartNum, Description, OnHand, Class, Wartehouse, Price)

Page 32: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Second problem: (Henry Books Case Problem One)

Page 33: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Using the types of entities found in the Henry Books database (books, authors, publishers), create an example of a table that is in first normal form but not in second normal form and an example of a table that is in second normal form but not in third normal form. In each case, justify your answer…

Page 34: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Using the types of entities found in the Henry Books database (books, authors, publishers), create an example of a table that is in first normal form but not in second normal form and an example of a table that is in second normal form but not in third normal form. In each case, justify your answer…

This is an example about the power of assumptions.

Page 35: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Using the types of entities found in the Henry Books database (books, authors, publishers), create an example of a table that is in first normal form but not in second normal form and an example of a table that is in second normal form but not in third normal form. In each case, justify your answer…

This is an example about the power of assumptions.

Take this table:

(ISBN, AuthorSSN, AuthorName)

Page 36: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Using the types of entities found in the Henry Books database (books, authors, publishers), create an example of a table that is in first normal form but not in second normal form and an example of a table that is in second normal form but not in third normal form. In each case, justify your answer…

This is an example about the power of assumptions.

Take this table:

(ISBN, AuthorSSN, AuthorName)

If we assume that a book can only have one author (that's pretty restrictive, but think about semester projects where group work is not allowed) then the above table is in 2NF already (ISBN is the key) but not in 3NF because of AuthorSSN being a non-key determinant (of whom?)

Page 37: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Using the types of entities found in the Henry Books database (books, authors, publishers), create an example of a table that is in first normal form but not in second normal form and an example of a table that is in second normal form but not in third normal form. In each case, justify your answer…

This is an example about the power of assumptions.

Take this table:

(ISBN, AuthorSSN, AuthorName)

If we relax the requirement, and allow co-authors, then the table is no longerin 2NF. That's because we need to include the AuthorSSN column in the key and the functional dependency

(AuthorSSN AuthorName) becomes a partial dependency; it was about the existence of non-key determinants in the other context

Page 38: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part (PartNum, Description, OnHand, Class, Warehouse, Price,

(OrderNum, OrderDate, CustomerNum, CustomerName,

RepNum, LastName, FirstName,

NumOrdered,

QuotedPrice

)

)

Page 39: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

Description, OnHand, Class, Warehouse, Price,

OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

Page 40: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

Description, OnHand, Class, Warehouse, Price,

OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum,

LastName,

FirstName,

NumOrdered,

QuotedPrice

)

Page 41: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

Description, OnHand, Class, Warehouse, Price,

OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum

NumOrdered,

QuotedPrice

)

Rep (RepNum, LastName, FirstName)

Page 42: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

Description, OnHand, Class, Warehouse, Price,

OrderNum, OrderDate, CustomerNum,

CustomerName,

RepNum

NumOrdered,

QuotedPrice

)

Rep (RepNum, LastName, FirstName)

Page 43: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

Description, OnHand, Class, Warehouse, Price,

OrderNum, OrderDate, CustomerNum,

CustomerName

NumOrdered,

QuotedPrice

)

Customer (CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

Page 44: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

Description, OnHand, Class, Warehouse, Price,

OrderNum, OrderDate, CustomerNum,

NumOrdered,

QuotedPrice

)

Customer (CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

Page 45: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

Description, OnHand, Class, Warehouse, Price,

OrderNum,

NumOrdered,

QuotedPrice

)

Orders (OrderNum, OrderDate, CustomerNum)

Customer (CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

Page 46: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

OrderNum,

NumOrdered,

QuotedPrice

)

Parts (PartNum, Description, OnHand, Class, Warehouse, Price)

Orders (OrderNum, OrderDate, CustomerNum)

Customer (CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

Page 47: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

Part ( PartNum,

OrderNum,

NumOrdered,

QuotedPrice

)

Parts (PartNum, Description, OnHand, Class, Warehouse, Price)

Orders (OrderNum, OrderDate, CustomerNum)

Customer (CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

Page 48: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

OrderLine ( PartNum,

OrderNum,

NumOrdered,

QuotedPrice

)

Parts (PartNum, Description, OnHand, Class, Warehouse, Price)

Orders (OrderNum, OrderDate, CustomerNum)

Customer (CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)

Page 49: Part (PartNum, Description, OnHand, Class, Warehouse, Price, (OrderNum, OrderDate, CustomerNum, CustomerName, RepNum, LastName, FirstName, NumOrdered,

OrderLine ( PartNum, OrderNum, NumOrdered, QuotedPrice)

Parts (PartNum, Description, OnHand, Class, Warehouse, Price)

Orders (OrderNum, OrderDate, CustomerNum)

Customer (CustomerName, RepNum)

Rep (RepNum, LastName, FirstName)