<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>My Zen Arcade &#187; databases</title>
	<atom:link href="http://myzenarcade.com/tag/databases/feed/" rel="self" type="application/rss+xml" />
	<link>http://myzenarcade.com</link>
	<description>Avast!  Argh!  Shiver me aluminum siding!</description>
	<lastBuildDate>Sun, 18 Sep 2011 11:41:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Databases: why its bad to only know a little</title>
		<link>http://myzenarcade.com/2008/10/12/databases-why-its-bad-to-only-know-a-little/</link>
		<comments>http://myzenarcade.com/2008/10/12/databases-why-its-bad-to-only-know-a-little/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 16:30:28 +0000</pubDate>
		<dc:creator>moleboy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://myzenarcade.com/?p=259</guid>
		<description><![CDATA[I&#8217;ve just started a new job and I&#8217;m working as half-dba-half-developer (it is supposed to be mostly development, but I can&#8217;t see how thats going to happen).  The product I&#8217;m supporting (3rd party product) is very obviously written by people who don&#8217;t know much about databases.
1. Instead of passing in data from the front end [...]]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>I&#8217;ve just started a new job and I&#8217;m working as half-dba-half-developer (it is supposed to be mostly development, but I can&#8217;t see how thats going to happen).  The product I&#8217;m supporting (3rd party product) is very obviously written by people who don&#8217;t know much about databases.</p>
<p>1. Instead of passing in data from the front end to a database procedure to handle things like inserts and updates, the front end just generates the SQL and issues it to the DB.  In my opinion, that is a bad design choice.  It turns the application into a black box, more or less.  That makes debugging and writing enhancements harder.  And thats not just for the user end.  The makers of the product have decided that, when there&#8217;s a DB level issue, they (or we) will just write a trigger.  Triggers are annoying, poorly implemented, and not meant as a method for patching bad code.  It can also be tricky to predict their behavior as they get more and more complex and start to interact with other triggers.</p>
<p>2. There are no primary key or foreign keys.  No, thats not quite right.  There are conceptual PKs and FKs, but no PK/FK constraints.  The goal of every database platform, be it Oracle, SQLServer, or MySQL, is data integrity and thats why these constraints exist.  The developers appear to understand the concept, and there are columns that are designated as PKs or FKs, but they seem to have missed the fact that without actually implementing the constraints, you aren&#8217;t getting that referential integrity.  You might as well have a bunch of flat files because you&#8217;ve really decided that the relational model is going to be ignored.</p>
<p>3. I was talking to one of the developers and asked WHY the front end was handling inserts and such.  His answer: &#8220;When we had the database doing it all, things got very slow when we had a large number of users.  The database resources got weighed down and slowed to a crawl.&#8221;  Moving the code to the front end is NOT the solution to that.  The solution to that is to get someone who knows how to write SQL and whatever procedural layer that database implementation has (PL/SQL, T-SQL, whatever) available.  Of course, given how poorly this whole thing has been designed, there may have been little choice.  Its either continue doing it the wrong way and hope to get it working sufficiently, or scrap it and start over.</p>
<p>But THAT is why you can&#8217;t assume that Java/C#/Etc. people can work with databases.</p>
<p>Myopathy.</p>
<!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://myzenarcade.com/2008/10/12/databases-why-its-bad-to-only-know-a-little/')" href="http://www.sphere.com/search?q=sphereit:http://myzenarcade.com/2008/10/12/databases-why-its-bad-to-only-know-a-little/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://myzenarcade.com/2008/10/12/databases-why-its-bad-to-only-know-a-little/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

