0

リレーショナル データベースとリレーショナル データベース オブジェクト (ハイブリッド) の使用の違いは何ですか。

私は広告のアプリケーションを作成しています。一般的なリレーショナル データベースを使用して、自動車、テクノロジー、不動産、雇用、サービスなど、広告の各タイプのテーブルを作成できると思います。これが私のやり方です。しかし、リレーショナル データベース オブジェクトについて読んでみると、別のフィールドとメソッドをカプセル化できるデータベース (Oracle) の type フィールド。広告のテーブルのみを作成し、すべての広告にタイトル、説明、公開日、画像などの共通フィールドがあることを知っているとしたらどうでしょうか。車、技術、雇用などの別のオブジェクトをカプセル化するフィールドを追加し、それぞれの内部に、車 (モデル、ブランド、価格)、技術 (状態、価格、アクセサリー、寸法) 雇用 (仕事) などの属性をカプセル化します。 、支払い)

これがアイデアです。実際には、すべての広告について、実際に機能を拡張して、それぞれのデータベースを作成できます。私の質問は: リレーショナル データベース オブジェクトを使用する際の潜在的な問題は何ですか? 最良の選択肢は何ですか?

4

2 に答える 2

3

過去 10 年間の最悪のデータベース設計のほとんどは、ルート テーブルがリレーショナル モデルに適合するのではなく、オブジェクト モデルに構築されています。

OOP はプログラミング言語です。動作とデータを組み合わせるというその概念は、API を構築する場合などにはうまく機能します。しかし、持続性に関しては最悪であり、恐ろしく大きなテーブル、多数の重複データ、および非常に遅いクエリにつながります。それが避けられないと言っているわけではありませんが、それが賭け方です。

では、なぜ Oracle はデータベースで型をサポートするのでしょうか? ビヘイビアを使用して複雑なデータ型を定義することには利点があるためです。XMLType はその 1 つであり、Oracle Spatial はオブジェクトを広範囲に使用します。ただし、これらの使用法は、通常のリレーショナル テーブルの個々の列に限定されます。すべてのデータをデータベースに格納するためにオブジェクト テーブルを使用することは、意図したことではありません。

Pl/SQL プログラミングでは必ず型を使用してください。私はこれを広範囲に行いましたが、適切なユースケースでは非常に効果的です。それらにデータを保存しないでください。

于 2013-07-13T08:29:36.663 に答える
0

最も大きな違いは、Oracle のオブジェクト リレーショナル テクノロジがほとんど使用されていないことです。

オブジェクト リレーショナル テクノロジに関する豊富な経験を持つプログラマや DBA はほとんどいません。データベース ツールは、オブジェクトを十分にサポートしていないか、まったくサポートしていません。Oracle はこのテクノロジーを十分にサポートしていません。バグが多く、頻繁に更新されません。

もちろん、機能が珍しいからといって、それを無視する必要があるわけではありません。Oracle のオブジェクト リレーショナル機能がうまく機能する場合があります。ただし、オブジェクトを使用してデータベースの大部分を構築する場合は、スキル、テクノロジ、およびサポートが失われることを考慮する必要があります。

于 2013-07-13T05:08:38.567 に答える