ビューとマテリアライズドビューの主な違いは、ビューがディスクに保存されない仮想テーブルであるのに対し、マテリアライズドビューはディスクに保存される元のデータベースの物理的なコピーであるという点です。
DBMSとは、データベースにデータを格納し、管理するためのソフトウェアです。
リレーショナルDBMS(RDBMS)は、リレーショナルモデルに従って設計されたDBMSです。
プログラマーはSQLクエリーを書いて、RDBMSに対して操作を行うことができる。
RDBMSはデータベースを持ち、各データベースは1つまたは複数のテーブルから構成される。
データベースとテーブルの他に、さまざまな概念があります。
そのうちの二つがビューとマテリアライズド・ビューです。
ビューとは
ビューは、1つまたは複数のテーブルのデータの論理的なサブセットです。
これは、データへのアクセスを制限するのに役立ちます。
さらに、ビューには、クエリ式から取得したデータが含まれます。
プログラマーは、ビューの更新と削除を行うためのSQLクエリを記述することができます。
彼は、テーブルと同様のクエリを記述することができます。
また、複雑なデータベースをカスタマイズしたビューを作成することも可能である。
ビューは、通常のテーブルとは異なり、事前に計算されずにディスクに格納される。
ビューを更新すると、元のテーブルに加えられた変更が表示される。
一般に、ビューの性能は低い。
それは、ビューが2つ以上のテーブルを結合する必要があるためです。
したがって、ビューは結合を処理する時間を必要とするため、より多くの時間がかかります。
また、1つのテーブルで構成されるビューは単純なビューですが、より多くのテーブルを持つビューは複雑なビューです。
ビューの主な利点は、多くのストレージスペースを必要としないことです。
したがって、ユーザーが複数のテーブルからレコードの概要を取得する必要がある場合、彼はビューを作成し、データを確認することができます。
また、機密データへのアクセスを制限することもできる。
さらに、複数のテーブルを接続して一つのビューを生成することで、クエリーの複雑さを最小限に抑えることができます。
マテリアライズド・ビューとは
マテリアライズド・ビューは、元のテーブルの物理的なコピーです。
元のテーブルのスナップショットや画像に似ています。
ビューと同様に、クエリ式に記述されたデータを含んでいます。
さらに、マテリアライズド・ビューはディスクに保存されます。
マテリアライズド・ビューは、毎回更新されるわけではありません。
しかし、プログラマーは手動で、あるいはトリガーを使って、ビューを更新することができます。
さらに、マテリアライズド・ビューは事前に計算される。
そのため、クエリや結合の処理に時間がかかりません。
したがって、マテリアライズド・ビューはより高速です。
ビューとマテリアライズドビューの違い
定義
ビューとは、1つまたは複数のテーブルからデータの論理的なサブセットを生成することができるデータベースオブジェクトです。
これに対して、マテリアライズド・ビューは、ディスクに格納されている元のデータベースの物理的なコピーです。
これが、ビューとマテリアライズド・ビューの主な違いです。
保存方法
また、実体化したビューはディスクに格納されるが、ビューはディスクに格納されない。
したがって、ビューはメモリを必要としない。
実行速度
ビューとマテリアライズド・ビューのもう一つの違いは、ビューはマテリアライズド・ビューより遅いということです。
アップデート
ビューは、使用するたびに更新する必要がある。
一方、マテリアライズド・ビューを使用するたびに更新する必要はない。
結論
ビューとマテリアライズド・ビューは、RDBMSに関連する2つの概念です。
ビューとマテリアライズドビューの主な違いは、ビューがディスクに格納されない仮想テーブルであるのに対し、マテリアライズドビューはディスクに格納される元のデータベースの物理的なコピーであることです。