'A collection of tables stored in an SQLite or MySQL database.
If the database does not exist, creates it.
If the host, user or password is wrong, raises DatabaseConnectionError.'

def __init__(self, name, host='localhost', port=3306, username='root', password='', type=SQLITE, unicode=True, **kwargs):

    _import_db(type)
    self.type = type
    self.name = name
    self.host = host
    self.port = port
    self.username = kwargs.get('user', username)
    self.password = password
    self._connection = None
    self.connect(unicode)
    q = (((self.type == SQLITE) and "select    name    from    sqlite_master    where    type='table';") or 'show    tables;')
    self.tables = Database.Tables(self)
    for (name,) in self.execute(q):
        if (not name.startswith(('sqlite_',))):
            self.tables[name] = None
    self._query = None
    self.relations = []
