← メディア一覧

SQLをシンプルにする秘密:ビュー

6分39秒 | DBSQLFE

基本情報技術者試験の頻出テーマを解説した動画コンテンツです。

トランスクリプト(字幕テキスト)

データベースを扱う人なら誰もが一度は「ああ、この作業面倒だな」って感じたことありますよね。 もしその作業をもっとシンプルに、もっとエレガントに解決できる方法があるとしたら知りたくないですか? 今回のこの解説ではSQLを劇的に楽にする秘密、ビューについて深く掘り下げていきますよ。 正直使うたびにSQLでJOINするのはちょっと面倒くさいな。うーん。 せっかく正規化でテーブルをきれいに分けても、データを見たいときに毎回毎回長いSQLを書くのは大変ですし、うっかりミスも増えちゃいますよね。 この多くの人が抱える悩みから今日の話はスタートします。 ではこの問題を解決してくれる鍵、ビューとは一体何なんでしょうか。 その正体はずばり仮想的なテーブルです。じゃあ早速詳しく見ていきましょうか。 ビューの定義、実はすっごくシンプルなんです。要は保存されたSQLクエリのこと。 なんですけど、まるで本物のテーブルみたいに扱えちゃうんですね。 で、ここが一番のポイントなんですけど、ビュー自体はデータを一切持っていない仮想的なテーブルだってことなんです。 あれ?データを持っていないのにどうやって情報が見えるのって思いますよね。 実はビューが持っているのは、あの長かったSQL文だけなんです。 私たちがビューにアクセスするたびに、その裏側でSQLが実行されて元のテーブルから最新のデータを取ってきてくれる。 つまりビューっていうのは、いつでもリアルタイムな情報を映し出してくれる窓みたいなものってわけですね。 そう。その窓っていう考え方が、ビューのもう一つのめちゃくちゃ強力な側面を理解する鍵になるんです。 それが情報の保護、つまりセキュリティですね。 この覗き窓っていう例えを使えば、一気にイメージが掴めるはずですよ。 ちょっと想像してみてください。ここに社員テーブルがあります。名前とか部署みたいな一般的な情報もあれば、 住所とかお給料とかちょっとデリケートな情報も入ってますよね。当たり前ですけど、こういう機密情報って誰にでも見せちゃダメじゃないですか。 そこで登場するのがこのビューなんです。この図がまさに覗き窓の仕組みそのもの。 元の大きなテーブルの上にビューっていう名前の小さな窓を被せる感じですね。 そうすると見せたい列、この場合なら名前と部署だけをピンポイントで公開できるんです。 元のテーブルには直接触らせずに、安全に必要な情報だけを見せられる。 これって例えばお客様向けのポータルサイトで自分の注文履歴だけを見せるみたいな場面でも使われている、すごく賢い工夫なんですよ。 そうそう、まさにこれです。「なるほど。覗き窓みたいなものか。窓から見える範囲だけを制限できるんですね。」 うん、その感覚完璧な例えです。ビューの本質をずばり捉えてますね。 どうでしょう。ここまででビューの便利さと安全性がなんとなく見えてきましたかね。 でもビューのすごいところはこれだけじゃないんです。ビューが持っている3つのパワフルなメリットをここで整理してみましょう。 まず一つ目はさっきも見たセキュリティ。見せたくない列は隠して権限がある人にだけ必要なデータを見せられます。 二つ目は独立性。これ地味にすごいんですけど、例えば元のテーブルの設計を変える必要が出ても、 ビュー側で吸収してあげればそれを使ってるアプリは何も修正しなくて済むんです。めちゃくちゃ強力ですよね。 そして三つ目が効率性。ビューはデータの実体を持たないので、ストレージ容量をほとんど使いません。データを二重持ちしないので、すごく効率的なんですね。 さて、ここでもう一歩踏み込んだちょっとプロっぽい実務的なコツを紹介しますね。 それはビューに計算をさせちゃうっていうテクニックです。これ本当に便利なんで見ていきましょう。 アプリケーション開発とかでよくありますよね。 データベースには税抜きの価格が入っていて、画面に表示するときに消費税込みの価格を計算するみたいな場面。 この計算どこでやるかっていうのが実は結構大事なポイントになってくるんです。 ちょっとこの比較を見てみてください。左側はアプリのコードの中で毎回「価格×1.10」って計算する方法。 それに対して右側は、ビューの方で税込み価格を計算済みにしておいて、アプリはそれをただ呼び出すだけ。 いやー、これ全然違いますよね。コードがめちゃくちゃシンプルになってるのがもうパッと見てわかると思います。 この方法のメリットはもう明らかですよね。アプリのロジックが単純になって、コードのメンテナンスがすっごく楽になります。 そして何より計算方法がビューに一つにまとまってるので、どこで使っても同じ計算結果になることが保証される。 もし将来税率が変わっても直すのはこのビュー一か所だけでOKなんです。 つまりですね、この一手間をかけておくだけで将来の開発のしやすさがもう全然変わってくるってことなんです。 ここまで見てきたビューっていう考え方、これは単なる便利機能っていうだけじゃないんです。 もっと大きな話。つまり美しくて効果的なデータベース設計っていうゴールに繋がっていくんですね。 データベース設計ってまず正規化でデータをバラバラに分けてデータの整合性を保ちますよね。 そしてそのバラバラになったデータを、今度はビューが使いやすい形に安全かつ効率的にもう一度くっつけてくれる。 この二つって、まさに美しいデータベース設計における車の両輪みたいな関係なんです。 この解説を通して「なるほど、データベース設計の美しさってこういうことか」って少しでも感じてもらえたならめちゃくちゃ嬉しいです。 複雑なものをシンプルに、そして安全に扱う。そのための知恵がこのビューにはぎゅっと詰まっているんですね。 最後に少しだけ考えてみてください。あなたが今やってる一番面倒なデータベース作業の中で、 この覗き窓、つまりビューはどこで使えそうでしょうか。複雑なジョインですか?それとも繰り返しの計算? セキュリティの確保かもしれません。きっとあなたの仕事をぐっと楽にしてくれる場所が見つかるはずですよ。

このコンテンツは Web society で視聴・学習できます。