code: function Database(configuration) {
    Database.super_.call(this, configuration);
  
    Object.defineProperties(this, {
  
      /**
       * Database host.
       *
       * @property host
       * @type String
       * @final
       */
      host: {value: configuration.host},
  
      /**
       * Database port.
       *
       * @property port
       * @type Number
       * @final
       */
      port: {value: configuration.port},
  
      /**
       * Database name.
       *
       * @property name
       * @type String
       * @final
       */
      name: {value: configuration.database},
  
      /**
       * Database user name.
       *
       * @property username
       * @type String
       * @final
       */
      username: {value: configuration.username},
  
      /**
       * Database user password.
       *
       * @property password
       * @type String
       * @final
       */
      password: {value: configuration.password}
  
    });
  }
docs: Defines base database for all databases.
  
  This should not be used directly, use one of its subclasses instead.
  
  @class Database
  @extends Storage
  @constructor
  @param {Object} configuration A database configuration object depending on the database type
  @param {String} configuration.type The database type
  @param {String} configuration.host Database server host
  @param {Number} configuration.port Database server port
  @param {String} configuration.database The name of the database
  @param {String} configuration.username The name of the database user
  @param {String} configuration.password The password of the database user