EXAMPLE 2

Codd would probably have prohibited the design of Example 1 on the grounds that values of attribute ADDR aren’t “atomic” (though I’m not aware that he ever explicitly addressed the question of tuple valued attributes as such in any of his writings). Now, I don’t agree with this position myself, for reasons I’ve explained in detail in SQL and Relational Theory and elsewhere—but the point isn’t worth fighting over, because we can obviously replace that tuple valued attribute by an attribute of type CHAR as shown in Figure 15-2. Codd would surely have allowed that revised design, and yet it suffers from redundancies precisely analogous to those in Example 1.

Revised relvar NADDR (ADDR is text valued)—sample value

Figure 15-2. Revised relvar NADDR (ADDR is text valued)—sample value

And if you don’t like this example, consider what could happen if attribute ADDR is of some user defined type (ADDRESS, say) instead of type CHAR.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.222.177.10