<?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>The Integration Engineer &#187; Database</title>
	<atom:link href="http://www.theintegrationengineer.com/category/data/database/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.theintegrationengineer.com</link>
	<description>When it just has to work.</description>
	<lastBuildDate>Tue, 27 Jul 2010 17:33:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mapping Excersizes: EDI Invoice to Open Office Tables (part One)</title>
		<link>http://www.theintegrationengineer.com/mapping-excersizes-edi-invoice-to-open-office-tables-part-one/</link>
		<comments>http://www.theintegrationengineer.com/mapping-excersizes-edi-invoice-to-open-office-tables-part-one/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 17:30:24 +0000</pubDate>
		<dc:creator>Roy</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[EDI]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[Mapping Exercise]]></category>
		<category><![CDATA[Invoice]]></category>
		<category><![CDATA[Open Office]]></category>
		<category><![CDATA[Paper Map]]></category>
		<category><![CDATA[target]]></category>

		<guid isPermaLink="false">http://www.theintegrationengineer.com/?p=37</guid>
		<description><![CDATA[This is a mapping exercise that will go through the process of creating a paper map, or mapping document.  We will start with an empty paper map that you can get here.  And we will end with a completed paper map document that documents what data from the source goes into what fields on the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-162" title="math" src="http://www.theintegrationengineer.com/wp-content/uploads/2009/06/math.jpg" alt="math Mapping Excersizes: EDI Invoice to Open Office Tables (part One)" width="173" height="173" />This is a mapping exercise that will go through the process of creating a paper map, or mapping document.  We will start with an empty paper map that you can get <a href="http://www.theintegrationengineer.com/tool-box/#papermap">here</a>.  And we will end with a completed paper map document that documents what data from the source goes into what fields on the target.  This process will take more than one post, and I will link them together so that you can follow from one to the next.  Along the way, we will discuss the things that we are doing so that you can apply this technique in your mapping using the target and source in your own mapping tasks.<span id="more-37"></span></p>
<p><strong>The Target</strong></p>
<p>Open Office tables are divided into two tables. <em> Invoice</em> and <em>Invoice Details</em>.  This can be mapped in two ways; The first way is to map the data into one common format and rely on whatever ETL tool is importing the data to catch and split the data.  Second, a key can be acquired or constructed in the transformation and then the the data can be divided in to matching input formats.  Then when these inputs are moved into the database, they will relate to each other on this key.<a href="http://65e92d0uv89gefp2xcimn8dp2a.hop.clickbank.net/" target="_top"><img class="alignright size-full wp-image-116" title="ssn_databasejpeg" src="http://www.databasedesign-resource.com/images/NormalizationBook.jpg" alt="Paper Database" width="176" height="338" /></a></p>
<p>The choice of how you will do this will depend on your environment.  Questions like, &#8220;Will I have enough data to provide a unique key?&#8221;, or &#8220;is there a way to get a key with an API call or database query?&#8221;  The answers to these questions will determine what course you will take.</p>
<p>If the system ultimately receiving the data is asynchronous to the transformation, and you need to send the invoice and invoice details data separately, some care needs to be taken to ensure that the data can be related after it is separated.</p>
<p>So what data in the invoice can be used to tie the invoice to the invoice details?  The first answer might be, &#8220;The Invoice Number.&#8221;  But this number is not guaranteed to be unique across multiple vendors.  In EDI and cXML there are document unique identifiers.  Since we are using EDI, we can use a combination of the ISA Sender, Receiver, and Control number.  We will also want to use the GS control number, and ST control number in the event that more than one invoice is sent in a single <a href="http://www.theintegrationengineer.com/edi-enveloping-part-one/">envelope</a>.  And we might as well tack on the actual invoice number from the BIG_02.</p>
<p style="padding-left: 30px;"><em><strong>Database Tables</strong></em></p>
<table border="0" cellspacing="10">
<tbody>
<tr valign="top">
<td>
<p style="padding-left: 30px;">Invoice Table:</p>
</td>
<td>
<p style="padding-left: 30px;">Invoice Details Table:</p>
</td>
</tr>
<tr valign="top">
<td><img class="aligntopsize-full wp-image-54" title="Invoice Table Definition" src="http://www.theintegrationengineer.com/wp-content/uploads/2008/11/invoicetabledef.jpg" alt="invoicetabledef Mapping Excersizes: EDI Invoice to Open Office Tables (part One)" width="203" height="205" /></td>
<td><img class="aligntop size-full wp-image-55" title="Invoice Details Table Definition" src="http://www.theintegrationengineer.com/wp-content/uploads/2008/11/invoicedetailstabledef.jpg" alt="invoicedetailstabledef Mapping Excersizes: EDI Invoice to Open Office Tables (part One)" width="203" height="148" /></td>
</tr>
</tbody>
</table>
<p><strong>The Paper Map</strong></p>
<p>Now that we know what the target looks like, we fill out the target side of the paper map.  Since we will create two &#8220;files&#8221; in our output.  We are creating the Invoice and the InvoiceDetails file, but we can use one paper map for both, and will distinguish this with a bar between the two &#8220;files&#8221;.  (I am saying files, but this could be a queue, or a post, or an insert over odbc, etc)</p>
<p style="text-align: center;"><img class="size-full wp-image-181 aligncenter" title="invoiceMap_target" src="http://www.theintegrationengineer.com/wp-content/uploads/2009/06/invoiceMap_target.png" alt="invoiceMap target Mapping Excersizes: EDI Invoice to Open Office Tables (part One)" width="281" height="435" /></p>
<p><strong>What&#8217;s Next</strong></p>
<p>Today we went through the process of identifying the target, and creating a paper map with the target format identified.  We talked about some of the strategy that we use in deciding what to map and how to map it.  Next time we will identify the source, and begin mapping data from the source.</p>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.theintegrationengineer.com/mapping-excersizes-edi-invoice-to-open-office-tables-part-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 Tools of an Integration Engineer</title>
		<link>http://www.theintegrationengineer.com/5-tools-of-an-integration-engineer/</link>
		<comments>http://www.theintegrationengineer.com/5-tools-of-an-integration-engineer/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 17:30:32 +0000</pubDate>
		<dc:creator>Roy</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[File]]></category>
		<category><![CDATA[Calc]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[notepad]]></category>
		<category><![CDATA[Open Office]]></category>
		<category><![CDATA[spread sheet]]></category>
		<category><![CDATA[spreadsheet]]></category>
		<category><![CDATA[SQL Worksheet]]></category>
		<category><![CDATA[squirrel]]></category>
		<category><![CDATA[techrepublic]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[text pad]]></category>
		<category><![CDATA[textpad]]></category>
		<category><![CDATA[TOAD]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[ultra Edit]]></category>
		<category><![CDATA[ultraedit]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[white board]]></category>
		<category><![CDATA[whiteboard]]></category>

		<guid isPermaLink="false">http://www.theintegrationengineer.com/?p=115</guid>
		<description><![CDATA[There are job or task specific tools that will have a high importance to each integration task.  When working on an SAP system, your SAP tools will be very important.  But there are tools and skills that are also important regardless of the systems and technologies that you are working on.  For me, these are [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-144" title="tool_pile_puzzlepiece1" src="http://www.theintegrationengineer.com/wp-content/uploads/2009/06/tool_pile_puzzlepiece1.jpg" alt="tool pile puzzlepiece1 5 Tools of an Integration Engineer" width="131" height="108" />There are job or task specific tools that will have a high importance to each integration task.  When working on an SAP system, your SAP tools will be very important.  But there are tools and skills that are also important regardless of the systems and technologies that you are working on.  For me, these are the top 5 tools that an Integration Engineer should be able to use proficiently.  Do you use any of these?  Do you have others?<span id="more-115"></span></p>
<p><strong>1.  A big Whiteboard</strong></p>
<p>This is probably my number one requirement.  When I am thinking, I like to draw it out.  I haven&#8217;t found an application that gives me the same creative release and adaptability as my whiteboard.  After starting to <img class="alignright size-medium wp-image-122" title="whiteboard" src="http://www.theintegrationengineer.com/wp-content/uploads/2009/05/whiteboard-300x300.jpg" alt="whiteboard 300x300 5 Tools of an Integration Engineer" width="146" height="146" />do some of my work from home, I went out and acquired a 10 X 4 whiteboard to put in my home office.  Having the extra room is essential.  I can get a call, and walk over to the whiteboard and start drawing out what needs to be built to solve the problems while I am still on the call.</p>
<p>You may not need a white board as big as mine.  And you may have an electronic solution that you like better.  If so, please let me know, I like to try out gadgets.</p>
<p><strong>2.  Spreadsheet</strong></p>
<p>Now this may not sound earth shattering, but we are not just talking about the basics.  You will need to learn to write filters, import data, link cells and perform calculations.  If you think that a spreadsheet is like a ledger, then you are missing the power of a spreadsheet.  If you don&#8217;t think you have the skills you need, here are some links to tutorials for the two most popular spreadsheet software.</p>
<ul>
<li>Very Basic Open Office Tutorial <a href="http://www.tutorialsforopenoffice.org/tutorial/Spreadsheet_Basics.html">http://www.tutorialsforopenoffice.org/</a></li>
<li>More specific/advanced tutorials <a href="http://openoffice.blogs.com/openoffice/">http://openoffice.blogs.com/openoffice/</a></li>
<li>Some basic and advanced help for MS Excel <a href="http://www.internet4classrooms.com/on-line_excel.htm">http://www.internet4classrooms.com</a></li>
</ul>
<p><strong>3.  Text editor.</strong></p>
<p>Familiarity with more than one is needed as you will find yourself on Windows and Unix servers and they will have different sets of tools.  One of the things that is the most frustrating is to not know how to use the native editor of the system you are on.  So get familiar with Notepad, and then get familiar with VI.  You can add in other tools like UltraEdit, TextPad, and more, but you should know the native ones first, if not best<strong>.</strong></p>
<ul>
<li>Ultra Edit is a popular tool in some circles.  <a href="http://www.ultraedit.com/">http://www.ultraedit.com/</a></li>
<li>Text Pad is also popular.  <a href="http://www.textpad.com/">http://www.textpad.com/</a></li>
<li>Believe it or not, notepad has some tutorials.  <a href="http://bink.nu/news/notepad-tips-and-tricks.aspx">http://bink.nu/news</a></li>
<li>And here is a cheat sheet for VI commands.  <a href="http://downloads.techrepublic.com.com/abstract.aspx?docid=172404">http://downloads.techrepublic.com</a></li>
</ul>
<p><strong>4.  File compare.</strong></p>
<p>One task that will need to be done is to compare a file with another file to detect changes or differences.  This happens in both new integrations, and in trouble shooting or investigating existing ones.  Some systems have native comparison tools, others don&#8217;t.  And there is much variety in how they work.  Here are some of the tools I have seen and used.</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Diff">Wiki</a> has a great list.  I don&#8217;t know that I can improve on.</li>
</ul>
<p><strong>5.  DB query </strong></p>
<p>Much of the time, integration involves a database somewhere sometime.  To work on an integration and not have to have a DBA sitting in your lap, you need to be competent to query the database.  And this involves using some tool.  Sometimes systems will have native tools, other times you will need to connect your own.  Here is a list of tutorials for DB Query tools that I have seen and used.</p>
<ul>
<li>Squirrel SQL <a href="http://squirrel-sql.sourceforge.net/">http://squirrel-sql.sourceforge.net/</a></li>
<li>SQL Worksheet</li>
<li><a href="http://www.toadsoft.com">TOAD<br />
</a></li>
</ul>
<p><strong>Summary</strong></p>
<p>This is by no means attempting to be a comprehensive list of tools.  Such a list would be long, if it were possible.  And I don&#8217;t think that it is.  There are however some tools/skills that help us to be more effective as Integration Engineers.  Seeing what others use is helpful especially when we find that the tool we used to use is not longer around.</p>
<p>What tools, applications, or skills do you find you are falling back on often, on more than one project?  Or what new tools have you found that you think you will use often in the future?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theintegrationengineer.com/5-tools-of-an-integration-engineer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is a Database</title>
		<link>http://www.theintegrationengineer.com/what-is-a-database/</link>
		<comments>http://www.theintegrationengineer.com/what-is-a-database/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 16:26:56 +0000</pubDate>
		<dc:creator>Roy</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[embeded database]]></category>
		<category><![CDATA[external database]]></category>
		<category><![CDATA[Hirarchial Database]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[RDBMS]]></category>
		<category><![CDATA[Relational Database]]></category>
		<category><![CDATA[schema]]></category>
		<category><![CDATA[Single Table]]></category>
		<category><![CDATA[spreadsheet database]]></category>
		<category><![CDATA[Table]]></category>
		<category><![CDATA[tree]]></category>

		<guid isPermaLink="false">http://www.theintegrationengineer.com/?p=106</guid>
		<description><![CDATA[Definition:  A database is a structured collection of records or data.
Many moons ago, I was shown an database that was constructed back in the 50s.  It was hand held and consisted of a stack of cards that contained information about plant biology.  There was a series of holes that wrapped around the cards, some of [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Definition</strong>:  A <a href="http://en.wikipedia.org/wiki/Database"><em>database</em></a> is a structured collection of records or data.</p>
<p>Many moons ago, I was shown an database that was constructed back in the 50s.  It was hand held and consisted of a stack of cards that contained information about plant biology.  There was a series of holes that wrapped around the cards, some of the holes were notches, and others were not.</p>
<p>To query the database, one placed a pin through one of the wholes and let the cards that had a notch fall out of the stack.  You could continue this process by removing and adding pins to select different combination of data.</p>
<p>Once you had narrowed your search, you could read the cards, and retrieve the data.</p>
<p>This was a very manual process, and I doubt that anyone today would take the time to learn to use such a tool, let alone update or add records to it.<span id="more-106"></span></p>
<p><strong></strong><img class="alignleft size-full wp-image-116" title="ssn_databasejpeg" src="http://www.theintegrationengineer.com/wp-content/uploads/2009/04/ssn_databasejpeg.jpeg" alt="Paper Database" width="250" height="200" /><strong>More Modern Databases</strong></p>
<p>Replacing Card Catalogs in libraries, Rolodex on desktops, and filing rooms in offices, is our new electronic concept of databases.  At a rudimentary level, and fitting under the definition of the database that we started with fall many simple documents.</p>
<p>A post-it note is not a database, but a list of names and numbers on a contact list is.  It has regular structure, and the data can be retrieved using a routine.  And this is as far as most people need to go.  They see databases like spreadsheets.  They even use filters and link cells for calculations.</p>
<p><strong>More than just a list</strong></p>
<p>A database that just holds a list of records is a single table Database.  This is like a spreadsheet and the only real advantage is that Databases on computers are generally designed to be queried by other applications.  The contact list in your email client is not much more than a flat table.  But it is queried and updated from the email application.  This makes the application more useful.</p>
<p>Again, long ago, I had a watch that held phone numbers.  This worked pretty well, and had an alpha-numeric keyboard.  But the data was in a silo.  There was no way to get the data in or out other than the small screen and keypad.  Application bound, embedded databases are also silos of data.</p>
<p>Many applications now use, or have the option to use, an embedded database.  But databases that can be used by more than one application, and are treated like an object are even more useful.  When a database is shared between applications, we can gain exponential utility.  Every new application that can query the shared database becomes more efficient.</p>
<p><strong>RDBMS More than a single table.</strong></p>
<p>One of the things that we will discuss more later, is the concept of a relational database.  What this means is that we have more than one table, that have related fields.  A analogous example is the an email system with an integrated calender.  Now we have the schema or table that contains the contact and relate them to people invited to the events.  These systems have been around for quite a while and gives us a conceptual model of how related tables bring power to a Relational Database Management System (RDBMS).</p>
<p><strong>Data in a Hierarchy<br />
</strong></p>
<p>RDBMS is not the only way to organize data.  One way that some databases organize data is in a hierarchical schema.  In this fashion instead of tables, we have a conceptual model like a directory tree.  Data is located in a name space that is organized like files in directories.  Data in this type of structure gains some implicit structure and relationship as a parent child relationships exists in the data naturally.  For small sets of data this can make the database small and fast.  However the ability to build abstract structures, relationships and queries are more difficult with this structure, and the database really grows when extended to cover the features of multiple relational data reference.</p>
<p><strong>All Shapes and Sizes</strong></p>
<p>More basic than the most simple table or hierarchy based database is the file based system.  This is really what it sounds like.  A simple text file or an XML file can be used as a database.  These can support queries, inserts and joins.  Even though the database is in a standard file that can be opened and accessed with a common text editor, it has a structure and can be used to keep the application data organized.</p>
<p><strong>Databases for the Integration Engineer</strong></p>
<p>As integration Engineers, we will sometimes find ourselves working directly with and application&#8217;s database.  Sometimes this database will be a full blown enterprise level database implementation.  Many times, however, it will be something more simple like an embedded table or xml file that the application treats as its database.  Whatever the case, we need to learn and respect the structure of the data, and work to ensure that our integration preserves the integrity of the data structure.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theintegrationengineer.com/what-is-a-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
