2

ORACLE11gのクライアント用の新しいシステムを計画しています。私は主にSQLServerの世界に数年いますが、最新のORACLEアップデートについてはあまり最新ではありません。

ORACLEがこの時点で追加したかどうか疑問に思っている特定の機能の1つは、SQLServerのに似たデータベースオブジェクトの論理的な「コンテナ」のようなものSCHEMAです。

Sql ServerのようなORACLEのスキーマを使用しようとすると、dev> test> liveからプッシュしようとすると、コード比較の障害になります。

パッケージは、テーブルをパッケージに入れることができないことを除いて、似たようなものです(したがって、実際には論理コードのグループ化に対してのみ機能します)。

私が知っている他の唯一のオプションは、オブジェクト名に「スキーマ」プレフィックスを付ける必要があるという古風な慣習です。つまり、 RPT_REPORTSRPT_PARAMETERSRPT_LOGSRPT_USERSRPT_RUN_REPORT()で、プレフィックスRPT_はこれらがすべてのオブジェクトを処理することを示します。私たちのレポートエンジンは言います。このようなシステムを作成することは、8.3ファイル命名の時代を決して離れなかったように感じます。

この時点で、関連するオブジェクトをORACLEで論理的にグループ化するためのよりクリーンで直接的な方法はありますか?

4

1 に答える 1

6

データベースオブジェクト用のOracleの論理コンテナはスキーマです。どれだけ「よりクリーン」で「より直接的」にできるかわかりません!ここでパラダイムシフトを行う必要があります。SQL Serverの用語で考えようとしないでください。また、Oracle上のSQLServerのようなソリューションを強制してください。オラクルが何をしているのかをよく理解し、その観点から問題に取り組みます。何をしているのかがわかっていれば、開発からテスト、そしてOracleでの本番環境への移行に問題はありません。

「古語法」のような用語を使用する場合、Oracleについて少し頭を悩ませているようです。あなたはすでにこのプロジェクトのためにオラクルにコミットしているようですので、読んでオラクルの非常に豊富で強力な機能セットと友達になることをお勧めします。特に、TomKyteによる「EffectiveOracleByDesign」のコピーを入手してください。それを読んだら、同じ著者による「エキスパートOracleデータベースアーキテクチャ」を見て、Oracleがどのように機能するかをより詳細に調べてください。渡されたツールの使用方法を知っているのは顧客のおかげです。知るか?あなたもそれを好きになり始めるかもしれません。ツールチェストの別のツールと考えてください。あなたはSQLServerと結婚しておらず、Oracleを使用することで不誠実ではありません;-)

編集:

OPによる質問への回答:

なぜそれがロジスティックの問題なのかわかりません。それらは別個のデータベースと考えることができますが、物理的にはそうではありません。いいえ、スキーマごとに個別のデータファイルは必要ありません。多くの場合、単一のデータファイルがすべてのスキーマに使用されます。

SQL Serverの「優れた自己完結型データベース」が必要な場合は、1つのスキーマを作成してすべてのオブジェクトを格納するだけです。問題の終わり。他のユーザー/スキーマを作成することはできますが、オブジェクトを作成する機能をユーザーに与えないでください。

PL / SQL Developerの比較のように、オブジェクトとデータを比較するためのツールがあります。通常、Oracleでは、データベース全体ではなく、スキーマを比較する必要があります。とにかく、それぞれが独自のオブジェクトを持つ複数のスキーマが必要な理由はわかりません。それをするためにあなたを買うのは何ですか?オブジェクト(テーブル、トリガー、コード、ビューなど)を1つのスキーマに保持します。

于 2011-11-07T17:13:18.747 に答える