SQL Server のビュー

SQL Server のビュー

SQL Server のビューには、システムビュー、ユーザー定義、インデックスビュー、パティションビューがあります。

T-SQL 入門 では、システム開発でよく使われる 「 ユーザー定義ビュー 」 について取り上げます。


ユーザー定義ビューとは?

ユーザー定義ビューとは、内容をクエリーで定義した仮想のテーブルのようなもので、複数のテーブルからデータの取得が可能です。

ビューを利用する人が、正規化されている複数のテーブルから、実際のテーブル構造を意識することなく、使いやすいデータが取得可能になります。

レポート用に集計したデータ等を用意するのにも便利です。

また、ユーザーに、ビューにだけアクセス権限を与えるなどして、セキュリティーのコントロールも可能です。

条件を満たしたビューでは、ビューに対して UPDATE 文を書くことで、参照元のテーブルの値を変更することもできます。

正規化をくずさずビューを使おう

テーブルのデータをぱっと見てわかりにくいから、と正規化をくずしたがる人がたまにいますが、それだけの理由なのであれば、正規化を保ちつつビューを作ったほうが良いと思います。

正規化については、細かいことは抜きにしてキーポイントだけ言うと、データの一貫性を保ち、冗長性や不整合を防ぐために、キーとなる値で引いてこれるような情報を複数個所に持たないということです。

例えば、今まで使ってきた TestResult テーブルには学生を特定するのに StudentID カラムしか持っていませんが、それは学生の情報は StudentID さえあれば、 Student テーブルから取得できるからです。

それを TestResult テーブルのデータを見た時にわかりやすいようにと、TestResult 側にも LastName などの学生の情報を追加してしまうと、正規化がくずれている状態になります。

複数個所に同じデータを持つのは無駄ですし、データを更新する際に片方を更新し忘れてしまったり、どちらのデータを使って良いかわからなくなってしまったりといいことがありません。

ただ、データ取得の際のパフォーマンスを優先して、正規化をくずすことはあると思います。


それでは、簡単なユーザー定義ビューを実際作って使ってみましょう。

© 2010-2024 SQL Server 入門