diff --git a/core/DataAccess/ArchiveTableCreator.php b/core/DataAccess/ArchiveTableCreator.php
index 8e135f996f023ddf02900d873c6035cb58c91db8..aa7fdf5c4e24882e598a97a82926225ab47210cd 100644
--- a/core/DataAccess/ArchiveTableCreator.php
+++ b/core/DataAccess/ArchiveTableCreator.php
@@ -12,9 +12,10 @@
 namespace Piwik\DataAccess;
 
 use Exception;
-use Piwik\Piwik;
 use Piwik\Common;
 use Piwik\Date;
+use Piwik\DbHelper;
+use Piwik\Piwik;
 use Zend_Registry;
 
 class ArchiveTableCreator
@@ -52,7 +53,7 @@ class ArchiveTableCreator
 
         if (!in_array($tableName, self::$tablesAlreadyInstalled)) {
             $db = \Zend_Registry::get('db');
-            $sql = Piwik::getTableCreateSql($tableNamePrefix);
+            $sql = DbHelper::getTableCreateSql($tableNamePrefix);
 
             // replace table name template by real name
             $tableNamePrefix = Common::prefixTable($tableNamePrefix);
diff --git a/core/Db/BatchInsert.php b/core/Db/BatchInsert.php
index d0b3624893102f360d755128180f4073920dacf8..78a05546c9fe0102ad0a2630ddceb86ab9fa6f69 100644
--- a/core/Db/BatchInsert.php
+++ b/core/Db/BatchInsert.php
@@ -15,6 +15,7 @@ use Piwik\AssetManager;
 use Piwik\Common;
 use Piwik\Config;
 use Piwik\Db;
+use Piwik\DbHelper;
 use Piwik\Piwik;
 use Piwik\SettingsServer;
 use Zend_Registry;
@@ -75,7 +76,7 @@ class BatchInsert
                 );
 
                 // hack for charset mismatch
