Return a connection to a Relational DataBase Management System (RDBMS)
        the most appropriate for the service requesting this connection.

        @param settings: a dictionary of connection properties::
                   {
                     None: {
                       'rdbms_hostname': "...",
                       'rdbms_port': ...,
                       'rdbms_database_name': "...",
                       'rdbms_account_username': '...'
                       'rdbms_account_password': '...'
                     },
                     'tag': {
                       'rdbms_hostname': "...",
                       'rdbms_port': ...,
                       'rdbms_database_name': "...",
                       'rdbms_account_username': '...'
                       'rdbms_account_password': '...'
                     },
                     ...
                   }
               The key ``None`` is the default tag.

        @param tag: a tag that specifies which particular connection
           properties has to be used.

        @param logger_name: name of the logger for debug information.

        @param auto_commit: indicate whether the transaction needs to be
           committed at the end of the session.

        @return: a ``RdbmsConnection`` instance to be used supporting the
             Python clause ``with ...:``.

        @raise DefaultConnectionPropertiesSettingException: if the specified
               tag is not defined in the dictionary of connection properties,
               and when no default connection properties is defined either
               (tag ``None``).

def acquire_connection(settings, tag=None, logger_name=None, auto_commit=False):
        """
        Return a connection to a Relational DataBase Management System (RDBMS)
        the most appropriate for the service requesting this connection.

        @param settings: a dictionary of connection properties::
                   {
                     None: {
                       'rdbms_hostname': "...",
                       'rdbms_port': ...,
                       'rdbms_database_name': "...",
                       'rdbms_account_username': '...'
                       'rdbms_account_password': '...'
                     },
                     'tag': {
                       'rdbms_hostname': "...",
                       'rdbms_port': ...,
                       'rdbms_database_name': "...",
                       'rdbms_account_username': '...'
                       'rdbms_account_password': '...'
                     },
                     ...
                   }
               The key ``None`` is the default tag.

        @param tag: a tag that specifies which particular connection
           properties has to be used.

        @param logger_name: name of the logger for debug information.

        @param auto_commit: indicate whether the transaction needs to be
           committed at the end of the session.

        @return: a ``RdbmsConnection`` instance to be used supporting the
             Python clause ``with ...:``.

        @raise DefaultConnectionPropertiesSettingException: if the specified
               tag is not defined in the dictionary of connection properties,
               and when no default connection properties is defined either
               (tag ``None``).
        """
        try:
            connection_properties = settings.get(tag, settings[None])
        except KeyError:
            raise RdbmsConnection.DefaultConnectionPropertiesSettingException()

        return RdbmsConnection(
            connection_properties['rdbms_hostname'],
            connection_properties['rdbms_port'],
            connection_properties['rdbms_database_name'],
            connection_properties['rdbms_account_username'],
            connection_properties['rdbms_account_password'],
            logger_name=logger_name,
            auto_commit=auto_commit)