プロが教える店舗&オフィスのセキュリティ対策術

何が違うのでしょうか?なぜ別々にするのか理解できないのです。どなたかお教え下さい。

A 回答 (2件)

 何が違うかと問われれば、そもそも概念が全く違います。

ステーキとフォーク・ナイフはなぜ別々に取り扱うのですか?というくらい違います。

 まず、データベースを構築する基本になるのは、テーブル(表)です。これはよいですね。
 複雑なデータになると、一つの表で取り扱うといろいろと不都合が生じます。というわけで、表を複数作ることになります。
 さて、今度は、データを利用する段になると、その表をいろいろな形で表示したくなります。その中には、いつも使う決まった定型パターンもでてきます。そこで、そのような決まった定型パターンをいつもいつも長いSQLで書くのは面倒なので、ビューという形で定型パターンを定義します。これがビューの基本です。(他にも、セキュリティー上の理由や、権限設定のためとか、構文上SQL一つの文章で書き表すことができない表現のためにSQLを分割するために使用したり、他にもいろいろ用途はありますが、これは応用編です。)

 次です。では、テーブルもできました。データも入れました。いろいろなビューも作りました。
 これをデータを閲覧する人のために、アプリケーションで扱えるようにしなくてはいけません。簡易的な場合は、windowsであれば、EXCELなどで参照することもありますが、普通は、専用のアプリケーションを何らかの言語を利用して作成するでしょう。C++・JAVA・C#・VBなど、言語の種類は多々ありますが、これらのプログラム内で、SQL文をデータベースシステムに渡して、結果を返してもらうことになります。データベースシステムから返ってくる返事は、普通は「集合」です。ところが、一般的な言語は、この集合を一度に扱える構文がありません。
 そこで、返ってきたデータを、一行づつ取り扱うことになります。1行ずつ取り扱うために、現在行をマークする何かが必要です。これが「カーソル」と呼ばれます。カーソルを最初の行にあわして、1行目を処理。その後カーソルを次の行動かして、2行目を処理。これを最後まで繰り返すす。というのが一般的な処理になります。
 カーソルにも、読み込み専用や、前に進むだけで後戻りできない物、果ては、書き込みまでできる物と、いろいろな種類がありますが、これも応用編です。
 ライブラリー関数やクラスなどで、一度にデータを読み取って表の形にしてすぱっと返してくれるように「見せかけている」ものもありますが、あくまで、裏で、カーソルを使って一行ずつ処理しているのが普通です。
 
 かなりはしょった説明ですが、こんなところで理解できますか?(概念をくだいているので、厳密さにはかけますが、ご容赦ください。)
    • good
    • 0

何が分からないのか、具体的に示してください。



1.ビュー
(1)特定の行や列だけを、利用者に見せることができる。
(2)複雑なSQLをビューで吸収し、ビュー経由のSQLを簡素化できる。
(3)ビュー経由で操作することで、利用者側で実表の表名や列名を意識させないことが可能。
 例えば、月毎の表を持つとして、
 ・2月には、1月表を先月ビュー、2月表を今月ビュー、3月表を来月ビューとして操作。
 ・3月には、2月表を先月ビュー、3月表を今月ビュー、4月表を来月ビューとして操作
 このような手法をとれば、月次で過去の月のデータの全件削除も容易になる。

(4)ビュー経由で操作させることで、更新禁止にすることも可能。
 ビュー内でジョインやグループ化を行っている場合、そのビューを使用しての更新や削除は不可になる。

2.カーソル
 行を1行ずつ取り出し、内容により更新や削除も行える。
 カーソルで使用する表は、実表でもビュー表でも、混在でも構わない。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す