Brain Annex uses MySQL.
All database interaction is channeled through the module dbasePDO
. That module provides a convenient interface to the PDO class used by PHP to connect to a database.
Most Brain Annex modules - and all the Content Plugins - do not interact directly with dbasePDO
. Rather, they interact with a a higher-level abstraction, a module named dbaseRestricted
, which enforces a table namespace for different users & plugins, simplifies the database operations, and prevents plugins from having unfettered access to the database.
In future versions, Brain Annex is expected to provide support for synchronization of multiple databases: probably a master/slave setup, providing a backup version of the site on the slave installation.
More recently, as of version 3.1, Brain Annex implements a simple (Semantic RDF-style) Triplestore database, for now built on top of MySQL. Gradually, more of the database operations are being migrated from a more traditional "relational database" style to this new database. Note that some parts of Brain Annex, notable the Categories, have been based on a Graph Database (again built on top of MySQL) from the very beginning.
Brain Annex should equally work with MariaDB, but we haven't yet tested it.
Since the underlying PDO interface is a Database Access Abstraction Layer that offers a unified interface to access many different databases, it ought to be possible to adapt Brain Annex to utilize a different database, such as Microsoft SQL Server, with few modifications entirely, or almost entirely, contained in the dbasePDO
module.
To bear in mind is that different SQL flavors exist, and those differences might necessitate additional tweaks in various Brain Annex modules that utilize SQL commands; however, that's expected to be a modest matter, if an issue at all. Furthermore, most SQL is assembled within the module dbaseRestricted
; so, the bulk of the needed changes, if any, would probably occur there.