Eラーニング--システム開発をする上で必要なSQL、プログラミングの勉強をするためのe-learning(イーラーニング)サイトです

HOME > 社内活動 > Eラーニング

Eラーニング

WEBサイトを通じてITのさまざまな知識を学んでいきます。初心者、新人のためにPG(プログラミング)、SE(システムエンジニア)になるための勉強やDB,Perl,CGI,PHPの技術力アップ講座を開催中

Eラーニングカテゴリー

データベース講座

このカテゴリーでは新人研修で行われたデータベース講座の内容を、受講した新入社員がEラーニングとして作成し公開しています。

"データベース講座"の詳細

最新情報

第七回講座

ダイアグラムとは

  • 表と表を関連付けると時に利用できる。表と表の関連をGUIで確認することが出来る。表と表の関連付けをリレーションという。

第八回講座

STORED PROCEDUREとは

  • DBに対する一連処理を一つのPROGRAMにまとめて(PROCEDURE)、RDBMSにSTORE(保存) したもの。
  • 複雑なSQL文の呼び出しを論理的に一つの処理単位にまとめて、簡単にその名前を呼び出せるようになっている。
  • 一つのPROCEDUREには、複数のSQL文が含まれていたり、繰り返しの条件分岐などの制御構造を持つこともあります。
  • また、引数をとって処理をしたり、処理結果を返すこともできる。
  • STORED PROCEDUREを利用することで、USERは必要に応じて、その名前と引数を指定して呼び出すだけでよく、DBに対する複雑な処理はRDBMSに任せることができる。

STRONG POINT

  • RDBMSに一つずつSQL文を発行する必要がなくなる。
  • NETWORKで行き来しているTRAFFICを削減
  • あらかじめ処理内容がRDBMSに登録され、構文解析
  • 機械語への変換が済んでいるため、処理時間が軽減。

基本文法

  • BLOCKの定義
    →BEGIN~END
  • CREATE PROCEDURE : STORED PROCEDURE(纏める)の作成
    →CREATE PROCEDURE PROCEDURE名(PARAMETER名) [WITH OPTION] AS 実行STATEMENT
  • CREATE FUNCTION : STORED FUNCTION(関数)の作成
    →CREATE FUNCTION FUNCTION名(PARAMETER名) RETURNS 戻り値の型 [AS] BEGIN 実行STATEMENT END;
  • DECLARE : 変数の定義を宣言する
    →DECLARE @変数名 DATA型
  • DECLARE CURSOR : CURSOR変数の定義
    →DECLARE CURSOR名 CURSOR FOR SELECT文
  • FETCH : CURSOR処理を行い特定の行を検索する
    →FETCH [KEYWORD] FROM CURSOR名 INTO 変数名1、変数名2、…
    →KEY WORDの種類:NEXT(直後)、PRIOR(直前)、FIRST(最初)、LAST(最後)、ABSOLUTE[n](先頭からn番目)、RELATIVE[n](現在の行のn番目)

第九回講座

トリガーとは

◆トリガー・・・表に対して何らかの変更処理が加えられたときに、その処理をきっかけとして自動的に実行される特殊なストアドプロシージャである。

特徴・・・トリガーはアプリケーションから呼び出されるものではなく、アプリケーション(プログラム)には全く依存しない。 ※DBMSによって記述方法が全く違う。

  • メリット
    1. アプリケーションに依存しない。
    2. データの整合性を保つのに適している。
    3. 関連テーブルが複数ある場合に一括して処理することが出来る。コードや名前を別の表に持たせたときに、1つの表を変更すると別の表へも変更が適用される。
  • デメリット
    1. データの更新回数によってはパフォーマンスが低下する。
    2. アプリケーション側で処理内容が把握しにくい。

構文

●CREATE TRIGGER トリガーの作成

CREATE TRIGGER トリガー名 ON 表名 処理タイミング処理 AS 実行ステートメント

  • ・処理タイミング
    1. FOR | AFTER | FOR AFTER 処理実行後
    2. BEFORE 処理実行前
    3. INSTEAD OF 置き換え
  • ・処理 INSERT,UPDATE,DELETE

