0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

データベース管理システム(RDBMS) 権限付与、テーブル制約定義

Last updated at Posted at 2020-08-08

平成31年春期 午前問題27

関係データベース管理システム(RDBMS)の表へのアクセスにおいて,特定の利用者だけにアクセス権を与える方法として,適切なものはどれか。

image.png

答えは、簡単ですね。
でも、知らないことがあった!!

1、CONNECT文は
データベースへの接続を確立するSQL文です。

2、参照制約は、
表間の整合性を確保するために設定される制約です。

3、GRANT文は
1人または複数のユーザに表に関する特定の権限を付与するSQL文です。

4、CREATE ASSERTION文は
複数のテーブルに対して制約をかける「宣言」を定義するSQL文です。

・SQL92で標準化された。1つ以上、複数のテーブルに対して制約をかける「表明」を定義する。
実装しているDBMSが少ないため知名度は低いが、DB側で複雑な制限をかけれるため処理速度の改善に繋がるらしい。

設定した条件が偽の場合にエラーを発生させることができ、SELECT文を使った複雑な制約を定義することができる。

例:
CREATE ASSERTION 入力値チェック CHECK (NOT EXIST(SELECT * FROM 価格票,限界値 WHERE 価格表.商品コード = 限界値.商品コード AND 価格票.価格 <= 限界値.上限価格))

※表明名が「入力値チェック」、CHECK以降の文が条件である。上記例だと価格票テーブルと限界値テーブルを商品コードで結合して価格が上限価格以下であることを判定している。上限価格以上の価格が設定された場合はエラーを投げる。

・CREATE DOMAIN
SQL92で標準化された。ユーザ定義のデータ型を作成する。
実装しているDBMSが少ないため知名度は低いが、DB側で入力値チェックを行えるため処理速度の改善に繋がるらしい。
ASSERTIONと合わせてリファクタリングに使えそう。
CREATE DOMAINをコールしたユーザがそのドメインの管理を行うが、使用に関しては全ユーザが行える。(場合が多い模様。DBMS依存。)

例:
CREATE DOMAIN AGE AS CHECK (VALUE >= 18) AND (VALUE <= 99)

※18〜99までしか値を取らないユーザデータ型「AGE」を作成する。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
補足

DBMSにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。

image.png

1、排他制御は、トランザクションの整合性を保つために、1つのタスクがデータ更新のトランザクションを実行している間は、その処理が終わるまで同じデータに対する他のトランザクション要求を待機させる仕組みです。
複数のトランザクションが同じデータを更新しようとしたときに、データを「ロック」することで同時更新による更新消失を防ぎます。

2、再編成
再編成は、データを適切に再配置することで、データベースのアクセス効率を回復させる処理です。

3、正規化
正規化は、関係データベースを構築するに当たり、データの冗長性の排除、整合性の確保、及び保守性の向上などを目的として行われる処理です。

4、整合性制約
整合性制約は、データベースの整合性を保つために表や列に設定される制約です。

参考:
https://www.ap-siken.com/kakomon/24_haru/q28.html

マイナーなCREATE文
https://spinoza-2.hatenadiary.org/entry/20090329/1238308362

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?