Subject Re: Cascades on very large databases
Author sqlsvr
Natural key is an external key (comes from external source), there is no need to update outside systems. Autonumbers are not surrogates and have nothing to do with the data model. Surrogates are internal DBMS implementations such as pointers and not seen by any user of the DBMS.

Using data as a foreign key is NOT a problem. It is the DBMS JOB TO translate that foreign key to a pointer lookup. It is a DBMS implementation. Users would use foreign keys at the logical level and the DBMS would convert them to pointers at the physical level. Your talking about letting the users use pointers at the logical level which is as stupid as using autonumbers. Using autonumbers is actually creating "fake pointers".

Again, pointers should NEVER be made available to the user. It is a surrogate key used by the DBMS internally and never seen or used by the user. It takes the place of a foreign key internally in the DBMS.