![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| ||||||
| ||||||
|
|
I have been doing a bit of thinking about the Missing Information problem in both SQL and TRDBM systems and would like some feedback in relation (pun intended) to those thoughts. Assume a simple Customer - Order schema Customer (Customer# INT) KEY (Customer#) Order (Order# INT, Customer# INT) KEY (Order#) FOREIGN KEY (Customer.Customer#) The Customer# domain is a set of unsigned integers from 1 -> INT.MAX Lets assume that the Customer relation has no tuples ie: is a empty set. The domain for the Customer# attribute in the Customer relation is still 1 -> INT.MAX Now here is where I sink or swim........ BUT the domain for the Customer# attribute in the Order relation is effectively an empty set due to the RI constraint. The domain "grows" as tuples are added to the Customer table. So from there I have a couple of questions 1) Is an empty set of type X a valid value of the domain X? |
|
2) Does an empty set of type X violate 1NF? |
|
So in context it boils down to this question... Can I insert an empty set (with the relevant empty-set types) into the Order table without violating RI? |
|
If the answer is YES then could we not simply use an empty-set as the Missing Information marker? |
|
I got these thoughts from TABLE_DEE and TABLE_DUM as outlined in TTM but unfortunately my copy is currently 1200Km away and I am struggling to remember there definitions correctly. |
|
All criticism welcome however harsh....... |
#3
| |||
| |||
|
#4
| |||
| |||
|
|
Thanks Bob for succint reply.. I added harsh because I see some atrocious ad hominem attacks in this forum... In rugby terms.. Play the Ball not the man.... In reference to question 1.. If we extend every Domain to be a set domain would this allow us to use an empty set as the Missing Information marker? ie.. The INT Domain now becomes this {{1}, {2}...{n}} instead of {1,2 .....n} |
![]() |
| Thread Tools | |
| Display Modes | |
| |