My Frustrations with Some (Large) Database Vendors
Some database vendors understood how valuable developers are for them. Others didn’t. And when their products will gradually fade, in favor of free open-source platforms easy to install and use, they will ask themselves why. I’ve seen this in the past and we assist today to another wave. People don’t change…
Table of Contents
What a Developer Needs
We have around 20,000 automatic tests that we wrote and periodically run for our own Data Xtractor products. That’s part of a good product development life cycle. Most unit tests are specific to a database system our clients must acquire separately: SQL Server or Oracle, PostgreSQL or MySQL, SQLite or Firebird etc etc.
Now, I wrote for decades code for back-end databases, for which my enterprise employers paid a huge amount of money. That is the kind of customers vendors should charge: when their database is on the server side, hidden, and users have usually no idea (and do not care) what kind of database that is.
However, for a standalone database administrator or similar tool, people may also see more value in the separate database platform they use. If your SQL Server or Oracle database is more easily accessible through a product like Data Xtractor, this may encourage someone to buy not just my product, but also yours.
We actually advertise for free your product to other people!
I never use my test databases in production, and they are very small. And I couldn’t pay the high price they usually charge just for some unit tests. Tools like mine support over a dozen of different platforms, and it would also be unrealistic to pay for each of them.
Many of these external vendors or providers offer a special trial version, that we install locally or access remotely, in a cloud:
- An express version has usually limited scalability, but comes with most features the “enterprise” edition has, and that’s also perfect (and even more suitable, as it consumes limited resources) for our tests.
- A developer version sends also a positive message to people like myself: it says the vendor thought at this possible business model, see the potential value our tools may add on top of their products, and do not treat me like a regular potential client, that they should charge.
- A limited trial version that expires after just a few months is actually a problem for us. We’re not here to try the products before we buy, but to have an always available small platform for automatic tests.
Unit Tests on Free Databases
PostgreSQL is usually a pleasure to install and use. Everything is free and production ready. You can install several different versions side-by-side on the same machine. They also easily connect from the local network.
MySQL is owned today by Oracle, but still gets interesting periodic upgrades. Or you can always switch to the similar MariaDB, which is “pure” freeware and open-source. Multiple different versions can be installed with no problem on the same machine. Just be aware that both MySQL and MariaDB may try to use the same port numbers, as MariaDB has been forked from MySQL, when Oracle acquired MySQL.
Small free databases like SQLite, Firebird or even the now expired SQL Server CE (Compact Edition) are also easy to install and manage. They are all file-based, with local files and no cloud/remote access. Except for Firebird, SQLite and SQL Server CE can only open local files.
Unit Tests on Commercial Databases
IBM’s Db2 LUW (for Linux, Unix and Windows) has an express edition free to install locally, with no time bombs. Their packages are however large, and if you want additional drivers or tools, expect gigabytes and gigabytes of data.
SQL Anywhere, now owned by SAP, is still an interesting and versatile database. I’m still impressed to discover how many SQL features have been implemented there. It’s also a database easy to install and use. We use two test versions on the same machine (16 and 17), installed side-by-side. We use test developer versions, with limited connections, which are free and do not expire. But they are more than perfect for what we need.
That’s not the case for their ASE (Adaptive Server Enterprise) edition, another product SAP bought from Sybase a while ago, the grandmother of Microsoft’s SQL Server. They still sell this product, but its SQL features are not as evolved as for SQL Anywhere or SAP/Sybase IQ, for instance.
When I contacted the SAP ASE guys to eventually get a free developer edition, I wasted my time with a customer support individual who had no idea what kind of business model is this. And who simply refused to put me in touch with a better suited person.
That’s one major problem when you contact their support: they try to fit you immediately into a paying or potential client. Or an OEM partner, which actually pays them as well for the …privilege of selling their products. If you’re none of these, they stop serving you…
I have several Microsoft SQL Server versions installed on my machine. They are all free and work great! And I have no idea at this point if they are trial, dev or express versions. Microsoft used to annoy us with a bit too many derivation, but lately they just made it easier for us.
We support Microsoft Access mostly because its graphical user interface inspired me years ago to think about the current visual SQL query editor, extended to most other databases. And, in all fairness, because I already pay for an Office license :). Without which I doubt Access will still be worth maintaining…
Oracle is another heavy player, with large installation files and a setup process not always easy to handle and understand. But I am still happy with their free of charge express editions that I installed locally. The versions however don’t work side-by-side: we use one computer for version 11 and another for version 18.
We also used to support Ingres, but I exhausted their free trial as well. And it looks like they completely abandoned now that old product for the new and different Actian X. They still annoy you with the free trial version of Ingres from their website, but you’ll actually waste your time, as you end up after a while into a dead link.
Unit Tests on Cloud Databases
You can create and access an always available limited but free PostgreSQL cloud database at Heroku. It’s not a very recent version (our version is 9.4), but it is what we wanted, because we use local installations for the other supported versions. This kind of databases are usually offered as part of a hosted development package, with website code and all the fuss. But you may also just configure the database for remote access, with no code at all.
I’ve been pleasantly surprised to find out IBM offers a free cloud Db2 Lite database. It’s limited, and you have to renew it each month – you get an email and you have to further click on 3-4 other links – but it is extremely useful and always available online. We actually use two separate Db2 cloud databases, and both work great.
If you need a small remote Microsoft SQL Server database, you may try AppHarbor. It’s free and always available. They use an old 2008 version, but this was exactly what we needed for our unit tests, as we test all other versions with local servers. Just beware it’s usually slow…
Azure’s SQL Database is basically a Microsoft SQL Server clone adapted for the cloud. When you exhaust their free 12-month trial (as I did), you have to dig in for another email and credit card, as one of their customer service representatives told me. Which is kind of embarrassing, but I did it: to be legit, I used my wife’s account. But their dashboard changed so much, not for the best, and I had to call their support…
Luckily for me, a smart Support Manager got involved and we figured it all out: looks like one paid Developer subscription was also created by mistake, for the missing charge nobody could explain. It’s also interesting the manager had to ask her boss to delete it, because we could not do it online. As for the costs associated to a free trial, they were just hypothetical charges, I’ve been told. Still, no mention anywhere this was the case!
Oracle’s Cloud edition offers a free trial for just 30 days. However, they added lately an “Always Free” service with two small autonomous databases. Not bad, but the thumbs down comes from my interaction with their representatives…
Amazon Aurora is an AWS cloud variation of a MySQL database. And Amazon Redshift has been forked few years ago from PostgreSQL, and evolved separately. Amazon also offers a free 12-month trial for most of their services, more limited for Redshift. But I also exhausted the free trial a while ago.
I’ve send however a message to them, to check if there is no other free and more simple alternative. As they don’t actually make money with a dev like me, and to me that’s rather a negative message and unnecessary nuisance.
Conclusion
- Open-source database products like MySQL, MariaDB or PostgreSQL are totally free and easy to install. Clients love and use these products also because there are no limited trials and annoying business models.
- Even SQL Server or Oracle, the two commercial giants in the field, offer express editions developers can use locally without time bombs. It seems like older a database product gets, more arrogant and annoying their support team becomes. Otherwise, I cannot understand why SAP ASE or Ingres do not offer free developer licenses.
- Cloud databases also charge by usage, once you exhaust the eventual free trial. But this is also annoying when all you need is a very small database that you can use just several times a month for some unit tests. Amazon, Microsoft and Oracle should follow the example of IBM and offer some lite cloud editions for limited needs. Companies started to offer free developer licenses when they understood such people should not be charged like regular customers, when they actually may help you sell more of your own products. It is about time their cloud database departments to come up with a similar license.
Database | How Easy it is for Unit Tests |
---|---|
PostgreSQL | Easy to install and use locally. Multiple versions supported side-by-side on the same machine. May also create and use a free cloud Postgres v9 database on Heroku. |
MySQL | Easy to install and use locally. Multiple versions supported side-by-side on the same machine. MySQL Workbench changed a lot from v8, but could use HeidiSQL for any version. No known free cloud databases. |
SQLite | Easy to install and use locally. Included as system database in all our products. We only use one of the last available version and engine. File-based local databases only. |
Firebird | Easy to install and use locally. Cannot use separate versions side-by-side. We test with versions 3 and connect to version 2.5 remotely on another machine. File-based databases only. |
SQL Server CE | Easy to install and use locally. We use only the last supported version that you can download online. Beware SQL Server CE is no longer officially supported by Microsoft. File-based local databases only. |
SQL Server | Easy to install and use, locally or remote. Can install multiple versions side-by-side, all accessed from SSMS. |
Oracle | Install and use locally an express version, with no time limits. Cannot install multiple versions side-by-side. We use one computer with version 11 and another with version 18 accessed remotely. |
Amazon Redshift | Free limited few months trial. After which you may quickly restore your database from a saved S3 snaphot, run your unit tests and shutdown the cluster, to avoid additional charges. We spend below $1 a month doing just that. I contacted Amazon for a better alternative, we'll see... |
Amazon Aurora | Free 12-month trial. After which you may quickly restore your database from a saved S3 snaphot, run your unit tests and shutdown the cluster, to avoid additional charges. Just like for Redshift, we spend below $1 a month doing just that. I contacted Amazon for a better alternative, we'll see... |
Microsoft Access | Must install both 32bit and 64bit drives locally, together with the whole Microsoft Access product. We use an Office license with Access included. Local tests only, with MDB and ACCDB files. |
SAP/Sybase SQL Anywhere | Easy to install and use locally, even with two separate 16 and 17 versions, side-by-side. No known remote test databases available. |
SAP/Sybase ASE | Their trial version expires after one year or so. This could be enough free time given to potential customers, but not to developers. I talked to their customer support and they actually refused to put me in touch with someone more knowledgeable. SAP/Sybase ASE will soon no longer exist among our supported platforms. The platform was anyway older and had some annoying installation bug. |
Ingres | Last version was available for a while as a free trial, but it has been removed once Ingres became Actian X. For this reason, we no longer support Ingres today, even if a lot of custom code has been already written to support it as well. |
MariaDB | Like MySQL, easy to install and use locally. Multiple versions supported side-by-side on the same machine. Could use with HeidiSQL. No known free cloud databases. |
Azure SQL Database | Free 12-month trial for a cloud SQL Database. Only month-to-month when exhausted, which is not suitable for less frequent unit tests. Dashboard changed a lot and no longer very user friendly, with usability issues. I personally had a bad experience with their customer support when I needed assistance. |
Db2 | Free easy to use Express version to install locally, with no time limit. |
Db2 Cloud | Free LITE Db2 in the cloud offered by IBM, always available and great for unit tests. |
Oracle Cloud | Free limited 30-day trial for their cloud version. New "Always Free" service, with two small autonomous databases. |