ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集

リレーショナルデータベースについて

リレーショナルデータベース

 リレーショナルデータベースは、RDBとも呼ばれ、データベースの代表的な形式です。 リレーショナルデータベースでは、すべてのデータを表という形式で格納しています。 表とは、同一形式の繰り返しデータの集まりで、項目(カラム、フィールド)と型を持っています。 各データの最小単位はレコードと呼び、表の中の行で表されます。

 項目1項目2項目3
行1データ11データ12データ13
行2データ21データ22データ23
行3データ31データ32データ33

 リレーショナルデータベースの代表的なものとして、PostgreSQL、ORACLE、MS-ACCESS、MS-SQLサーバなどがあります。

データベースの機能

 データベースには以下の機能があります。

データベースのアクセス方法

 データベースにアクセスするためには、SQLを使うのが一般的です。

SQL

 SQLは、Structure Query Languageの略で、構造化された問い合わせ言語のことです。 SQLは、データベースをアクセスするための言語として使われています。 SQLには、SQL92、SQL99などがあり、ISOやJISなどによって、標準化が進められています。 PostgreSQLは、SQL92のサブセットを実装しています。
 SQLには、データベースを定義するDDLと、データベースをアクセスするDMLがあります。

 SQLは、以下のような形式で指定します。

select 項目名 from 表名 where 検索条件;

SQLコマンド一覧

 以下に、よく使うSQLコマンドの一覧をまとめてあります。 詳細は、psqlの、\hコマンドで参照できます。

コマンド機能
create userユーザを作成する
drop userユーザを削除する
alter userユーザ情報を変更する
grantユーザにアクセス権を追加する
revokeユーザからアクセス権を削除する
create databaseデータベースを作成する
drop databaseデータベースを削除する
create table表を作成する
drop table表を削除する
alter table表情報を変更する
create index表のインデックスを作成する
drop index表のインデックスを削除する
create view仮想表を作成する
drop view仮想表を削除する
select表のデータを検索する
insert表にデータを挿入する
delete表のデータを削除する
update表のデータを更新する
declareカーソルを定義する
openカーソルをオープンする
closeカーソルをクローズする
moveカーソルを移動する
fetchカーソルからデータを取得する
copy表をコピーする
commit表を確定する
rollback表を元に戻す

トランザクション(COMMITとROLLBACK)

 トランザクションとは、データベースを更新する単位のことです。 例えば、在庫管理システムなどで商品を販売する場合、注文DBに注文を追加すると同時に、在庫DBから在庫商品を減らす必要があります。 注文が発生したのに、在庫が減らないということは、詐欺でも行わない限りありえません。
 データベースでは、このような関連するデータベースの更新を同時に行うために、COMMITとROLLBACKという機能があります。 つまり、SQL文のUPDATEだけでは、データベースは更新されません。 UPDATEの後、COMMITを発行した時点で、データベースが更新されます。 また、ROLLBACKを発行すると、データベースは何も更新されません。
 トランザクションを考慮すると、以下のようなプログラムとなります。

INSERT, UPDATE, DELETE
if エラー then ROLLBACK

INSERT, UPDATE, DELETE
if エラー then ROLLBACK

INSERT, UPDATE, DELETE
if エラー then ROLLBACK

COMMIT


Copyright (C)1995-2002 ASH multimedia lab.
mail : info@ash.jp