After third form normalization, extra tables shall be created. And the functional determinant are used as primary key in the new table, as foreign key in the modified old table. My question is that following this strategy, the referential integrity enforces that when attributes have to be added to the new table before attributes can be added to the "old" table. one can't add attributes to the "Old" table first. However, in my application, it is more intuitive to add attributes in the old table first. It appears to me the normalization rule is not very applicable in such situation.

  • 1
    $\begingroup$ May I suggest the use of English syntax and capital letters to make the question more readable. This also applies to the title. $\endgroup$ – babou May 16 '15 at 23:28
  • $\begingroup$ What's the question, exactly? Are you asking if it is possible to apply third form normalization in a situation where you have (such-and-such restrictions)? If so, what exactly are the restrictions? Right now your post doesn't have contain an explicit question (it doesn't have anything that ends with a question mark), so we have to infer what exactly your question is. Since it sounds like you believe at least one person has misunderstood the question, it would be useful to be more explicit about what your question is. $\endgroup$ – D.W. Jun 17 '15 at 0:03

Database tables are not just files. In a way, they are also abstract entities. During the process of normalization of an existing dataset, a foreign key must coexist with the table to which it refers, so that referential integrity is never relaxed. In practice, this is not possible, but any intermediate steps should be considered only as implementation level issues.

That said, I can't see why creating the secondary table before updating the "old" table would be counterintuitive.

For the sake of intuitiveness, you can say that the "old" table will disappear, after the normalization process has been finished. Only new tables will be there, including a new version of the old table, with the foreign key already in place, and filled with data.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.