こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

オラクルのビューの存在について

オラクルの単一ビューには関数を含まない、データのグループを含まないという記載が参考書にあったのですが、具体的にどういう状況をいっているのか教えて下さい。

すいません。追加で聞きたいことがありました。
同一データベースの異なるスキーマで、同じ表名を使用できる。
同一スキーマ内で、同じ表名と同義語名を使用できる。
この文言の意味合いもいまいち解せないでいます。
ご教授お願いいたします。

投稿日時 - 2014-11-03 08:39:34

QNo.8812091

すぐに回答ほしいです

質問者が選んだベストアンサー

 単一ビュー:
 その質問の表現、言い方が逆です。だから、意味不明になってます。
 単一ビュー「とは」、一つのテーブルから作成されたビューで、group byで集約したり、関数を使ったりしていないビューのことを言います。
 つまり、単一ビューという言葉の定義をしているだけです。定義ですから、これにとやかく言っても始まらないんですね。
 まぁ、単純に言えば、単一ビューというのは、一つのテーブルから、せいぜい単純な選択をしただけのビューと言えばいいのかな。
 この用語を定義する必要性は、次に、「このビューは、更新可能ですか?」と言い始めた時に、出てきます。単一ビューに対しては、insert , updateが可能です。(ただし、insertの際には、ビューに登場する以外のカラムが実テーブルにある時には、それらにはデフォルト値が入ります。それも無ければ、NULLです。そのカラムにnot null制約がついていると、制約違反ではねられます。)

 スキーマ:
 Oracleでは、ユーザー毎に一つのスキーマが割り当てられます。
 そうですね。とあるマンションを一つのデータベースに例えてみましょうか。マンション一棟全体がデータベースです。隣のマンションは、別のデータベースとしましょう。
 マンションの部屋には、各々住人が住みますね。この部屋がスキーマです。隣の部屋にヤカンがあっても、自分の部屋に同じ形のヤカンを置いても良いですよね。このヤカンを区別する必要が出た時には、Aさん宅のヤカンとか、Bさん宅のヤカンとか言えますよね。
 表名も同じです。userA.onajihyouとか、userB.onajihyouといったように識別します。
 自分の部屋にあるものを使うのに、Aさん宅のヤカンとは言いませんよね。素直にヤカンです。
 表名も同じ。例え、他のスキーマに同じ表名があろうが何だろうが、自分のスキーマ内の表に対しては、onajihyouでちゃんと通用します。
 ただし、マンションにも共有部分があります。データベースも同じ。各自のスキーマに属さない要素がいくつかあります。何がスキーマに属して、何がスキーマに属さないのかは、参考書やマニュアルを見れば書いてありますので、興味があれば探してみてください。

投稿日時 - 2014-11-03 20:37:52

お礼

ものすごくわかりやすかったです。
親切丁寧な教え方に感動です。
本当にありがとうございました。

投稿日時 - 2014-11-03 21:17:53

このQ&Aは役に立ちましたか?

16人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問