●トピック
・データベースビュー
・データディクショナリ
・データベーススキーマ
・データ定義言語(DDL)
・データ操作言語(DML)
・データ制御言語(DCL)
・ODBC
・JBOD
●深く知る
データベースビューとは、データベーステーブルはクエリされる場合があります。クエリの結果はデータベースビューと呼ばれます。ビューを使用して、データベースの制限したインターフェースを提供できます。クエリの実行権限はデータベース管理システムのアカウント毎に付与することができます。そのため、アカウントの権限に応じたビューを返却する事ができるのです。
データベース操作には3つの種類があります。データベースやテーブルを作成するデータ定義言語、そのテーブルに対して接続用アカウントの権限を制御するデータ制御言語、そして実際にテーブルを操作するデータ操作言語です。それぞれ、利用する目的が分かれているため異なる言語として分類されてはいるものの、SQLの文法が大きく異なるものではありません。使う目的とフェーズで分類されていると考えておくと良いでしょう。
また、アプリケーションは一つのデータベースに接続するわけではありません。他のデータベースからデータを収集し、関連情報を送付する機能を施したいときには、複数のそれも異なるタイプのデータベースと接続することになるかもしれません。その際には、データベース接続設定とアプリケーションでの処理制御設定を分けておくこともあなたの開発を助けます。
データベースの整合性を確保するために、セマンティック整合性などの保存データに対する整合性の他にも、データ変更時にも気を配っています。例えば、複数のデータ変更処理を同時に試みた場合を想像してみましょう。 データベースサーバーは通常、複数のスレッドを実行し、それぞれがデータを変更できます。スレッドはそれぞれが独立して操作を行います。データベース管理システムは、更新要求処理について一度保留状態として、その後コミットされたら永続的な保存データとして扱うようになります。もしも、コミットに失敗もしくは明示的にキャンセルされたときには、保留中のデータを破棄し、ロールバックします。データベースでは、RPGゲームのような町から町への冒険とセーブを繰り返しています。そのため、データベースが破壊(ゲーム機が壊れたときには)、保留データがコミットされているのかを正確に知る必要があります。データベースジャーナルは、すべてのデータベーストランザクションのログです。データベースが破損した場合、データベースをバックアップコピーに戻すことができます。その後、後続のトランザクションをジャーナルから再生することで、データベースは整合性を保ちつつ復元できます。
整合性は、複製されているデータベースではより注意されます。根本的には、1つのテーブルが更新される場合にはすべてのテーブルを同時に更新する必要があります。ここで、2つのプロセスによって2つの異なるサーバーで同じタプルを同時に更新しようとするとどうでしょうか?結論としては、どちらも成功することはできません。これはタプルの整合性に違反します。シャドウデータベースは、純粋な複数データベースで互いにデータ共有を計っているレプリケートデータベースに似ていますが、変更を処理しているデータベースは実質的に1つであるように設計されています。つまり、前述したような同時処理による変更を実施しないようにしております。