Database Design

We are very comfortable dealing with data in both large and small amounts, mixing and matching different systems and manipulating information in whatever fashion is necessary to satisfy the business need. Whether you need an end-to-end data-critical application, or a one time migration to a new system, you can call us to help you out. Below is a list of database systems we have worked with in various capacities.

  • SQL Server

    Over the years, SQL Server has become a big player in both large and small ways. With SQL Server Express being both free and every bit as capable as it's enterprise version, it's a great system for developing applications of any size. We have a tool to generate a variety of test data to help prove systems. We can spin up a new database online quickly using Microsoft Azure cloud services.

  • Oracle

    As our involvement with Retail Pro 9 over the last decade has increased, we have also dealt with the nuances of Oracle's database engine, calling stored procedures and running complex queries to pull out data for integration projects.

  • MySQL

    The most ubiquitous database system for web sites is MySQL. We've built several web sites either in PHP using MySQL directly, or PHP-frameworks that use it as part of their underlying database. We've ported tables, built complex queries, synchronized online shopping carts with desktop point-of-sale systems, and migrated whole databases from one server to another.

  • InterBase/Firebird

    In 2000, InterBase 6 was made open source. Immediately, there was a code fork by some of the original developers of InterBase who named it Firebird SQL. InterBase is once again proprietary, but Firebird has remained open source. Both products have had many improvements since then and are now two distinct products. (It's interesting to note, however, that a lot of Delphi components and third-party tools still support both.) I have done quite a bit of work with Firebird, including an Apache web module on Linux written in Free Pascal, and a client/server application for Android phones written with Delphi 10.2 Tokyo.

  • Embedded Databases

    • Paradox

      In the late 1980s, we setup our first database for a cleaning supplies business and started learning how to build forms for simple data entry, provide customized reports, and manage the flow of a business's most valuable asset: information. That database was Paradox (now known as Paradox for DOS), with built-in scripting, form-building tools, tutorials, and easy-to-use reports. This database was ahead of it's time as far as ease of use and power and became one of the popular ones used with Delphi in the early Windows days. It did well as a desktop database for local applications, but lacked some of the transactional robustness provided by client/server engines.

    • FoxPro

      In the 90's, we did some work for an educational company that had an information management system built in FoxPro for DOS. We helped them port it to FoxPro for Windows and FoxPro for Mac. Later, we also worked on a larger system used in a realtor office. FoxPro is a another good desktop-based database program for getting screens and reports up quickly and organizing local information, and while it still exists, has been superseded by more powerful database engines which have dropped in price or are free.

    • DBISAM/ElevateDB

      Elevate Software has been supporting Delphi (and now PHP, JavaScript, and .NET as well) with embedded database products for many years. In the late 90's, we wrote an application for a brokerage company to completely manage all aspects of their customer relations, sales, invoicing, and shipping business. It was based on Elevate's DBISAM and is still in use today. (One of the leading benefits of using DBISAM over other database products that came free with Delphi was not having to use the BDE (Borland Database Engine) with it's overhead and problems.) When we started another business management application for a steel parts import company in 2005, we again started on DBISAM, but soon moved up to a newer product by the same company, ElevateDB. This product has some very compelling features such as the ability to easily switch between a local desktop-type database and a client/server engine running on a network server or even in the cloud. It also features encryption and compression, stored procedures, triggers, and of course, transaction support.

    • NexusDB

      The conversion of a major trucking dispatch and accounting software gave us experience with another great embedded database product that has been around for many years, NexusDB. It compiles right in Delphi, provides a secure server back-end and query tool, and ties nicely with grid and reporting features.

    • SQLite

      More recently, as we are developing tablet and phone applications that also need to store data, SQLite is becoming the logical choice because it is small and nimble, yet still has many features formerly found only in larger systems. The SQLite libraries are open-source and available on virtually every computing device today; you'd have a difficult time finding a language that doesn't interface with it. With previous experience in a plethora of database languages and tools, getting familiar with this simple yet capable database has proven to be quite painless.


There are other databases we've naturally had experience with including dBASE and Microsoft Access, but not every set of data we deal with comes in a nice database. The bulk of our experience is integrating disparate systems. Often this involves mapping fields from one table structure to another through a custom application that talks to both ends. Sometimes it involves communicating with a REST-based web service that responds with JSON packets. Other times we get spreadsheets and need to parse the rows and columns from the XML file. We've dealt with CSV (comma-separated values) files on multiple occasions and have dealt with record-based flat files from old Unix servers. Basically, we can take nearly any formatted data and break it down to process it as meaningful information.