文例

CREATE TRIGGER TEST ON TEST_TABLE FOR INSERT,UPDATE AS BEGIN UPDATE TEST_TABLE SET TOTAL=POINT*1.5 END

第十回講座

トランザクションとは?

・ジャーナル/ジャーナルファイルトランザクションをかけると作成される。ログと似ているが、こちらは種類(エラーログ・履歴)が多い。チェックポイントをすれば、これら二つは破棄される(ロールバックで戻せないためあったとしても必要ない)

STORED PROCEDUREを利用することで、USERは必要に応じて、その名前と引数を指定して呼び出すだけでよく、DBに対する複雑な処理はRDBMSに任せることができる。

→更新前情報:BEGINした時に、今の状態をおいておく。

→更新後情報:更新した履歴(~を変更した)

ロールバック

更新前情報に戻る。

ロールフォワード

チェックポイントから更新後情報どおりに戻すただし、チェックポイントから開始するとデータが壊れたままなので、結局更新情報前に戻すことにある

コミット(確定・終了)

ディスクに書き込み。ジャーナルファイルの情報をDBに反映させる。トランザクション開始中に、UPDATEをしても、ジャーナルファイルに書かれているだけ。

ADO.NET

TransactionとConnectionの関連付け。

SAVE Transaction

この中のSavePointに対して名前を付けて、エラーが起こったら、この地点まで戻る。

分散トランザクション

  • 2層コミット二つのトランザクション(それぞれ別の処理)を一つに見せかける。エラーをしたら、ロールバック。この中のSavePointに対して名前を付けて、エラーが起こったら、この地点まで戻る。
  • 2層ロック開始で更新してロックをかけるテーブルを、はじめ全てロック。

DBでのTransaction処理

SQL-Server:commitとCheckPointを同時に行う CheckPointはDBレベルの話。 →VisualBasic.NETはTransactionのレベルの設定ができないが、Queryアナライザならできる。

第十一回講座

ADO.Netとは

.Net Frameworkのクラス

  • ライブラリに標準で備わっている一連のクラス群。これらのクラスを利用して、データベースを扱うことが出来る。

◆特徴

  • データベースから取得したデータを自身のメモリ上に保存する。
  • メモリ上のデータセットを操作するため高速に処理することが出来る。
  • 処理中にデータベースサーバと接続し続ける必要がなくなる。

構成

▼ データベース ▼   │ ◆ .Netデータプロバイダ ◆   │ ◆ 非接続型クラス ◆   │ ▲ XML ▲

  1. .Netデータプロバイダデータベースへの接続、コマンド(SQL文)実行、検査結果取得、等のデータベース
    • アクセスに直接かかわる一連のクラス。 ex)SQLConnection,SQLCommand等
  2. 非接続型クラスデータベースから読み取ったデータを、メモリ上で表形式で保持するための新しい仕組みを提供するもの ex)DataTable,DataRow,DataColumns等

.NETデータ・プロバイダによるデータベースへのアクセス

  1. データの取得
    SqlCommand.ExecuteReader データベース←SqlCommand [Select] データベース→SqlDataReader
  2. データの追加更新削除
    SqlCommand.ExecuteNonQuery データベース←SqlCommand [Insert,Update,Delete]

データセットを使ったデータベース・アクセス

  1. データの取得 DataAdapter.Fill(※DataSet)
    データベース←SelectCommand←DataAdapter
    データベース→DataAdapter→(DataSet-DataTable)
  2. データの更新追加削除 DataAdapter.Update(※drRows())
    データベース←InsertCommand,UpdateCommand,DeleteCommand ←DataAdapterー(DataSet-DataTable) ※DataSet,DataTable,DataRow等様々な指定が出来る。


HOME |  企業情報 |  事業内容 |  採用情報 |  社内活動 |  お問合せ |  サイトマップ
.
Copyright(c)2006 Sijam.Inc all rights Reserved
システム開発 株式会社シジャム