<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Alexander Kuznetsov : Denormalization</title><link>http://sqlblog.com/blogs/alexander_kuznetsov/archive/tags/Denormalization/default.aspx</link><description>Tags: Denormalization</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Denormalizing to enforce business rules: Running Totals</title><link>http://sqlblog.com/blogs/alexander_kuznetsov/archive/2009/01/23/denormalizing-to-enforce-business-rules-running-totals.aspx</link><pubDate>Fri, 23 Jan 2009 19:57:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11406</guid><dc:creator>Alexander Kuznetsov</dc:creator><slash:comments>12</slash:comments><comments>http://sqlblog.com/blogs/alexander_kuznetsov/comments/11406.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/alexander_kuznetsov/commentrss.aspx?PostID=11406</wfw:commentRss><description>Calculating running totals is notoriously slow, whether you do it with a cursor or with a triangular join. It is very tempting to denormalize, to store running totals in a column, especially if you select it frequently. However, as usual when you denormalize,...(&lt;a href="http://sqlblog.com/blogs/alexander_kuznetsov/archive/2009/01/23/denormalizing-to-enforce-business-rules-running-totals.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11406" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/alexander_kuznetsov/archive/tags/Data+Integrity/default.aspx">Data Integrity</category><category domain="http://sqlblog.com/blogs/alexander_kuznetsov/archive/tags/Database+Programming/default.aspx">Database Programming</category><category domain="http://sqlblog.com/blogs/alexander_kuznetsov/archive/tags/Denormalization/default.aspx">Denormalization</category></item><item><title>Denormalizing to enforce business rules: Part 1.</title><link>http://sqlblog.com/blogs/alexander_kuznetsov/archive/2009/01/21/denormalizing-to-enforce-business-rules-part-1.aspx</link><pubDate>Wed, 21 Jan 2009 23:49:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11318</guid><dc:creator>Alexander Kuznetsov</dc:creator><slash:comments>19</slash:comments><comments>http://sqlblog.com/blogs/alexander_kuznetsov/comments/11318.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/alexander_kuznetsov/commentrss.aspx?PostID=11318</wfw:commentRss><description>You cannot use CHECK constraints to compare columns in different rows or in different tables, unless you wrap such functionality in scalar UDFs invoked form a CHECK constraint. What if you actually need to compare columns in different rows or in different...(&lt;a href="http://sqlblog.com/blogs/alexander_kuznetsov/archive/2009/01/21/denormalizing-to-enforce-business-rules-part-1.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11318" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/alexander_kuznetsov/archive/tags/Data+Integrity/default.aspx">Data Integrity</category><category domain="http://sqlblog.com/blogs/alexander_kuznetsov/archive/tags/Database+Programming/default.aspx">Database Programming</category><category domain="http://sqlblog.com/blogs/alexander_kuznetsov/archive/tags/Denormalization/default.aspx">Denormalization</category></item></channel></rss>