リレーショナルデータベースは、RDBとも呼ばれ、データベースの代表的な形式です。 リレーショナルデータベースでは、すべてのデータを表という形式で格納しています。 表とは、同一形式の繰り返しデータの集まりで、項目(カラム、フィールド)と型を持っています。 各データの最小単位はレコードと呼び、表の中の行で表されます。
項目1 | 項目2 | 項目3 | |
---|---|---|---|
行1 | データ11 | データ12 | データ13 |
行2 | データ21 | データ22 | データ23 |
行3 | データ31 | データ32 | データ33 |
リレーショナルデータベースの代表的なものとして、PostgreSQL、ORACLE、MS-ACCESS、MS-SQLサーバなどがあります。
データベースには以下の機能があります。
データベースにアクセスするためには、SQLを使うのが一般的です。
SQLは、Structure Query Languageの略で、構造化された問い合わせ言語のことです。
SQLは、データベースをアクセスするための言語として使われています。
SQLには、SQL92、SQL99などがあり、ISOやJISなどによって、標準化が進められています。
PostgreSQLは、SQL92のサブセットを実装しています。
SQLには、データベースを定義するDDLと、データベースをアクセスするDMLがあります。
SQLは、以下のような形式で指定します。
select 項目名 from 表名 where 検索条件; |
以下に、よく使う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 | 表を元に戻す |
トランザクションとは、データベースを更新する単位のことです。
例えば、在庫管理システムなどで商品を販売する場合、注文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 |