<?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: Input Validation and Data Dictionaries</title>
	<atom:link href="http://www.cigital.com/justice-league-blog/2010/07/21/input-validation-and-data-dictionaries/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cigital.com/justice-league-blog/2010/07/21/input-validation-and-data-dictionaries/</link>
	<description></description>
	<lastBuildDate>Sun, 13 May 2012 16:44:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Tom Van Vleck</title>
		<link>http://www.cigital.com/justice-league-blog/2010/07/21/input-validation-and-data-dictionaries/#comment-191</link>
		<dc:creator>Tom Van Vleck</dc:creator>
		<pubDate>Thu, 23 Sep 2010 15:50:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.cigital.com/justiceleague/?p=408#comment-191</guid>
		<description>I worked at Tandem in the 80s.  They had their own SQL database implementation, and a company-wide data dictionary. Using this dictionary exposed several problems with data dictionaries.
1. Administration. If there is bureaucracy involved in defining data elements, developers will bypass it.
2. Merging. When independently developed data dictionaries must be merged, either you end up rewriting applications or you end up with multiple similar fields.
3. Semantics. This is the killer. Simple example: we had an &quot;airport&quot; field in the corp data dictionary definition for a branch office.  Some applications used it for the air freight calculation; others for expense report mileage calculation.. but some airports didn&#039;t do air freight, and the apps conflicted in their use.  Each app designer said, &quot;airport, aha, that&#039;s what I need&quot; and didn&#039;t realize there was a semantic problem.  Getting precise semantic definitions of each data element required people to model the whole real world, not just the part their app touched.  

You might be able to model what a mail address looked like (wonderful regex!) but the DD also has to have semantics for how mail addresses are related to other entities and how they are used.  My SQL address book has about 5 email address fields and i find myself punning all the time to account for idiosyncratic uses.</description>
		<content:encoded><![CDATA[<p>I worked at Tandem in the 80s.  They had their own SQL database implementation, and a company-wide data dictionary. Using this dictionary exposed several problems with data dictionaries.<br />
1. Administration. If there is bureaucracy involved in defining data elements, developers will bypass it.<br />
2. Merging. When independently developed data dictionaries must be merged, either you end up rewriting applications or you end up with multiple similar fields.<br />
3. Semantics. This is the killer. Simple example: we had an &#8220;airport&#8221; field in the corp data dictionary definition for a branch office.  Some applications used it for the air freight calculation; others for expense report mileage calculation.. but some airports didn&#8217;t do air freight, and the apps conflicted in their use.  Each app designer said, &#8220;airport, aha, that&#8217;s what I need&#8221; and didn&#8217;t realize there was a semantic problem.  Getting precise semantic definitions of each data element required people to model the whole real world, not just the part their app touched.  </p>
<p>You might be able to model what a mail address looked like (wonderful regex!) but the DD also has to have semantics for how mail addresses are related to other entities and how they are used.  My SQL address book has about 5 email address fields and i find myself punning all the time to account for idiosyncratic uses.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

