The curious case of Valentina

Niche database. Best in class database management studio.

Microsoft may be releasing the relational engine of SQL Server 2016 on Linux but how will you manage them? 

You will use Valentina Studio.

This application has become my daily driver. In fact I only have two feature requests for it which I’ll get into later. There are a couple things I don’t like and some things that really stand out. I am going to take a few minutes here to give you my impressions of Valentina Studio after over a year of daily use.

Full Disclosure: A good number of our Xojo web hosting clients use Valentina Studio and thus I believe Paradigma Software provided me with a one year free license to Studio Pro. I did not ask for this free license nor did I refuse it because why would I? 

Now that it has expired I will purchase a license for real.

Database connectivity

This is a truly cross platform tool that you can use on all of your favorite development workstations. It connects to everything I care about on a regular basis. MySQL, PostgreSQL, any ODBC source, Microsoft SQL Server, and their own proprietary server aptly named Valentina are all supported.

For security you can access all of these databases over an SSH tunnel. This is great when you are on a public internet connection and need to secure your traffic to the database server.

I don’t see cubeSQL on the list. I understand why because they are competing however to fully complete this tool I would like to see it progress even further. This is especially true in cubeSQL’s case as they do not have a tool even remotely similar to this.

Database specific features like PostgreSQL large objects are generally supported. Server Admin tools for managing users, connections, etc. tends to cater to the database server and not at all generic.

Navicat

I have never purchased Navicat as I have always found the pricing to be extreme. I had never considered purchasing a tool like this because I am generally happy with the native tools provided for that particular database. Valentina has changed my mind however and I am so pleased with it that I am not even considering Navicat at this time. Should I?

Valentina?

Apparently the Valentina database is a columnar database that due to its nature has exceptional performance. I have no first hand knowledge of this because I have never found a circumstance where I would choose it over another database server. However I have been trying very hard to have an opportunity to try Valentina as a database and not just their Studio product.

When I did finally get a project well suited for Valentina Server they announce they are offering SQLite as a server in addition to Valentina. More importantly the connection counts for SQLite are higher than for Valentina at the same price point. 

This clearly feels like to me that they are saying SQLite is an inferior technology and thus costs less. However no distinction or evidence of this is demonstrated anywhere in the IDE or documentation. In fact it makes no mention at all anywhere why you might choose one or the other. I am left feeling like perhaps the Studio product has become the primary focus and the database server development is winding down.

Documentation

It apparently has many native access drivers and object relational support. For instance in Xojo I could manipulate a Valentina database instance using pure objects instead of writing SQL queries. However this is not explained well. There are several code examples and projects but I did not take the time to download and try the projects. The documentation was so sparse in this area that I did not feel optimistic the projects would be worthwhile.

The documentation also varies quite a bit between runtime platforms. The languages seem to all support the same general level of functionality but its not made obvious how a single objective could be completed in any one language, or side by side. They could learn from Microsoft in this department in how they handle multiple .NET languages.

The formatting of the documentation and the website is challenging and I find this a weakness in their product overall. For something as important as a database it does not make me feel confident in my ability to resolve issues should they arise.

User testimonials

Speaking of confidence however there are a growing number of customers of mine who use Valentina. They are an exceptionally loud bunch who adore Valentina. cubeSQL customers generally want the convenience of SQLite with more benefits and less hassles. MySQL is the default option for many and PostgreSQL is needed in some cases but not as often as I would have expected. 

However none of those customers care about what version they are on and pure performance more than the Valentina customers. Their pure love of this product continues to encourage me to try the Valentina Server out for myself one day. I’ve never met a customer who switched away from Valentina Server and I’ve even had one leave because I couldn’t keep up with the updates fast enough.

Updates

This is a real area of concern for me. Databases need to be counted on at the center of your business. I understand the desire to pump out releases with new features to customers as soon as possible but Valentina’s pace is absolutely amazing and discomforting.

I am convinced that every time someone on the team checks something in they deploy it live. Version numbers don’t seem to be very meaningful as entirely new features and paradigms will appear with little fanfare or mention. “Oh by the way we added full SQLite server capabilities.” You are left scratching your head wondering if these people have hobbies.

However as wonderful as it is to see such rapid development and enthusiasm its almost unbearable. Customers expect the latest release very soon after the bits are uploaded and we can hardly keep up. At this rate of updates I question why the server doesn’t just update itself. I am not saying is remotely a good idea but to illustrate how often it happens. 

Diagramming

This is precious to me. I know other tools do it too and if I want I can whip out some UML for old times sake. However I love designing my databases visually and then applying those changes. Valentina is kind enough to show you the SQL it will use to produce the results for you. You can copy those and paste them right into your source code repository as a migration step. 

Xojo projects and Xojo app packaging itself is not very database migration friendly. It would be a very manual step so keeping track of the structural changes you made to your database is very nice. You could achieve the same results by building your database by hand using SQL statements but this would be cumbersome compared to visually.

I love it.

SQL diff

Right there with diagramming as an essential feature once you start using it.

Database backup & restore

Valentina has excellent mechanisms to backup and restore a database. You are able to create ‘dumps’ of your database in several formats like Excel, HTML, JSON, SQL, XML, etc. You can script out all the data or just the structure. If the database is large it will take awhile and at times the UI will lock up but be patient. It works great.

Restoring a database is just as easy by loading a dump you created previously. Keep in mind all these capabilities work on all the databases they support and not just the Valentina product.

Query editor

The query editor is great although it lacks some column assistance as far as I can tell. Visual Studio and MSSQL users are spoiled with tools to help them write their queries. 

Selecting a table to open the data with always opens related tables by default. This is confusing and annoying. 

Conclusion

I think they do a poor job documenting and explaining whether Valentina the database product is good for my next project. I can only assume that the creators of a tool that does such a fantastic job managing multiple database servers would handle theirs the best. If thats true the Valentina database is a fantastic product. I look forward to working with it on a future project and letting you know in a future post.

If you are like me and work on Mac and Windows interchangeably all day its excellent to have the same workspaces in front of you. I am more productive with Valentina and will most certainly purchase a license to Studio Pro. I was sad the day my Valentina Studio offered to update itself followed by a notice that my Pro license had expired.

The upside is the free version is… well free and besides a few advanced features is fully functional. You should be trying it right now - download from http://www.valentina-db.com. Purchasing the Pro edition can be done on their website, the Mac App Store or get it from the most excellent Omega Bundle offer for Xojo developers. For $399 you get one of the finest collections of Xojo add-ons in the market today. http://www.omegabundle.net 

In fact if you buy the Omega Bundle you only have one more essential item to get as a new Xojo developer: The MBS Complete plugin set from Monkey Bread Software. You’ll thank me later.

I don’t benefit at all from sales of Omega Bundle or Valentina so please share your feedback good or bad on the comments below. What do you think of Valentina the database and Valentina Studio the database management companion? Will you use either of them in the future? Why and why not?