【しのにむ】
シノニム とは?
最終更新:
💡 DBのテーブルなどを別の名前で参照する仕組み
データベースのテーブルなどに別名を付ける機能。Oracleの作成例、ビューとの違い、PUBLICでも権限が必要な点、SQL Serverとの仕様の違いを解説します。
📌 このページのポイント
シノニムは、テーブルをコピーするの?
コピーではなく別名だよ。Oracleの公式例なら、CREATE SYNONYM offices FOR hr.locations; と作る。officesという名前から元の対象を参照する。利用には、その操作に必要な権限も要る。
ビューとは何が違う?
PUBLICなら、誰でもデータを読める?
Oracleでは、PUBLIC SYNONYMで名前を共有できても、対象を利用する権限の代わりにはならない。名前が見えることと、SELECTなどの操作が許されることは別なんだ。
作れたら、参照先も正しいと確認できる?
Oracleでは対象が存在しなくても、対象への権限がなくても、シノニムを作れる場合がある。作成成功だけで利用成功は保証されない。参照先、必要な権限、実際の操作を確認する。
移行先へ向ければ、SQLはずっと動く?
もっと詳しく知りたい人へ
Oracle以外も、同じ仕様?
SQL Serverにもシノニムがありますが、対象や権限の扱いなどを一律には考えられません。例えばSQL Serverではシノニムを変更するALTER SYNONYMがなく、変更時は削除と再作成を行います。利用製品の公式仕様で確認します。
シノニム経由の更新は、元データに反映される?
対応する対象に対して、権限と操作の条件を満たせば反映されます。シノニム用の別データがあるわけではありません。対象が更新できないビューであるなど、参照先の制限まで消えるわけではないので、本番データを試しに更新して確かめるのは避けます。
まとめ:ざっくりこれだけ覚えればOK!
「シノニム」って出てきたら「DBのテーブルなどを別の名前で参照する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Synonym」 = 同義語・別名
💬 同じ対象を別の名前で呼ぶ考え方です。このページでは、データベースのオブジェクトへ別名を付ける機能を扱います。