Hack MySQL

Taxonomy of Database Tools

without comments

Each type of tool has its own page

Taxonomy of Database Tools


There are many tools in the MySQL ecosystem, but there is no taxonomy of database tools.  The following is a first attempt to classify and organize database tools.  A taxonomy of database tools serves four purposes.  First, types conveys meaningful information about a tool without having to know the specifics of the tool.  For example, the type of insect called “butterfly” conveys “winged insect that began life as a caterpillar”, etc.  Similarly, the detector tool type conveys “looks for and reports when a target condition is found”.  Second, types establish criteria by which a tool can be judged.  If a tool is supposed to be an analyzer tool, then all of its functions should conform to the traits that define the analyzer type (i.e. a “duck” that doesn’t quack isn’t a very good duck).  Third, types provide a basis for comparing tools meaningfully (i.e. comparing apples to apples).  Fourth, a taxonomy of database tools provides a high-level view of the MySQL tools ecosystem (i.e one part of the ecosphere) which allows one to see the breadth and depth of its diversity; in other words: how well the MySQL tools ecosystem is thriving.  Since MySQL is a mature database server, it has many tools (as previously noted), but newer database servers like Drizzle have a noticeably smaller tools ecosystem.


A tool and each type have certain traits that defined them.  Types inherit the traits of their parents.  So a corrector tool is a type of advisor tool which is a type of detector tool.  The deeper the type in the hierarchy, the more complex the tool in terms of the work it must do to accomplish its goals.  For example, although analyzer tools can be complex in terms of the math or statistics they may employ, corrector tools are more complex in terms of the work needed to find, correctly isolate, and carefully correct a condition.


Like whales, dolphins, ostriches, penguins, tomatoes, etc., there are tools that defy a single type, or exhibit traits of multiple types.  XtraBackup Manager, for example, is fundamentally a broker tool, but it works seamlessly with Percona XtraBackup which is a backup tool.


Types are generic and “data” can mean table data, SQL queries, logs, accounts, etc.  oak-security-audit is an auditing tool, but its generic classification is as an advisor tool because it exhibits the traits of an advisor.  Whereas auditors exhibit the traits of advisors (or at least detectors), not all advisors, like pt-variable-advisor, exhibit auditor traits.  Perhaps auditor could be a sub-type of advisor, but since the distinguishing traits of an auditor are not apparent, the more generic advisor type is used.


This taxonomy of database tools is not the only way to organize and classify database tools.  At least one other possible taxonomy could be based on read-write: whether a tool primarily reads or writes data, then broken down according to the nature of the data.  For example, analyzer tools are read-only tools, but corrector tools are fundamentally write-based tools.  Other taxonomies, or modifications to this one, may better suite certain cases like tools that manage or run other tools.


Written by Daniel Nichter

May 14th, 2012 at 7:41 pm

Posted in