1 データベース言語の種類
データベース言語には、
実際に規定されているデーベース言語として以下のものがあります。
【 データ辞書/登録簿(Data Dictionary / Directory : DD/D) 】
データベースに関するユーザー情報やアクセス方法、登録するデータの定義などを格納する辞書。
属性・名称・相互の関係・物理表現の記述などの情報が登録され、この辞書に基づきデータが管理される。
データの定義のデータの意味でメタデータとも呼ばれる。
2 データベース言語(SQL)
概念スキーマで、データ操作のための言語(SELECT・UPDATE・DELETE・INSERT文)
SELECT ~ FROM ~ WHERE (表データの検索、結果集合の取り出し)
INSERT INTO (行データもしくは表データの挿入)
UPDATE ~ SET (表を更新)
DELETE FROM (表から特定行の削除)
データに対するアクセス制御を行うための言語(GRANT・REVOKE・SET TRANSACTION・BEGIN・ROLLBACK・SAVEPOINT・LOCK文)
GRANT (特定のデータベース利用者に特定の作業を行う権限を与える)
REVOKE (特定のデータベース利用者から既に与えた権限を剥奪する)
SET TRANSACTION (トランザクションモードの設定(並行トランザクションの分離レベル(ISOLATION MODE)など))
BEGIN (トランザクションの開始)
COMMIT (トランザクションの確定)
ROLLBACK (トランザクションの取り消し)
SAVEPOINT (任意にロールバック地点を設定する)
LOCK (表などの資源を占有する)
SQL は対話型ばかりではなく、COBOL , FORTRAN , PL/1 などのプログラムなかに埋め込んで利用することができる。ただし、プログラムは1行ずつしか処理できないので、特別の指定をする必要がある。
【 カーソル 】
SQL で問合せをすると、複数行のデータが取り出される。しかし、プログラミング言語では、1行のデータしか取り扱えない。そこでデータを1行ずつ取り出して、プログラムで扱えるように引き渡す必要がある。この機能を果たすものをカーソルという。
制約とは、テーブルの値に持たせるルールのことです。制約を定義して登録されるデータにルールを持たせることで、データを常に正しい状態に保てます。 制約にはいくつかの種類がありますが、大きく分けて「列制約」と「テーブル制約」の2種類があります。列制約は1つの列に対する制約です。テーブル制約は複数の列にまたがる制約で、テーブルに対する制約です。制約はCREATE TABLE文に記述します。また、ALTER TABLE文でテーブルに対する既存の制約を変更することも可能です。
【 NOT NULL制約 】
NOT NULL制約は、列の値でNULLを禁止するものです。入力必須となる列に定義します。NOT NULL制約は列に対する制約なので、列制約でのみ定義できます。
【 一意制約 】
一意制約は、列内で同一の値を禁止するものです。ID列など、同一の値を許さない列に定義します。複数個の列の組で同一の値を許さない場合には、テーブル制約で一意制約を指定します。
【 主キー制約(PRIMARY KEY制約) 】
主キー制約(PRIMARY KEY制約)は、NOT NULL制約と一意制約を合わせたものと同じですが、テーブルに対して複数個の主キー制約を定義することはできません。主キー制約は、主キーとなる列に定義します。列制約で定義できる主キー制約は、1個の列に対する主キーを定義する場合です。複数の列の組み合わせに対して主キーを定義する場合には、テーブル制約で定義します。
【 CHECK制約 】
CHECK制約は、データの値に対する条件を定義するものです。「条件に値の範囲を定義し、値の範囲外のデータは受け入れない」という場合に使用します。例えば、条件に「1 <= 列名 AND 列名 <= 100」と指定すると、その列の値に1~100以外を設定できなくなります。
【 整合性制約 】
整合性制約は、2つのテーブルの間でデータの整合性を保つための制約です。2つのテーブルで親子関係を持ち、子テーブルに入力される値が必ず親テーブルに存在しなければならないというものです。例えば、商品テーブルを親テーブル、注文テーブルを子テーブルとします。このとき「注文テーブルの商品ID列の値は、商品テーブルの商品ID列に存在しなければならない」という制約が整合性制約です。
www.it-shikaku.jp