Actually, it's more practical than theoretical. While a good design
usually reduces the need for 1:1, there may be situations where the
seperation of data is warranted. For example, how many of you have
seen this:
Warning: The table 'blah' has been created but its maximum row size
(10662) exceeds the maximum number of bytes per row (8060). INSERT or
UPDATE of a row in this table will fail if the resulting row length
exceeds 8060 bytes.
From the Books OnLine (Create Table):
SQL Server can have as many as two billion tables per database and
1,024 columns per table. The number of rows and total size of the table
are limited only by the available storage. The maximum number of bytes
per row is 8,060. If you create tables with varchar, nvarchar, or
varbinary columns in which the total defined width exceeds 8,060 bytes,
the table is created, but a warning message appears. Trying to insert
more than 8,060 bytes into such a row or to update a row so that its
total row size exceeds 8,060 produces an error message and the
statement fails.
Granted, most designs won't have huge data columns, but you might. A
good design will eliminate 80% of your problems, while a great one will
eliminate 90%. You will still always have to deal with an exception to
your design at some point; a 1:1 join is a method of managing some of
those exceptions.
HTH,
Stu