public function beginTransaction() : bool
    {
        if ($this->isConnected() === false) {
            $this->connect();
        }
        ++$this->transactionLevel;
        if ($this->transactionLevel == 1) {
            return $this->providerDatabase->beginTransaction($this->GetMasterLink());
        }

        return $this->providerDatabase->savePoint($this->GetMasterLink(), 'LEVEL' . ($this->transactionLevel - 1));
    }