-                if (!Piwik::isDatabaseConnectionUTF8() && !isset(Config::getInstance()->database['charset'])) {
+                if (!DbHelper::isDatabaseConnectionUTF8() && !isset(Config::getInstance()->database['charset'])) {
                     $fileSpec['charset'] = 'latin1';
                 }
 
diff --git a/core/Db/Schema/Myisam.php b/core/Db/Schema/Myisam.php
index 9502a74f281fb69cf8ce56dde0486f2e54c2726a..5f0a81c92fa2c19dfbcd368c90143d11bdd3b567 100644
--- a/core/Db/Schema/Myisam.php
+++ b/core/Db/Schema/Myisam.php
@@ -11,15 +11,14 @@
 namespace Piwik\Db\Schema;
 
 use Exception;
-use Piwik\Config;
-use Piwik\Db\SchemaInterface;
-use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Config;
 use Piwik\Date;
+use Piwik\Db\SchemaInterface;
 use Piwik\Db;
+use Piwik\DbHelper;
 use Zend_Registry;
 
-
 /**
  * MySQL schema
  *
@@ -414,7 +413,7 @@ class Myisam implements SchemaInterface
      */
     public function getTableCreateSql($tableName)
     {
-        $tables = Piwik::getTablesCreateSql();
+        $tables = DbHelper::getTablesCreateSql();
 
         if (!isset($tables[$tableName])) {
             throw new Exception("The table '$tableName' SQL creation code couldn't be found.");
diff --git a/core/FrontController.php b/core/FrontController.php
index 0d30d38098b264fc33268f43651b691e1ed640c3..7a3660ee342489190b747e74fadb1b556b78ac2f 100644
--- a/core/FrontController.php
+++ b/core/FrontController.php
@@ -260,7 +260,7 @@ class FrontController
             }
 
             try {
-                Piwik::createDatabaseObject();
+                DbHelper::createDatabaseObject();
             } catch (Exception $e) {
                 if (self::shouldRethrowException()) {
                     throw $e;
diff --git a/core/Piwik.php b/core/Piwik.php
index 08bc16d02bc1c9459955247c9e6c0b3d68e07a3f..5473d6faa9941c83981e70e1a8c18a17150edda7 100644
--- a/core/Piwik.php
+++ b/core/Piwik.php
@@ -553,70 +553,6 @@ class Piwik
         Url::redirectToUrl($newUrl);
     }
 
-    /*
-     * Global database object
-     */
-
-    /**
-     * Create database object and connect to database
-     * @param array|null $dbInfos
-     */
-    static public function createDatabaseObject($dbInfos = null)
-    {
-        $config = Config::getInstance();
-
-        if (is_null($dbInfos)) {
-            $dbInfos = $config->database;
-        }
-
-        Piwik_PostEvent('Reporting.getDatabaseConfig', array(&$dbInfos));
-
-        $dbInfos['profiler'] = $config->Debug['enable_sql_profiler'];
-
-        $db = null;
-        Piwik_PostEvent('Reporting.createDatabase', array(&$db));
-        if (is_null($db)) {
-            $adapter = $dbInfos['adapter'];
-            $db = @Adapter::factory($adapter, $dbInfos);
-        }
-        \Zend_Registry::set('db', $db);
-    }
-
-    /**
-     * Disconnect from database
-     */
-    static public function disconnectDatabase()
-    {
-        \Zend_Registry::get('db')->closeConnection();
-    }
-
-    /**
-     * Checks the database server version against the required minimum
-     * version.
-     *
-     * @see config/global.ini.php
-     * @since 0.4.4
-     * @throws Exception if server version is less than the required version
-     */
-    static public function checkDatabaseVersion()
-    {
-        \Zend_Registry::get('db')->checkServerVersion();
-    }
-
-    /**
-     * Check database connection character set is utf8.
-     *
-     * @return bool  True if it is (or doesn't matter); false otherwise
-     */
-    static public function isDatabaseConnectionUTF8()
-    {
-        return \Zend_Registry::get('db')->isConnectionUTF8();
-    }
-
-    /*
-     * Global log object
-     */
-
     /*
      * User input validation
      */
@@ -662,63 +598,6 @@ class Piwik
      * Database and table definition methods
      */
 
-    /**
-     * Is the schema available?
-     *
-     * @return bool  True if schema is available; false otherwise
-     */
-    static public function isAvailable()
-    {
-        return Schema::getInstance()->isAvailable();
-    }
-
-    /**
-     * Get the SQL to create a specific Piwik table
-     *
-     * @param string $tableName
-     * @return string  SQL
-     */
-    static public function getTableCreateSql($tableName)
-    {
-        return Schema::getInstance()->getTableCreateSql($tableName);
-    }
-
-    /**
-     * Get the SQL to create Piwik tables
-     *
-     * @return array  array of strings containing SQL
-     */
-    static public function getTablesCreateSql()
-    {
-        return Schema::getInstance()->getTablesCreateSql();
-    }
-
-    /**
-     * Create database
-     *
-     * @param string|null $dbName
-     */
-    static public function createDatabase($dbName = null)
-    {
-        Schema::getInstance()->createDatabase($dbName);
-    }
-
-    /**
-     * Drop database
-     */
-    static public function dropDatabase()
-    {
-        Schema::getInstance()->dropDatabase();
-    }
-
-    /**
-     * Create all tables
-     */
-    static public function createTables()
-    {
-        Schema::getInstance()->createTables();
-    }
-
     /**
      * Creates an entry in the User table for the "anonymous" user.
      */
diff --git a/core/Tracker.php b/core/Tracker.php
index 1805ac5bd07b789d39c47ec30d5d99a4a3a2fb0a..ac3a14e14f79b412a265a22453b9725eed9691c0 100644
--- a/core/Tracker.php
+++ b/core/Tracker.php
@@ -370,7 +370,7 @@ class Tracker
             try {
                 $db = \Zend_Registry::get('db');
             } catch (Exception $e) {
-                Piwik::createDatabaseObject();
+                DbHelper::createDatabaseObject();
             }
 
             $pluginsManager = PluginsManager::getInstance();
diff --git a/index.php b/index.php
index 4347ddd41dc959e207e988759278880fe6c40de0..75b5e72917e6e3d44cbcba5767ec5883bbde225d 100644
--- a/index.php
+++ b/index.php
@@ -50,3 +50,4 @@ if (!defined('PIWIK_ENABLE_DISPATCH') || PIWIK_ENABLE_DISPATCH) {
     $controller->init();
     $controller->dispatch();
 }
+\Piwik\DbHelper::dropDatabase();
\ No newline at end of file
diff --git a/plugins/Installation/Controller.php b/plugins/Installation/Controller.php
index 23542bce63bc6f38e2490219dad54908e6aa5bbc..981fa54bc7e16716da45a1134619d00405f39d9e 100644
--- a/plugins/Installation/Controller.php
+++ b/plugins/Installation/Controller.php
@@ -18,6 +18,7 @@ use Piwik\Config;
 use Piwik\DataAccess\ArchiveTableCreator;
 use Piwik\Db\Adapter;
 use Piwik\Db;
+use Piwik\DbHelper;
 use Piwik\Filechecks;
 use Piwik\Filesystem;
 use Piwik\Http;
@@ -185,7 +186,7 @@ class Controller extends \Piwik\Controller\Admin
                 $dbInfos = $form->createDatabaseObject();
                 $this->session->databaseCreated = true;
 
-                Piwik::checkDatabaseVersion();
+                DbHelper::checkDatabaseVersion();
                 $this->session->databaseVersionOk = true;
 
                 $this->session->db_infos = $dbInfos;
@@ -242,7 +243,7 @@ class Controller extends \Piwik\Controller\Admin
             $error = true;
         }
 
-        if (!Piwik::isDatabaseConnectionUTF8()) {
+    if (!DbHelper::isDatabaseConnectionUTF8()) {
             $dbInfos = $this->session->db_infos;
             $dbInfos['charset'] = 'utf8';
             $this->session->db_infos = $dbInfos;
@@ -311,7 +312,7 @@ class Controller extends \Piwik\Controller\Admin
                 $this->session->skipThisStep = $tmp;
             }
         } else {
-            Piwik::createTables();
+            DbHelper::createTables();
             Piwik::createAnonymousUser();
 
             $updater = new Updater();
@@ -543,7 +544,7 @@ class Controller extends \Piwik\Controller\Admin
     {
         $dbInfos = $this->session->db_infos;
         Config::getInstance()->database = $dbInfos;
-        Piwik::createDatabaseObject($dbInfos);
+        DbHelper::createDatabaseObject($dbInfos);
     }
 
     /**
diff --git a/plugins/Installation/FormDatabaseSetup.php b/plugins/Installation/FormDatabaseSetup.php
index ce0d58f11a412844764ac13e3f902900b89bd0ff..b4b8550f03fc51f17534df0e85aa550022d742a1 100644
--- a/plugins/Installation/FormDatabaseSetup.php
+++ b/plugins/Installation/FormDatabaseSetup.php
@@ -15,8 +15,8 @@ use HTML_QuickForm2_DataSource_Array;
 use HTML_QuickForm2_Factory;
 use HTML_QuickForm2_Rule;
 use Piwik\Db\Adapter;
+use Piwik\DbHelper;
 use Piwik\Filesystem;
-use Piwik\Piwik;
 use Piwik\QuickForm2;
 use Zend_Db_Adapter_Exception;
 
@@ -120,7 +120,7 @@ class FormDatabaseSetup extends QuickForm2
         }
 
         try {
-            @Piwik::createDatabaseObject($dbInfos);
+            @DbHelper::createDatabaseObject($dbInfos);
         } catch (Zend_Db_Adapter_Exception $e) {
             $db = Adapter::factory($adapter, $dbInfos, $connect = false);
 
@@ -128,11 +128,11 @@ class FormDatabaseSetup extends QuickForm2
             if ($db->isErrNo($e, '1049')) {
                 $dbInfosConnectOnly = $dbInfos;
                 $dbInfosConnectOnly['dbname'] = null;
-                @Piwik::createDatabaseObject($dbInfosConnectOnly);
-                @Piwik::createDatabase($dbInfos['dbname']);
+                @DbHelper::createDatabaseObject($dbInfosConnectOnly);
+                @DbHelper::createDatabase($dbInfos['dbname']);
 
                 // select the newly created database
-                @Piwik::createDatabaseObject($dbInfos);
+                @DbHelper::createDatabaseObject($dbInfos);
             } else {
                 throw $e;
             }
diff --git a/plugins/SecurityInfo b/plugins/SecurityInfo
deleted file mode 160000
index 7d4f2ea0d63886eda79087ef5884be12bf63b318..0000000000000000000000000000000000000000
--- a/plugins/SecurityInfo
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7d4f2ea0d63886eda79087ef5884be12bf63b318
diff --git a/tests/PHPUnit/DatabaseTestCase.php b/tests/PHPUnit/DatabaseTestCase.php
index 39395c375dc575387c9748d9eccc3d00a87cc82a..367ad570a165e8207ecc115eaf38d0424927821a 100644
--- a/tests/PHPUnit/DatabaseTestCase.php
+++ b/tests/PHPUnit/DatabaseTestCase.php
@@ -8,7 +8,7 @@
 use Piwik\Config;
 use Piwik\DataAccess\ArchiveTableCreator;
 use Piwik\DataTable\Manager;
-use Piwik\Piwik;
+use Piwik\DbHelper;
 use Piwik\Option;
 use Piwik\Plugins\PDFReports\API;
 use Piwik\Site;
@@ -38,14 +38,14 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase
             $dbName = $dbConfig['dbname'];
             $dbConfig['dbname'] = null;
 
-            Piwik::createDatabaseObject($dbConfig);
+            DbHelper::createDatabaseObject($dbConfig);
 
-            Piwik::dropDatabase();
-            Piwik::createDatabase($dbName);
-            Piwik::disconnectDatabase();
+            DbHelper::dropDatabase();
+            DbHelper::createDatabase($dbName);
+            DbHelper::disconnectDatabase();
 
-            Piwik::createDatabaseObject();
-            Piwik::createTables();
+            DbHelper::createDatabaseObject();
+            DbHelper::createTables();
             \Piwik\Log::make();
 
 //            \Piwik\PluginsManager::getInstance()->loadPlugins(array());
@@ -69,7 +69,7 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase
     {
         parent::tearDown();
         IntegrationTestCase::unloadAllPlugins();
-        Piwik::dropDatabase();
+        DbHelper::dropDatabase();
         Manager::getInstance()->deleteAll();
         Option::getInstance()->clearCache();
         API::$cache = array();
diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php
index 0129e1c3e42552a96715689126892e4ce94aeecd..67fac0c6f8dea46de61fc9f640f8fc87c380b4b3 100755
--- a/tests/PHPUnit/IntegrationTestCase.php
+++ b/tests/PHPUnit/IntegrationTestCase.php
@@ -15,6 +15,7 @@ use Piwik\Config;
 use Piwik\DataAccess\ArchiveTableCreator;
 use Piwik\DataTable\Manager;
 use Piwik\Db;
+use Piwik\DbHelper;
 use Piwik\Option;
 use Piwik\Piwik;
 use Piwik\Plugins\LanguagesManager\API;
@@ -68,7 +69,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         $oldDbName = $dbConfig['dbname'];
         $dbConfig['dbname'] = null;
 
-        Piwik::createDatabaseObject($dbConfig);
+        DbHelper::createDatabaseObject($dbConfig);
 
         $dbConfig['dbname'] = $oldDbName;
     }
@@ -157,16 +158,16 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
 
             self::connectWithoutDatabase();
             if ($createEmptyDatabase) {
-                Piwik::dropDatabase();
+                DbHelper::dropDatabase();
             }
-            Piwik::createDatabase($dbName);
-            Piwik::disconnectDatabase();
+            DbHelper::createDatabase($dbName);
+            DbHelper::disconnectDatabase();
 
             // reconnect once we're sure the database exists
             Config::getInstance()->database['dbname'] = $dbName;
-            Piwik::createDatabaseObject();
+            DbHelper::createDatabaseObject();
 
-            Piwik::createTables();
+            DbHelper::createTables();
             \Piwik\Log::make();
 
             \Piwik\PluginsManager::getInstance()->loadPlugins(array());
@@ -230,7 +231,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         }
         \Piwik\PluginsManager::getInstance()->unloadPlugins();*/
         if ($dropDatabase) {
-            Piwik::dropDatabase();
+            DbHelper::dropDatabase();
         }
         Manager::getInstance()->deleteAll();
         Option::getInstance()->clearCache();
@@ -1103,7 +1104,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
             if (strpos($table, 'archive_') !== false && !in_array($table, $existingTables)) {
                 $tableType = strpos($table, 'archive_numeric') !== false ? 'archive_numeric' : 'archive_blob';
 
-                $createSql = Piwik::getTableCreateSql($tableType);
+                $createSql = DbHelper::getTableCreateSql($tableType);
                 $createSql = str_replace(Common::prefixTable($tableType), $table, $createSql);
                 Db::query($createSql);
             }
diff --git a/tests/PHPUnit/UITest.php b/tests/PHPUnit/UITest.php
index 4bc4aba9a901c989faa0a6d3e0d9fae1bb5856b2..a1aa74cdd8218a00e9a11327f27a761bbd276b81 100644
--- a/tests/PHPUnit/UITest.php
+++ b/tests/PHPUnit/UITest.php
@@ -5,10 +5,10 @@
  * @link http://piwik.org
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  */
-use Piwik\Date;
-use Piwik\Piwik;
 use Piwik\Access;
 use Piwik\AssetManager;
+use Piwik\Date;
+use Piwik\DbHelper;
 use Piwik\Plugins\VisitsSummary\API;
 
 abstract class UITest extends IntegrationTestCase
@@ -79,7 +79,7 @@ abstract class UITest extends IntegrationTestCase
         self::removeRecursiveLinks();
 
         if (!Zend_Registry::get('db')) {
-            Piwik::createDatabaseObject();
+            DbHelper::createDatabaseObject();
         }
         
         parent::tearDownAfterClass();
@@ -90,7 +90,7 @@ abstract class UITest extends IntegrationTestCase
         parent::setUp();
         
         if (!Zend_Registry::get('db')) {
-            Piwik::createDatabaseObject();
+            DbHelper::createDatabaseObject();
         }
     }
     
diff --git a/tests/PHPUnit/bootstrap.php b/tests/PHPUnit/bootstrap.php
index 11749f00ce4fb42968a4b69e9b070c9d2fe69caa..9ad5a620f374d4780cb233f8d44904ba3a123858 100644
--- a/tests/PHPUnit/bootstrap.php
+++ b/tests/PHPUnit/bootstrap.php
@@ -6,6 +6,8 @@
 
 use Piwik\Http;
 
+define('PIWIK_TEST_MODE', true);
+
 if (!defined("PIWIK_PATH_TEST_TO_ROOT")) {
     define('PIWIK_PATH_TEST_TO_ROOT', realpath(dirname(__FILE__) . '/../..'));
 }