RDBの世界



1.データベース(DB)とは

2.データベースの種類

3.RDBの種類

4.Oracleのアドバンテージ

5.SQL

6.SQLのテクニック(工事中)

7.トランザクション処理(工事中)


1.データベース(DB)とは

 データベースと言った場合、DBMSつまりデータベース管理プログラム(或いはデータベースエンジンと呼ばれるもの)を指す場合と、データとしてのデータベースそのものを指す場合があります。ここで取り上げるRDB(リレーショナルデータベース)はDBMSの一つの形態です。ではデータベースとは何かと言われれば端的にはデータの集まりという事が出来ます。幾つかの項目が集まりひとつのレコードとなり、複数のレコードの集合がデータベースと言って良いでしょう。問題はその構成方法と保守のロジックとなります。これらについて次項目以降で詳しく見ていきます。


2.データベースの種類

 データベースにはその構成によって幾つかの種類があります。以下はその代表例です。

   SAM (Seaquential Access Method)

順編成ファイルと呼ばれるもので磁気テープ等の媒体記録で多く利用されています。単純な反面先頭から順にしか読めない欠点があります。

   ISAM (Indexed SAM)

磁気ディスク媒体などでSAMの欠点を補うべく索引を持つ事で特定レコードをランダムにリードライト可能としたものです。

   構造化DB

従来大規模オンラインなどに利用されてきました。例えば顧客のマスタファイルの下に属性・入出金・貸出し履歴などの複数のセグメントファイルが付加されるといった複雑な構造を可能とするものです。10年ほど前の金融システムの主流DBであり、現在でも多く利用されています。IBM社のIMSなどが具体的な例となります。

   RDB (Relational DataBase)

RDBは数多いデータベースの形態の中で近年最も利用されているものです。イメージ的にはEXCELのような表計算ソフト中の表をそのままデーターベースにしたものと理解すると判りやすいと思われます。但し実際には、1つの表だけで使われるのではなく、複数の表をキー項目を使ってリンクする形で利用されます。

NAME

ADDR

TEL

Sato

Tokyo

03-3456-9876

Tanaka

Kyoto

071-298-1456

Suzuki

Nagoya

062-245-6325


3.RDBの種類

 RDB製品も各種流通しており、以前メインフレームやUNIXでしか動かなかったものが、フリーのUNIXやWindowsでも利用出来るようになるなど裾野が広がっています。主な製品を上げます。

メインフレーム系

DB2(IBM社)

UNIX系

ORACLE
Sybase
Informix
PostgreSQL
MySQL
mSQL

PC系

MS-SQLserver
PARADOX
ACCESS


 この中で金額ベースではDB2とORACLEが激しく争っているようですが、数量ベースではORACLEが企業等の利用シェアが高く、信頼性の評価が高いようです。近年WindowsNT版やPersonal Oracle/OracleLiteと言ったWindows95/98で動くものまで製品化しシェアを延ばしています。


4.Oracleのアドバンテージ

 例えばPCベースでのACCESS(Microsoft社)のシェア伸張には目を見張るものがあります。ACCESSはRDBではなく単なるISAMではないかとの議論もあるのですが、それはさておきスタンドアロン専用と割り切ればそれなりの機能を有するACCESSもマルチユーザー環境では色々と問題があります。ACCESSとOracleの決定的な差は排他制御や保守のロジックであり、多くの機能に雲泥の差があります。Oracleは他のマルチユーザーRDB製品と比較しても幾つかのアドバンテージがあります。それは行レベルロックであり読取り一貫性です。

行レベルロック

Oracleではファイル単位の排他制御に留まらずレコード単位の排他制御が可能です。これはマルチユーザー環境において決定的な優位点です。

読取り一貫性

ユーザーAが合計値の検索を開始した後でユーザーBがレコードの更新をしたらどうなるのか。ユーザーBは2つのレコードを一つは10減じてもう一つは10加算します。ところが減じる方のレコードをユーザーBは既に読み込んでいたとすると、加算する方のレコードも加算前の値でユーザーAに渡さないと合計値がおかしくなります。そこで加算する方のレコードも加算前の数値をユーザーA渡す機能を読取り一貫性と言います。


5.SQL

 SQL(Structured Query Language)は元々米IBM社が自社のDB2用に開発したRDBを操作するための言語。現在では国際規格も定められており、事実上の標準言語で、Oracle、Sybase、Informix、ODBCなど全てほぼ同一の文法で記述出来ます。下記に検索と追加時の典型的なパターンを例示します。

RDBの内容は下記の通りとします。

CLIENT

CODE

NAME

ADDRESS

1111

佐藤物産

東京都渋谷区

2222

宮沢物流

神奈川県平塚市

3333

鈴木商会

千葉県銚子市

9876

南野商事

群馬県館林市

□ SELECT文


SELECT * FROM CLIENT WHERE CODE=3333

実行結果は、

CLIENT

CODE

NAME

ADDRESS

3333

鈴木商会

千葉県銚子市

となります。

□ INSERT文

INSERT INTO CLIENT(CODE,NAME,ADDRESS) VALUES(4444,’田中金属’,’東京都中央区’)

実行結果は、

CLIENT

CODE

NAME

ADDRESS

1111

佐藤物産

東京都渋谷区

2222

宮沢物流

神奈川県平塚市

3333

鈴木商会

千葉県銚子市

4444

田中金属

東京都中央区

9876

南野商事

群馬県館林市

となります。

前ページに戻る---> RETURN