<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Surrogate keys</title>
	<atom:link href="http://www.rittmanmead.com/2005/06/15/surrogate-keys/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rittmanmead.com/2005/06/15/surrogate-keys/</link>
	<description>Delivered Intelligence</description>
	<lastBuildDate>Wed, 10 Mar 2010 13:01:07 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Pete_S</title>
		<link>http://www.rittmanmead.com/2005/06/15/surrogate-keys/comment-page-1/#comment-4175</link>
		<dc:creator>Pete_S</dc:creator>
		<pubDate>Mon, 04 Jul 2005 16:30:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/2005/06/15/surrogate-keys/#comment-4175</guid>
		<description>True, surrogate keys do have a use in tracking slowly changing dimensions but you can do the same thing with immuatble single column keys from external systems. Say your DW gets its data from SAP - the product interface includes the SAP for a product as well as the more friendly descriptions and other  attibutes. We can make the assumption the SAP code will not change (descriptions, etc might!), therefore we use it for change tracking, but to our DW it is a natural key.</description>
		<content:encoded><![CDATA[<p>True, surrogate keys do have a use in tracking slowly changing dimensions but you can do the same thing with immuatble single column keys from external systems. Say your DW gets its data from SAP &#8211; the product interface includes the SAP for a product as well as the more friendly descriptions and other  attibutes. We can make the assumption the SAP code will not change (descriptions, etc might!), therefore we use it for change tracking, but to our DW it is a natural key.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.rittmanmead.com/2005/06/15/surrogate-keys/comment-page-1/#comment-4174</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Mon, 04 Jul 2005 15:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/2005/06/15/surrogate-keys/#comment-4174</guid>
		<description>I thought that surrogate keys were only beneficial for taking care of changes in dimensions. (SCD type II). Having a surrogate key allows you to track the changes through time.</description>
		<content:encoded><![CDATA[<p>I thought that surrogate keys were only beneficial for taking care of changes in dimensions. (SCD type II). Having a surrogate key allows you to track the changes through time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Howard J. Rogers</title>
		<link>http://www.rittmanmead.com/2005/06/15/surrogate-keys/comment-page-1/#comment-4173</link>
		<dc:creator>Howard J. Rogers</dc:creator>
		<pubDate>Tue, 21 Jun 2005 13:35:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/2005/06/15/surrogate-keys/#comment-4173</guid>
		<description>A timely Blog. The topic has resurfaced at the Dizwell Forum lately, too, and I seem to be the only boy there batting for good natural keys. Good to know I&#039;m not completely off my trolley!

I consider myself generally pro-natural, but ultimately agnostic: whatever works best. But some of the synthetic/surrogate guys take it very religiously indeed!

Regards
HJR</description>
		<content:encoded><![CDATA[<p>A timely Blog. The topic has resurfaced at the Dizwell Forum lately, too, and I seem to be the only boy there batting for good natural keys. Good to know I&#8217;m not completely off my trolley!</p>
<p>I consider myself generally pro-natural, but ultimately agnostic: whatever works best. But some of the synthetic/surrogate guys take it very religiously indeed!</p>
<p>Regards<br />
HJR</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pete_S</title>
		<link>http://www.rittmanmead.com/2005/06/15/surrogate-keys/comment-page-1/#comment-4172</link>
		<dc:creator>Pete_S</dc:creator>
		<pubDate>Sun, 19 Jun 2005 15:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/2005/06/15/surrogate-keys/#comment-4172</guid>
		<description>&lt;I&gt; Knew exactly what you were saying, Tom. It’s good to look at what you do and re-analyse it from time to time&lt;/I&gt;

perhaps it would be clearer if I split that into a two paragraphs - it&#039;s my work that needs review ... ;-)</description>
		<content:encoded><![CDATA[<p><i> Knew exactly what you were saying, Tom. It’s good to look at what you do and re-analyse it from time to time</i></p>
<p>perhaps it would be clearer if I split that into a two paragraphs &#8211; it&#8217;s my work that needs review &#8230; ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pete_S</title>
		<link>http://www.rittmanmead.com/2005/06/15/surrogate-keys/comment-page-1/#comment-4171</link>
		<dc:creator>Pete_S</dc:creator>
		<pubDate>Sun, 19 Jun 2005 10:52:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/2005/06/15/surrogate-keys/#comment-4171</guid>
		<description>Knew exactly what you were saying, Tom. It’s good to look at what you do and re-analyse it from time to time. The ask Tom thread made a very true point on date time-series queries – I shall write on this another day.

Perhaps the biggest negative to date as a surrogate number key is that it makes date range partitioning schemes less intuitive (and if you go too far and disassociate date order from surrogate key order… just don’t go there).

Natural keys, surrogate keys, whatever  the important thing is to keep the fact ‘normalised’ – just the measures and foreign keys to the dimensions.

&lt;I&gt;I&#039;ve see systems that assign a number to a state code to look up the state code to get to the state name (and so on)&lt;/I&gt;
Of the systems I manage for various customers, the one I hate most is an ODS/data switch/data entry system (it’s not a data warehouse – so why me?) It was developed about 8 years ago in a ‘new’ 4GL OO language – it took about 12 months to write (as an aside, I needed to change some functionality so I got one of my team to re-write it in Java – it took less than a week, the original team took 3 months!) . The designers went to great lengths to apply OO design principles – even to creating a &lt;I&gt; single &lt;/I&gt; generic database table to hold all of the reference data – four columns: surrogate key, type of data (as a numeric code) “code” (visible to users) and a description – Yuk is a great word for it.</description>
		<content:encoded><![CDATA[<p>Knew exactly what you were saying, Tom. It’s good to look at what you do and re-analyse it from time to time. The ask Tom thread made a very true point on date time-series queries – I shall write on this another day.</p>
<p>Perhaps the biggest negative to date as a surrogate number key is that it makes date range partitioning schemes less intuitive (and if you go too far and disassociate date order from surrogate key order… just don’t go there).</p>
<p>Natural keys, surrogate keys, whatever  the important thing is to keep the fact ‘normalised’ – just the measures and foreign keys to the dimensions.</p>
<p><i>I&#8217;ve see systems that assign a number to a state code to look up the state code to get to the state name (and so on)</i><br />
Of the systems I manage for various customers, the one I hate most is an ODS/data switch/data entry system (it’s not a data warehouse – so why me?) It was developed about 8 years ago in a ‘new’ 4GL OO language – it took about 12 months to write (as an aside, I needed to change some functionality so I got one of my team to re-write it in Java – it took less than a week, the original team took 3 months!) . The designers went to great lengths to apply OO design principles – even to creating a <i> single </i> generic database table to hold all of the reference data – four columns: surrogate key, type of data (as a numeric code) “code” (visible to users) and a description – Yuk is a great word for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Kyte</title>
		<link>http://www.rittmanmead.com/2005/06/15/surrogate-keys/comment-page-1/#comment-4170</link>
		<dc:creator>Thomas Kyte</dc:creator>
		<pubDate>Sun, 19 Jun 2005 01:54:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/2005/06/15/surrogate-keys/#comment-4170</guid>
		<description>and don&#039;t get me wrong, I am all for using natural keys.

I&#039;ve see systems that assign a number to a state code to look up the state code to get to the state name (and so on)

If they had their way, every fact table would be a bunch of numbers, it would be a mess.

I don&#039;t like turning the date into a number - but offered that up as a counter point (that I was not totally clued into until I read it).</description>
		<content:encoded><![CDATA[<p>and don&#8217;t get me wrong, I am all for using natural keys.</p>
<p>I&#8217;ve see systems that assign a number to a state code to look up the state code to get to the state name (and so on)</p>
<p>If they had their way, every fact table would be a bunch of numbers, it would be a mess.</p>
<p>I don&#8217;t like turning the date into a number &#8211; but offered that up as a counter point (that I was not totally clued into until I read it).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pete_S</title>
		<link>http://www.rittmanmead.com/2005/06/15/surrogate-keys/comment-page-1/#comment-4169</link>
		<dc:creator>Pete_S</dc:creator>
		<pubDate>Fri, 17 Jun 2005 07:44:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/2005/06/15/surrogate-keys/#comment-4169</guid>
		<description>Thanks for the link, Tom - I see an edit/clarification coming on!</description>
		<content:encoded><![CDATA[<p>Thanks for the link, Tom &#8211; I see an edit/clarification coming on!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Kyte</title>
		<link>http://www.rittmanmead.com/2005/06/15/surrogate-keys/comment-page-1/#comment-4168</link>
		<dc:creator>Thomas Kyte</dc:creator>
		<pubDate>Fri, 17 Jun 2005 04:41:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/2005/06/15/surrogate-keys/#comment-4168</guid>
		<description>recent discussion on this (dates in particular) was had &lt;a HREF=&quot;http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:40116109090800#40295053909707&quot; rel=&quot;nofollow&quot;&gt; here &lt;/A&gt;

Seems sometimes it makes sense to surrogate them, sometimes it does not (it all comes back to how you use them)</description>
		<content:encoded><![CDATA[<p>recent discussion on this (dates in particular) was had <a HREF="http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:40116109090800#40295053909707" rel="nofollow"> here </a></p>
<p>Seems sometimes it makes sense to surrogate them, sometimes it does not (it all comes back to how you use them)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
