|
データベースの構築
|
アプリケーションの開発に欠かせないのがデータです。そのデータ(テーブル)の集まりを格納しているものがデータベースです。
データベースは、アプリケーションからは独立して管理されており、必要に応じて複数のコンピュータからデータベースにアクセスし、データの検索・取得・更新などを行うことができます。
例えば、書籍管理のアプリケーションを開発するには、書籍テーブル・著者テーブル・ジャンルテーブル・出版社テーブルなどのように、分類したテーブルで管理することができます。
ここでは、NOMAD(IntraNomad)を用いたデータベースを作成する方法を説明します。
スキーマファイルの作成
データを格納するための各テーブルの内容・構造を、どのように定義すればよいのかを記述します。スキーマは拡張子がSCHのファイルに保存します。
まず、NOMADコマンドウィンドウからEDITコマンドでシステムエディタを表示し、エディタ上でスキーマを記述し保存します。(EDITで拡張子 .schを指定しなければ、 .nomとして認識されます。)
ここでは、「BOOKSHOP.SCH」というスキーマファイルを作成します。
-
EDIT BOOKSHOP.SCH ;
このとき開かれるウィンドウ上で、テーブルの内容・構造を定義します。
例:[bookshop.sch]
MASTER BOOKS KEYED=BNUM ;
ITEM BNUM AS 9999 HEADING '管理番号';
ITEM BTITLE AS A25 HEADING '書籍名' ;
ITEM BAUTHOR_NUM AS 9999 HEADING '著者番号' ;
ITEM BPRICE AS 999,999 HEADING '値段' ;
MASTER AUTHORS KEYED=ANUM ;
ITEM ANUM AS 9999 HEADING '著者番号' ;
ITEM ANAME AS A25 HEADING '著者名' ;
例えば、上のスキーマファイルの場合、「BOOKS」・「AUTHORS」という2つのテーブルを定義しています。
「BOOKS」テーブルでは書籍の情報を管理し、「AUTHORS」テーブルでは著者の情報を管理するとします。
各テーブルには、最低でも1つのキー項目が必要です。キー項目となるものを、マスター名の後にある「KEYED=」に記述します。
以下のコマンドも参照してください。
EDIT
MASTER
ITEM
SCHEMA NEWを行う
NOMADのコマンドラインより以下のように入力し、データベースを作成します。
なお、以下の例は、NDB(NOMAD上で独自に持たれるローカルデータベース)の初期化を行います。
SCHEMA NEWを行うことで、使用するデータベースを新規に作成します。
「BOOKSHOP」が、先ほど例に挙げたスキーマファイルのファイル名です。これがデータベース名となります。
-
SCHEMA BOOKSHOP NEW ;
ORACLEなどの外部のデータベース(リモートデータベース)にアクセスしたい場合、以下のように記述します。
REMOTE文でのCCCCがアクセス先のサーバー名、AAAAがユーザーID、BBBBがパスワードをあらわします。
-
REMOTE ORA ORACLE USERID AAAA PASSWORD BBBB SERVICENAME CCCC ;
SCHEMA BOOKSHOP NEW REMOTE ORA ;
リモートデータベースでSCHEMA NEWを行う場合は、REMOTE文を記述し(ここではREMOTE名は「ORA」)、SCHEMA NEWの後にそのリモート名を記述する必要があります。
REMOTEについては、ヘルプ目次のインターフェースを参照してください。
SCHEMAコマンドは、データベースの新規作成時(SCHEMA NEW)、データベース構造の変更時(SCHEMA CHECKもしくはSCHEMA REORG)、およびデータベースを破棄するとき(SCHEMA DELETE)に主に使用されます。
以下のコマンドも参照してください。
SCHEMA
データベースを起動
データベースに実際にアクセスする前に、まず、使用するデータベースを起動する必要があります。
- ローカルにあるNDB(データベース名は「bookshop」)にアクセスする場合
-
DATABASE BOOKSHOP ;
- リモートのデータベースにアクセスする場合
-
以下はORACLEのデータベースにアクセスする例です。
REMOTE ORA ORACLE USERID AAAA PASSWORD BBBB SERVICENAME CCCC ;
← REMOTE文は、すでに定義済みならいらない
DATABASE BOOKSHOP * REMOTE ORA ;
正常にデータベースが起動しているかどうかテストします。
-
SLIST ;
SLISTを行うことで、現在起動中のデータベースのスキーマ内容がOUTPUTウィンドウに出力されます。
以下のコマンドも参照してください。
DATABASE
SLIST
データベース上の各テーブルにデータを格納
データを操作する手段としては、データ追加(INSERT)、テーブル上の位置指定(LOCATE、TLOCATEなど)、データ変更(CHANGE)、データ削除(DELETE)などがあります。
DATABASEコマンドを使用してデータベースを起動した後は、ローカルデータベース・リモートデータベースに関係なく、また、NDB・ORACLE・SQLServerなどのデータベースエンジンに関係なく、同じ操作でテーブルにアクセスすることができるようになります。
-
データの追加(INSERT)
INSERT単体で使用する場合は、テーブルの末尾にデータが追加されます。
例えば、以下の記述はBOOKSテーブルの末尾に1レコード分データを挿入します。
-
INSERT BOOKS.BNUM=1 BOOKS.BTITLE='本1' BOOKS.BAUTHOR_NUM=1 BOOKS.BPRICE=360 ;
また、以下のようにしてデータを挿入することもできます。
-
BOOKS.&BNUM=1 ;
BOOKS.&BTITLE='本1' ;
BOOKS.&BAUTHOR_NUM=1 ;
BOOKS.&BPRICE = 360 ;
INSERT BOOKS ;
テーブル上の位置指定(TLOCATE)
TLOCATEによって、指定のキー項目の位置に移動します。
TLOCATEは、TOPとLOCATEを合わせた動作をします。
BOOKSテーブルのbnum(キー項目である必要があります)が1の位置に移動します。
-
TLOCATE BOOKS.BNUM=1 ;
この移動の後にDELETEやCHANGEを行うことにより、指定のレコードに変更を加えることができます。
位置を変更するコマンドは、LOCATE・TLOCATEのほかに、FIRST・NEXT・PREVIOUS・LAST・TOPなどがあります。
指定レコードの変更(CHANGE)
TLOCATEなどで位置移動後にCHANGEを行うことで、指定レコードの指定項目を変更することができます。ただし、キー項目は変更できません。
-
TLOCATE BOOKS.BNUM = 1 ;
CHANGE BOOKS.BTITLE = '書籍1' BOOKS.BPRICE = 400 ;
指定レコードの削除(DELETE)
TLOCATEなどで位置移動後にDELETEを行うことで、指定レコードを削除することができます。
-
TLOCATE BOOKS.BNUM = 1 ;
DELETE BOOKS ;
以下のコマンドも参照してください。
INSERT
LOCATE、TLOCATE
FIRST
NEXT
PREVIOUS
LAST
TOP
CHANGE
DELETE
データベースを削除する
作成したデータベースを削除する場合、SCHEMA DELETEを行います。
- ローカルにあるNDBを削除する場合
-
SCHEMA BOOKSHOP DELETE ;
- リモートのデータベースを削除する場合
-
REMOTE ORA ORACLE USERID AAAA PASSWORD BBBB SERVICENAME CCCC ;
←REMOTE文は、すでに定義済みならいらない
SCHEMA BOOKSHOP DELETE REMOTE ORA ;
以下のコマンドも参照してください。
SCHEMA