ビューを実際のテーブルで実際に使用する必要があるのはいつですか?これによりどのような利益が期待できますか?
全体として、テーブルよりもビューを使用する利点は何ですか?そもそもビューがどのように見えるようにテーブルを設計すべきではないでしょうか?
考慮すべき多くの違いがあります
選択ビュー:
挿入/更新のビュー:
欠点
ビューでできること:
ビューに一致するようにテーブルを設計するべきではありません。基本モデルは、データの効率的な保存と取得に関係する必要があります。ビューは、その複雑さを抽象化できるようにすることで、効率的な正規化モデルから生じる複雑さを緩和するツールの一部です。
また、「テーブルよりもビューを使用することの利点は何ですか?」テーブルなしでは行けませんが、ビューなしではできます。それらはそれぞれ非常に異なる理由で存在します。テーブルは具体的なモデルであり、ビューは抽象化されたビューです。
複雑なロジックが毎回実行されるようにする必要がある場合は、ビューを使用できます。たとえば、すべての財務レポートに必要な生データを作成するビューがあります。すべてのレポートでこのビューを使用することで、1つのレポートが1つの結合セットを使用し、別のレポートが異なる結果をもたらすレポートを使用するのを忘れるのではなく、全員が同じデータセットから作業します。
ユーザーをデータの特定のサブセットに制限する場合は、ビューを使用できます。たとえば、レコードを削除せず、現在のレコードをアクティブとしてマークし、古いバージョンを非アクティブとしてマークする場合、アクティブなレコードのみを選択するためにビューを使用する必要があります。これにより、人々がクエリにwhere句を入れるのを忘れて、悪い結果を得るのを防ぎます。
ビューを使用して、ユーザーが一連のレコードにのみアクセスできるようにすることができます。たとえば、特定のクライアントのテーブルのビューで、テーブルのセキュリティ権限がない場合、そのクライアントのユーザーはデータのみを表示できます。そのクライアントのために。
ビューは、データベースをリファクタリングするときに非常に役立ちます。
(少なくともSQL Serverで)恐ろしいパフォーマンスをもたらす可能性のあるビューを呼び出すためにビューを使用する場合、ビューは受け入れられません。誰かがデータベースをそのように抽象化することを選択したため、数百万ドルのクライアントをほぼ失いました。パフォーマンスは恐ろしく、タイムアウトが頻繁に発生しました。パフォーマンスの問題は完全に私たちのせいだったので、クライアントではなく、修正にもお金を払わなければなりませんでした。ビューがビューを呼び出すときは、基礎となるビューを完全に生成する必要があります。これは、ユーザーが最終的に必要とする3つを見るために、ビューがビューと呼ばれるビューと呼ばれるビューであり、非常に多くのレコードが生成される場所で見ました。これらのビューの1つは、レコードの単純なcount(*)を実行するのに8分かかったことを覚えています。ビューを呼び出すビューは非常に貧弱なアイデアです。
通常、ビューは同じテーブルのフィールドのみを更新できるため、レコードの更新に使用するのは悪い考えです(これもSQL Serverです。他のデータベースは異なる場合があります)。その場合は、とにかくテーブルを直接更新して、どのフィールドが利用可能かを知る方が賢明です。
一般的な方法は、ビューで結合を非表示にして、ユーザーにさらに非正規化されたデータモデルを表示することです。その他の用途には、セキュリティ(特定の列や行の非表示など)またはパフォーマンス(マテリアライズドビューの場合)が含まれます
ビューは、複数のテーブルから選択する必要がある場合や、テーブルのサブセットを取得する場合に便利です。
データベースが十分に正規化された(最小限の複製)になるようにテーブルを設計する必要があります。これにより、クエリが多少難しくなる可能性があります。
ビューは少し分離されているため、viewテーブル内のデータを格納されているものとは異なる方法で処理できます。
ビューを考慮せずにテーブルを設計する必要があります。
。
ビューは、フィールドレベルでのユーザーアクセスに関する作業を容易にする場合もあります。
まず、名前が示すとおり、ビューは不変です。これは、ビューがDBのストアドクエリから作成された仮想テーブルに他ならないためです。このため、ビューにはいくつかの特性があります。
そのため、表よりもビューのほうが適しているユースケースは膨大です。Webサイトにアクティブなユーザーのみを表示することを考えてください。 DBに実際に存在するデータのサブセット(アクティブユーザーと非アクティブユーザー)のみを操作するため、ビューが優れている
これを確認してください 記事
これが役に立てば幸いです。
Wikipediaによると、
ビューは、基礎となるテーブルの外部世界への露出度を制限することができます:特定のユーザーは、ビューへのアクセスを拒否しながら、ビューを照会する許可を持つことができます基本テーブルの残り。
ビューは、複数のテーブルを結合して単一の仮想テーブルに簡素化できます。
ビューは集計テーブルとして機能することができます。データベースエンジンはデータ(合計、平均など)を集計し、計算結果をデータの一部として表示します。
ビューはデータの複雑さを隠すことができます。たとえば、ビューはSales2000またはSales2001として表示され、実際の基礎となるテーブルを透過的に分割します。
ビューの保存に必要なスペースはほとんどありません;データベースにはビューの定義のみが含まれ、表示されるすべてのデータのコピーは含まれません。
ビューは、使用するSQLエンジンに応じて、追加のセキュリティを提供できます。