

# Babelfish for Aurora PostgreSQL と SQL Server の違い
<a name="babelfish-compatibility"></a>

Babelfish は進化を続ける Aurora PostgreSQL の機能であり、Aurora PostgreSQL 13.4 での最初の提供以降、リリースごとに新しい機能が追加されています。TDS ポートを使用して、T-SQL 言語経由で、Postgre SQL の上に T-SQL セマンティクスを提供するように設計されています。[バージョンごとに Babelfish でサポートされている機能](babelfish-compatibility.supported-functionality-table.md) テーブルに示すように、Babelfish のそれぞれの新しいバージョンでは、T-SQL の機能や動作にさらに適した機能と関数が追加されています。Babelfish を使用する際に最良の結果を得るには、SQL Server でサポートされている T-SQL と最新バージョンの Babelfish の間に現存する違いを理解することをお勧めします。詳細については[Babelfish での T-SQL の違い](babelfish-compatibility.tsql.limitations.md)を参照してください。

Babelfish と SQL Server でサポートされている T-SQL の違いに加えて、Aurora PostgreSQL DB クラスターのコンテキストでの Babelfish と PostgreSQL の間の相互運用性の問題も考慮する必要がある可能性があります。前述のとおり、Babelfish は、TDS ポートを使用して、T-SQL 言語経由で、Postgre SQL の上で T-SQL セマンティクスをサポートしています。同時に、PostgreSQL SQL ステートメントを使用して標準の PostgreSQL ポートから Babelfish データベースにアクセスすることもできます。PostgreSQL と Babelfish の両方の機能を本番デプロイで使用することを検討している場合、スキーマ名、識別子、アクセス権限、トランザクションセマンティクス、複数の結果セット、デフォルトの照合などの間の潜在的な相互運用性の問題を認識する必要があります。簡単に言うと、PostgreSQL ステートメントまたは PostgreSQL アクセスが Babelfish のコンテキストで発生すると、PostgreSQL と Babelfish の間で干渉が発生する可能性があり、Babelfish の新しいバージョンがリリースされたときに構文、セマンティクス、および互換性に影響を与える可能性があります。すべての考慮事項に関する詳細な情報とガイダンスについては、Babelfish for PostgreSQL のドキュメントにある「[Guidance on Babelfish Interoperability](https://babelfishpg.org/docs/usage/interoperability/)」(Babelfish の相互運用性に関するガイダンス) を参照してください。

**注記**  
PostgreSQL のネイティブ機能と Babelfish の機能の両方を同じアプリケーションコンテキストで使用する前に、Babelfish for PostgreSQL のドキュメントの「[Guidance on Babelfish Interoperability](https://babelfishpg.org/docs/usage/interoperability/)」(Babelfish の相互運用性に関するガイダンス) で説明されている問題を検討することを強くお勧めします。これらの相互運用性の問題 (Aurora PostgreSQL と Babelfish) は、Babelfish と同じアプリケーションコンテキストで PostgreSQL データベースインスタンスを使用する予定の場合にのみ関係します。

**Topics**
+ [Babelfish ダンプと復元](#babelfish-compatibility.dumprestore)
+ [Babelfish での T-SQL の違い](babelfish-compatibility.tsql.limitations.md)
+ [Babelfish でのトランザクション分離レベル](babelfish-transaction.md)

## Babelfish ダンプと復元
<a name="babelfish-compatibility.dumprestore"></a>

バージョン 4.0.0 および 3.4.0 以降、Babelfish ユーザーはダンプユーティリティと復元ユーティリティを使用してデータベースをバックアップおよび復元できるようになりました。詳細については、「[Babelfish ダンプと復元](https://github.com/babelfish-for-postgresql/babelfish-for-postgresql/wiki/Babelfish-Dump-and-Restore)」を参照してください。この機能は PostgreSQL ダンプユーティリティと復元ユーティリティ上に構築されています。詳細については、「[pg\_dump](https://www.postgresql.org/docs/current/app-pgdump.html)」と「[pg\_restore](https://www.postgresql.org/docs/current/app-pgrestore.html)」を参照してください。Babelfish でこの機能を効果的に使用するには、Babelfish 用に特別にカスタマイズされた PostgreSQL ベースのツールを使用する必要があります。Babelfish のバックアップおよび復元機能は、SQL Server のバックアップおよび復元機能とは大きく異なります。これらの違いの詳細については、「[ダンプと復元の機能の違い: Babelfish と SQL Server](https://github.com/babelfish-for-postgresql/babelfish-for-postgresql/wiki/Babelfish-Dump-and-Restore#differences)」を参照してください。Babelfish for Aurora PostgreSQL には、Amazon Aurora PostgreSQL DB クラスターをバックアップおよび復元するための追加機能が用意されています。詳細については、「[Amazon Aurora DB クラスターのバックアップと復元](BackupRestoreAurora.md)」を参照してください。