April 19, 2006
All About Me!
Greetings! I will be blogging here at DDJ about database development. I have been doing database work for the better part of 20 years. Those of you around 20 years ago will recall exactly how primitive databases were back then.
I initially used simple data files to manage my data. Fixed length records, written out to a text file, had to suffice. Want to sort by name? It was done the old fashioned way, reading in all the data and then sorting on my own.
Around 1988 I started working at a small firm that created retailer's back office software. They used the then relatively unknown "File Manager" named Btrieve. Btrieve was, at the time, a huge step up from rolling your own database code. Btrieve allowed you to create indexes for your data that could speed queries, and used a two phase commit that protected your data from a number of failures. As time progressed, I created C++ wrapper classes that allowed me to do things that we all now take for granted. For instance, overloading the square brackets operator, I was able to do things like retrieving a social security number using the Btrieve file object, like so:
strcpy(SSN,MyBtrieveFile["SSN"]);
This may look primitive now, but it was a big deal back in the early 90's.
Btrieve was a very reliable file manager, but not perfect. In working with files that got hosed due to things like power failures or people turning off the machine while it was processing data, I came up with a fairly good way of recovering data in damaged Btrieve files. From there, I developed a number of Btrieve utilities, both for data recovery and more easy querying of data.
Btrieve had a companion program you could purchase, named XTrieve. Xtrieve was a less than perfect program. It did all I needed, but it did so while consuming all of memory, at that time a very rare commodity. I created a program that did much of what XTrieve did, but in much less memory. The experience of writing a query parser in many ways changed my life. I was then able to better understand what was easy for a query processor to manage, and what was difficult, requiring a table scan.
I made a good living selling these programs as shareware. I also employed my children to package up orders, teaching them enough about computers that neither one has taken up computers for a living...
After a couple of ownership changes, Btrieve had a companion product named Pervasive.SQL. Pervasive.SQL allowed you to create stored procedures and perform other server-side development. The ability to do the work of the database near the data opened my eyes to the wonders of real databases.
After changing jobs, I came to work on Microsoft SQL Server. The tools for SQL Server were much better than the tools for Pervasive.SQL at the time, and I never looked back. I eventually worked for a real database geek, someone who wrote stored procedures that created stored procedures. On that job, I learned a lot about SQL, and I have continued working with SQL Server, from Version 6 through SQL Server 2005.
I do a great deal of work for the Healthcare industry, always using SQL Server, often using ASP.NET and the Compact Framework.
So, there you have it. A brief introduction to what brought me here.
On this blog, I expect to share cool database related links I discover, new tools and tricks of the trade. Stay tuned!
Posted by Douglas Reilly at 04:20 PM Permalink
|